5.3. Binutils-2.15.94.0.2.2 - 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,0 SBU
Espace disque requis : 179 Mo
Dépendances de l'installation : Bash, Bison, Coreutils, Diffutils, Flex, GCC, Gettext, Glibc, Grep, M4, Make, Perl, Sed et Texinfo

5.3.1. Installation de Binutils

Il est important que Binutils soit le premier paquet compilé parce que à la fois 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.

Ce paquet est connu pour avoir des soucis quand les options d'optimisation par défaut (en incluant les options -march et -mcpu) sont modifiées. Donc, si des variables d'environnement qui surchargent les optimisations par défaut, telles que CFLAGS et CXXFLAGS, ont été définies, supprimez cette initialisation pour la construction de Binutils.

Si vous construisez à partir d'un hôte utilisant Gcc-4 ou ultérieur, il est nécessaire de corriger la première construction de cette version de Binutils pour qu'il puisse être compilé par le système hôte.

patch -Np1 -i ../binutils-2.15.94.0.2.2-gcc4-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 :

../binutils-2.15.94.0.2.2/configure --prefix=/tools --disable-nls

Voici la signification des options de configure :

--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 car ce n'est pas nécessaire pour des outils temporaires.

Continuez avec la compilation du paquet :

make

La compilation est maintenant terminée. Normalement, la suite de tests devrait être lancé 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

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 LDFLAGS="-all-static" LIB_PATH=/tools/lib

Cette option reconstruit tout ce qui se trouve dans le sous-répertoire ld. Spécifier la variable LIB_PATH en ligne de commande du makefile 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.

[Avertissement]

Avertissement

Ne supprimez pas encore les répertoires de construction et des sources dont vous aurez encore besoin dans leur état actuel un peu plus tard dans ce chapitre.

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