欢迎大家来到IT世界,在知识的湖畔探索吧!
Linux x86/x86_64 内核的编译要求最低编译器版本为 GCC 8,而 Linux 6.16 也对所有其他架构都提出了同样的要求。所有 Linux 内核架构的 GCC 8 和 GNU Binutils 2.30 基准现在允许从代码库中删除一些旧的变通方法。
Linus Torvalds 今天合并了这一变更,强制要求编译 Linux 内核所需的 GNU 编译器集合版本至少使用 GCC 8。GCC 8 最低版本取代了之前的 GCC 5 最低版本要求。GNU Binutils 基准版本从 v2.25 升级到 v2.30。LLVM Clang 13 及更新版本仍然是编译 Linux 内核的 GCC 替代方案。
Arnd Bergmann 在Git 合并中阐述了提高 GCC 基准的理由:
需要 gcc-8 和 binutils-2.30
x86 已使用 gcc-8 作为最低版本,这将使所有其他体系结构更改为同一版本。Debian 10 和 Red Hat Enterprise Linux 8 使用 gcc-8,这两个系统仍然受支持,binutils 2.30 是它们对应的最旧版本。Ubuntu Pro 18.04 和 SUSE Linux Enterprise Server 15 都使用 gcc-7 作为系统编译器,但还包含仍然受支持的工具链。
使用新的最低工具链版本,可以放弃许多针对旧版本的解决方法,尤其是在 x86_64 和 arm64 上。重要的是,更新的编译器版本允许删除剩余的五个 gcc 插件中的两个,因为现代编译器版本已经包含对 sancov 和 structleak 特性的支持。
我尝试收集基于新工具链版本可能出现的已知更改,但预计还会进行更多清理。
与此变化合并后,内核中已经删除了 600 多行代码,从而能够消除 GCC8 之前的旧解决方法。
欢迎大家来到IT世界,在知识的湖畔探索吧!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/140183.html