Il pacchetto Binutils contiene un linker, un assemblatore e altri tool per manipolare file oggetto.
Questo pacchetto è noto per avere problemi quando vengono cambiati i suoi flag di ottimizzazione di default (incluse le opzioni -march e -mcpu). Pertanto, se dovessero essere state definite variabili di ambiente che disabilitano le nostre ottimizzazioni di default, come i flag CFLAGS e CXXFLAGS, si raccomanda di eliminarle quando si costruisce Binutils.
Verificare che i PTY funzionino correttamente nell'ambiente chroot. Controllare che le impostazioni siano corrette eseguendo un semplice test:
expect -c "spawn ls"
Se compare il seguente messaggio l'ambiente chroot non è impostato correttamente per i PTY:
The system has no more ptys. Ask your system administrator to create more.
Questo problema deve essere risolto prima di eseguire le suite di test per Binutils e GCC.
La documentazione di Binutils raccomanda di costruire Binutils fuori dalla directory dei sorgenti, in una directory dedicata:
mkdir -v ../binutils-build cd ../binutils-build
Preparare Binutils per la compilazione:
../binutils-2.15.94.0.2.2/configure --prefix=/usr \ --enable-shared
Compilare il pacchetto:
make tooldir=/usr
Normalmente la tooldir (la directory dove finiscono gli eseguibili) è impostata a $(exec_prefix)/$(target_alias). Per esempio le macchine i686 la espanderanno in /usr/i686-pc-linux-gnu. Poiché questo è un sistema personalizzato questa directory target-specific in /usr non è necessaria. $(exec_prefix)/$(target_alias) verrebbe usata se il sistema fosse usato per il cross-compile (per esempio compilare un pacchetto su una macchina Intel che genera codice che può essere eseguito su macchine PowerPC).
La test suite per Binutils in questa sezione è considerata critica. Il nostro consiglio è di non saltarla per nessuna ragione.
Testare i risultati:
make check
Installare il pacchetto:
make tooldir=/usr install
Installare il file header libiberty che è richiesto da alcuni pacchetti:
cp -v ../binutils-2.15.94.0.2.2/include/libiberty.h /usr/include