Linux 加载程序 (ld.so) 是否遵循符号链接?

Linux 加载程序 (ld.so) 是否遵循符号链接?

我尝试将 ld.so.cache 文件移动到另一个位置时偶然发现了一个问题。我尝试在其先前的位置为其创建一个符号链接 -- /etc/-- 但加载程序似乎无法遵循此符号链接。此外,硬链接也不可行,因为新位置位于另一个分区上。

我的最终目的是拥有一个只读根文件系统,这可能是阻止我这样做的最后一件事。

先感谢您!

答案1

我可以确认,至少在 Glibc 中,ld.so打开/etc/ld.so.cache.代码在elf/dl-cache.c在函数中,引用_dl_load_cache_lookup函数_dl_sysdep_read_whole_fileelf/dl-misc.c。该函数打开文件并将其映射到内存中;它对符号链接没有任何作用。

避免符号链接需要额外的努力,我想不出加载程序会这样做的任何原因。

要调试您的问题,您可以使用strace跟踪加载程序正在读取或尝试读取的文件。

相关内容