Linux 5.12 或將支持 Clang LTO
對于 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)實現也能得以實施。
本文轉自OSCHINA
本文標題:Linux 5.12 或將支持 Clang LTO
本文地址:https://www.oschina.net/news/126367/linux-5-12-maybe-support-lto