Na implementáciu vo Fedore 33 pravidiel používania kompilátorov v distribúcii, podľa ktorého sa kompilátor na zostavenie balíka môže vyberať v závislosti od odporúčaní a preferencií hlavného projektu (upstream). V súčasnosti je vo Fedore prísne predpísané používať GCC na zostavenie všetkých balíkov, s výnimkou prípadov, keď môže byť balík zostavený iba pomocou Clang/LLVM.
Motívom poskytnutia možnosti zostavovania pomocou Clang je to, že niektoré projekty, napríklad a , pri vývoji používajú Clang ako hlavný kompilátor a zostavy na jeho základe sú lepšie testované. Použitie Clang pre takéto balíky umožní vyhnúť sa chybám, ktoré sa objavujú pri zostavovaní v GCC, ako aj koordinovaniu opráv týchto chýb s hlavným projektom. Zostavenie pomocou GCC pozitívne ovplyvňuje udržiavanie prenositeľnosti kódu, ktorý sa vyvíja pomocou Clang, ale vytvára väčšiu záťaž na údržbu a oneskoruje publikovanie aktualizácií (napríklad Mozilla použiť obchodnú značku Firefox pri aplikovaní externých patchov, preto je potrebné najprv dosiahnuť zapracovanie patchov do hlavného zloženia a vydať aktualizáciu až po objavení opráv v upstream).
Je pozoruhodné, že by bolo logické používať Clang pre balíky, pre ktoré sa tento kompilátor hodí lepšie a používa sa v hlavnom projekte. Pre takéto balíky by sa mohla znížiť záťaž na údržbu, ak by sa prípravou balíkov zaoberali zástupcovia hlavného projektu. Ak zostavenie balíka vykonáva zástupca zo spoločenstva, mal by mať maintainer možnosť voľby kompilátora. Pre balíky, ktorých hlavné projekty nedávajú prednosť žiadnemu kompilátoru, sa odporúča zachovať status quo (zostavovať v GCC ako doteraz). Autorom návrhu je Jeff Law zo spoločnosti Red Hat, ktorý patrí medzi maintainerov GCC a Binutils.
Zdroj: opennet.ru
