根据邮件列表显示,Clang LTO PR 已经发起,不过该拉取请求目前处于挂起状态。当使用 Clang 编译器构建 Linux 5.12 内核时,将允许启用 Clang 链接时优化(LTO)。该拉取请求已为核心基础结构和 64 位 ARM(AArch64)准备了编译器优化工作,而对于 x86_64 的支持预计将于 Linux 5.13 实现。
此前,本站曾报道了 Linux 5.12 或将支持 Clang LTO 的相关信息。使用 Clang LTO 可以得到最佳的运行时性能,并且,Clang 的 CFI(Control-Flow Integrity)实现也借此能得以实施。在本次更改中, 同时也包括 ThinLTO 支持 —— 仅仅进行有限的函数 importing 分析,与传统的构建方式占用内存和时间差不多。
过去,Linus Torvalds 从未采纳过 LTO 支持的相关提议(包括 GCC),但是像谷歌这样的公司早已在其移动设备上的内核构建中使用 Clang LTO 并取得了不错的效果:大约 3 年前开始, Android 内核不仅由 Clang 构建,而且还利用了链接时优化。微软也探索过使用 LTO + PGO 来给 Linux 内核提升性能。除了性能之外,Clang LTO 还允许启用 CFI 以获得更高的安全性。
不过,与上次报到时情况相同,对于 x86_64 的支持由于一些 objtool 的问题仍在等待中,预计将于 Linux 5.13 才能实现。
猜你喜欢:暂无回复。