Les détails sur ce paquet sont disponibles dans Section 6.12.2, « Contenu de Binutils. »
Le paquet Binutils contient un éditeur de liens, un assembleur et d'autres outils pour gérer des fichiers objets.
Ajoutez le support des en-têtes d'exécutables PT PaX à Binutils :
patch -Np1 -i ../binutils-2.21.1-pt_pax-1.patch
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 -B/tools/lib/" \ AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib \ ../binutils-2.21.1/configure --prefix=/tools \ --disable-nls --disable-werror --with-lib-path=/tools/lib
Voici la signification des nouvelles options de configure :
CC="$LFS_TGT-gcc
-B/tools/lib/" 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.
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.12.2, « Contenu de Binutils. »