On Tue, 29 Apr 2008 21:42:30 +0200 Hallvard B Furuseth h.b.furuseth@usit.uio.no wrote:
Michael B Allen writes:
Why does libldap need these symbols?
STRERROR() needs either sys_errlist + sys_nerr or strerror(), and it prefers the former since the latter may not be thread-safe. (Ought to switch to use strerror_r() when someone feels like using time on it, but...)
If you run configure on a system with sys_errlist, it'll use that. To prevent it, run make distclean to get rid of the old build and then (I think)
./configure --<your config params> ol_cv_have_sys_errlist=no
Actually it's ol_cv_dcl_sys_errlist=no but it breaks the compile:
In file included from /usr/include/stdio.h:754, from /usr/include/resolv.h:64, from ../../include/ac/socket.h:56, from util-int.c:32: /usr/include/bits/sys_errlist.h:27: error: expected identifier or '(' before numeric constant /usr/include/bits/sys_errlist.h:28: error: expected identifier or '(' before 'char' /usr/include/bits/sys_errlist.h:28: error: expected ')' before numeric constant make[2]: *** [util-int.lo] Error 1 make[2]: Leaving directory `/var/ioplex/openldap-2.3.39/libraries/libldap' make[1]: *** [all-common] Error 1 make[1]: Leaving directory `/var/ioplex/openldap-2.3.39/libraries' make: *** [all-common] Error 1
I'm just going to disable TRACE in os-ip.c.
Hoping you convert to strerror_r one day ...
Thanks, Mike