<Precedenti | Contenuti | Succ.>
5.4.1. Installazione di Cross Binutils
Note:
Torna indietro e rileggi le note nella sezione precedente. Comprendere le note etichettate come importanti ti farà risparmiare molti problemi in seguito.
Note:
Torna indietro e rileggi le note nella sezione precedente. Comprendere le note etichettate come importanti ti farà risparmiare molti problemi in seguito.
È importante che Binutils sia il primo pacchetto compilato perché sia Glibc che GCC eseguono vari test sul linker e sull'assemblatore disponibili per determinare quali delle proprie funzionalità abilitare.
La documentazione di Binutils consiglia di creare Binutils in una directory di build dedicata:
mkdir -v build build cd
mkdir -v build build cd
Note:
Affinché i valori SBU elencati nel resto del libro siano utili, misurare il tempo necessario per creare questo pacchetto dalla configurazione, fino alla prima installazione inclusa. Per ottenere ciò facilmente, racchiudere i comandi in a tempo comando in questo modo: time { ./configure ... && ... && make install; }.
Note:
Affinché i valori SBU elencati nel resto del libro siano utili, misurare il tempo necessario per creare questo pacchetto dalla configurazione, fino alla prima installazione inclusa. Per ottenere ciò facilmente, racchiudere i comandi in a tempo comando in questo modo: time { ./configure ... && ... && make install; }.
Note:
I valori approssimativi della build SBU e lo spazio su disco richiesto nel Capitolo 5 non includono i dati della suite di test.
Note:
I valori approssimativi della build SBU e lo spazio su disco richiesto nel Capitolo 5 non includono i dati della suite di test.
Ora prepara Binutils per la compilazione:
../configure --prefix=/tools \
--with-sysroot=$LFS \
--with-lib-path=/tools/lib \
--target=$LFS_TGT \
--disabilita-nls \
--disable-error
../configure --prefix=/tools \
--with-sysroot=$LFS \
--with-lib-path=/tools/lib \
--target=$LFS_TGT \
--disabilita-nls \
--disable-error
Il significato delle opzioni di configurazione:
--prefix=/strumenti
Questo dice allo script di configurazione di prepararsi per installare i programmi Binutils nel /utensili directory.
--with-sysroot=$LFS
Per la compilazione incrociata, questo indica al sistema di compilazione di cercare in $LFS le librerie di sistema di destinazione secondo necessità.
--with-lib-path=/tools/lib
Questo specifica quale percorso della libreria deve essere configurato per l'utilizzo del linker.
--target=$LFS_TGT
Poiché la descrizione della macchina nel LFS_TGT variabile è leggermente diverso dal valore restituito da config.indovina script, questo interruttore dirà al configure script per regolare il sistema di compilazione di Binutil per la creazione di un cross linker.
--disable-nls
Ciò disabilita l'internazionalizzazione poiché i18n non è necessario per gli strumenti temporanei.
--disable-error
Ciò impedisce l'arresto della compilazione nel caso in cui siano presenti avvisi dal compilatore dell'host.
Continua con la compilazione del pacchetto:
make
make
La compilazione è ora completa. Normalmente ora eseguiremmo la suite di test, ma in questa fase iniziale il framework della suite di test (Tcl, Expect e DejaGNU) non è ancora a posto. I vantaggi dell'esecuzione dei test a questo punto sono minimi poiché i programmi di questo primo passaggio verranno presto sostituiti da quelli del secondo.
Se si utilizza x86_64, creare un collegamento simbolico per garantire l'integrità della toolchain:
caso $(uname -m) in
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac
caso $(uname -m) in
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac
Installa il pacchetto:
make install
make install