[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: How to get rid of sys_errlist and sys_nerr?



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