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.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «FreeBSD-CURRENT переведён по умолчанию на Clang», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.