GCC-3.3.3 - Passe 1

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

Temps de construction approximatif :  4,4 SBU
Espace disque requis :                411,7 Mo

L'installation de GCC dépend de Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

Installation de GCC

Déballez seulement l'archive tar GCC-core car nous n'allons pas avoir besoin du compilateur C++ et de la suite de tests pour l'instant.

Ce paquet 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 par défaut, telles que CFLAGS et CXXFLAGS, nous vous recommandons de supprimer cette initialisation lors de 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 ../gcc-build
cd ../gcc-build

Préparez la compilation de GCC :

../gcc-3.3.3/configure --prefix=/tools \
    --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, vous voulons minimiser l'influence du système hôte et ceci nous semble un point intéressant dans ce but.

  • --enable-shared : cette option peut ne pas sembler intuitive au début. Mais en l'utilisant, elle permet la construction de libgcc_s.so.1 et libgcc_eh.a, et disposer de libgcc_eh.a nous assure que le script configure de Glibc (le prochain paquet à compiler) produira de bons résultats. Notez que les binaires gcc seront toujours liés statiquement car ceci est contrôlé par la valeur -static de BOOT_LDFLAGS lors de la prochaine étape.

  • --enable-languages=c : cette option nous assure que seul le compilateur C sera construit. Cette option n'est nécessaire que si vous avez téléchargé et déballé l'archive tar GCC complète.

Continuez avec la compilation du paquet :

make BOOT_LDFLAGS="-static" bootstrap

Voici la signification des paramètres de make :

  • BOOT_LDFLAGS="-static" : ceci indique à GCC de lier ses programmes statiquement.

  • 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 et, à ce point, nous devrions lancer la suite de tests. Mais, comme nous l'avons dit plus tôt, l'ensemble de travail de la suite de tests n'est pas encore en place. De toute façon, il y aurait peu d'intérêt à lancer les tests car les programmes de la première passe seront bientôt remplacés.

Maintenant, installez le paquet :

make install

En touche finale, nous créons 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. Tout le monde n'a pas le compilateur GNU C installé. Utiliser cc permet de libérer l'administrateur système dans son choix du compilateur C à installer, tant qu'un lien symbolique est créé :

ln -s gcc /tools/bin/cc

Les détails sur ce paquet sont disponibles dans la section intitulée « Contenu de GCC ».