Les détails sur ce paquet sont disponibles dans Section 8.20.2, « Contenu de Binutils. »
Le paquet Binutils contient un éditeur de liens, un assembleur et d'autres outils permettant de gérer des fichiers objet.
Revenez en arrière et relisez les remarques de la section Instructions générales de compilation. La compréhension des remarques notées importantes vous évitera beaucoup de problèmes plus tard.
Il est important que Binutils soit le premier paquet compilé. En effet, Glibc et GCC réalisent différents tests sur l'éditeur de liens et l'assembleur disponibles pour déterminer leurs propres fonctionnalités à activer.
La documentation de Binutils recommande de construire Binutils dans un répertoire de construction dédié :
mkdir -v build cd 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 commandes dans une commande time de cette façon :
time { ../configure ...
&& make && make install; }
.
Maintenant, préparez la compilation de Binutils :
../configure --prefix=$LFS/tools \ --with-sysroot=$LFS \ --target=$LFS_TGT \ --disable-nls \ --enable-gprofng=no \ --disable-werror \ --enable-new-dtags \ --enable-default-hash-style=gnu
Voici la signification des options de configuration :
--prefix=$LFS/tools
Ceci dit au script configure de se préparer à installer les
programmes de binutils dans le répertoire $LFS/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èmes cibles nécessaires.
--target=$LFS_TGT
Vu que la description de la machine dans la variable
LFS_TGT
est légèrement différente
de la valeur renvoyé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 (i18n), car ce n'est pas nécessaire pour des outils temporaires.
--enable-gprofng=no
Ceci désactive la construction de grofng qui n'est pas requis pour les 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.
--enable-new-dtags
Cela permet à l'éditeur de liens d'utiliser le tag « runpath » pour intégrer des chemins de recherche de bibliothèques dans les exécutables et les bibliothèques partagées, au lieu du tag « rpath » traditionnel. Cela facilite le débogage des exécutables liés dynamiquement et contourne des problèmes potentiels dans la suite de tests de certains paquets.
--enable-default-hash-style=gnu
Par défaut, l'éditeur de liens génère à la fois une table de hash GNU et la table de hash ELF classique pour les bibliothèques partagées et les exécutables liés dynamiquement. Les tables de hash ne sont conçues que pour que l'éditeur de liens puisse rechercher les symboles. Sur LFS l'éditeur de liens dynamique (fournit par le paquet Glibc) utilisera toujours la table de hash GNU qui est plus rapide. La table de hash ELF classique est donc absolument inutile. Cette option ne fait générer à l'éditeur de liens que la table de hash GNU par défaut, pour éviter de perdre du temps à générer la table de hash ELF classique lors de la construction des paquets ou de perdre de l'espace disque à la stocker.
Continuez avec la compilation du paquet :
make
Installez le paquet :
make install
Les détails sur ce paquet sont disponibles dans Section 8.20.2, « Contenu de Binutils. »