Installer Binutils-2.14 - Pass 1

Estimation du temps de construction :   1,0 SBU
Estimation de l'espace disque requis :  194 Mo

Contenu de Binutils

Binutils est une collection d'outils de développement de logiciels contenant un éditeur de liens, un assembleur et d'autres outils pour travailler avec des fichiers objet et des archives.

Programmes installés : addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings et strip

Bibliothèques installés : libiberty.a, libbfd.[a,so] et libopcodes.[a,so]

Dépendances d'installation de Binutils

Binutils dépend de Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

Installation de Binutils

Il est important que Binutils soit le premier package à être 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.

Note : Même si Binutils est un package important de l'ensemble des outils, nous n'allons pas lancer la suite de tests aussi tôt. Tout d'abord, les éléments de la suite de tests ne sont pas encore en place. Ensuite, les programmes de la première passe seront bientôt écrasés par ceux de la seconde passe.

Ce package est connu pour mal se comporter si vous changez les options d'optimisation par défaut (en incluant les options -march et -mcpu). Donc, si vous avez défini des variables d'environnement qui surchargent les optimisations pas défaut, telles que CFLAGS et CXXFLAGS, nous vous recommandons de supprimer cette initialisation lors de la construction de Binutils.

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 ../binutils-build
cd ../binutils-build

Note : Si vous voulez que les valeurs SBU listées dans le reste du livre vous soient utiles, vous devez mesurer le temps pris pour construire ce package. Pour cela, vous pouvez faire quelque chose comme ça : time { ./configure ... && ... && ... && make install; }.

Maintenant, préparez la compilation de Binutils :

../binutils-2.14/configure \
    --prefix=/tools --disable-nls

La signification des options de configure est :

Continuez avec la compilation du package :

make configure-host
make LDFLAGS="-all-static"

La signification des paramètres de make est :

Enfin, installez le package :

make install

Maintenant, préparez l'éditeur de liens pour le "verrouillage" de Glibc un peu plus tard :

make -C ld clean
make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib

La signification des paramètres de make est :

Avertissement

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