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 Glibc et GCC effectuent divers tests sur la présence d'un éditeur de lien et d'un assembleur 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 \
    --enable-64-bit-bfd \
    --disable-multilib \
    --enable-gold=yes \
    --enable-plugins \
    --enable-threads \
    --disable-werror

Voici la signification des nouvelles options de configure :

AR=ar AS=as

Cela évite que Binutils ne se compile avec ${CLFS_HOST}-ar et ${CLFS_HOST}-as comme ils sont fournis par ce paquet et ne sont donc pas encore installés.

--host=${CLFS_HOST}

Lorsqu'utilisé avec --target, cela crée un exécutable pour une autre architecture qui crée des fichiers pour ${CLFS_TARGET} mais tourne sous ${CLFS_HOST}.

--target=${CLFS_TARGET}

Lorsqu'utilisé avec --host, cela crée un exécutable pour une autre architecture qui crée des fichiers pour ${CLFS_TARGET} mais tourne sous ${CLFS_HOST}.

--with-sysroot=${CLFS}

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

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

Cela indique au script configure de spécifier le chemin de recherche de bibliothèques pendant la compilation de Binutils, ce qui fait que /tools/lib est passé à l'éditeur de lien. Cela évite que l'éditeur de lien ne cherche dans les répertoires de bibliothèques de l'hôte.

--disable-nls

Cela désactive l'internationalisation car elle n'est pas utile pour les outils croisé.

--disable-multilib

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

--enable-64-bit-bfd

Cela ajoute le support 64 bit à Binutils.

--disable-werror

Cela évite que la construction ne s'arrête en cas d'avertissement 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. »