如何确定所用函数对应的glibc最低支持版本?
确定函数对应的glibc支持版本的方法
查看函数的man手册细节:部分函数的man页会直接标注支持的glibc版本,比如你提到的
pthread_setname_np。如果手册未说明,可查看CONFORMING TO章节,这里会标注函数遵循的标准(如POSIX.1-2001),而glibc对这类标准的支持版本通常有对应关系——比如符合POSIX.1-2001的函数大多在glibc 2.3.2及以后版本支持。查看glibc的ChangeLog文件:glibc的源码包或代码仓库中包含ChangeLog文件,其中会记录每个函数新增或重大修改的版本信息。搜索目标函数的名称,就能找到它首次被引入的glibc版本。
使用工具检查二进制依赖:编写一个调用目标函数的简单程序并编译,之后用
readelf -s或objdump -T工具查看二进制文件的符号信息。例如执行readelf -s ./test_program | grep pthread_self,输出结果中的版本字段会显示该函数依赖的最低glibc版本。参考glibc的符号版本定义文件:在glibc源码中,类似
libpthread.map这类符号版本文件会明确记录每个函数符号对应的glibc版本,直接查找目标函数即可获取信息。
内容的提问来源于stack exchange,提问作者user4742841
相关产品推荐
相关产品推荐

