В Clang обеспечена возможность сборки Linux-ядра 2.6.36
К сожалению не все проблемы еще решены и для того чтобы добиться загрузки системы приходится использовать некоторые компоненты, собранные при помощи GCC. В частности, из-за возникновения внутренних ошибок компилятора и проблем c обработкой массивов переменной длины, пока не удается собрать код SELinux, Posix ACL, IPSec, eCrypt и других подсистем, использующих Crypto API. Разработчики Clang надеются, что код Crypto API не фундаментально завязан на специфичных GNU-расширениях GCC и решить возникшие проблемы удастся незначительными правками. Кроме того, незначительные проблемы наблюдаются при сборке кода, связанного с Xen, IPv6 и Netfilters/Router, не работает код загрузки модулей ядра.
Из успешно собранных подсистем можно отметить:
- Базовый код ядра, файловые системы, интерфейс к шинам передачи данных, PCI, ACPI - стресс-тестирование пока не проводилось, но на первый взгляд все работает;
- SMP, SMT, SysV, pthreads, POSIX IPC - проведено интенсивное тестирование с использованием пакетов tiobench и rt-tests, а также библиотек Boost.Process и the Boost.Thread;
- NUMA, swap, mm, slab allocator - с целью тестирования подсистем управления памятью, ядро и связка LLVM + Clang были перекомпилированы несколько раз, используя для сборки текущей системы ядро и Clang, собранные на предыдущем этапе;
- Сетевой стек - IPv4-стек работает без нареканий, за исключением IPSec и Netfilter;
- Драйверы и прошивки - в общем виде драйверы собираются, если они не используют Crypto API. Из проверенных устройств отмечаются: клавиатура, DVD/CDROM, тачпад, USB-драверы, web-камера iSight, графика и звук (в системе нормально работает Flash-плагин и просмотр видео).
Clang представляет собой LLVM фронтенд для языков C, С++ и Objective-C, который можно использовать вместо GCC. Исходные тексты Clang распространяются в рамках лицензии BSD, что делает этот компилятор интересным решением для замены GCC в BSD-подобных ОС. В настоящее время активно развивается проект адаптации данного компилятора для сборки базовой системы и портов FreeBSD. В будущем Clang планируется использовать вместо GCC в качестве системного компилятора FreeBSD.
Источник: http://www.opennet.ru/opennews/art.shtml?num=28418
|
0 | Tweet | Нравится |
|