Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

5.7.1. Installazione di Glibc

La documentazione di Glibc consiglia di compilare Glibc in una directory di build dedicata:


mkdir -v build build cd

mkdir -v build build cd

Quindi, prepara Glibc per la compilazione:


../configura \

--prefix=/strumenti \

--host=$LFS_TGT \

--build=$(../scripts/config.guess) \

--enable-kernel=3.2 \

--with-headers=/strumenti/includi

../configura \

--prefix=/strumenti \

--host=$LFS_TGT \

--build=$(../scripts/config.guess) \

--enable-kernel=3.2 \

--with-headers=/strumenti/includi

Il significato delle opzioni di configurazione:

--host=$LFS_TGT, --build=$(../scripts/config.guess)

L'effetto combinato di questi switch è che il sistema di compilazione di Glibc si configura per la compilazione incrociata, utilizzando il cross-linker e il cross-compiler in /utensili.

--enable-kernel=3.2

Questo indica a Glibc di compilare la libreria con il supporto per i kernel Linux 3.2 e successivi. Le soluzioni alternative per i kernel più vecchi non sono abilitate.

--with-headers=/strumenti/includi

Questo indica a Glibc di compilarsi in base agli header installati di recente nella directory degli strumenti, in modo da sapere esattamente quali funzionalità ha il kernel e potersi ottimizzare di conseguenza.

Durante questa fase potrebbe apparire il seguente avviso:


configurare: ATTENZIONE:

*** Questi programmi ausiliari sono mancanti o

*** versioni incompatibili: msgfmt

*** Alcune funzionalità saranno disabilitate.

*** Controllare il file INSTALL per le versioni richieste.

configurare: ATTENZIONE:

*** Questi programmi ausiliari sono mancanti o

*** versioni incompatibili: msgfmt

*** Alcune funzionalità saranno disabilitate.

*** Controllare il file INSTALL per le versioni richieste.


Immagine

Il mancante o incompatibile msgfmt programma è generalmente innocuo. Questo msgfmt Il programma fa parte del pacchetto Gettext che la distribuzione host dovrebbe fornire.


Note:

Ci sono state segnalazioni che questo pacchetto potrebbe non funzionare se compilato come "make parallelo". In tal caso, rieseguire il comando make con l'opzione "-j1".

Note:

Ci sono state segnalazioni che questo pacchetto potrebbe non funzionare se compilato come "make parallelo". In tal caso, rieseguire il comando make con l'opzione "-j1".


Compila il pacchetto:


make

make

Installa il pacchetto:


make install

make install


Immagine

Attenzione

A questo punto, è fondamentale fermarsi e assicurarsi che le funzioni di base (compilazione e collegamento) della nuova toolchain funzionino come previsto. Per eseguire un controllo di integrità, eseguire i seguenti comandi:


echo 'int main(){}' > dummy.c

$LFS_TGT-gcc dummy.c

readelf -l a.out | grep ': /strumenti'

echo 'int main(){}' > dummy.c

$LFS_TGT-gcc dummy.c

readelf -l a.out | grep ': /strumenti'

Se tutto funziona correttamente, non dovrebbero esserci errori e l'output dell'ultimo comando sarà del tipo:


[Richiedente interprete del programma: /tools/lib64/ld-linux-x86-64.so.2]

[Richiedente interprete del programma: /tools/lib64/ld-linux-x86-64.so.2]

Si noti che per le macchine a 32 bit, il nome dell'interprete sarà /strumenti/lib/ld-linux.so.2.

Se l'output non viene visualizzato come sopra o non viene visualizzato alcun output, significa che qualcosa non va. Indagare e ripercorrere i passaggi per individuare il problema e correggerlo. Questo problema deve essere risolto prima di continuare.

Una volta che tutto è a posto, pulisci i file di prova:


rm -v dummy.c a.out

rm -v dummy.c a.out


Note:

La compilazione di Binutils nella sezione successiva servirà come ulteriore verifica della corretta compilazione della toolchain. Se Binutils non viene compilato, è un'indicazione che qualcosa è andato storto nelle precedenti installazioni di Binutils, GCC o Glibc.

Note:

La compilazione di Binutils nella sezione successiva servirà come ulteriore verifica della corretta compilazione della toolchain. Se Binutils non viene compilato, è un'indicazione che qualcosa è andato storto nelle precedenti installazioni di Binutils, GCC o Glibc.

Immagine

Il miglior sistema operativo cloud computing su OnWorks: