Making binary depend on the correct `libpthread`

40 views Asked by At

I have these files:

└─$ ls
ld-2.31.so  libc.so.6  libpthread-2.31.so  professor  professor.zip

(I extracted them our of the zip file)

When running professor, I receive the following error:

└─$ ./professor
./professor: ./libc.so.6: version `GLIBC_ABI_DT_RELR' not found (required by /lib/x86_64-linux-gnu/libpthread.so.0)

I assume it is caused because the binary is not correctly dependant on the libpthread-2.31.so in the current directory:

└─$ ldd professor
./professor: ./libc.so.6: version `GLIBC_ABI_DT_RELR' not found (required by /lib/x86_64-linux-gnu/libpthread.so.0)
        linux-vdso.so.1 (0x00007ffefb53f000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7d5ce0a000)
        libc.so.6 => ./libc.so.6 (0x00007f7d5cc18000)
        ./ld-2.31.so => /lib64/ld-linux-x86-64.so.2 (0x00007f7d5ce24000)

Using patchelf --set-rpath . professor didn't help, as the rpath is already .. Looks like the loader is also set correcgtly, it's just libpthread that's problematic.

How can I make the binary depend on the correct libpthread?

0

There are 0 answers