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