Gibt es eine Linux-Distribution, die mit clang / llvm kompiliert wurde?

8

Gibt es eine Linux-Distribution, die mit clang / llvm kompiliert wurde ? Es sieht so aus, als ob der Kernel Ende 2010 funktioniert hat. Wenn nicht, handelt es sich eher um ein technisches oder lizenzrechtliches Problem?

rbrito
quelle
Ich kenne keine davon. Ich denke, die meisten Linux-Distributionen verwenden GCC, unterstützen Software mit gängigen Lizenzen und eine, die speziell für den Umgang mit GNU-Code entwickelt wurde. Clang wird derzeit aus ähnlichen Gründen von der BSD-Community angenommen. (Das Verfahren ist eine enorme Vereinfachung der politischen und technischen Probleme)
Chris S
3
@ James Bitte bearbeite die Antwort nicht in der Frage; Sie können unten eine aktuelle Antwort posten und als akzeptiert markieren . Wenn Sie sich bei SF registrieren, sollten Sie die Frage hier automatisch übernehmen
Michael Mrozek

Antworten:

8

Die Situation mit Debian

Als späte Antwort auf diese Frage sagte @jmtd genau das, was regelmäßig im Debian-Archiv passiert.

Pakete werden mit neueren Toolchains (Compiler, Linker usw.) neu kompiliert. Wenn die Neukompilierung fehlschlägt, werden Fehler gegen die Pakete, die nicht kompiliert werden konnten, mit dem Hinweis FTBFS abgelegt ("Fehler beim Erstellen aus dem Quellcode").

Solche Fehler sind im Allgemeinen ein Hinweis darauf, dass etwas Schlimmes passiert, und werden normalerweise mit einem hohen Schweregrad eingestuft und mit dem Status "Release-kritische" Fehler versehen, was bedeutet, dass eine neue Version nicht mit diesen ungelösten Fehlern durchgeführt werden kann.

Insbesondere hat Lucas Nussbaum das gesamte Archiv des Debian-Projekts in einem Raster neu zusammengestellt, um eine Qualitätsbewertung vorzunehmen.

Vor kurzem aber Sylvestre Ledru haben und einige andere Debian - Entwickler betreut Studenten in Googles Summer of Code 2012 Substitution erlauben sowohl GCC von Clang und libstdc++(GCC Support - Bibliothek für C ++) durch libc++(Clang / LLVM Pendant).

Es gibt eine Site, auf der die Ergebnisse der Zusammenstellung der gesamten Sammlung von Debian-Paketen veröffentlicht und weitere Berichte von LWN dokumentiert wurden und das Programm zur Entkopplung des Debian-Erstellungsprozesses von GCC erfolgreich abgeschlossen wurde .

Je nachdem, wie viel Unterstützung diese erfolgreichen Ergebnisse gewinnen können, werden wir vielleicht bald eine mit clang / llvm kompilierte Version von Debian sehen.

Der Neuling

Ab diesem Update (16.08.2016) gibt es eine neue Version einer traditionellen Linux-Distribution, die mit clang und llvm kompiliert wurde, OpenMandriva Lx 3.0 , die jetzt in der endgültigen Version ist. Laut seinen Anmerkungen wird es so weit wie möglich nicht nur mit clang und llvm kompiliert, sondern auch mit "regulären" hohen Optimierungsstufen und auch mit Link Time Optimization (LTO) .

LTO

Während das Hauptthema der Frage und dieser Antwort llvm / clang ist, sollte angemerkt werden, dass GCC auch LTO enthält (mehr Hintergrundinformationen zu LTO ).

Theoretisch hat LTO, wie in neueren Versionen von clang / llvm und GCC zu sehen, das Potenzial , nicht nur die resultierenden Binärdateien zu beschleunigen, sondern auch einen geringeren Speicherbedarf für den Textabschnitt der Programme zu haben (und der Linux-Kernel ist ein potenzieller Vorteil von LTO ).

Ich habe nicht gelesen, wie oft OpenMandriva Lx 3.0 LTO in allen Programmen verwendet, aber ich freue mich, dass es clang / llvm + LTO verwendet, und ich würde gerne sehen, wie Leute mehrere unabhängige Benchmarks durchführen, die "normale" GCC-basierte vergleichen und gegenüberstellen. Nicht LTO-optimierte Distributionen an OpenMandriva Lx 3.0.

rbrito
quelle
@AleksandrDubinsky, danke, dass du mir gedankt hast, aber ich mache einfach das, was ich in SE im Allgemeinen gerne hätte. Es ist frustrierend, eine Frage / Antwort zu erhalten, die nach reinem Staub riecht (wenn das Problem natürlich nicht vorübergehend ist).
Briton
5

Noch nicht. Laut diesem derzeit offenen Fehlerbericht scheint es, dass selbst der Kernel selbst nicht kompiliert werden kann.

Cristian Măgherușan-Stanciu
quelle
Der Fehlerbericht enthält am Ende einen Eintrag, der auf das LLVM Linux-Projekt von Bryce Lelback verweist. Bryce ist dieselbe Person, die den Diskussionsthread vom Oktober 2010 gestartet hat. Clang erstellt einen funktionierenden Linux-Kernel (Booten zu RL5 mit SMP, Netzwerk und X, Selbsthosts). Dieser Thread ist die Quelle für das Zitat "Kernel hat funktioniert" in meiner Frage. Ich werde das lll-Projekt im Auge behalten.
@ James Noch eine Erinnerung, seit Sie das Akzeptieren erwähnt haben: Wenn Sie sich bei SF mit derselben OpenID registrieren, die Sie hier verwendet haben, sollten Sie hier eine Antwort akzeptieren können
Michael Mrozek
2

Während die Endbenutzer-Binärdateien nicht mit clang / llvm erstellt wurden, wurde der größte Teil des Debian-Archivs mit clang / llvm (und binutils-gold und anderen Teilen) von Personen erstellt (und neu erstellt), die Portabilitätsfehler aufdecken möchten die Software-Suite (und die Compiler selbst).

jmtd
quelle
Sind Endbenutzer-Binärdateien nicht Teil des Debian-Archivs?
Tshepang
1
Ja, und diese sind mit gcc gebaut. Unabhängig von den Endbenutzer-Binärdateien werden die Quellpakete im Rahmen mehrerer kontinuierlicher Integrationsprozesse neu erstellt, von denen einige alternative Compiler / Linker / libc-Toolchains verwenden.
Jmtd