X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Mon, 12 May 2008 11:34:30 -0400 (EDT) From: Igor Peshansky Reply-To: cygwin AT cygwin DOT com To: =?ISO-8859-1?Q?Jes=FAs_Oliva?= cc: cygwin AT cygwin DOT com Subject: Re: 1.5.7 undefined reference to getreent when using mno-cygwin In-Reply-To: <4828218F.30206@iai.csic.es> Message-ID: References: Pine DOT GSO DOT 4 DOT 56 DOT 0403051013110 DOT 1570 AT slinky DOT cs DOT nyu DOT edu <4828218F DOT 30206 AT iai DOT csic DOT es> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-758783491-1210606470=:23011" Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com ---559023410-758783491-1210606470=:23011 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT . 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 AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT 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 ---559023410-758783491-1210606470=:23011 Content-Type: text/plain; charset=us-ascii -- 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/ ---559023410-758783491-1210606470=:23011--