Les détails sur ce paquet sont situés dans Section 10.10.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 construit avant Glibc et GCC car les deux effectuent divers tests sur l'éditeur de liens et l'assembleur disponibles pour déterminer quelles fonctionnalités activer.
Pour être sûr d'utiliser la bonne syntaxe dans les deux outils, appliquez le correctif suivant :
patch -Np1 -i ../binutils-2.18-posix-1.patch
Les correctifs suivants incorporent toutes les mises à jour issues de la branche 2.18 des développeurs de Binutils :
patch -Np1 -i ../binutils-2.18-branch_update-3.patch
The following patch makes Binutils search in both the
lib and lib64 directories in a multilib
environment:
patch -Np1 -i ../binutils-2.18-genscripts_multilib-1.patch
La documentation de Binutils recommande de construire Binutils à l'extérieur du répertoire des sources dans un répertoire dédié :
mkdir -v ../binutils-build cd ../binutils-build
Préparez la compilation de Binutils :
AR=ar AS=as ../binutils-2.18/configure --prefix=/cross-tools \
--host=${CLFS_HOST} --target=${CLFS_TARGET} --with-lib-path=/tools/lib \
--disable-nls --enable-shared --enable-64-bit-bfdThe meaning of the configure options:
--prefix=/cross-toolsCeci dit à configure de se préparer à installer le paquet dans le répertoire
/cross-tools.
--host=${CLFS_HOST}Lors d'une utilisation avec --target, ceci crée un exécutable pour une architecture croisée qui crée des fichiers pour ${CLFS_TARGET} mais s'exécute sur ${CLFS_HOST}.
--target=${CLFS_TARGET}Lors d'une utilisation avec --host, ceci crée un exécutable pour une architecture croisée qui crée des fichiers pour ${CLFS_TARGET} mais se lance sur ${CLFS_HOST}.
--with-lib-path=/tools/libCeci dit au script configure de spécifier le chemin de recherche de la bibliothèque pendant la compilation de Binutils, le
résultat dans /tools/lib étant passé à l'éditeur de liens. Ceci empêche
l'éditeur de liens de chercher à travers les répertoires de la bibliothèque sur l'hôte.
--disable-nlsCeci désactive l'internationalisation car i18n n'est pas nécessaire pour les outils de compilation croisée.
--enable-sharedActive la création des bibliothèques partagées.
--enable-64-bit-bfdThis adds 64 bit support to Binutils.
Compilez le paquet :
make configure-host make
Voici la signification des options de make :
configure-hostCeci vérifie l'environnement hôte et s'assure que tous les outils nécessaires sont disponibles pour compiler Binutils.
Installez le paquet :
make install
Copiez libiberty.h vers le répertoire
/tools/include :
cp -v ../binutils-2.18/include/libiberty.h /tools/include
Les détails sur ce paquet sont situés dans Section 10.10.2, “Contenu de Binutils.”