大家好,欢迎来到IT知识分享网。
出品|开源中国
从去年开始,当使用 LLVM 的 Clang 编译器构建 Linux 内核时,已支持为内核构建启用链接时优化 (LTO, link-time optimizations)。而对于使用 GCC 构建 Linux 内核,仍缺少 LTO 支持,近日发布的一系列补丁是实现此目标的最新尝试。
Clang 的 LTO 支持在 Linux 5.16 中被合并,并一直保留至今。此举除了提升构建性能,对于内核来说,还提供了基于 Clang 的 CFI 支持。
早在十年前,在 Clang 能够构建 Linux 内核主线之前,已经有开发者为内核提交 GCC LTO 补丁,不过最终没有被合并,原因是当时 GCC 的 LTO 支持不够完善,未能说服 Linus。近年来,也有多家厂商发布了针对 Linux 内核的 LTO 补丁。随着现代 GCC 编译器(和 Clang)的发展,LTO 也逐渐变得更好,像 Fedora 在打包他们的发行版安装包时都会默认使用 LTO,也有像 Clear Linux 这样的公司通过使用 AutoFDO(基于程序性能分析工具的反馈式编译优化)来进一步提升其发行版的性能。
来到 2022 年年底,SUSE 工程师 Jiri Slaby 提交了 GCC LTO 支持补丁,同时作为 “第一次征求意见”,其部分内容是基于 Andi Kleen 先前的补丁以及 SUSE 工程师 Martin Liska 的工作。
虽然对编译器的链接时进行优化通常会提升性能。但目前看来,针对 Linux 内核的 GCC LTO 支持,内核开发者测试后发现并没有明显变化。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/123649.html