За реализация в Fedora 33 правила за прилагане на компилатори в дистрибуция, според които компилаторът за компилиране на пакет може да бъде избран в зависимост от препоръките и предпочитанията на основния проект (upstream). В момента в Fedora е строго предписано да се използва GCC за компилиране на всички пакети, с изключение на случаите, когато пакетът може да бъде компилиран само с Clang/LLVM.
Мотивът за предоставяне на възможността за компилиране с Clang е, че някои проекти, например, и , при разработката използват Clang като основен компилатор и компилациите на базата на него са по-добре тествани. Използването на Clang за такива пакети би избегнало улавянето на грешки, които се появяват при компилиране с GCC, а също така и развитието на корекции на тези грешки с основния проект. Компилацията с използването на GCC положително влияе върху поддържането на преносимостта на кода, разработван с Clang, но създава по-голямо натоварване за поддържащите и забавя публикуването на актуализации (например, Mozilla използва търговската марка Firefox при прилагане на странични патчи, затова първо е необходимо да се постигне включването на патчите в основната съставка и да се публикува актуализация само след появата на корекции в upstream).
Отбелязва се, че би било логично да се използва Clang за пакети, за които този компилатор е по-подходящ и се използва в основния проект. За такива пакети би било възможно да се намали натоварването на поддръжката, ако подготовката на пакетите се осъществява от представители на основния проект. Ако пакета се компилира от представител на общността, то възможността за избор на компилатор се предлага да се предостави на мейнтейнера. За пакети, основните проекти на които не отдават предпочитание на конкретен компилатор, се препоръчва да се запази статус-кво (да се компилира в GCC както преди). Автор на предложението е Джеф Ло (Jeff Law) от компанията Red Hat, който е сред мейнтейнерите на GCC и Binutils.
Източник: opennet.ru
