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?
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?
Antworten:
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.
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) .
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.
Noch nicht. Laut diesem derzeit offenen Fehlerbericht scheint es, dass selbst der Kernel selbst nicht kompiliert werden kann.
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).
Vor kurzem soll OpenSuse - Tumbleweed Rolling Release LTO für seine Builds auf gcc9 setzen. http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html