5.3. Binutils-2.16.1 - Passo 1

Il pacchetto Binutils contiene un linker, un assemblatore e altri tool per manipolare file oggetto.

Tempo di costruzione approssimativo: 1 SBU
Spazio necessario su disco: 189 MB

5.3.1. Installazione di Binutils

È importante che Binutils sia il primo pacchetto compilato, poiché sia Glibc che GCC eseguono diversi test sul linker e l'assemblatore disponibili per determinare quale delle loro caratteristiche abilitare.

La documentazione di Binutils raccomanda di costruire Binutils al di fuori della directory dei sorgenti, in una directory di costruzione dedicata:

mkdir -v ../binutils-build
cd ../binutils-build
[Nota]

Nota

Perché i valori di SBU elencati nel resto del libro siano di qualche utilità misurare il tempo occorrente a costruire questo pacchetto dalla configurazione, fino a, e inclusa, la prima installazione. Per ottenere questo facilmente, racchiudere tre comandi in un comando time in questo modo: time { ./configure ... && make && make install; }.

Preparare Binutils per la compilazione:

../binutils-2.16.1/configure --prefix=/tools --disable-nls

Significato delle opzioni di configurazione:

--prefix=/tools

Questo dice allo script di configurazione di prepararsi a installare i programmi delle Binutils nella directory /tools.

--disable-nls

Questo disabilita l'internazionalizzazione, poiché i18n non è necessario per i tool temporanei.

Continuare con la compilazione del pacchetto:

make

La compilazione è ora completa. Normalmente ora eseguiremmo la suite di test, ma in questa fase preliminare il framework della suite di test (Tcl, Expect e DejaGNU) non è ancora al suo posto. I benefici derivanti da un'esecuzione dei test a questo punto sono minimi, poiché i programmi di questo primo passo verranno presto rimpiazzati da quelli del secondo.

Installare il pacchetto:

make install

Quindi preparare il linker per la successiva fase di «aggiustamento»:

make -C ld clean
make -C ld LIB_PATH=/tools/lib
cp -v ld/ld-new /tools/bin

Significato dei parametri di make:

-C ld clean

Questo dice al programma make di rimuovere tutti i file compilati nella sottodirectory ld .

-C ld LIB_PATH=/tools/lib

Questa opzione ricostruisce ogni cosa nella sottodirectory ld. Specificare la variabile del Makefile LIB_PATH nella linea di comando ci permette di sovrascrivere il valore di default e puntarlo alla locazione temporanea dei tool. Il valore di questa variabile specifica il percorso di ricerca di default delle librerie da parte del linker. Questa preparazione viena usata più avanti nel capitolo.

Dettagli su questo pacchetto si trovano nella Sezione 6.11.2, «Contenuti di Binutils.»