Linux 5.12 合并 Clang LTO 支持
近日,Linux 5.12 终于合并了 Clang LTO 支持,而且支持AArch64 (64 位ARM) 平台和x86_64 平台。 此前本站曾报道过Linux 5.12 或将支持 Clang LTO和Linux 5.12 的 Clang LTO PR的相关讯息。不过,当时的补丁仅支持AArch64 平台,并且表示由于一些objtool 的问题,对于 x86_64 平台的支持或许要在Linux 5.13 才能实现。而且,Linus Torvalds 过去从未采纳过 LTO 支持的相关提议(包括 GCC),对于这次提交是否同意也尚不清晰。 实际上,使用 Clang LTO 可以得到最佳的运行时性能,并且,Clang的 CFI(Control-Flow Integrity)实现也借此能得以实施。在这些更改中, 同时也包括 ThinLTO 支持 —— 仅仅进行有限的函数 importing 分析,与传统的构建方式占用内存和时间差不多。像谷歌这样的公司早已在其移动设备上的内核构建中使用 Clang LTO 并取得了不错的效果:大约 3 年前开始,Android 内核不仅由 Clang 构建...
