For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
近日,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构建,而且还利用了链接时优化。微软也探索过使用LTO + PGO来给Linux内核提升性能。除了性能之外,Clang LTO还允许启用CFI以获得更高的安全性。
令人兴奋的是,Linus Torvalds终于合并了Clang LTO支持。而且这次的补丁不仅包括之前的AArch64平台支持,它还有第二部分:支持x86_64平台。在Linux 5.12中,用户使用脚本即可启用Linux内核Clang LTO构建:
make LLVM=1 LLVM_IAS=1 defconfig
scripts/config -e LTO_CLANG_THIN
make LLVM=1 LLVM_IAS=1
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!