5.4. GCC-3.4.3 - Passe 1

Le paquet GCC contient la collection de compilateurs GNU, qui inclut les compilateurs C et C++.

Temps de construction estimé : 4,4 SBU
Espace disque requis : 219 Mo
Dépendances de l'installation : Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed et Texinfo

5.4.1. Installation de GCC

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 GCC.

La documentation de GCC recommande de ne pas construire GCC dans le répertoire des sources mais dans un répertoire de construction dédié :

mkdir -v ../gcc-build
cd ../gcc-build

Préparez la compilation de GCC :

../gcc-3.4.3/configure --prefix=/tools \
    --libexecdir=/tools/lib --with-local-prefix=/tools \
    --disable-nls --enable-shared --enable-languages=c

Voici la signification des options de configure :

--with-local-prefix=/tools

Le but de cette option est de supprimer /usr/local/include du chemin de recherche des fichiers include de gcc. Ce n'est pas absolument essentiel ; néanmoins, c'est une aide pour minimiser l'influence du système hôte.

--enable-shared

Cette option permet la construction de libgcc_s.so.1 et libgcc_eh.a. Disposer de libgcc_eh.a nous assure que le script configure de Glibc (le prochain paquet à compiler) produira de bons résultats.

--enable-languages=c

Cette option nous assure que seul le compilateur C sera construit.

Continuez avec la compilation du paquet :

make bootstrap

Voici la signification des paramètres de make :

bootstrap

Cette cible ne compile pas GCC une seule fois mais plusieurs fois. Il utilise les programmes compilés dans le premier tour pour se compiler une deuxième fois, puis une troisième fois. Il compare alors les deuxième et troisième compilations pour s'assurer qu'il arrive à se reproduire lui-même sans fautes, ce qui semble vouloir dire qu'il a été compilé correctement.

La compilation est maintenant terminée. À ce point, la suite de tests devrait être lancée. Mais, comme nous l'avons dit plus tôt, l'ensemble de travail de la suite de tests 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.

Installez le paquet :

make install

En touche finale, créez un lien symbolique. Beaucoup de programmes et de scripts lancent cc au lieu de gcc, ceci pour conserver des programmes génériques et donc utilisables sur tout type de système Unix où le compilateur GNU C n'est pas toujours installé. Utiliser cc permet de libérer l'administrateur système dans son choix du compilateur C à installer.

ln -vs gcc /tools/bin/cc

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