5.11. Binutils-2.28 croisé

Le paquet Binutils contient un éditeur de liens, un assembleur et d'autres outils pour gérer des fichiers objets.

5.11.1. Installation de Cross Binutils

Il est important que Binutils soit compilé 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.

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.28/configure \
    --prefix=/cross-tools \
    --host=${CLFS_HOST} \
    --target=${CLFS_TARGET} \
    --with-sysroot=${CLFS} \
    --with-lib-path=/tools/lib \
    --disable-nls \
    --disable-static \
    --disable-multilib \
    --enable-gold=yes \
    --enable-plugins \
    --enable-threads \
    --disable-werror

Voici la signification des nouvelles 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.

--host=${CLFS_HOST}

Lorsqu'elle est utilisée 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}

Lorsqu'elle est utilisée avec --host, 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}.

--with-sysroot=${CLFS}

Dit à configure de construire un éditeur de lien qui utilise ${CLFS} comme répertoire racine de recherche.

--with-lib-path=/tools/lib

Ceci 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-nls

Ceci désactive l'internationalisation car i18n n'est pas nécessaire pour les outils de compilation croisée.

--disable-multilib

Cette option désactive la construction d'un Binutils supportant le Multilib.

--disable-werror

Ceci évite que que la construction ne s'arrête dans le cas où il y aurait des avertissements du compilateur de l'hôte.

--enable-gold=yes

Cette option active la construction de l'éditeur de liens gold.

--enable-plugins

Cette option active le support des greffons.

--enable-threads

Cette option active l'édition de lien multi-threadé pour gold.

Compilez le paquet :

make

Installez le paquet :

make install

Des détails sur ce paquet se trouvent sur Section 10.17.2, « Contenu de Binutils. »