Für die Implementierung in Fedora 33 Die Regeln für die Anwendung von Compilern im Distributionspaket, gemäß denen der Compiler für das Bauen des Pakets basierend auf den Empfehlungen und Vorlieben des Hauptprojekts (upstream) ausgewählt werden kann. Derzeit ist in Fedora festgelegt, dass GCC zum Bauen aller Pakete verwendet werden muss, es sei denn, ein Paket kann nur mit Clang/LLVM gebaut werden.
Ein Beweggrund für die Bereitstellung der Möglichkeit, mit Clang zu bauen, ist, dass einige Projekte, zum Beispiel, und , bei der Entwicklung Clang als Hauptcompiler verwenden und auf dessen Basis erstellte Builds besser getestet sind. Die Verwendung von Clang für solche Pakete würde helfen, Fehler zu vermeiden, die beim Bauen mit GCC auftreten, sowie die Behebung dieser Fehler mit dem Hauptprojekt abzustimmen. Das Bauen mit GCC hat einen positiven Einfluss auf die Portabilität des mit Clang entwickelten Codes, schafft jedoch eine größere Belastung für die Wartenden und verzögert die Veröffentlichung von Updates (z. B. Mozilla muss die Marke Firefox verwenden, wenn externe Patches angewendet werden, weshalb zuerst die Einbeziehung der Patches in den Hauptsatz angestrebt werden muss, und das Update wird erst nach Erscheinen der Korrekturen im Upstream veröffentlicht).
Es wird festgestellt, dass es logisch wäre, Clang für Pakete zu verwenden, für die dieser Compiler besser geeignet ist und im Hauptprojekt verwendet wird. Für solche Pakete könnte die Wartelast gesenkt werden, wenn die Paketvorbereitung von Vertretern des Hauptprojekts durchgeführt wird. Wenn die Paketserstellung von einem Community-Vertreter durchgeführt wird, sollte dem Maintainer die Möglichkeit gegeben werden, den Compiler auszuwählen. Für Pakete, deren Hauptprojekte keinen bestimmten Compiler bevorzugen, wird empfohlen, den Status quo beizubehalten (weiterhin mit GCC zu bauen). Der Vorschlag stammt von Jeff Law von Red Hat, der zu den Maintainers von GCC und Binutils gehört.
Quelle: opennet.ru
