Les détails de ce paquet sont situés dans Section 10.15.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 compilé avant Glibc et GCC car tant Glibc que GCC effectuent divers tests sur l'éditeur de liens et l'assembleur disponibles pour déterminer quelles fonctionnalités activer.
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.21.1/configure \ --prefix=/cross-tools --host=${CLFS_HOST} --target=${CLFS_TARGET} \ --with-sysroot=${CLFS} --with-lib-path=/tools/lib --disable-nls --enable-shared \ --disable-multilib
Voici la signification des options de configure :
AR=ar
AS=as
Ceci empêche Binutils de se compiler avec ${CLFS_HOST}-ar et ${CLFS_HOST}-as car ils sont fournis par ce paquet et ils ne peuvent donc pas encore être installés.
--prefix=/cross-tools
Ceci dit au script configure de préparer l'installation du
paquet dans le répertoire /cross-tools
.
--host=${CLFS_HOST}
Utilisé avec --target, ceci crée un exécutable croisé d'architecture qui crée des fichiers pour ${CLFS_TARGET} mais s'exécute sur ${CLFS_HOST}.
--target=${CLFS_TARGET}
Utilisé avec --host, ceci crée un exécutable croisé d'architecture qui crée des fichiers pour ${CLFS_TARGET} mais s'exécute sur ${CLFS_HOST}.
--with-lib-path=/tools/lib
Ceci dit au script configure de spécifier le chemin de
recherche de bibliothèque pendant la compilation de Binutils,
ce qui fait que /tools/lib
est
passç à l'éditeur de lien. Ceci empêche l'éditeur de liens de
chercher dans les répertoires de bibliothèque sur le hôte.
--disable-nls
Ceci désactive l'internationalisation puisque i18n n'est pas nécessaire pour les outils de compilation croisée.
--enable-shared
Active la création des bibliothèques partagées.
--disable-multilib
Cette option désactive la construction d'un Binutils opérationnel en multilib.
Compilez le paquet :
make configure-host make
Voici la signification des options de make :
configure-host
Ceci contrôle 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.21.1/include/libiberty.h /tools/include
Les détails de ce paquet sont situés dans Section 10.15.2, “Contenu de Binutils.”