Linux 5.12 或将支持 Clang LTO 与传统占用内存和时间类似

时间:2021-01-15 08:18:08 来源: 开源中国


对于 GCC 编译器的替代者 Clang,Linux 或将在 2 月份 5.12 版本中支持其 LTO( link-time optimizations ) 功能。

这些补丁由谷歌软件工程师 Sami Tolvanen 提交,目前被分类为 for-next/kspp,大致分为两个系列(系列1,系列2),用户可以在 Kconfig 配置中选择是否开启 LTO。接下来如果没有出大问题,这些补丁可能会发送到 5.12 的合并窗口中。不过,这些补丁目前仅支持 arm64,对于 x86_64 的支持由于一些 objtool 的问题仍在等待中。

虽然使用 Clang LTO 可以得到最佳的运行时性能,但是构建时会占用大量时间和内存,因此该支持也包括 ThinLTO —— 仅仅进行有限的函数 importing 分析,与传统的构建方式占用内存和时间差不多。

此前,像谷歌这样的公司早已在其移动设备上的内核构建中使用 Clang LTO 并取得了不错的效果,微软也探索过使用 LTO + PGO 来给 Linux 内核提升性能。实际上,早在 2014 年,Intel 的开发人员就提交过 LTO 支持的补丁,不过当时 Linus Torvalds 并没有采纳。

如果这些提交最终被使用,那么一些相关的 "CONFIG_LTO" 配置也会给添加 GCC LTO 的支持打下基础,虽然此前 Intel 等公司也提过支持 GCC LTO,但从未被采纳。 同时,Clang 的 CFI(Control-Flow Integrity)实现也能得以实施。

关键词:Linux 5 12 Clang LTO

关于我们 加入我们 广告服务 网站地图

All Rights Reserved, Copyright 2004-2020 www.ctocio.com.cn

如有意见请与我们联系 邮箱:5 53 13 8 [email protected]

豫ICP备20005723号    IT专家网 版权所有