Le paquet GCC contient la collection de compilateurs GNU, qui inclut les compilateurs C et C++.
Déballez seulement l'archive tar gcc-core car ni le compilateur C++ ni la suite de tests ne sont nécessaires pour l'instant.
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 ../gcc-build cd ../gcc-build
Préparez la compilation de GCC :
../gcc-3.4.1/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 peut ne pas sembler intuitive au début. Néanmoins,
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 au lieu de la simple archive gcc-core.
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. À 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 -s gcc /tools/bin/cc
Les détails sur ce paquet sont disponibles dans la section intitulée « Contenu de GCC »