Esiste una distro Linux compilata con clang / llvm ? Sembra che alla fine del 2010 il kernel funzionasse. In caso contrario, sarebbe più probabile che si tratti di un problema tecnico o di licenza?
Esiste una distro Linux compilata con clang / llvm ? Sembra che alla fine del 2010 il kernel funzionasse. In caso contrario, sarebbe più probabile che si tratti di un problema tecnico o di licenza?
Risposte:
Come risposta tardiva a questa domanda, ciò che @jmtd ha detto è esattamente ciò che accade periodicamente nell'archivio Debian.
I pacchetti vengono ricompilati con nuove toolchain (compilatori, linker, ecc.) E, quando la ricompilazione fallisce, i bug relativi ai pacchetti che non sono stati compilati vengono archiviati con l'indicazione di FTBFS ("impossibile compilare dall'origine").
Tali bug sono generalmente indicativi di qualcosa che sta succedendo e di solito sono classificati con severità elevata e dato lo stato di bug "critici per il rilascio", il che significa che una nuova versione non può essere fatta con quei bug irrisolti.
In particolare, Lucas Nussbaum ha ricompilato l'intero archivio del Progetto Debian in una griglia come mezzo di valutazione della qualità.
Recentemente, però, Sylvestre Ledru e alcuni altri sviluppatori Debian hanno mentore studenti in Summer of Code del 2012 di Google per consentire la sostituzione di entrambi GCC da Clang e libstdc++
(libreria di supporto del GCC per C ++) da libc++
(omologo del Clang / LLVM).
C'è un sito in cui sono stati pubblicati i risultati della compilazione dell'intera raccolta di pacchetti Debian e sono stati documentati ulteriori rapporti da LWN e il programma per il disaccoppiamento del processo di compilazione di Debian da GCC è stato concluso con successo .
Quindi potremmo presto vedere un insieme di Debian compilato con clang / llvm, a seconda di quanto supporto possono ottenere questi risultati di successo.
Esiste, a partire da questo aggiornamento (16-08-2016), una nuova versione di una distribuzione Linux tradizionale compilata con clang e llvm, OpenMandriva Lx 3.0 , ora nella sua versione finale. Secondo le sue note, è compilato, per quanto possibile, non solo con clang e llvm, ma anche con livelli di ottimizzazione elevati "regolari" e anche con Link Time Optimization (LTO) .
Mentre l'argomento principale della domanda e di questa risposta è llvm / clang, per essere onesti, va notato che GCC presenta anche LTO (più retroscena su LTO ).
In teoria, LTO, come visto nei nuovi clang / llvm e GCC, ha il potenziale di rendere non solo i binari risultanti più veloci, ma anche avere requisiti di memoria più piccoli per la sezione di testo dei programmi (e il kernel Linux è un potenziale vantaggio di LTO ).
Non ho letto quanto OpenMandriva Lx 3.0 utilizza LTO in tutti i programmi, ma sono entusiasta che utilizzi clang / llvm + LTO e mi piacerebbe vedere le persone fare più benchmark indipendenti confrontando e contrastando GCC "regolare", distribuzioni non ottimizzate per LTO su OpenMandriva Lx 3.0.
Non ancora. Secondo questo rapporto di bug attualmente aperto sembra che anche il kernel stesso non riesca a compilare.
Mentre i binari dell'utente finale non sono costruiti con clang / llvm, la maggior parte dell'archivio Debian è stata costruita (e ricostruita) con clang / llvm (e binutils-gold e altri pezzi) da persone che vogliono esporre bug di portabilità in la suite di software (e gli stessi compilatori).
Recentemente, OpenSuse - Tumbleweed rolling release deve impostare LTO su gcc9 per le sue build. http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html