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

添加评论