OldGentooWiki:Recompilation Toolchain
De Gentoo-Quebec.
Cette page est actuellement en construction. SVP, veuillez ne pas toucher à son contenu tant et aussi longtemps que ce message apparaît en début de page.
Index entretien et sauvegardes
Sommaire |
Mise en contexte
Tout d'abord, avant d'expliquer quoi que ce soit, il est vraiment important de dire que ce sujet est vraiment un des sujets qui peut déclencher une guerre entre les utilisateurs, car il y a 2 écoles de pensée à ce sujet.
À l'époque, j'avais posté une question sur le forum de Gentoo et on eu plusieurs excellente réponses : Emerge -e system Twice (Myth or Reality).
Ce petit guide va prendre en compte les réponses de ce sujet en plus d'expliquer à fond qu'est-ce que c'est une Toolchain au juste.
Introduction
La GNU toolchain est en fait une série de paquetages qui, une fois déployés sur votre machine, vont vous permettre de pouvoir construire et déployer la quasi-totalité des paquetages constituant Gentoo (certains requièrent quelques utilitaires additionnels comme cmake par exemple) au travers de la commande emerge. Cette toolchain est composée des paquetages suivants :
| Package | Description | Commandes contenues (non-exhautivement) |
|---|---|---|
| GNU make | Interprête les directives de compilation d'un programme contenues dans les fameux fichiers Makefile. | make |
| GNU Compiler Collection (GCC) | Ensemble de compilateurs (C/C++ mais aussi Objective C/C++, FORTRAN) | gcc, g++, gfortran |
| GNU Binutils | Diverses commandes de manipulations de fichiers binaires (assembleur, éditeur de liens...). Ces commandes sont une dépendance de la GNU compiler collection. | ld,as,nm,objdump,ranlib,ar... |
| GNU Bison | Générateur de squelette de parseur | bison |
| GNU m4 (macros) | Implémentation GNU du traditionnel processeur de macro *NIX. GNU M4 est compatible *NIX SYSTEM V R4 et est principalement utilisé par GNU Autoconf. | m4 |
| GNU Debugger (GDB) | Debugger GNU (ligne de commande). | gdb |
| GNU Build System (autotools) | Contient une série d'utilitaires utilisés par GCC. | automake, autoheaders, autoconf |
l'implémentation GNU de la LibC (glibc) ne figure pas comme faisant pas partie de cette suite d'outils. Bien que la glibc se retrouve sur énormément de systèmes elle ne constitue nullement un passage obligatoire (elibc constitue une alternative).
Changement de version de Gcc avec un système existant
Tout d'abord, dans ce genre de situation, vous devez bien sûr recompiler votre Toolchain ainsi que tous les packages de votre Gentoo, car vous voulez utiliser au maximum cette nouvelle version.
Pour ce faire, vous devez lancer la commande suivante :
# emerge -auDNv world # gcc-config -l # gcc-config nouvelle_version_du_compilateur # emerge -av sys-kernel/linux-headers sys-libs/glibc sys-devel/binutils-config sys-devel/binutils sys-devel/gcc-config sys-devel/gcc # emerge sys-libs/glibc sys-devel/binutils sys-devel/gcc # emerge -e system # emerge -e world
# emerge -auDNv world # gcc-config -l # gcc-config nouvelle_version_du_compilateur # emerge -e system # emerge -e system # emerge -e world
La méthode Geek est presque identique à la méthode minimale, par contre on évite de recompiler quelques packages pour rien. Un Geek va vouloir s'assurer que tout est parfait et c'est le meilleur moyen pour y arriver.
Recompilation de la Toolchain lors de votre installation initiale
Lorsque vous installez votre Gentoo pour la première fois, vous allez sûrement changer vos Cflags et autre. Dans ce genre de situation, vous allez devoir lancer la commande suivante :
# emerge -e system # emerge -e system
Ceci est dans le but d'obtenir une Toolchain intègre, car la première fois que votre Toolchain va se compiler,vous allez utiliser le compilateur optimisé avec les valeurs par défaut. Par contre lors de la seconde compilation du système, cette fois-ci, vous allez utiliser votre propre compilateur avec votre propre configuration de Cflags.



