I've found other problems on Solaris and Linux with libtool explicitly adding libc to the link line. One of the more recent hassles is with gcc 3.x; if you build a shared library with gcc and explicitly link -lc, gcc also links libgcc.so into your object. This gets to be a real hassle because now you have shared libraries that wrongly have a dependency on libgcc. Only linked executables are supposed to pull in libgcc, and it's really only critical for C++, not for plain C.
It would be safest if libtool never added -lc to the link line, since all C compiler drivers already do it implicitly. -- Howard Chu Chief Architect, Symas Corp. Director, Highland Sun http://www.symas.com http://highlandsun.com/hyc Symas: Premier OpenSource Development and Support > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of > Dave MacKenzie > Sent: Thursday, January 31, 2002 7:23 PM > To: [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: -lc fix for BSD/OS and FreeBSD > > > I was trying to run a CGI program with Apache 2.0.18 on BSDI BSD/OS 4.3, > and found that when read() on a nonblocking pipe returned -1, errno wasn't > setting set (to EAGAIN); it was 0. So apache didn't do its timeout call > and the CGI request got a Server Error. > > The problem turned out to be that when linking libapr.so, libtool was adding > -lc. Then, when libapr.so was linked into httpd, -lc gets linked in again, > and there are now two copies of libc in apache's address space, each with its > own thread-safe copy of errno. > > The version of libtool that came with Apache is: > > ltmain.sh (GNU libtool) 1.3.4-freebsd-ports (1.385.2.196 1999/12/07 21:47:57) > > However, the problem still exists in: > > ltmain.sh (GNU libtool) 1.4 (1.920 2001/04/24 23:26:18) > > The latter contains this case: > > *-*-netbsd*) > # Don't link with libc until the a.out ld.so is fixed. > ;; > > That case needs to be extended to: > > *-*-netbsd* | *-*-freebsd* | *-*-bsdi4*) > # Don't link with libc until the a.out ld.so is fixed. > ;; > > The FreeBSD port of libtool adds freebsd, and as I just discovered, > BSD/OS needs the same treatment. > > This problem also recently bit Steven Schultz <[EMAIL PROTECTED]> while > porting some video software from Linux to BSD/OS. > > _______________________________________________ > Libtool mailing list > [EMAIL PROTECTED] > http://mail.gnu.org/mailman/listinfo/libtool > _______________________________________________ Libtool mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/libtool