Estimation du temps de construction : 4,4 SBU Estimation de l'espace disque requis : 300 Mo |
Le package GCC contient le compilateur GNU, incluant les compilateurs C et C++.
Programmes installés : c++, cc (lien vers gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug et gcov
Bibliothèques installées : libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] et libsupc++.a
GCC dépend de Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
Déballez seulement l'archive tar GCC-core, car nous n'allons pas avoir besoin d'un compilateur C++ pour l'instant.
Note : Même si GCC 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 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.1/configure --prefix=/tools \ --with-local-prefix=/tools \ --disable-nls --enable-shared \ --enable-languages=c |
La signification des options de configure est :
--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 à faire 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 package à 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.
--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.
Continue avec la compilation du package :
make BOOT_LDFLAGS="-static" bootstrap |
La signification des paramètres de make est :
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 compilation pour s'assurer qu'il arrive à se reproduire lui-même sans fautes, ce qui semble vouloir dire qu'il a été compilé correctement.
Enfin, installez le package :
make install |
En touche finale, nous créons le lien symbolique /tools/bin/cc. 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 à l'administrateur système de choisir le compilateur C à installer, tant qu'un lien symbolique est créé :
ln -sf gcc /tools/bin/cc |
Précédent | Sommaire | Suivant |
Installer Binutils-2.14 - Pass 1 | Niveau supérieur | Installer Linux-2.4.22 headers |