GCC-3.3.3

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

Temps de construction approximatif :  11,7 SBU
Espace disque requis :                294 Mo

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

Installation de GCC

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.

Déballez l'archive tar GCC-core et GCC-g++. Ils atterriront dans le même répertoire. Vous devez extraire le paquet GCC-testsuite. Le paquet GCC complet contient encore plus de compilateurs. Les instructions pour leur construction sont disponibles sur http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html.

Tout d'abord, appliquez seulement le correctif No-Fixincludes (et pas Specs ) utilisé aussi dans le chapitre précédent :

patch -Np1 -i ../gcc-3.3.3-no_fixincludes-1.patch

Maintenant, appliquez une substitution sed qui supprimera l'installation de libiberty.a. Nous voulons utiliser la version de libiberty.a fournie par Binutils :

sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.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 ../gcc-build
cd ../gcc-build

Maintenant, préparez la compilation de GCC :

../gcc-3.3.3/configure --prefix=/usr \
    --enable-shared --enable-threads=posix \
    --enable-__cxa_atexit --enable-clocale=gnu \
    --enable-languages=c,c++

Compilez le paquet :

make
[Important]

Important

La suite de tests pour GCC dans cette section est considérée critique. Notre conseil est de ne pas la laisser passer quelque soient les circonstances.

Testez les résultats mais ne vous arrêtez pas aux erreurs (vous vous rappellerez des quelques-unes connues) :

make -k check

Les notes de la suite de tests sur la section intitulée « GCC-3.3.3 - Passe 2 » sont toujours très appropriées ici. Assurez-vous de vous y référer si vous avez un doute.

Maintenant, 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 -s ../usr/bin/cpp /lib

Beaucoup de paquets utilisent le nom cc pour appeller le compilateur C. Pour satisfaire ces paquets, créez un lien symbolique :

ln -s gcc /usr/bin/cc
[Note]

Note

À ce moment, il est fortement recommandé de répéter les vérifications que nous avons réalisé plus tôt dans ce chapitre. Référez-vous à la section intitulée « Ré-ajuster l'ensemble de nos outils » et répétez la vérification. Si les résultats sont mauvais, alors il y a des chances pour que vous ayez mal appliqué le correctif GCC Specs à partir de Chapitre 5.

Contenu de GCC

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

Courtes descriptions

cpp est le préprocesseur C. Il est utilisé par le compilateur pour l'extension des instructions #include et #define dans les fichiers sources.

g++ est le compilateur C++.

gcc est le compilateur C. Il est utilisé pour traduire le code source d'un programme en code assembleur.

gccbug est un script shell utilisé pour aider à la création de bons rapports de bogues.

gcov est un outil de tests. Il est utilisé pour analyser les programmes et savoir où des optimisations seraient suivies du plus d'effet.

libgcc* contient un support en exécution pour gcc.

libstdc++ est la bibliothèque standard C++. Elle contient les fonctions les plus fréquemment utilisées.

libsupc++ fournit des routines de support pour le langage de programmation C++.