Информационные технологииStfw.Ru 🔍
🕛

FreeBSD-CURRENT переведён на Clang

Проекты LLVM и FreeBSD отметили важную веху в своём развитии - в дерево исходных текстов ветки FreeBSD-CURRENT, на базе которой формируется релиз FreeBSD 10, для архитектур i386 и amd64 прин
Проекты 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 и sparc64. Установочные сборки доступны в виде образов bootonly, DVD и Memstick для USB Flash.

Также по теме:
Каталог лучших, бесплатных программ.