OldGentooWiki:Migration de Gcc
De Gentoo-Quebec.
Index entretien et sauvegardes
Sommaire |
Mise en contexte
Lorsqu'il y a une mise-à-jour de Gcc, soit le compilateur C et C++ sous Linux, cela a beaucoup d'impacts sous Gentoo, car on compile tous nos logiciels.
Introduction
Tout d'abord, lorsqu'il y a une mise-à-jour majeure de Gcc, le site de Gentoo.org va produire une nouvelle et surtout un guide de migration la plupart du temps. On attend par mise-à-jour majeure : GCC 4.1 vers GCC 4.3 ou GCC 4.3 vers GCC 4.4.
Préparation de la migration
Avant de migrer de version de Gcc, il faut s'assurer que votre Gentoo est à jour:
Par exemple, la dernière commande peut vous indiquer ceci:
Ce résultat indique que vous utilisez Gcc 4.1.2 et que la version 4.3.2 est disponible sur votre Gentoo.
Migration
Sélection du nouveau compilateur
Maintenant vous devez lancer la commande suivante:
où i686-pc-linux-gnu-4.3.2 repréesente votre version de compilateur.
Vous pouvez que la version de Gcc que vous avez sélectionné est maintenant active:
Actualisation du profile
Suite au changement de compilateur, vous devez recharger votre profile pour que le nouveau compilateur soit prit en compte dorénavant.
Installation de libtool
Utilisation de nouveaux Cflags
Vous devez vérifier si vous pouvez ajouter des options d'optimisation ou carrément en enlever dans votre fichier /etc/make.conf. Par exemple, la ligne -march=nocona devient -march=native pour toutes les architectures Intel et AMD depuis GCC 4.3.2.
Pour plus de détail:
CFLAGS= "-O2 -march=pentium4 -pipe -fomit-frame-pointer"
CHOST= "i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
Devient à partir de Gcc 4.3.2:
CFLAGS= "-O2 -march=native -pipe -fomit-frame-pointer"
CHOST= "i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
Devient à partir de Gcc 4.3.2:
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j5"
Devient à partir de Gcc 4.3.2:
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j5"
CFLAGS="-O2 -march=nocona -pipe"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j5"
Devient à partir de Gcc 4.3.2:
CFLAGS="-O2 -march=native -pipe"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j5"
CFLAGS="-march=native -msse4 -msse4.1 -msse4.2 -mcx16 -msahf -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j9"
Recompilation de votre Gentoo
Maintenant que votre compilateur utilise la nouvelle version de celui-ci, vous devez recompiler au grand complet votre Gentoo.
Ces commandes vont recompiler votre système toolchain en plus de recompiler
tous vos programmes.
Recompilation du noyau
Par la suite, vous devez recompiler votre noyau, sinon vous ne serez pas capable
de redémarrer votre Gentoo:
# time make && make modules install
# cp arch/i386/boot/bzImage /boot/kernel-version


