Les détails sur ce paquet sont disponibles dans Section 6.14.2, « Contenu de GCC. »
Le paquet GCC contient la collection de compilateurs GNU, qui inclut les compilateurs C et C++.
GCC exige maintenant les paquets GMP et MPFR. Comce il se peut que ces paquets ne soient pas inclus dans votre distribution hôte, ils vont être compilés avec GCC.
tar -jxf ../mpfr-2.3.2.tar.bz2 mv mpfr-2.3.2 mpfr tar -jxf ../gmp-4.2.4.tar.bz2 mv gmp-4.2.4 gmp
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 :
CC="gcc -B/usr/bin/" ../gcc-4.3.2/configure --prefix=/tools \ --with-local-prefix=/tools --disable-nls --disable-shared --disable-libssp \ --enable-languages=c
Voici la signification des options de configure :
CC="gcc
-B/usr/bin/"
Ceci oblige gcc
à préférer l'éditeur de liens du système hôte dans
/usr/bin
. C'est nécessaire sur
certains systèmes hôtes où le nouveau ld compilé dans la section
précédente n'est pas compatible avec le gcc du système hôte.
--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.
--disable-shared
Ce paramètre oblige GCC à lier ses bibliothèques internes de manière statique. On procède ainsi pour éviter les problèmes avec le système hôte.
--disable-libssp
Ce paramètre empêche un conflit avec les vieilles versions de Glibc, qui peut faire échouer la compilation.
--enable-languages=c
Cette option nous assure que seul le compilateur C sera construit. C'est le seul langage actuellement nécessaire.
La commande suivante ne va pas compiler GCC qu'une fois mais plusieurs fois. Elle 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 proprement. Cela s'appelle le « bootstrapping ». Compiler Glibc de cette façon assure que GCC est compilé correctement et c'est à présent la configuration par défaut pour le paquet actuel. Continuez avec la compilation du paquet :
make
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
L'utilisation de --disable-shared
signifie que le
fichier libgcc_eh.a
n'est pas créé et
installé. Le paquet Glibc dépend de cette bibliothèque puisqu'il
utilise -lgcc_eh
à
l'intérieur de son système de construction. On peut satisfaire
cette dépendance en créant un lien symbolique vers libgcc.a
, puisque ce fichier va finir par
contenir les objets normalement contenus dans libgcc_eh.a
.
ln -vs libgcc.a `gcc -print-libgcc-file-name | \ sed 's/libgcc/&_eh/'`
En touche finale, créez un lien symbolique. Beaucoup de programmes 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. »