FreeBSD-CURRENT переведён по умолчанию на Clang
5 ноября 2012 года
Проекты LLVM и FreeBSD отметили важную веху в своём развитии - в дерево исходных текстов ветки FreeBSD-CURRENT, на базе которой формируется релиз FreeBSD 10, для архитектур i386 и amd64 приняты изменения, включающие по умолчанию использование компилятора Clang и набора runtime-библиотек, развиваемых проектом LLVM. Исполняемые файлы cc, cpp и c++ отныне являются ссылками на clang. Clang задействован как для пересборки базовой системы, так и для сборки портов. Сборка с использованием GCC теперь представлена в качестве опции.
Таким образом, FreeBSD теперь по умолчанию использует С/C++ стек, поставляемый целиком под лицензией BSD. Напомним, что начиная с выпуска FreeBSD 9.0 в базовую систему был интегрирован Clang и набор сопутствующих библиотек, тем не менее по умолчанию как и раньше использовался GCC 4.2.1. Проект FreeBSD был вынужден использовать вышедшую 5 лет назад устаревшую версию набора компиляторов GCC 4.2.1 так как начиная с версии 4.2.2, GCC был переведен на лицензию GPLv3, мешающую интеграции новых версии GCC во FreeBSD. Формально основным препятствием интеграции GCC 4.2.2 была несовместимость runtime-компонентов GCC с лицензией BSD. В версии GCC 4.4 были введены дополнительные условия лицензирования, убирающие некоторые ограничения лицензии GPLv3 для Runtime-компонентов GCC.
Тем не менее наличие в базовой системе FreeBSD компонентов под лицензией GPLv3 остаётся невозможным из-за противоречий с целями проекта FreeBSD и нежеланием налагать дополнительные ограничения на пользователей. В частности, при поставке в составе FreeBSD новых версий GCC, на пользователей FreeBSD автоматически распространялись бы и дополнительные ограничения GPLv3, такие как запрет тивоизации. Из других причин миграции на Clang отмечается желание задействовать реализованные в Clang дополнительные техники оптимизации и диагностики проблем, например, позволяющие автоматизировать выявление фактов разыменования указателей и других ошибок, связанных с некорректной работой с памятью.
Сборка ядра, базовой системы и большинство портов с использованием Clang признана стабильной. Поддержка архитектур Mips, PowerPC, ARM и Sparc64 находится в стадии разработки. Несмотря на переход на Сlang, в портах ещё можно встретить приложения, которые не могут быть собраны с Clang. Как правило это очень старые программы, которые часто не собираются и с новыми версиями GCC. При сборке подобных портов следует использовать опцию "USE_GCC=any".
Дополнительно, можно отметить выход третьего кандидата в релизы FreeBSD 9.1. Финальный релиз запланирован на 12 ноября. Тестовая версия доступна(недоступная ссылка) для платформ amd64, i386, powerpc64, ia64 (Архивная копия от 20 марта 2019 на Wayback Machine) и sparc64 (Архивная копия от 20 февраля 2020 на Wayback Machine). Установочные сборки доступны в виде образов bootonly, DVD и Memstick для USB Flash.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.