GCC-3.3.3

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.

Installazione di GCC

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
[Important]

Importante

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
[Note]

Nota

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.

Contenuti di GCC

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

Brevi descrizioni

cpp č il preprocessore C. È usato dal compilatore per avere le dichiarazioni #include, #define e simili espanse nei file sorgenti.

g++ č il compilatore C++.

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