Есть ли дистрибутив Linux, скомпилированный с помощью clang / llvm?


11

Есть ли дистрибутив Linux, скомпилированный с помощью clang / llvm ? Похоже, что в конце 2010 года ядро ​​работало. Если нет, то скорее всего это будет техническая проблема или проблема с лицензированием?


Я не знаю ничего такого, что есть. Я думаю, что большинство дистрибутивов Linux используют GCC, поддерживающие программное обеспечение с общими лицензиями и одно специально разработанное для обработки кода GNU. В настоящее время сообщество BSD принимает Clang по тем же причинам. (Процесс - огромное упрощение политических и технических проблем)
Крис С

4
Для получения дополнительной информации об этом посте: возможно ли скомпилировать полную систему Linux с компилятором Intel вместо GCC?
Калеб

3
@James Пожалуйста, не редактируйте ответ на вопрос; Вы можете опубликовать фактический ответ ниже и пометить его как принятый . Кроме того, если вы регистрируетесь на SF, вы должны автоматически вступить во владение вопросом здесь
Michael Mrozek

Ответы:


8

Ситуация с Debian

Как поздний ответ на этот вопрос, то, что сказал @jmtd, именно то, что периодически происходит в архиве Debian.

Пакеты перекомпилируются с использованием новых инструментальных цепочек (компиляторы, компоновщики и т. Д.), И, если перекомпиляция завершается неудачно, ошибки в пакетах, которые не удалось скомпилировать, регистрируются с указанием FTBFS («не удалось собрать из источника»).

Такие ошибки, как правило, указывают на то, что происходит что-то плохое, и они обычно ранжируются с высокой степенью серьезности и имеют статус «критических для выпуска» ошибок, что означает, что новый выпуск не может быть сделан с этими нерешенными ошибками.

В частности, Лукас Нуссбаум перекомпилировал весь архив проекта Debian в сетку как средство оценки качества.

Однако недавно Сильвестр Ледру и некоторые другие разработчики Debian наставляли студентов в Google Summer of Code 2012, чтобы разрешить замену как GCC Clang, так и libstdc++(библиотеки поддержки GCC для C ++) libc++(аналог Clang / LLVM).

Есть сайт, на котором были опубликованы результаты компиляции всей коллекции пакетов Debian, а LWN задокументировали дальнейшие отчеты , и программа для отделения процесса сборки Debian от GCC была успешно завершена .

Таким образом, мы можем вскоре увидеть разновидность Debian, скомпилированную с помощью clang / llvm, в зависимости от степени поддержки, которую могут получить эти успешные результаты.

Новичок

Начиная с этого обновления (2016-08-16), есть новая версия традиционного дистрибутива Linux, скомпилированного с помощью clang и llvm, OpenMandriva Lx 3.0 , которая теперь находится в финальной версии. Согласно его примечаниям, он скомпилирован, насколько это возможно, не только с clang и llvm, но и с «обычными» высокими уровнями оптимизации, а также с Link Time Optimization (LTO) .

LTO

Хотя основным предметом вопроса и этого ответа является llvm / clang, чтобы быть справедливым, следует отметить, что GCC также имеет LTO (больше информации о LTO ).

Теоретически, LTO, как это видно в более новых clang / llvm и GCC, имеет потенциал ускорения не только получаемых двоичных файлов, но и меньших требований к памяти для текстового раздела программ (и ядро Linux является одним из потенциальных преимуществ LTO ).

Я не читал, насколько OpenMandriva Lx 3.0 использует LTO во всех программах, но я рад, что он использует clang / llvm + LTO, и я хотел бы видеть людей, которые проводят несколько независимых тестов сравнения и сравнения "обычных" GCC на основе, не LTO-оптимизированные дистрибутивы для OpenMandriva Lx 3.0.


@AleksandrDubinsky, спасибо, что поблагодарили меня, но я просто делаю то, что я хотел бы иметь в SE в целом. Расстраивает вопрос / ответ, который пахнет чистой пылью (конечно, когда проблема не преходящая).
rbrito

5

Еще нет. Согласно этому открытому в настоящее время сообщению об ошибке, кажется, что даже само ядро ​​не компилируется.


Отчет об ошибке в конце содержит запись, ссылающуюся на проект LLVM Linux Брайса Лелбека. Брайс - тот же человек, который начал дискуссионную ветку в октябре 2010 года. Clang создает работающее ядро ​​Linux (загружается в RL5 с SMP, сетевыми и X, самостоятельными хостами). Этот поток является источником цитаты «ядро работало» в моем вопросе. Я буду следить за lll-проектом.

@James Еще одно напоминание, так как вы упомянули о принятии: если вы зарегистрируетесь на SF с тем же OpenID, который вы использовали здесь, вы сможете принять ответ здесь
Майкл Мрозек

2

Хотя двоичные файлы конечного пользователя не создаются с помощью clang / llvm, большая часть архива Debian была собрана (и перестроена) с помощью clang / llvm (и binutils-gold и других кусочков и кусочков) людьми, которые хотят выявлять ошибки переносимости в программный пакет (и сами компиляторы).


Разве двоичные файлы конечных пользователей не являются частью архива Debian?
Чепанг

1
Да, и те построены с GCC. Отдельно от двоичных файлов конечных пользователей исходные пакеты перестраиваются как часть нескольких процессов непрерывной интеграции, некоторые из которых используют альтернативные цепочки инструментов compiler / linker / libc.
jmtd

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.