Il driver gcc
può essere configurato per utilizzare un particolare linker, opzioni particolari e altri dettagli (ad esempio, sovrascrivere le intestazioni di sistema) utilizzando i file .specs
.Esiste un file equivalente a .spec per Clang/LLVM e dove posso trovare un riferimento?
Il manuale corrente (di questo manuale) per la versione di GCC (4.9.0) describes the Spec Files here.
Esiste un meccanismo simile per Clang/LLVM. Apparentemente Clang ha anche the notion of a driver, ma non sono riuscito a trovare alcuna documentazione sulla presenza di file Spec o di un meccanismo simile per Clang e su come usarli.
Sono interessato a questo sia per C che per C++, ma probabilmente un puntatore a uno di essi mi consentirà di iniziare.
L'obiettivo è sovrascrivere l'intestazione del sistema e i percorsi della libreria, nonché il linker come accennato in precedenza.
Per sovrascrivere il percorso di ricerca del linker, controllare la pagina man di 'ld' per identificare i flag necessari (ad es.' -syslibroot') e dire a clang di passarli al linker tramite '-Wl'. Ad esempio, questo comando mi ha permesso di usare una versione personalizzata di 'libstdC++': 'clang ++ -std = C++ 11 -stdlib = libstdC++ -nostdinC++ -isystem/percorso/a/alt-stdlib/include/C++ -isistema/percorso/a/alt-stdlib/include/C++/x86_64-apple-darwin14.4.0 -L/percorso/a/alt-stdlib/lib -lstdC++ -Wl, -syslibroot,/usr/lib -Wl, - syslibroot,/percorso/to/alt-stdlib/lib test.cpp' –