Aby to zrealizować w Fedora 33 zasady stosowania kompilatorów w dystrybucji, według których kompilator do budowy pakietu będzie można wybierać w zależności od rekomendacji i preferencji głównego projektu (upstream). Obecnie w Fedory sztywno nakazuje się użycie GCC do budowy wszystkich pakietów, z wyjątkiem przypadków, gdy pakiet może być zbudowany tylko w Clang/LLVM.
Motywacją do zapewnienia możliwości budowy za pomocą Clang jest to, że niektóre projekty, na przykład, i , przy rozwijaniu używają Clang jako głównego kompilatora, a budowy na jego podstawie są lepiej przetestowane. Użycie Clang dla takich pakietów pozwoli uniknąć wyławiania błędów, pojawiających się podczas budowy w GCC, a także uzgodnienia poprawek tych błędów z głównym projektem. Budowa z użyciem GCC pozytywnie wpływa na utrzymanie przenośności kodu rozwijanego przy użyciu Clang, ale stwarza większe obciążenie dla utrzymujących i opóźnia publikację aktualizacji (na przykład, Mozilla musi używać znaku towarowego Firefox przy stosowaniu zewnętrznych łat, dlatego najpierw trzeba uzyskać włączenie łat do głównego składu i opublikować aktualizację dopiero po pojawieniu się poprawek w upstream).
Zauważono, że byłoby logiczne, używać Clang dla pakietów, dla których ten kompilator lepiej pasuje i jest używany w głównym projekcie. Dla takich pakietów udałoby się zmniejszyć obciążenie na utrzymanie, jeśli przygotowaniem pakietów zajmują się przedstawiciele głównego projektu. Jeśli budową pakietu zajmuje się przedstawiciel z społeczności, możliwość wyboru kompilatora powinna być udostępniona maintainerowi. Dla pakietów, których główne projekty nie preferują żadnego konkretnego kompilatora, zaleca się zachowanie status quo (budować w GCC jak dotychczas). Autorem propozycji jest Jeff Law z firmy Red Hat, który należy do grona maintainerów GCC i Binutils.
Źródło: opennet.ru
