有没有人尝试过使用 rpath 设置来构建
glibc
,以便将生成的安装移动到文件系统上,并且仍然可以工作?
这对于处理沙盒问题很有帮助。我们希望测试/二进制文件使用我们自己的
glibc
——安装在沙箱中——但我们不先验知道沙箱目录的绝对路径。
以便可以将生成的安装移动到文件系统上,
由于here解释的原因,这无法可靠地工作。
除了硬烘焙到所有可执行文件中的动态加载器之外,GLIBC 本身还具有硬编码路径,它将用于加载自身的组件(例如处理
nsswitch.conf
所需的)。
虽然可以使用“显式加载器调用”来重定向动态加载器和 GLIBC:
/path/to/ld-linux.so.2 --library-path .... /path/to/a.out
,但这些都不是透明的。