10.10.1. Installation de GCC
Le correctif suivant active des corrections d'erreurs de compilation avec le noyau :
patch -Np1 -i ../gcc-4.2.4-PR31490-1.patch
Appliquez le correctif suivant pour que GCC se lie à /lib au
lieu de /lib64 :
patch -Np1 -i ../gcc-4.2.4-pure64-1.patch
Appliquez une substitution sed qui va supprimer l'installation de
libiberty.a
. La
version of libiberty.a
fournie par Binutils sera utilisée à la
place :
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
GCC fournit un script gccbug qui détecte la
présence de mktemp au moment de la compilation et écrit les résultats dans un test.
Si mktemp n'est pas trouvé, le script générera des noms moins aléatoires
pour les fichiers temporaires. Nous installerons mktemp plus tard, et la
commande sed suivante simulera sa présence :
sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in
La documentation de GCC recommande de construire GCC en dehors
du répertoire source, c'est-à-dire dans un répertoire dédié :
mkdir -v ../gcc-build
cd ../gcc-build
Préparez la compilation de GCC :
../gcc-4.2.4/configure --prefix=/usr \
--libexecdir=/usr/lib --enable-shared --enable-threads=posix \
--enable-__cxa_atexit --enable-c99 --enable-long-long \
--enable-clocale=gnu --enable-languages=c,c++ \
--disable-multilib --disable-libstdcxx-pch
Compilez le paquet :
make bootstrap
Important
Dans cette section, la suite de tests pour GCC est considérée
critique. Ne les sautez sous aucun prétexte.
Testez les résultats mais ne vous arrêtez pas aux
erreurs :
make -k check
L'option -k
est utilisé pour que la suite de test s'exécute jusqu'à la fin et ne
s'arrête pas au premier échec. La suite de tests de GCC est très complète et il est presque certain qu'elle générera
quelques échecs. Pour recevoir un résumé des résultats de la suite de tests, lancez :
../gcc-4.2.4/contrib/test_summary
Pour n'avoir que les résumés, redirigez la sortie vers
grep -A7 Summ
.
Quelques échecs inattendus sont inévitables. Les développeurs
de GCC connaissent ces problèmes, mais ne les ont pas encore
résolus.
Installez le paquet :
make install
Quelques paquets s'attendent à ce que le préprocesseur C soit
installé dans le répertoire
/lib
Pour supporter ces
paquets, créez ce lien symbolique :
ln -sv ../usr/bin/cpp /lib
Beaucoup de paquets utilisent le nom cc
pour appeler le compilateur C. Pour satisfaire ces paquets, créez un
lien symbolique :
ln -sv gcc /usr/bin/cc