[CentOS] Recommendation(s)

Sun Oct 2 02:41:33 UTC 2005
Maciej Żenczykowski <maze at cela.pl>

> ./real.exe: /usr/pgi/linux86-64/6.0/lib/libpthread.so.0: version 
> `GLIBC_2.3.3' not found (required by /lib64/tls/librt.so.1)

I think I know where the problem lies:

on FC3 i386 system:
# find /lib | grep libpthread
/lib/i686/libpthread.so.0
/lib/i686/libpthread-0.10.so
/lib/libpthread.so
/lib/tls/libpthread.so.0
/lib/tls/libpthread-2.3.5.so
/lib/libpthread.so.0
/lib/libpthread-0.10.so

obviously we have tls and non-tls versions of libpthread.
Apparently the /usr/pgi does not have a tls version of libpthread
(which should be in /usr/pgi/linux86-64/6.0/lib/tls/libpthread.so.0)
thus causing tls to fail and come into conflict with the default tls
enabled librt from glibc.

The 'proper' solution would be for the compiler to come with a tls enabled 
libpthread (maybe report a bug) - the 'improper' is to make the ld-linux 
loader skip trying the tls glibc libraries.  Either by turning of tls 
(LD_PRELOAD_ASSUME=2.4.1) or by preloading the correct non-tls libraries 
(something like LD_PRELOAD=/lib64/librt.so.1 ...) possibly having to list 
more then just one library (separated by colons or semicolons in double 
quotes)

Cheers,
MaZe.