OldGentooWiki:Migration de Gcc

De Gentoo-Quebec.

(Redirigé depuis Migration de Gcc)

Go-previous.png Index entretien et sauvegardes


Gentoo-quebec+Funtoo-quebec.png

Guide de Migration de Gcc


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.

Emblem-documents.png
Note !
La migration de Gcc 4.3.2 vers 4.3.3 ne nécessite pas d'exécuter cette procédure.

Préparation de la migration

Avant de migrer de version de Gcc, il faut s'assurer que votre Gentoo est à jour:

Gnome-dev-computer.png
# eix-sync
# emerge -auDNv world
# gcc-config -l

Par exemple, la dernière commande peut vous indiquer ceci:

Gnome-dev-computer.png
# gcc-config -l
gcc-config i686-pc-linux-gnu-4.1,2 *
gcc-config i686-pc-linux-gnu-4.3.2

Ce résultat indique que vous utilisez Gcc 4.1.2 et que la version 4.3.2 est disponible sur votre Gentoo.

Warning 64.png
Attention !
Le compilateur commence par x86_64 au lieu de i686 pour les architectures 64 bits..
Gnome-dev-computer.png
# gcc-config -l
x86_64-pc-linux-gnu-4.1.2 *
x86_64-pc-linux-gnu-4.3.2

Migration

Sélection du nouveau compilateur

Maintenant vous devez lancer la commande suivante:

Gnome-dev-computer.png
# gcc-config i686-pc-linux-gnu-4.3.2

i686-pc-linux-gnu-4.3.2 repréesente votre version de compilateur.

Warning 64.png
Attention !
Le compilateur commence par x86_64 au lieu de i686 pour les architectures 64 bits..
Gnome-dev-computer.png
# gcc-config x86 64-pc-linux-gnu-4.3.2

Vous pouvez que la version de Gcc que vous avez sélectionné est maintenant active:

Gnome-dev-computer.png
# gcc-config -l
gcc-config i686-pc-linux-gnu-4.1,2
gcc-config i686-pc-linux-gnu-4.3.2 *
Warning 64.png
Attention !
Le compilateur commence par x86_64 au lieu de i686 pour les architectures 64 bits..
Gnome-dev-computer.png
# gcc-config -l
x86_64-pc-linux-gnu-4.1.2
x86_64-pc-linux-gnu-4.3.2 *

Actualisation du profile

Suite au changement de compilateur, vous devez recharger votre profile pour que le nouveau compilateur soit prit en compte dorénavant.


Gnome-dev-computer.png
# env-update
# source /etc/profile

Installation de libtool

Gnome-dev-computer.png
# emerge --oneshot -av 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:

Info 64.png
Information !
Voici les paramètres de compilation d'un Pentium 4 en 32 bits.
Fichier : /etc/make.conf
CFLAGS= "-O2 -march=pentium4 -pipe -fomit-frame-pointer"

CHOST= "i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j2"

Devient à partir de Gcc 4.3.2:

Fichier : /etc/make.conf
CFLAGS= "-O2 -march=native -pipe -fomit-frame-pointer"

CHOST= "i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j2"
Info 64.png
Information !
Voici les paramètres de compilation d'un Dual-Core 2 en 32 bits.
Fichier : /etc/make.conf
CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j3"

Devient à partir de Gcc 4.3.2:

Fichier : /etc/make.conf
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j3"
Info 64.png
Information !
Voici les paramétres de compilation d'un Quad-Core en 32 bits.
Fichier : /etc/make.conf
CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j5"

Devient à partir de Gcc 4.3.2:

Fichier : /etc/make.conf
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j5"
Info 64.png
Information !
Voici les paramètres de compilation d'un Quad-Core en 64 bits.
Fichier : /etc/make.conf
CFLAGS="-O2 -march=nocona -pipe"

CHOST="x86_64-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j5"

Devient à partir de Gcc 4.3.2:

Fichier : /etc/make.conf
CFLAGS="-O2 -march=native -pipe"

CHOST="x86_64-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j5"
Info 64.png
Information !
Voici les paramètres de compilation d'un CoreI7 64 bits.
Fichier : /etc/make.conf
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.

Gnome-dev-computer.png
# emerge -efav system
# emerge -eav system
# emerge -eav world

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:

Gnome-dev-computer.png
# cd /usr/src/linux
# time make && make modules install
# cp arch/i386/boot/bzImage /boot/kernel-version
Warning 64.png
Attention !
Noyau 64 bits:
Gnome-dev-computer.png
# cp arch/x86_64/boot/bzImage /boot/kernel-version
Emblem-documents.png
Note !
kernel-version représente la version du noyau que vous utilisez présentement.

Outils personnels