Search code examples
clinkerldlibc

Relink a shared library to a different version of libc


I have a Linux shared library (.so) compiled with a specific version of libc (GLIBC_2.4) and I need to use it on a system with different version of libc. I do not have sources for the library in question so I cannot recompile for the new system. Is it somehow possible to change the dependencies in that library to a different libc?


Solution

  • If you need the .so on a system with an older glibc, you would need the source code and recompile/relink it with the older glibc. The alternative is to install the required glibc on the old system in a non-default location and adjust the LD_LIBRARY_PATH for the executable that needs this .so

    If there's a newer glibc rather, it should normally not be a problem as glibc tend to be backwards compatible.