Pour la mise en œuvre dans Fedora 33 Règles d'application des compilateurs dans la distribution, selon lesquelles le compilateur pour la construction du paquet peut être sélectionné en fonction des recommandations et des préférences du projet principal (upstream). Actuellement, Fedora impose strictement l'utilisation de GCC pour la construction de tous les paquets, sauf dans les cas où le paquet ne peut être construit qu'avec Clang/LLVM.
Le motif de la possibilité de construction avec Clang est que certains projets, par exemple, et , lors de leur développement, utilisent Clang comme compilateur principal, et les constructions basées sur celui-ci sont mieux testées. L'utilisation de Clang pour de tels paquets permet d'éviter de rencontrer des erreurs lors de la construction avec GCC ainsi que la nécessité de concilier les corrections de ces erreurs avec le projet principal. La construction avec GCC a un effet positif sur la portabilité du code développé avec Clang, mais crée une charge importante pour les mainteneurs et retarde la publication des mises à jour (par exemple, Mozilla d'utiliser la marque déposée Firefox lors de l'application de patchs tiers, il est donc nécessaire de d'abord obtenir l'inclusion des patchs dans la composition principale et de publier la mise à jour uniquement après l'apparition des corrections dans l'upstream).
Il est noté qu'il serait logique d'utiliser Clang pour les paquets pour lesquels ce compilateur convient mieux et est utilisé dans le projet principal. Pour de tels paquets, il serait possible de réduire la charge de maintenance si la préparation des paquets est effectuée par des représentants du projet principal. Si la construction du paquet est effectuée par un représentant de la communauté, il convient de proposer au mainteneur la possibilité de choisir le compilateur. Pour les paquets dont les projets principaux ne privilégient pas un compilateur particulier, il est recommandé de maintenir le statu quo (de construire avec GCC comme auparavant). L'auteur de la proposition est Jeff Law de Red Hat, qui fait partie des mainteneurs de GCC et de Binutils.
Source : opennet.ru
