ELF 注释中的多个 GCC 版本

ELF 注释中的多个 GCC 版本

我正在尝试确定编译各种可执行文件时使用了哪个版本的 GCC。为此,我查看了 ELF 文件的注释部分。我以为我只会遇到一个 GCC 版本,但我得到了以下输出。

GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-55)
GCC: (GNU) 4.8.2 20140120 (Red Hat 4.8.2-15)
GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-55)

什么原因导致有三个 GCC 注释和两个独立的版本?

注意:此文件位于 Python Wheel 中

答案1

通过安装 devtoolset-6 并运行,我能够在 centos/devtoolset-7-perftools-centos7 上重现类似的情况:

$ /opt/rh/devtoolset-6/root/usr/bin/gcc -Wall test.c
$ strings -a a.out | grep "GCC: ("
GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-36)
GCC: (GNU) 6.3.1 20170216 (Red Hat 6.3.1-3)

这可能是注释生成方式的一个错误,因为预期的输出只是第二行

相关内容