[CentOS] version GLIBC_2.0 not defined in file libpthread.so.0

Fri Apr 20 06:06:32 UTC 2007
Pierre Bourgin <pierre.bourgin at arteris.com>

Bisbal, Prentice wrote:

[...]
> 
> Below is the output of the commands you requested. The naviagent binary
> is 32-bit. The RPM filename has "noarch" for the architecture, and there
> is no way to specify the Linux distribution or architecture on the
> download page, so EMC must be doing the "one size fits all" thing. 
> 
> # file /opt/Navisphere/bin/naviagent
> /opt/Navisphere/bin/naviagent: ELF 32-bit LSB executable, Intel 80386,
> version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared
> libs), stripped
> 
> # ldd /opt/Navisphere/bin/naviagent
>         linux-gate.so.1 =>  (0xffffe000)
>         libnsl.so.1 => /lib/libnsl.so.1 (0xf7fb7000)
>         libdl.so.2 => /lib/libdl.so.2 (0x00495000)
>         libm.so.6 => /lib/tls/libm.so.6 (0x0049b000)
>         libpthread.so.0 => /lib/tls/libpthread.so.0 (0x004ca000)
>         libc.so.6 => /lib/tls/libc.so.6 (0x00368000)
>         /lib/ld-linux.so.2 (0x0034f000)

So you should modify $LD_LIBRARY_PATH to use the older libpthread.so, 
the one from the compat-glibc package.

The output of the command below should indicate that libpthread.so.0 is 
taken from the /usr/lib/i386-redhat-linux3E/lib, instead of using 
/lib/tls/libpthread.so.0 :

% LD_LIBRARY_PATH=/usr/lib/i386-redhat-linux3E/lib ldd 
/opt/Navisphere/bin/naviagent
[...]
          libpthread.so.0 => 
/usr/lib/i386-redhat-linux3E/lib/libpthread.so.0
[...]

If this is case, you just have to write a shell wrapper script or a 
shell alias to call naviagent, something like:

% chmod +x /usr/local/bin/naviagent
% cat /usr/local/bin/naviagent
#! /bin/sh
LD_LIBRARY_PATH=/usr/lib/i386-redhat-linux3E/lib
/opt/Navisphere/bin/naviagent $@

Then modify $PATH in order to call it first:

% which naviagent
/usr/local/bin/naviagent

Try so see if it's working.

You can also take a look in ld.so(8) man page and the LD_PRELOAD 
environment variable if it's still no working.

Regards,
Pierre