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
