Les détails sur ce paquet sont disponibles dans Section 6.11.2, « Contenu de Binutils. »
Le paquet Binutils contient un éditeur de liens, un assembleur et d'autres outils pour gérer des fichiers objets.
Il est important que Binutils soit le premier paquet compilé parce que Glibc et GCC réalisent différents tests sur l'éditeur de liens et l'assembleur disponibles pour déterminer leur propres fonctionnalités à activer.
La documentation de Binutils recommande de construire Binutils en dehors du répertoire des sources, c'est-à-dire dans un répertoire de construction dédié :
mkdir -v ../binutils-build cd ../binutils-build
Pour que les valeurs SBU listées dans le reste du livre vous
soient utiles, mesurez le temps pris pour construire ce paquet,
de la configuration jusqu'à la première installation. Pour cela,
englobez les trois commandes dans une commande time de cette façon :
time { ./configure ... &&
make && make install; }
.
Maintenant, préparez la compilation de Binutils :
CC="gcc -B/usr/bin/" ../binutils-2.17/configure \ --prefix=/tools --disable-nls --disable-werror
Voici la signification des options de configure :
CC="gcc
-B/usr/bin/"
Cela oblige gcc
à préférer l'éditeur de liens du système hôte dans
/usr/bin
. C'est nécessaire sur
certains systèmes hôtes où le nouveau ld compilé ici n'est pas
compatible avec le gcc du système hôte.
--prefix=/tools
Ceci indique au script configure de se préparer à installer
les programmes Binutils dans le répertoire /tools
.
--disable-nls
Ceci désactive l'internationalisation comme i18n car ce n'est pas nécessaire pour des outils temporaires.
--disable-werror
Ceci empêche la compilation de s'arrêter lorsqu'interviennent des événements comme des avertissements du compilateur du système hôte.
Continuez avec la compilation du paquet :
make
La compilation est maintenant terminée. Normalement, la suite de tests devrait être lancée mais, à ce moment, l'ensemble de travail de la suite de tests (Tcl, Expect et DejaGnu) n'est pas encore en place. Les bénéfices à lancer les tests maintenant seraient minimes car les programmes de la première passe seront bientôt remplacés par ceux de la seconde.
Installez le paquet :
make install
Ensuite, préparez l'éditeur de liens pour la phase d'« ajustement » un peu plus tard :
make -C ld clean make -C ld LIB_PATH=/tools/lib cp -v ld/ld-new /tools/bin
Voici la signification des paramètres de make :
-C ld
clean
Ceci indique au programme make de supprimer tous les fichiers
compilés du sous-répertoire ld
.
-C ld
LIB_PATH=/tools/lib
Cette option reconstruit tout ce qui se trouve dans le
sous-répertoire ld
. Spécifier
la variable makefile LIB_PATH
en
ligne de commande nous autorise à écraser la valeur par
défaut et à la faire pointer vers notre emplacement
temporaire des outils. La valeur de cette variable spécifie
le chemin de recherche des bibliothèques par défaut pour
l'éditeur de liens. Cette préparation est utilisée plus tard
dans le chapitre.
Les détails sur ce paquet sont disponibles dans Section 6.11.2, « Contenu de Binutils. »