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

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

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

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

有没有一种方法可以通过编程方式知道 .so 是否与-Bsymbolic-functionsC 链接?

答案1

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

dump -Lv libxxx.so | grep SYMBOLIC

答案2

有一个命令叫纳米

nm - 列出目标文件中的符号

你可以使用命令

nm Absolute_path_of_.so_file_name | grep -i -Bsymbolic-functions

相关内容