5.9. Binutils-2.24 - Passe 2

Le paquet Binutils contient un éditeur de liens, un assembleur et d'autres outils pour gérer des fichiers objets.

Temps de construction approximatif: 1.1 SBU
Espace disque requis: 417 Mo

5.9.1. Installation de Binutils

Créez de nouveau un répertoire de construction séparé :

mkdir -v ../binutils-build
cd ../binutils-build

Préparez la compilation de Binutils :

CC=$LFS_TGT-gcc                \
AR=$LFS_TGT-ar                 \
RANLIB=$LFS_TGT-ranlib         \
../binutils-2.24/configure   \
    --prefix=/tools            \
    --disable-nls              \
    --with-lib-path=/tools/lib \
    --with-sysroot

Voici la signification des nouvelles options de configure :

CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib

Étant vraiment une construction neuve de Binutils, l'initialisation de ces variables s'assure que le système de construction utilise le compilateur croisé et les outils associés au lieu de ceux du système hôte.

--with-lib-path=/tools/lib

Ceci indique au script configure de spécifier le chemin de recherche des bibliothèques lors de la compilation de Binutils, aboutissant au passage de /tools/lib à l'éditeur de liens. Ceci empêche l'éditeur de liens de chercher dans tous les répertoires de bibliothèques de l'hôte.

--with-sysroot

La fonction sysroot permet à l'éditeur de liens de trouver les objets partagés requis explicitement pour d'autres objets partagés inclus sur la ligne de commande de l'éditeur de liens. Sans elle, certains paquets peuvent ne pas réussir à se construire sur certains hôtes.

Compilez le paquet :

make

Installez le paquet :

make install

Maintenant, préparez l'éditeur de liens pour la phase de « Ré-ajustement » du prochain chapitre :

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

Voici la signification des paramètres de make :

-C ld clean

Ceci dit au programme make de supprimer tous les fichiers construits dans le sous-répertoire ld.

-C ld LIB_PATH=/usr/lib:/lib

Cette option reconstruit tout dans le sous-répertoire ld. La spécification de la variable de Makefile LIB_PATH sur la ligne de commande nous permet d'écraser la valeur par défaut du tools temporaire et de pointer vers le bon chemin final. La valeur de cette variable indique le chemin de recherche de la bibliothèque par défaut de l'éditeur de liens. Cette préparation sert pour le chapitre suivant.

Les détails sur ce paquet sont disponibles dans Section 6.13.2, « Contenu de Binutils. »