1.5.7 undefined reference to getreent when using mno-cygwin

Igor Peshansky pechtcha@cs.nyu.edu
Mon May 12 15:52:00 GMT 2008


<http://cygwin.com/acronyms/#PPIOSPE>.  I've redirected your query to the
appropriate list and set the Reply-To: header -- please make sure your
mailer honors it.

Ugh, top-posting...  Reformatted.

On Mon, 12 May 2008, Jesús Oliva wrote:

> > > Hi,
> > >
> > > I have a pure Win32 console program which I am trying to compile under
> > > Cygwin. I am
> > > including the following libraries
> > >
> > >         -lws2_32 -lrpcrt4 -luuid -lrpcns4 -lpsapi -liphlpapi
> > >
> > > and am using a host of Win32 calls for threading, sockets, semaphores, etc.
> > >
> > > I know that I need to compile with the option -mno-cygwin to be able to run
> > > the program on
> > > a computer without the cygwin.dll, which is what I want, however, when I add
> > > this option I
> > > get the following linker error:
> > >
> > >         undefined reference to `___getreent'
> > >
> > > This is my linker statement:
> > >
> > > g++ -g -O2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D WIN32 -D CYGWIN -D
> > > __CYGWIN__
> > > CoreMain.o CoreLibrary.a -Wl,--rpath -Wl,/usr/local/lib  -o CoreTest
> > > -mno-cygwin -lws2_32
> > > -lrpcrt4 -luuid -lrpcns4 -lpsapi -liphlpapi
> > >
> > > I have found that I get this for every line in the code where I use either
> > >
> > >         getchar()
> > > or
> > >         printf("...\b..."); fflush(stdout);
> > >
> > > and when I comment out these the error goes away, but jumps to the next line
> > > or file where
> > > I use this or something like it. I must admit that I have not tried removing
> > > all hundreds
> > > of them, just the first 15 or so...
> > >
> > > I have tried to include all sorts of libraries instead of the cygwin.dll and
> > > actually,
> > > when I include the -lpthread it compiles, but then the program crashes when
> > > I start using
> > > threads and semaphores...
> > >
> > > As I mentioned above, when I do not state -mno-cygwin, everything works fine
> > > and the
> > > program runs perfectly! But then it needs the cygwin.dll, of course...
> > >
> > > I found a few references to this on the web, mostly promoting the compiler
> > > directive
> > >
> > >         -D __CYGWIN__
> > >
> > > which I have tried, but to no avail...
> > >
> > > Below is a snippet of output from the linker. I hope this will make sense to
> > > somebody out
> > > there, who can tell me what to include in my linker statement...
> > >
> > > Thank you very much in advance!
> > >
> > > Best regards,
> > > Thor List
> > >
> > > [Linker output snipped]
> >
> > Thor,
> >
> > You have to use -mno-cygwin for the whole compilation, not just for the
> > link line, otherwise the wrong headers get picked up.  IOW, don't add
> > "-mno-cygwin" to LDFLAGS -- instead, redefine CXX='g++ -mno-cygwin' (and
> > CC='gcc -mno-cygwin') and rebuild everything from scratch.
> >        Igor
>
> I have a similar problem that the one related below, but when I try to
                                                above
> compile everything with the -mno-cygwin option, I get many errors such
> as:
>
> 'error: u_int32_t has not been declared
>
> I suppose that, if I don´t want to use cygwin.dll, I should add some
> libraries to the compiling and linking process, but I don´t know wich.
> Could you help me??
>
> Thank you very much,
> Jesús Oliva

You may need headers that define the above types, or you may be unable to
compile the code with -mno-cygwin if those headers are not present in
MinGW.

Remember, -mno-cygwin means "no Cygwin" -- you're using MinGW, and will
only be able to compile programs that MinGW has enough support for.

Further questions about this should really be directed to a MinGW list...
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_	    pechtcha@cs.nyu.edu | igor@watson.ibm.com
ZZZzz /,`.-'`'    -.  ;-;;,_		Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-'		old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"That which is hateful to you, do not do to your neighbor.  That is the whole
Torah; the rest is commentary.  Go and study it." -- Rabbi Hillel
-------------- next part --------------
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


More information about the Cygwin mailing list