В Fedora планируют предоставить возможность сборки пакетов в Clang вместо GCC

Для реализации в Fedora 33 намечено изменение правил применения компиляторов в дистрибутиве, в соответствии с которым компилятор для сборки пакета сможет выбираться в зависимости от рекомендаций и предпочтений основного проекта (upstream). В настоящее время в Fedora жёстко предписано использовать GCC для сборки всех пакетов, за исключением случаев, когда пакет может быть собран только в Clang/LLVM.

Мотивом предоставления возможности сборки при помощи Clang является то, что некоторые проекты, например, Firefox и Chromium, при разработке используют Clang в качестве основного компилятора и сборки на его основе являются более качественно протестированными. Использование Clang для подобных пакетов позволит избежать вылавливания ошибок, всплывающих при сборке в GCC, а также согласования исправлений этих ошибок с основным проектом. Сборка с использованием GCC положительно влияет на поддержании переносимости кода, развиваемого с использованием Clang, но создаёт большую нагрузку на сопровождающих и задерживает публикацию обновлений (например, Mozilla запрещает использовать торговую марку Firefox при применении сторонних патчей, поэтому приходится вначале добиваться включения патчей в основной состав и выпускать обновление только после появления исправлений в upstream).

Отмечается, что было бы логичным, использовать Clang для пакетов, для которых данный компилятор подходит лучше и используется в основном проекте. Для подобных пакетов удалось бы снизить нагрузку на сопровождение, если подготовкой пакетов занимаются представители основного проекта. Если сборкой пакета занимается представитель из сообщества, то возможность выбора компилятора предлагается предоставить мэйнтейнеру. Для пакетов, основные проекты которых не отдают предпочтение тому или иному компилятору рекомендуется сохранить статус-кво (собирать в GCC как и раньше). Автором предложения является Джеф Ло (Jeff Law) из компании Red Hat, который входит в число мэйнтейнеров GCC и Binutils.

Источник: http://www.opennet.ru/opennews/art.shtml? num=53097

©  OpenNet