Il pacchetto GCC contiene i compilatori GNU. Esso serve per compilare programmi scritti in C, C++, Fortran, Java, Objective C e Ada.
Download (HTTP): http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-3.4.1/gcc-3.4.1.tar.bz2
Download (FTP): ftp://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-3.4.1/gcc-3.4.1.tar.bz2
Download MD5 sum: 31b459062499f9f68d451db9cbf3205c
Dimensione del download: 27.2 MB
Stima dello spazio su disco richiesto: 1.53 GB
Stima del tempo di costruzione: 48.94 SBU
Patch necessaria: http://www.linuxfromscratch.org/blfs/downloads/6.0/gcc-3.4.1-no_fixincludes-1.patch
Patch necessaria: http://www.linuxfromscratch.org/blfs/downloads/6.0/gcc-3.4.1-linkonce-1.patch
Test suite: http://mirrors.rcn.net/pub/sourceware/gcc/releases/gcc-3.4.1/gcc-testsuite-3.4.1.tar.bz2
Test suite MD5 sum: 641f45606e17db4a3079cb7364a9e295
Se si intende compilare Ada, sarà necessario installare temporaneamente GNAT per soddisfare le dipendenze circolari quando si ricompila GCC per includere Ada.
Download (FTP): ftp://cs.nyu.edu/pub/gnat/3.15p/gnat-3.15p-i686-pc-redhat71-gnu-bin.tar.gz
Download MD5 sum: 57c060cd1ccef8b1ae9165b11d98780a
Dimensione del download: 13.5 MB
Stima dello spazio su disco richiesto: 48 MB
Stima del tempo di costruzione: 0.01 SBU
Installare GNAT eseguendo i seguenti comandi:
./doconfig
Lo script precedente chiederà come e dove si vuole installare GNAT. Per evitare conflitti con il gcc di sistema il pacchetto verrà installato in una directory separata, che più tardi può essere rimossa dal sistema.
In risposta alle domande chieste dallo script doconfig inserire 3 in risposta alla prima domanda e /opt/gnat in risposta alla seconda domanda.
Per finire l'installazione eseguire il seguente comando come utente root:
./doinstall
Il compilatore GNAT può essere invocato eseguendo il binario gcc installato dallo script precedente.
Prepararsi a compilare GCC mettendo il gcc di GNAT all'inizio della variabile PATH, usando i seguenti comandi:
PATH_HOLD=$PATH &&
export PATH=/opt/gnat/bin:$PATH
Installare GCC eseguendo i seguenti comandi:
Il processo di installazione potrebbe sovrascrivere il proprio compilatore e librerie GCC. E' altamente raccomandato avere i pacchetti Tcl, Expect e DejaGnu installati, e anche scompattare il tarball della testsuite GCC prima di iniziare la costruzione.
Non continuare con il comando make install fino a quando non si è certi che la costruzione avrà successo. Si possono confrontare i risultati dei propri test con quelli che si trovano presso http://gcc.gnu.org/ml/gcc-testresults/. C'è anche un risultato di test su una piattaforma i686 prodotto da un sistema LFS-6.0 presso http://linuxfromscratch.org/~randy/gcc341_test.txt. Si potrebbe anche voler fare riferimento alle informazioni trovate nella sezione GCC-Passo 2 del Capitolo 5 nel libro LFS ( ../../../../lfs/view/6.0/chapter05/gcc-pass2.html).
Alcuni dei programmi Java installati dal pacchetto GCC vanno in conflitto (hanno gli stessi nomi) con programmi del pacchetto J2SDK-1.4.2. Se si installa il linguaggio Java dal pacchetto GCC ma si desidera usare i programmi da J2SDK come default, assicurarsi che $JAVA_HOME/bin sia elencata prima di /usr/bin nella propria variabile PATH.
patch -Np1 -i ../gcc-3.4.1-no_fixincludes-1.patch &&
patch -Np1 -i ../gcc-3.4.1-linkonce-1.patch &&
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in &&
mkdir ../gcc-build &&
cd ../gcc-build &&
../gcc-3.4.1/configure --prefix=/usr --libexecdir=/usr/lib \
--enable-shared --enable-threads=posix --enable-__cxa_atexit \
--enable-clocale=gnu --enable-languages=c,c++,objc,f77,ada,java &&
make bootstrap &&
make -C gcc gnatlib-shared &&
make -C gcc gnattools &&
make -k check &&
../gcc-3.4.1/contrib/test_summary
Ora, come utente root:
make install &&
ln -v -sf ../usr/bin/cpp /lib &&
ln -v -sf gcc /usr/bin/cc &&
ln -v -sf g77 /usr/bin/f77 &&
chown -v -R root:root /usr/lib/gcc/i686-pc-linux-gnu/3.4.1/include &&
chown -v -R root:root /usr/lib/gcc/i686-pc-linux-gnu/3.4.1/ada{lib,include}
Si può rimuovere l'installazione GNAT e ripristinare il proprio vecchio PATH:
rm -rf /opt/gnat &&
export PATH=$PATH_HOLD
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in: questo comando sopprime l'installazione di libiberty.a, poiché viene usata la versione fornita da Binutils.
mkdir ../gcc-build; cd ../gcc-build: la documentazione di GCC raccomanda di costruire il pacchetto in una directory di costruzione dedicata.
--enable-shared --enable-threads=posix --enable-__cxa_atexit: questi comandi sono richiesti per costruire le librerie C++ sugli standard pubblicati.
--enable-clocale=gnu: questo comando è un failsafe per dati locali incompleti.
--enable-languages=c,c++,objc,f77,ada,java: questo comando identifica quale linguaggio costruire. Si può modificare questo comando per rimuovere linguaggi non desiderati.
make -C gcc gnatlib-shared: questo comando costruisce le librerie condivise e statiche Ada. Saltare questo passo se non si ha abilitato Ada come uno dei linguaggi.
make -C gcc gnattools: questo comando costruisce i tool di sviluppo e i binari Ada. Saltare questo passo se non si ha abilitato Ada come uno dei linguaggi.
make -k check: questo comando esegue la test suite senza fermarsi se dovesse incontrare un errore.
../gcc-3.4.1/contrib/test_summary: questo comando produrrà un sommario dei risultati della test suite. Si può aggiungere | grep -A7 Summ al comando per produrre una versione ancora più condensata del sommario. Si potrebbe anche voler redirigere l'output a un file per una revisione e confronto successivo.
ln -sf ../usr/bin/cpp /lib: questo comando crea un link al preprocessore C, poiché alcuni pacchetti si aspettano di trovarlo installato nella directory /lib.
ln -sf gcc /usr/bin/cc; ln -sf g77 /usr/bin/f77: questi link sono creati perché alcuni pacchetti fanno riferimento ai compilatori C e Fortran usando un nome diverso.
chown -R root:root /usr/lib/gcc/i686-pc-linux-gnu/...: se il pacchetto è costruito da un utente diverso da root il proprietario delle directory installate include e adalib (e dei loro contenuti) non sarà corretto. Questi comandi cambiano il proprietario a root:root. Omettere il comando cambiando le directory Ada se non si include Ada tra i linguaggi installati.
Alcune descrizioni di programmi e librerie non sono elencate qui, ma possono essere trovate presso ../../../../lfs/view/6.0/chapter06/gcc.html#contents-gcc.
emula alcune delle funzionalità di addr2line.
è un symlink a g77, creato per ragioni di compatibilità.
è il compilatore Fortran invocato da gcc.
è un compilatore avanti coi tempi per il linguaggio Java.
genera file header da file di classe Java.
è l'interprete GNU per il Java bytecode.
è il compilatore Ada invocato da gcc.
è usato per collegare oggetti compilati.
è il linker Ada.
serve per rinominare file per conformarli alle convenzioni di default dei nomi standard dei file Ada.
è usato per rimuovere file associati con un progetto GNAT.
è il finder GNAT di definizione/uso.
è usato per determinare il nome compresso di un file dato, quando è compresso in una massima lungezza specificata.
è usato per linkare programmi e costruire un file eseguibile.
è il browser dell'unità compilato.
è un servizio make automatico.
elencherà i file associati ad un progetto GNAT.
è il preprocessore GNAT esterno.
è il cross-referencer GNAT.
è un tool usato per creare Makefile che supportano compilazione di linguaggi multipli.
è un'utilità usata da Makefile.generic per gestire costruzioni multi-linguaggio. Fornisce un set di comandi in modo che il Makefile non debba dipendere dalle utilità Unix, non disponibili ovunque.
cerca pattern in file jar.
è un tool archivio per archivi Java .
stampa informazioni sui file class di Java.
converte file da una codifica ad un'altra.
stampa informazioni sui file sorgenti Java.
genera matrici per Remote Method Invocation.
avvia un remote object registry sull'host corrente.
Last updated on