Estimation du temps de construction: 22 minutes Estimation de l'espace disque requis: 233 Mo |
Ce package est connu pour se comporter bizarrement si vous avez changé les options d'optimisation par défaut (y compris les options -march et -mcpu). GCC se comporte mieux sans. Donc, si vous avez défini des variables d'environnement qui écrasent les optimisations par défaut, comme CFLAGS et CXXFLAGS, nous vous recommendons de les annuler ou de les modifier lors de la construction de GCC. Vous avez été prévenu.
Installez GCC en lançant les commandes suivantes:
mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.1/configure --prefix=/static --enable-languages=c \ --disable-nls --disable-shared --enable-threads=posix && echo "#define HAVE_GAS_HIDDEN 1" >> gcc/auto-host.h && make BOOT_LDFLAGS=-static bootstrap && make prefix=$LFS/static install && ln -s gcc $LFS/static/bin/cc |
make BOOT_LDFLAGS=-static: Ceci est l'équivalent de LDFLAGS=-static que nous utilisons avec d'autres packages pour les compiler statiquement.
--prefix=/static: Ce n'est PAS une erreur de frappe. GCC garde en dur certains chemins lors de la compilation et nous devons donc donner /usr lors du ./configure. Nous donnons le vrai préfixe du chemin d'installation plus tard lors de la commande make install.
--enable-languages=c: Ceci crée le compilateur C. Le compilateur C++ sera construit lors du chapitre 6, quand nous reconstruirons GCC. D'autres compilateurs sont aussi disponibles. Si ils vous sont nécessaires, le paramètre --enable-languages peut être omis.
--enable-threads=posix: Ceci permet la gestion des exceptions C++ pour le code multithread.
echo "#define HAVE_GAS_HIDDEN 1": Ceci définit la directive assembleur .hidden de façon à ce que nous ne construisions pas une Glibc erronée plus tard.
ln -s gcc $LFS/static/bin/cc: This creates the $LFS/static/bin/gcc symlink which some packages need.
Dernière vérification effectuée auprès de la version 3.1.
c++, c++filt, cc (lien vers gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov, i686-pc-linux-gnu-c++, i686-pc-linux-gnu-g++, i686-pc-linux-gnu-gcc, tradcpp0
Ce sont les compilateurs C. Un compilateur transforme le code source au format texte dans un format que l'ordinateur comprends. Après qu'un code source ait été compilé en un fichier objet, un éditeur de lien va créer un fichier exécutable à partir d'un ou plusieurs de ces fichiers générés par le compilateur.
Ce sont les compilateurs C++; l'équivalent de cc et gcc, etc...
Le langage C++ procure la surcharge de fonctions, c'es-à-dire qu'il est possible d'écrire plusieurs fonctions possédant le même nom, à condition que chaque fonction utilise des paramètres de différents types). Tous les noms des fonctions C++ sont codés avec un label assembleur bas niveau (ce procédé est aussi connu sous le nom de mangling). Le programme c++filt réalise l'opération inverse; il décode les noms bas niveau en des noms de niveau utilisateur, de manière à ce que l'éditeur de liens ne confonde pas les fonctions surchargées.
collect2 assiste à la compilation de constructeurs.
cpp réalise un travail préliminaire sur un fichier source, comme inclure le contenu des fichiers d'entêtes dans ce code source. C'est une bonne idée de ne pas faire ceci manuellement pour gagner beaucoup de temps. Il suffit d'insérer une ligne comme #include <filename>. Ce préprocesseur insère le contenu de ce fichier dans le fichier source. C'est une des choses que réalise le préprocesseur.
gccbug est un script shell, utilisé pour simplifier la création de rapports de bugs.
gcov analyse les programmes pour aider à créer des codes plus efficaces, plus rapides avec une optimisation.
Aucune description actuellement disponible.
Aucune description actuellement disponible.
libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a
Fichiers de support pour gcc.
libiberty est une collection de sous-routines utilisées par différents programmmes GNU, comme getopt, obstack, strerror, strtol et strtoul.
libstdc++ est la bibliothèque C++. Elle est utilisée par les programmes C++ et contient des fonctions couramment utilisé par eux. De cette façon, le développeur n'a pas besoin d'écrire certaines fonctions (comme écrire une ligne de texte à l'écran) à partir de rien, à chaque fois qu'il crée un programme.
libsup++ procure une aide au langage de programmation c++. Entre autres choses, libsup++ contient des routines pour la gestion des exceptions.
Dernière vérification effectuée auprès de la version 2.95.3.
Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr