Il pacchetto GCC contiene la collezione di compilatori GNU, che include i compilatori C e C++.
Tempo approssimativo di costruzione: 11.7 SBU Spazio necessario sul disco: 294 MB
L'installazione di GCC dipende da: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
Questo pacchetto č noto per avere problemi quando vengono cambiati i suoi flag di ottimizzazione predefiniti (incluse le opzioni -march e -mcpu). Pertanto, se doveste aver definito variabili di ambiente che disabilitano le ottimizzazioni predefinite, come i flag CFLAGS e CXXFLAGS, raccomandiamo di eliminarle quando costruite GCC.
Estraete i tarball GCC-core e GCC-g++, che si scompatteranno nella stessa directory. Se volete potete estrarre il pacchetto GCC-testsuite. L'intero pacchetto GCC contiene anche altri compilatori. Istruzioni per costruirli si possono trovare su http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html.
Dapprima applicate solo la patch No-Fixincludes (e non la patch Specs) usata anche nel capitolo precedente:
patch -Np1 -i ../gcc-3.3.3-no_fixincludes-1.patch
Ora applicate una sostituzione sed che sopprimerā l'installazione di libiberty.a. Vogliamo utilizzare la versione di libiberty.a fornita da Binutils:
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
La documentazione di GCC raccomanda di costruire GCC fuori dalla directory dei sorgenti in una directory dedicata:
mkdir ../gcc-build cd ../gcc-build
Ora preparate GCC per la compilazione:
../gcc-3.3.3/configure --prefix=/usr \ --enable-shared --enable-threads=posix \ --enable-__cxa_atexit --enable-clocale=gnu \ --enable-languages=c,c++
Compilate il pacchetto:
make
La suite di test per GCC in questa sezione č considerata critica. Il nostro consiglio č di non saltarla per nessuna ragione.
Verificate i risultati, ma non fermatevi sugli errori (ricorderete che ce ne sono alcuni noti):
make -k check
Le note sulle suite di test dalla sezione chiamata “GCC-3.3.3 - Passo 2” sono ancora decisamente valide qui. Assicuratevi di farvi riferimento nel caso aveste qualsiasi dubbio.
Installate il pacchetto:
make install
Alcuni pacchetti si aspettano che il preprocessore C sia installato nella directory /lib. Per supportare questi pacchetti create questo link simbolico:
ln -s ../usr/bin/cpp /lib
Molti pacchetti usano il nome cc per chiamare il compilatore C. Per soddisfare questi pacchetti, create un link simbolico:
ln -s gcc /usr/bin/cc
A questo punto č fortemente raccomandato ripetere il test di integritā che abbiamo eseguito in precedenza in questo capitolo. Fatevi riferimento per la sezione chiamata “Risistemazione della toolchain” e ripetete il controllo. Se i risultati sono sbagliati, allora probabilmente avete erroneamente applicato la patch GCC Specs dal Capitolo 5.
Programmi installati: c++, cc (link to gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, e gcov
Librerie installate: libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] e libsupc++.a
cpp č il preprocessore C. È usato dal compilatore per avere le dichiarazioni #include, #define e simili espanse nei file sorgenti.
gcc č il compilatore C. È usato per tradurre il codice sorgente di un programma in codice assembly.
gccbug č uno shell script usato per aiutare a creare buoni bug report.
gcov č un tool di coverage testing. È usato per analizzare i programmi per trovare dove le ottimizzazioni avranno il maggior effetto.
libgcc* contiene supporto run-time per gcc.
libstdc++ č la libreria standard C++. Contiene molte funzioni usate di frequente.
libsupc++ fornisce routine di supporto per il linguaggio di programmazione C++.