有没有办法检查 .so 是否已使用 -Bsymbolic-functions 标志编译?

ami*_*sax 7 linker dynamic-loading

我的应用程序使用动态加载自定义代码dlopen。对于常用符号,默认使用全局符号表。

但是,我想提供以下功能 - 如果用户已将他们的 so 与 链接-Bsymbolic-functions,我会将RTLD_DEEPBIND标志传递给该dlopen函数。

有没有办法以编程方式知道 .so 是否与-Bsymbolic-functions使用 C链接?

sch*_*ily 3

您可以使用标准 ELF 程序转储:

dump -Lv libxxx.so | grep SYMBOLIC