Avanti Indietro Indice

3. Installazione e impostazione di GCC

3.1 Versioni GCC

È possibile scoprire quale versione GCC si sta eseguendo digitando gcc -v alla richiesta dell'interprete comandi. Si tratta di un metodo piuttosto affidabile anche per scoprire se la propria impostazione è ELF o a.out. Il risultato potrebbe essere:

$ gcc -v
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs
gcc version 2.7.2

Le cose da notare sono:

i486

Indica che il gcc è stato compilato per un processore 486 - altre possibilità sono 386 o 586. Tutti i processori possono eseguire il codice compilato per ciascuna delle altre versioni; la differenza consiste nell'ottimizzazione che non ha effetti sulle prestazioni in un 386, ma rende il codice eseguibile leggermente più grande.

box

Non è affatto importante, potrebbe esserci qualcosa di diverso (come slackware o debian) o anche nulla (in tal caso, il nome di directory completa sarà i486-linux). Se si esegue personalmente la compilazione di gcc, è possibile impostare questa caratteristica al momento della compilazione, a fini puramente estetici.

linux

In alternativa, potrebbe essere linuxelf o linuxaout, il significato varia a seconda della versione utilizzata, fatto che potrebbe confondere le idee.

linux

significa ELF se la versione è la 2.7.0 o seguente, altrimenti significa a.out.

linuxaout

significa a.out. È stato introdotto quando la definizione di linux è stata modificata da a.out in ELF, in modo che non sia possibile vedere un gcc linuxaout più vecchio della versione 2.7.0.

linuxelf

è obsoleto. Si tratta generalmente di una versione di gcc 2.6.3 impostata per produrre eseguibili ELF. Si noti che il gcc 2.6.3 contiene degli errori nella produzione di codice per ELF - si consiglia un aggiornamento.

2.7.2

numero della versione.

In conclusione, si tratta di gcc 2.7.2 che produce del codice ELF.

3.2 Dov'è finito?

Se gcc è stato installato senza prestare attenzione, oppure se è stato ottenuto come parte di una distribuzione, potrebbe essere necessario scoprire dove si trova all'interno del filesystem. Le parti chiave sono:

3.3 Dove si trovano gli header file?

Indipendentemente dalla posizione in cui sono stati installati i propri, sotto /usr/local/include, esistono tre sorgenti principali degli header file in Linux:

3.4 Compilazione di cross compilatori

Linux come piattaforma di destinazione

Supponendo di aver ottenuto il codice sorgente per gcc, solitamente è sufficiente seguire le istruzioni contenute nel file INSTALL di GCC. Un comando configure -target=i486-linux -host=XXX sulla piattaforma XXX seguito da un make dovrebbe funzionare. Si noti che saranno necessari gli include di Linux, gli include del kernel e sarà necessario eseguire anche la compilazione del cross assembler e del cross linker dai sorgenti in ftp://tsx-11.mit.edu/pub/linux/packages/GCC/.

Linux come piattaforma sorgente, MSDOS come destinazione

Apparentemente dovrebbe essere possibile utilizzando il pacchetto "emx" o l'extender "go". Si invita a dare un'occhiata a ftp://sunsite.unc.edu/pub/Linux/devel/msdos.

L'autore, non ha ancora verificato le funzionalità e pertanto non può dare alcuna garanzia in merito.


Avanti Indietro Indice