Existe-t-il une distribution Linux compilée avec clang / llvm ? Il semble qu'à la fin de 2010, le noyau fonctionnait. Sinon, serait-il plus probable qu'il s'agisse d'un problème technique ou de licence?
Existe-t-il une distribution Linux compilée avec clang / llvm ? Il semble qu'à la fin de 2010, le noyau fonctionnait. Sinon, serait-il plus probable qu'il s'agisse d'un problème technique ou de licence?
Réponses:
En réponse tardive à cette question, ce que @jmtd a dit est exactement ce qui se produit périodiquement dans l'archive Debian.
Les packages sont recompilés avec des chaînes d'outils plus récentes (compilateurs, éditeurs de liens, etc.) et, lorsque la recompilation échoue, les bogues des packages qui n'ont pas pu être compilés sont classés avec l'indication FTBFS ("échec de la construction à partir de la source").
Ces bogues sont généralement une indication de quelque chose de mauvais qui se produit et sont généralement classés avec une gravité élevée et étant donné le statut de bogues "critiques pour la publication", ce qui signifie qu'une nouvelle version ne peut pas être effectuée avec ces bogues non résolus.
En particulier, Lucas Nussbaum a recompilé l'ensemble des archives du projet Debian dans une grille comme moyen d'évaluation de la qualité.
Récemment, cependant, Sylvestre Ledru et quelques autres développeurs Debian ont servi de mentor aux étudiants dans Google Summer of Code 2012 pour permettre la substitution des deux GCC par Clang et libstdc++
(bibliothèque de soutien de GCC pour C ++) par libc++
(homologue de Clang / LLVM).
Il y a un site où les résultats de la compilation de toute la collection de paquets Debian ont été publiés et d'autres rapports ont été documentés par LWN et le programme de découplage du processus de construction Debian de GCC a été conclu avec succès .
Donc, nous pourrons bientôt voir une version de Debian compilée avec clang / llvm, selon le niveau de support que ces résultats réussis peuvent gagner.
Il existe, à compter de cette mise à jour (2016-08-16), une nouvelle version d'une distribution Linux traditionnelle compilée avec clang et llvm, OpenMandriva Lx 3.0 , maintenant dans sa version finale. Selon ses notes, il est compilé, autant que possible, non seulement avec clang et llvm, mais aussi avec des niveaux d'optimisation élevés "réguliers" et aussi avec Link Time Optimization (LTO) .
Bien que le sujet principal de la question et de cette réponse soit llvm / clang, pour être honnête, il convient de noter que GCC propose également LTO (plus d' informations sur LTO ).
En théorie, LTO, comme on le voit dans les nouveaux clang / llvm et GCC, a le potentiel de rendre non seulement les binaires résultants plus rapides, mais aussi d'avoir des besoins en mémoire plus petits pour la section de texte des programmes (et le noyau Linux est un avantage potentiel de LTO ).
Je n'ai pas lu combien OpenMandriva Lx 3.0 utilise LTO dans tous les programmes, mais je suis ravi qu'il utilise clang / llvm + LTO et j'aimerais voir des gens faire plusieurs tests de référence indépendants comparant et contrastant basés sur GCC "réguliers", distributions non optimisées LTO vers OpenMandriva Lx 3.0.
Pas encore. D'après ce rapport de bogue actuellement ouvert, il semble que même le noyau lui-même ne parvienne pas à se compiler.
Bien que les binaires de l'utilisateur final ne soient pas construits avec clang / llvm, la plupart des archives Debian ont été construites (et reconstruites) avec clang / llvm (et binutils-gold et autres morceaux) par des personnes qui souhaitent exposer des bogues de portabilité dans la suite logicielle (et les compilateurs eux-mêmes).
Récemment, OpenSuse - Tumbleweed Rolling Release consiste à définir LTO sur gcc9 pour ses versions. http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html