LINUX.ORG.RU

Компилятор Clang теперь пригоден для сборки Linux-ядра

 , ,


0

3

В блоге разработчиков Clang появилась информация о том, что с помощью Clang удалось собрать работоспособное ядро Linux версии 2.6.36 с поддержкой многопроцессорных систем (SMP). Несмотря на то, что некоторые компоненты ядра пока не поддаются компиляции, это событие приближает тот момент, когда Clang превратится в полноценный аналог GCC.

Немного технической информации:

  • В качестве основного стенда использовался Macbook 5.1 на базе Intel Core 2 Duo (не стоит забывать, что разработку Clang поддерживает в первую очередь компания Apple). На этой конфигурации удалось запустить ядро с работоспособным X-сервером, а также ядро в среде Qemu
  • В качестве второго стенда использовалась microATX-платформа на базе Intel Atom. В этом случае ядро также функционировало, однако разработчики не пытались запускать X-сервер
  • В системе на базе собранного ядра компилятор успешно собирает сам себя, а также новое ядро. Разработчики докладывают об успешной работе кода, полученного в ходе четвертого цикла самосборки.

Работоспособны следующие компоненты ядра:

  • Базовый код ядра, файловые системы, поддержка шин, в том числе и PCI, ACPI
  • SMP, SMT, SysV, pThreads и POSIX IPC
  • NUMA, управление памятью и SWAP
  • Сетевой стек IPv4, за исключением IPSec
  • Некоторые драйверы и прошивки

Пока не удалось добиться работы следующих подсистем:

  • CryptoAPI, а следовательно, и SELinux, Posix ACLs, IPSec, eCrypt
  • Стека IPv6 и код Netfilter/Router из-за зависимости от CryptoAPI
  • Виртуализации (поддержки гипервизора Xen)
  • Поддержки загружаемых модулей

Разработчики намерены и дальше улучшать совместимость между Clang и GCC и добиваться сборки с помощью Clang полностью работоспособного ядра.

>>> Подробности



Проверено: anonymous_incognito ()
Последнее исправление: Dmitry_Sokolowsky (всего исправлений: 3)

> Clang превратиться в полноценный аналог GCC

1. Граммар наци негодует 2. До полноценного еще как до луны 3. Конкуренция - это хорошо. Авось разработчики GCC начнут пошустрее шевелить своими филеями.

northerner ★★★
()
Ответ на: комментарий от northerner

>Конкуренция - это хорошо.

Но не в сфере свободного ПО. Это всё равно, что конкурениця в сфере фундаментальных наук. Типа «я создам свою теорию относительности, с Б. и Ш.». Свободное ПО как раз позволяет избежать велосипедостроения.


А я не понял, его кто в основном разрабатывает? Apple или энтузиасты?

И он создан был только из-за того, что не нравилось, что gcc под gpl, и хотелось наделать несвободных производных работ? Если да, то что же тогда изначально проприетарный не создают?

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от post-factum

asm кода наверное много, clang не очень дружит с asm вставками

* The C backend has only basic support for inline assembly code.
--
* The C backend violates the ABI of common C++ programs, preventing intermixing between C++ compiled by the CBE and C++ code compiled with llc or native compilers.
* The C backend does not support all exception handling constructs.
* The C backend does not support arbitrary precision integers.

Sylvia ★★★★★
()
Ответ на: комментарий от psionik

Clang превратиться в полноценный аналог GCC

Горе мне! Иду учить http://www.tsya.ru/

Расскажите вкратце и доступно непрограммеру, в чём Clang лучше GCC


Как я понимаю, более совершенной архитектурой (Clang - это не самостоятельная среда, а фронтэнд к LLVM) и более дружелюбной по отношению к любителям FreeBSD (и проприетарщикам) лицензией.

frankincent
() автор топика
Ответ на: комментарий от Ttt

Но не в сфере свободного ПО. Это всё равно, что конкурениця в сфере фундаментальных наук. Типа «я создам свою теорию относительности, с Б. и Ш.». Свободное ПО как раз позволяет избежать велосипедостроения.

Программы надо иногда переписывать с нуля.

И по-моему несколько теорий - нормальное состояние науки. Куда ни плюнь - множество разных теорий - эволюция, появление вселенной, все эти теории струн. Есть общепринятые, но часто они всего лишь общепринятые и не объясняют всего.

И он создан был только из-за того, что не нравилось, что gcc под gpl, и хотелось наделать несвободных производных работ? Если да, то что же тогда изначально проприетарный не создают?

Некоторые считают GPL несвободной лицензией (точнее не согласны с определением свободы по Столлману).

Legioner ★★★★★
()

Даешь алтернативный компилятор !!

anonymous
()

Подумаешь бином ньютона. Вот когда он научится поддерживать стандарт C++, хотя бы предыдущий (чего кстати gcc не умеет), можно будет выкидывать gcc.

KblCb ★★★★★
()
Ответ на: комментарий от anon_666

Ну так форк — не совсем велосипед. Настоящий велосипед — когда программа пишется полностью с нуля, а не выпускается независимо от основного проекта версия с изменениями, которые в этот проект по каким-то причинам брать не хотят.

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от Legioner

>Программы надо иногда переписывать с нуля.

Если архитектура старой программы признаётся неисправимо плохой.

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от northerner

>2. До полноценного еще как до луны

Ну с учетом того что ядро содержит gcc-специфичные хаки это все равно что требовать с опенофиса полную поддержку doc-ов mso. Если Clang может собрать 95% модулей ведра то можно считать его полноценным аналогом.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от anon_666

- компилирет быстрее

Неправда.

Если архитектура старой программы признаётся неисправимо плохой.

gcc тот еще монстр. Его кодоанализатор невозможно в ide встроить и каждое ide свой собственный изобретает. А кодоанализатор от clang'а можно легко использовать.

Хочу еще сказать, что clang развивается заметно быстрее, чем gcc

Gorthauer ★★★★★
()
Ответ на: комментарий от anon_666

>- bsd-лицензия

это спорный вопрос, преимущество или недостаток. Но то что пилит его не команда gnu очень даже замечательно. Потому что гнутые любят велосипедостроение и кривые решения.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

>это спорный вопрос, преимущество или недостаток.

Для компилятора - скорее преимущество. Вот для прикладного ПО, на котором деньги зарабатывают, это да, вопрос дискуссионный.

malices_gossips ★★★
()
Ответ на: комментарий от wm34

>Расскажите вкратце и доступно непрограммеру, в чём Clang лучше GCC

1. модульный, т.е. llvm состоит из кучи мелких кусков, каждый из которых в принципе постижим обычным человеком. 2. он красиво ошибки подсвечивает с точностью до символа.

ну и из минусов то, что пока код он генерирует медленнее и поддержка плюсов, специфичных для gcc расширений и т.п. вещей пока не доведена до отполированного состояния.

dn2010 ★★★★★
()

> для сборки Linux-ядра

И снова «Linux-ядро»... Где вы такого набрались? :-[

Запомните: «ядро Linux», «ядра Linux».

SKYRiDER ★★★
()

[вброс]Clang — это тот компилятор, который любая компания может взять, улучшить для своей цели или архитектуры, а потом закрыть код, насрав на тех, кто этот Clang писал, или продать его в составе произвольного аппартно-программного комплекса друзьям, знакомым и родственникам оригинальных разработчиков? Спасибо, не надо! :)[/вброс]

Zubok ★★★★★
()
Ответ на: комментарий от dn2010

>ну и из минусов то, что пока код он генерирует медленнее и поддержка плюсов, специфичных для gcc расширений и т.п. вещей пока не доведена до отполированного состояния.

Из минусов у него лицензия.

Zubok ★★★★★
()

Лучше Open64 ещё ничего не придумали

Лучше Open64 ещё ничего не придумали. Оптимизация супер, костылей минимум. Clang - джопсовый велосипед, GCC тоже он он старый пердун, отсюда и инерция.

fontpath
()
Ответ на: комментарий от DNA_Seq

Так скомпилированная программа не является же производной работой от компилятора

Так ведь хочется заюзать анализатор кода от компилятора в IDE для генерации варнингов, подсветки синтаксиса, статического анализа кода. А с gcc никак, причем даже не в лицензии дело, а в какой то Столманновской паранойе, который считает, что проприетарщики в этом случае даже gpl обойдут и намеряно сделал API gcc черезжопу. Не говоря о том, что с помощью llvm можно динамический анализ кода куда круче сделать, чем с gcov

Gorthauer ★★★★★
()
Ответ на: комментарий от anonymous

>Кому не надо? Тебе? Ты его автор?

Боже упаси! Я запросто могу им воспользоваться, но никакие патчи туда слать не стал бы. Максимум баг-репорт бы накатал. Контрибутить в проект с BSD-like лицензией — это неуважение к своем труду.

Zubok ★★★★★
()
Ответ на: комментарий от Gorthauer

Потому что в гцц это все уже давно есть. Придумывать новое всегда сложнее, чем реализовывать старое.

anonymous
()

здорово. еще бы vmkit допилили, вообще красота была бы

annulen ★★★★★
()

Странно почему все так бегают вокруг этого ллвм. Проект гну начинался, когда весь софт был закрыт и развился до того, что вытеснил много закрытых аналогов. Люди пишут код фо фан. Закроют этот ллвм - ну и туда ему дорога, не закроют - ну может и можно его использовать, там где подходит. Все просто же.

anonymous
()
Ответ на: комментарий от anonymous

>Странно почему все так бегают вокруг этого ллвм.

наверное пиар кампания от эпл

samy_volosaty ★★★★★
()
Ответ на: комментарий от samy_volosaty

>а чем это лучше
а ничем.
по моим тестам, скорости не прибавляет и не убавляет.
тестил lame.

system-root ★★★★★
()
Ответ на: комментарий от Zubok

вброс

Это не вброс, это как раз самая важная причина, по которой я не хотел бы видеть широкое внедрение компилятора clang...

I-Love-Microsoft ★★★★★
()
Ответ на: Лучше Open64 ещё ничего не придумали от fontpath

>Лучше Open64 ещё ничего не придумали. Оптимизация супер, костылей минимум.

тогда где же широчайшее использование оного компилятора повсеместно?
кроме CUDA он нигде особенно и не попадается


Clang - джопсовый велосипед,


то что это главный кошелек, еще не значит что это его личный велосипед,
а еще там есть мохнатая лапа гугля и квалькомм

Sylvia ★★★★★
()
Ответ на: комментарий от Zubok

>Контрибутить в проект с BSD-like лицензией — это неуважение к своем труду.

Да ты латентный копираст, как я посмотрю.

anonymous
()

Конкуренция добро, GCC рулит.

Конкуренция вещь хорошая, но GCC всё равно рулит и будет рулить, потому что у него правильная лицензия. Как тут уже сказали, отправлять свой код в проект с BSD'шной лицензией есть неуважение к собственному труду, по сути дарение кода проприетарщикам. Надеюсь из-за конкуренции LLVM с GCC оба станут лучше поддерживать стандарты и вообще избавятся от каких-то своих недостатков, но независимо от развития LLVM я за GCC.

Camel ★★★★★
()

Clang поддерживает в первую очередь компания Apple

Apple хочет засунуть под капот Мака ядро Linux?

vold ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.