Il pacchetto GCC contiene la collezione di compilatori GNU, che include i compilatori C e C++.
Tempo approssimativo di costruzione: 4.4 SBU Spazio necessario sul disco: 411.7 MB
L'installazione di GCC dipende da: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
Scompattate solamente il tarball principale di GCC, perché qui non avremo bisogno né del compilatore C++, né della suite di test.
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 nostre ottimizzazioni predefinite, come i flag CFLAGS e CXXFLAGS, raccomandiamo di eliminarle quando costruite GCC.
La documentazione di GCC raccomanda di costruire GCC fuori dalla directory dei sorgenti, in una directory di costruzione dedicata:
mkdir ../gcc-build cd ../gcc-build
Preparatevi per la compilazione di GCC:
../gcc-3.3.3/configure --prefix=/tools \ --with-local-prefix=/tools \ --disable-nls --enable-shared \ --enable-languages=c
Il 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. Questo non è assolutamente essenziale; tuttavia, cerchiamo di minimizzare l'influenza del sistema host e questa è una delle cose da fare.
--enable-shared: questa opzione all'inizio può sembrare poco intuitiva. Tuttavia utilizzarla permette la costruzione di libgcc_s.so.1 e libgcc_eh.a e avere libgcc_eh.a disponibile assicura che lo script di configurazione per Glibc (il prossimo pacchetto che compileremo) produca risultati corretti. Notate che i binari di gcc verranno ancora linkati staticamente. Questo è controllato dal valore -static di BOOT_LDFLAGS nel prossimo passo.
--enable-languages=c: questa opzione assicura che verrà costruito solo il compilatore C. L'opzione è necessaria solo quando scaricate e scompattate l'intero tarball di GCC.
Proseguite compilando il pacchetto:
make BOOT_LDFLAGS="-static" bootstrap
Il significato dei parametri di make è:
BOOT_LDFLAGS="-static": questo dice a GCC di linkare i suoi programmi staticamente.
bootstrap: questo target non si limita a compilare GCC, ma lo compila più volte. Usa i programmi compilati nel 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 assicurarsi di potersi autoriprodurre senza differenze, il che significa probabilmente che è stato compilato correttamente.
La compilazione è ora completa, e a questo punto normalmente avvieremmo la suite di test. Ma, come detto prima, il framework della suite di test non è ancora in pista. E ci sarebbe comunque uno scarso vantaggio avviando il test ora, poiché i programmi di questo primo passo saranno presto sostituiti.
Ora installate il pacchetto:
make install
Come tocco finale creeremo un link simbolico. Molti programmi e script avviano cc invece di gcc, una cosa pensata per mantenere i programmi generali e comunque usabili in tutti i tipi di sistemi Unix. Non tutti hanno il compilatore GNU C installato. Avviare semplicemente cc lascia l'amministratore di sistema libero di decidere quale compilatore C installare, perché c'è un link simbolico che punta all'eseguibile giusto:
ln -s gcc /tools/bin/cc
Dettagli su questo pacchetto si trovano nella sezione chiamata “Contenuti di GCC”.