Glibc vs GCC vs binutils 兼容性

scr*_*ari 6 c++ gcc glibc binutils

是否有某种关于 binutils、glibc 和 GCC 之间版本兼容性的官方文档?我找到了这个用于 binutils 与 GCC 版本兼容性的矩阵。对于 GCC 与 glibc 也有这样的东西会很好。

我问这个问题的重点是,我需要知道我是否可以使用“嵌入式”glibc 2.2.4 构建跨 GCC 4.9.2,以便能够支持像 CentOS 5 这样的旧目标。

谢谢你。

Mik*_*ger 3

您极不可能使用如此新版本的 gcc 构建如此旧版本的 glibc。glibc 在其INSTALL 文件中记录了 binutils 和 gcc 所需的最低版本

glibc-2.23 指出:

Recommended Tools for Compilation
GCC 4.7 or newer
GNU 'binutils' 2.22 or later
Run Code Online (Sandbox Code Playgroud)

通常,如果您想要比这些版本更新的版本,glibc 通常会使用发布时正在开发的 gcc 版本。例如,glibc-2.23 于 2016 年 2 月 18 日发布,当时 gcc-6 正在开发中,因此 glibc-2.23 将通过 gcc-6 与 gcc-4.7 配合使用。

所以找到你想要的 gcc 版本,然后找到它的发布日期,然后查看glibc 版本大约同一时间

尽管如此,使用旧版本的 glibc 是一个糟糕的主意。它将充满已知的安全漏洞(包括可远程利用的漏洞)。例如,最新的 glibc-2.23 版本修复了CVE-2015-7547,它影响任何执行 DNS 网络解析的应用程序,并影响从 glibc-2.9 开始的版本。请记住:这并不是唯一潜伏的错误。