Fedora 計劃提供使用 Clang 而不是 GCC 構建軟件包的能力

用於 Fedora 33 中的實現 預定的 改變 在發行版中使用編譯器的規則,根據該規則,可以根據主項目(上游)的建議和偏好來選擇用於構建包的編譯器。 Fedora 目前強制使用 GCC 來構建所有包,除非該包只能在 Clang/LLVM 中構建。

使用 Clang 進行構建的動機是一些項目,例如, 火狐瀏覽器 и ,在開發時,使用Clang作為主要編譯器,基於它的構建更加經過定性測試。 對此類包使用 Clang 將避免捕獲在 GCC 中構建時彈出的錯誤,並與主項目協調這些錯誤的修復。 使用 GCC 進行構建對於維護使用 Clang 開發的代碼的可移植性有積極的作用,但會給維護者帶來很大的負擔並延遲更新的發布(例如,Mozilla 禁止 應用第三方補丁時使用Firefox商標,因此必須先獲取主流中包含的補丁,並在修復出現在上游後才發布更新)。

值得注意的是,對於該編譯器更適合併在主項目中使用的包來說,使用 Clang 是合乎邏輯的。 對於此類包,如果由主項目的代表來處理包的準備工作,則可以減少維護負擔。 如果社區代表正在構建該包,那麼建議將編譯器選擇留給維護者。 對於其主要項目不支持一種編譯器而不是另一種編譯器的軟件包,建議保持現狀(像以前一樣在 GCC 中構建)。 該提案的作者是 Red Hat 的 Jeff Law,他是 GCC 和 Binutils 的維護者。

來源: opennet.ru

添加評論