This is not one of those how do I run a new binary on a system with an older glibc questions.
The binary is built for an embedded target which uses glibc version 2.25. The test system is debian stable which uses glibc version 2.36.
We have several binaries built for the old system that run fine, but one fails with:
# ./Demo
./Demo: /lib/arm-linux-gnueabihf/libpthread.so.0: version `GLIBC_2.25' not found (required by ./Demo)
I’m guessing this may have something to do with libpthread.so being absorbed into glibc, but I’m not sure how to work around this.
I tried putting gclibc first in the link order as well as just running it:
# LD_PRELOAD=/lib/arm-linux-gnueabihf/libc.so.6 ./Demo
./Demo: /lib/arm-linux-gnueabihf/libpthread.so.0: version `GLIBC_2.25' not found (required by ./Demo)
# LD_PRELOAD=/lib/arm-linux-gnueabihf/libc.so.6 ldd Demo
./Demo: /lib/arm-linux-gnueabihf/libpthread.so.0: version `GLIBC_2.25' not found (required by ./Demo)
linux-vdso.so.1 (0xbef73000)
/lib/arm-linux-gnueabihf/libc.so.6 (0xb20a9000)