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?