Les détails sur ce paquet sont disponibles dans Section 6.18.2, « Contenu de Binutils. »
Le paquet Binutils contient un éditeur de liens, un assembleur et d'autres outils pour gérer des fichiers objets.
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. »