Les détails sur ce paquet sont disponibles dans Section 6.13.2, « Contenu de Binutils. »
Le paquet Binutils contient un éditeur de liens, un assembleur et d'autres outils pour gérer des fichiers objets.
Revenez en arrière et relisez les remarques de la section précédente. La compréhension des remarques notées importantes vous fera éviter beaucoup de problèmes plus tard.
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.
Appliquez un correctif pour empêcher un échec de construction lors de l'utilisation des optimisations de compilateur :
patch -Np1 -i ../binutils-2.22-build_fix-1.patch
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; }
Les valeurs SBU de construction approximatives et de l'espace disque requis au chapitre 5 n'incluent pas les données des suites de tests.
Maintenant, préparez la compilation de Binutils :
../binutils-2.22/configure \ --prefix=/tools \ --with-sysroot=$LFS \ --with-lib-path=/tools/lib \ --target=$LFS_TGT \ --disable-nls \ --disable-werror
Voici la signification des options de configure :
--prefix=/tools
Ceci dit au script configure de se préparer à installer les
programmes de Binutils dans le répertoire /tools
.
--with-sysroot=$LFS
Pour de la compilation croisée, ceci dit au système de construction de chercher dans $LFS les bibliothèques système cibles comme nécessaire.
--with-lib-path=/tools/lib
Ceci spécifie le chemin de la bibliothèque qui devrait être configuré dans l'éditeur de liens afin qu'il l'utilise.
--target=$LFS_TGT
Vu que la description de la machine dans la variable
LFS_TGT
est légèrement différente
de la valeur retournée par le script config.guess, ce paramètre
va dire au script configure d'ajuster le
système de construction de Binutils pour la construction d'un
éditeur de lien croisé.
--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.
Si vous construisez sur une x86_64, créez un lien symbolique pour assurer la propreté de notre chaîne d'outils :
case $(uname -m) in x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac
Installez le paquet :
make install
Les détails sur ce paquet sont disponibles dans Section 6.13.2, « Contenu de Binutils. »