[Date Prev][Date Next]
Re: How to get rid of sys_errlist and sys_nerr?
On Tue, 29 Apr 2008 13:22:06 -0400
Michael B Allen <email@example.com> wrote:
> I'm trying to run something linked with libldap on a glibc-2.5 system
> on a glibc-2.3 linux system and the loader compains about not having
> the right versions of sys_errlist and sys_nerr.
> Why does libldap need these symbols?
> $ objdump -T libldap-2.3.so.0 | grep sys_
> 0000000000000000 DO *UND* 0000000000000004 GLIBC_2.4 sys_nerr
> 0000000000000000 DO *UND* 0000000000000420 GLIBC_2.4 sys_errlist
> >From looking at config.log, configure finds strerror just fine.
> Is there any way to get rid of these symbols?
> Of all the symbols in all the libraries that make up my project these
> are the only two GLIBC_2.4 or above symbols. If I can get rid of them,
> my code should run on the glibc-2.3 system.
I've narrowed it down to the TRACE macro in libraries/libldap/os-ip.c. If
I #define TRACE as nothing my code loads ok on the glibc-2.3 system and
all is well.
My guess is it looks like sock_errstr is evaluating to STRERROR and
somehow that macro is using the offending symbols.