9

Currently I have glibc which does not support epoll, so I installed new glibc at non default lation which supports epoll. I have python program which uses this epoll.

I tried to set LD_LIBRARY_PATH

export LD_LIBRARY_PATH="/home/glibc/lib:$LD_LIBRARY_PATH"

then I run ls, it gave me errors

ls: /home/glibc/lib/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /lib/libpam.so.0)

ls: /home/glibc/lib/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /lib/libpam_misc.so.0)

Also when I tried to run python I got

python: relocation error: /home/glibc/lib/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference

How can I use newly installed glibc instead of default one?

user2109788
  • 1,266
  • 2
  • 12
  • 29
big
  • 1,888
  • 7
  • 28
  • 48

2 Answers2

2

You need to use an explicit invocation of the dynamic linker, so something like this:

/home/glibc/lib/ld-linux-x86-64.so.2 --library-path /home/glibc/lib /usr/bin/python

(But the fact that the GLIBC_2.4 symbol version is not available suggests that something is very wrong with the new glibc, or it is actually not very new at all, predating glibc 2.4.)

Florian Weimer
  • 32,022
  • 3
  • 48
  • 92
0

If you compiled glibc yourself you should have testrun.sh script in your build directory. This is simpler and more reliable than using ld-linux.so:

build/testrun.sh ls
ssanin82
  • 23
  • 4