Vorrei creare un clang + + llvm + libC++ recente. Sono attualmente su un sistema (basato su CentOS 6.6) in cui non riesco facilmente a ottenere pacchetti binari di clang, ma dove posso configurare un GCC abbastanza recente per creare clang (ad esempio 4.9), impostando alcune variabili di ambiente.Modo corretto per creare clang e libC++ insieme (bootstrap)
vorrei la mia versione di clang essere
- Portable, che non è percorsi hardcoded (ad esempio utilizzando
-rpath $ORIGIN
) - Né dipende dal sistema di gcc, né il gcc importato 4,9 (vale a dire, i loro runtime di C/C++)
- In particolare, né i compilatori, il libclang.so del compilatore come libreria, né i programmi creati con il nuovo compilatore dovrebbero dipendere da libstdC++, ma dovrebbero usare la libC++ appena costruita.
posso fare questo, ma si tratta di mettere clang, LLVM, libC++, libC++ abi (e le cose che avrei potuto dimenticato) in un albero, la costruzione clangore da una directory di compilazione, quindi impostando un sacco di bandiere ciecamente e costruendolo di nuovo da una seconda directory di compilazione.
C'è un altro modo corretto di eseguire il bootst clang con libC++? Credo che ci debba essere, dal momento che i binari ufficiali di llvm & clang sono autosufficienti come ho descritto sopra.
I pacchetti "ufficiali" probabilmente lo fanno usando il metodo (mettendolo tutto in un unico albero di sorgenti) o costruendo scaglionati (costruisci Clang senza libC++, costruisci libC++ con nuovo clang, costruisci nuovo clang con libC++). –
A proposito, perché non scarichi un pacchetto sorgente per una delle distribuzioni più grandi e vedi come lo fanno? –