5.4. GCC-3.4.3 - Passo 1

Il pacchetto GCC contiene la collezione di compilatori GNU, che include i compilatori C e C++.

Tempo approssimativo di costruzione: 4.4 SBU
Spazio su disco richiesto: 219 MB
L'installazione dipende da: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo

5.4.1. Installazione di GCC

Questo pacchetto è noto per avere problemi quando i suoi flag di ottimizzazione (incluse le opzioni -march e -mcpu) vengono cambiati. Se è stata definita una qualunque delle variabili ambiente che si sovrappone alle ottimizzazioni di default, come CFLAGS e CXXFLAGS, disallocarle quando si costruisce GCC.

La documentazione di GCC raccomanda di costruire GCC al di fuori della directory dei sorgenti, in una directory di costruzione dedicata:

mkdir -v ../gcc-build
cd ../gcc-build

Preparare GCC per la compilazione:

../gcc-3.4.3/configure --prefix=/tools \
    --libexecdir=/tools/lib --with-local-prefix=/tools \
    --disable-nls --enable-shared --enable-languages=c

Significato delle opzioni di configurazione:

--with-local-prefix=/tools

Lo scopo di questa opzione è di rimuovere /usr/local/include dal percorso di ricerca di include di gcc. Ciò non è assolutamente essenziale, tuttavia aiuta a minimizzare l'influenza del sistema host.

--enable-shared

Questa opzione permette la costruzione di libgcc_s.so.1 e libgcc_eh.a. Avere libgcc_eh.a disponibile assicura che lo script configure per Glibc (il prossimo pacchetto che compiliamo) produca risultati appropriati.

--enable-languages=c

Questa opzione assicura che venga costruito solo il compilatore C.

Continuare con la compilazione del pacchetto:

make bootstrap

Significato delle opzioni di configurazione:

bootstrap

Questo target non si limita a compilare GCC, ma lo compila molte volte. Usa i programmi compilati in un primo round per compilare se stesso una seconda volta, e quindi di nuovo una terza volta. Quindi confronta la seconda e la terza compilazione per essere sicuro di potersi riprodurre perfettamente. Questo presuppone anche che sia compilato correttamente.

La compilazione è ora completa. A questo punto normalmente verrebbe eseguita la suite di test, ma, come citato in precedenza, il framework della suite di test non è ancora al suo posto. I benefici derivanti dall'esecuzione dei test a questo punto sono minimi, poiché i programmi del primo passo verranno presto rimpiazzati.

Installare il pacchetto:

make install

Come tocco finale creare un symlink. Molti programmi e script eseguono cc invece di gcc, che è usato per avere programmi generici e solitamente usabili su tutti i tipi di sistemi UNIX, dove il compilatore C GNU non è sempre installato. Eseguire cc lascia l'amministratore di sistema libero di decidere quale compilatore C installare.

ln -vs gcc /tools/bin/cc

Dettagli su questo pacchetto si trovano nella Sezione 6.14.2, “Contenuti di GCC.”