5.4. Binutils-2.18 - Passe 1

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

Temps de construction estimé : 1 SBU
Espace disque requis : 213 Mio

5.4.1. Installation de Binutils

Il est important que Binutils soit le premier paquet compilé parce que Glibc et GCC réalisent différents tests sur l'éditeur de liens et l'assembleur disponibles pour déterminer leur propres fonctionnalités à activer.

Binutils ne reconnaît pas les versions de Texinfo supérieures à 4.9. Réparez ce problème en appliquant le patch suivant :

patch -Np1 -i ../binutils-2.18-configure-1.patch

La documentation de Binutils recommande de construire Binutils en dehors du répertoire des sources, c'est-à-dire dans un répertoire de construction dédié :

mkdir -v ../binutils-build
cd ../binutils-build
[Note]

Note

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 trois commandes dans une commande time de cette façon : time { ./configure ... && make && make install; }

Maintenant, préparez la compilation de Binutils :

CC="gcc -B/usr/bin/" ../binutils-2.18/configure \
    --prefix=/tools --disable-nls --disable-werror

Voici la signification des options de configure :

CC="gcc -B/usr/bin/"

Cela oblige gcc à préférer l'éditeur de liens du système hôte dans /usr/bin. C'est nécessaire sur certains systèmes hôtes où le nouveau ld compilé ici n'est pas compatible avec le gcc du système hôte.

--prefix=/tools

Ceci indique au script configure de se préparer à installer les programmes Binutils dans le répertoire /tools.

--disable-nls

Ceci désactive l'internationalisation comme i18n car ce n'est pas nécessaire pour des 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.

Continuez avec la compilation du paquet :

make

La compilation est maintenant terminée. Normalement, la suite de tests devrait être lancée mais, à ce moment, l'ensemble de travail de la suite de tests (Tcl, Expect et DejaGnu) n'est pas encore en place. Les bénéfices à lancer les tests maintenant seraient minimes car les programmes de la première passe seront bientôt remplacés par ceux de la seconde.

Installez le paquet :

make install

Ensuite, préparez l'éditeur de liens pour la phase d'« ajustement » un peu plus tard :

make -C ld clean
make -C ld LIB_PATH=/tools/lib
cp -v ld/ld-new /tools/bin

Voici la signification des paramètres de make :

-C ld clean

Ceci indique au programme make de supprimer tous les fichiers compilés du sous-répertoire ld.

-C ld LIB_PATH=/tools/lib

Cette option reconstruit tout ce qui se trouve dans le sous-répertoire ld. Spécifier la variable makefile LIB_PATH en ligne de commande nous autorise à écraser la valeur par défaut et à la faire pointer vers notre emplacement temporaire des outils. La valeur de cette variable spécifie le chemin de recherche des bibliothèques par défaut pour l'éditeur de liens. Cette préparation est utilisée plus tard dans le chapitre.

Les détails sur ce paquet sont disponibles dans Section 6.11.2, « Contenu de Binutils. »