将库与较新的 GLIBC 依赖项链接起来

Linking a library with newer GLIBC dependencies

我有一个编译为使用旧系统 GLIBC 2.15 (ld-linux.so.3 / ld-2.15.so) 的可执行文件,这是一个 bootstrap 到共享库具有较新的 GLIBC 2.20 依赖项。

谁可以加载库并指示更改为更新的 GLIBC 链接器 (ld-linux.so.3 / ld-2.20.so)?

您可以升级系统 glibc,但这通常会使系统失去支持,因此这很少是合适的方法。

您可以自己编译 glibc,将其安装在非标准位置(比如 /opt/gnu/glibc-2.27),然后 link 您的应用程序使用这个新的 glibc 而不是系统glibc。 glibc wiki 包含带有所需 linker 标志的说明:

如果你不能重新link主程序,你将不得不使用explicit loader invocation代替,也许使用一个小的包装脚本,比如glibc自动生成的testrun.sh脚本.