Reputation: 380
I had an executable compiled to use old system GLIBC 2.15 (ld-linux.so.3 / ld-2.15.so), that is a bootstrap to a shared library with newer GLIBC 2.20 dependencies.
Who can load the library and instruct to change to the newer GLIBC linker (ld-linux.so.3 / ld-2.20.so)?
Upvotes: 3
Views: 2046
Reputation: 33694
You could upgrade the system glibc, but that would usually put the system out of support, so it is rarely the appropriate approach.
You can compile glibc yourself, install it in a non-standard location (say /opt/gnu/glibc-2.27
), and then link your application in such a way that it uses the this new glibc instead of the system glibc. The glibc wiki contains instructions with the required linker flags:
If you cannot relink the main program, you will have to use the explicit loader invocation instead, perhaps using a small wrapper script such as the testrun.sh
script that glibc generates automatically.
Upvotes: 5