Esiste una distro Linux compilata con clang / llvm?


11

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?


Non ne conosco nessuno. Penso che la maggior parte delle distribuzioni Linux utilizzino GCC, supportando software con licenze comuni e uno creato appositamente per gestire il codice GNU. Clang è attualmente abbracciato dalla comunità BSD per motivi simili. (Il procedimento è un'enorme semplificazione dei problemi politici e tecnici)
Chris S


3
@James Per favore non modificare la risposta nella domanda; puoi pubblicare una risposta effettiva di seguito e contrassegnarla come accettata . Inoltre, se ti registri su SF, dovresti assumere automaticamente la proprietà della domanda qui
Michael Mrozek

Risposte:


8

La situazione con Debian

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.

Il nuovo arrivato

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) .

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.


@AleksandrDubinsky, grazie per ringraziarmi, ma sto solo facendo quello che mi piacerebbe avere in Sud America in generale. È frustrante trovare una domanda / risposta che profuma di pura polvere (ogni volta che il problema non è transitorio, ovviamente).
rbrito,

5

Non ancora. Secondo questo rapporto di bug attualmente aperto sembra che anche il kernel stesso non riesca a compilare.


La segnalazione di bug contiene una voce alla fine che collega al progetto LLVM Linux di Bryce Lelback. Bryce è la stessa persona che ha iniziato il thread di discussione dell'ottobre 2010 Clang crea un kernel Linux funzionante (Boot to RL5 con SMP, rete e X, host autonomi) Quel thread è la fonte della citazione "kernel funzionava" nella mia domanda. Terrò d'occhio il progetto lll.

@James Un altro promemoria da quando hai menzionato l'accettazione: se ti registri su SF con lo stesso OpenID che hai usato qui, dovresti essere in grado di accettare una risposta qui
Michael Mrozek

2

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).


I file binari dell'utente finale non fanno parte dell'archivio Debian?
Tshepang,

1
Sì, e quelli sono costruiti con gcc. Separatamente dai file binari dell'utente finale, i pacchetti di origine vengono ricostruiti come parte di più processi di integrazione continua, alcuni dei quali utilizzano toolchain alternativi di compilatore / linker / libc.
jmtd,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.