5.9. Binutils-2.34 — 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: 651 Mo

5.9.1. Installation de Binutils

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

mkdir -v build
cd       build

Préparez la compilation de Binutils :

CC=$LFS_TGT-gcc                \
AR=$LFS_TGT-ar                 \
RANLIB=$LFS_TGT-ranlib         \
../configure                   \
    --prefix=/tools            \
    --disable-nls              \
    --disable-werror           \
    --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

Cela définit un répertoire sysroot par défaut (qui n'existe pas) /tools/$LFS_TGT/sys-root. Il est utile lors de la recherche d'objets partagés requis par d'autres objets partagés explicitement passés à la ligne de commande de l'éditeur de liens. Ces objets sont recherchés dans les répertoires listés dans <sysroot>/etc/ld.so.conf, et s'ils n'y sont pas, dans le chemin de recherche de l'éditeur de liens, ce qui est la bonne chose à faire. Si ce paramètre n'est pas passé, /etc/ld.so.conf de l'hôte sera utilisé, c'est-à-dire que les programmes pourraient être liés aux bibliothèques de l'hôte, ce que nous voulons éviter.

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.18.2, « Contenu de Binutils. »