# [gcc 4.6] installation/utilisation (résolu)

## mazkagaz

Bonsoir,

ayant envie de jouer avec mon nouveau gentoo, j'ai suivi partiellement ce wiki : http://www.funtoo.org/wiki/Toolchain_update

J'ai donc fait :

```
install -d /etc/portage/package.unmask

echo "=sys-devel/gcc-4.6.2" >> /etc/portage/package.unmask/toolchain

install -d /etc/portage/package.keywords

echo "=sys-devel/gcc-4.6.2 **" >> /etc/portage/package.keywords/toolchain

emerge --sync

emerge -auvD gcc
```

Une petite compilation "succesfull" plus tard, je vois que gcc-4.6 est bel et bien compilé/installé.

Cool, je vais pouvoir faire joujou : je modifie le make.conf pour mon gcc tout neuf, je lance un 

```
emerge -auvDN @world
```

Et là, il me dit, "tout est à jour mec, rentre chez ta mère."

Du coup, le doute montre le bout de son nez, je lui dis : "gcc --version #??"

Il me répond "gcc (Gentoo 4.5.3-r1 p1.0, pie-0.4.5) 4.5.3".

Alors là je reste perplexe et je lui demande "emerge --info sys-devel/gcc"

Il me répond :

blablabla puis

```
=================================================================

                        Package Settings

=================================================================

sys-devel/gcc-4.5.3-r1 was built with the following:

USE="cxx fortran gtk mudflap (multilib) nls nptl openmp (-altivec) -bootstrap -build -doc (-fixed-point) -gcj -graphite (-hardened) (-libffi) (-libssp) -lto -multislot -nocxx -nopie -nossp -objc -objc++ -objc-gc -test -vanilla"

CFLAGS="-march=native -O2 -pipe"

CXXFLAGS="-march=native -O2 -pipe"

sys-devel/gcc-4.6.2 was built with the following:

USE="cxx fortran gtk mudflap (multilib) nls nptl openmp (-altivec) -bootstrap -build -doc (-fixed-point) -gcj -go -graphite (-hardened) (-libffi) (-libssp) -multislot -nocxx -nopie -nossp -objc -objc++ -objc-gc -test -vanilla"

CFLAGS="-march=native -O2 -pipe"

CXXFLAGS="-march=native -O2 -pipe"
```

Du coup, maintenant, je suis sensé lui dire quoi pour passer à gcc-4.6 ? Je veux dire, pour de bon, pas simplement pour l'avoir dans un coin au chaud.

Merci pour vos réponses.

----------

## guilc

Un petit indice : gcc-config -l  :Wink: 

----------

## mazkagaz

merci, donc effectivement, "gcc-config -l" renvoie :

 [1] x86_64-pc-linux-gnu-4.5.3 *

 [2] x86_64-pc-linux-gnu-4.6.2

Du coup j'ai fait, au hasard, "gcc-config -h", qui m'a renvoyé :

```
Usage: gcc-config [options] [CC Profile]

Change the current cc/gcc profile, or give info about profiles.

Options:

  -C, --nocolor              Disable color output

  -O, --use-old              Use the old profile if one was selected.

  -f, --force                Make sure all config files are regenerated.

  -P, --use-portage-chost    Only set to given profile if its CHOST is the 

                             same as that set for portage in /etc/make.conf

                             (or one of other portage config files...).

  -c, --get-current-profile  Print current used gcc profile.

  -l, --list-profiles        Print a list of available profiles.

  -S, --split-profile        Split profiles into their components

  -E, --print-environ        Print environment that can be used to setup the

                             current gcc profile, or a specified one.

  -B, --get-bin-path         Print path where binaries of the given/current

                             profile are located.

  -L, --get-lib-path         Print path where libraries of the given/current

                             profile are located.

  -X, --get-stdcxx-incdir    Print path where g++ include files of the

                             given/current profile are located.

Profile names are of the form:  <CHOST>-<gcc version>

For example:                    i686-pc-linux-gnu-3.2.1
```

Là j'ai passé un moment à tout lire, puis à relire, assez perplexe à la fin, puis, en désespoir de cause, j'ai tapé "gcc-config 2"

Réponse : * Switching native-compiler to x86_64-pc-linux-gnu-4.6.2 ...

Yeepee !

Merci pour ton aide !

Maintenant, il faut que j'arrive à le forcer à tout recompiler, parce qu'il se fout complètement du "emerge -auvDN @world" (Nothing to merge).

Je vais faire un "man emerge" juste pour voir si par hasard il n'y aurait pas un --force qui débloquerait la situation.

----------

## mazkagaz

tout recompiler = "emerge -e system"

et hop, c'est parti !

Merci à vous !

----------

## xaviermiller

Bonne chance ! Certains paquets ne sont pas encore compatibles avec GCC 4.6.

Il y a un bug Gentoo et un message en anglais sur le forum pour le suivi de GCC 4.6  :Wink: 

----------

## jetboo

Ca apporte tant de perf que ca le gcc 4.6??

----------

## mazkagaz

Bonjour à tous !

Pour les bugs, je n'en ai pas vu passer un seul, pour l'instant. J'ai tout recompilé, même et surtout le noyau. Je ne dois pas être concerné par les sources qui posent problème, ou j'ai de la chance, pour l'instant.

Pour les perfs, mon idée était surtout de pouvoir passer l'option march=icorei7-avx au compilo, option disponible à partir de gcc 4.6. 

icorei7 sert pour les core i5 et core i7

icorei7-avx idem, pour les Sandy Bridge

Cf. "man gcc", faites un "/corei" et vous trouverez l'info, si vous êtes en gcc 4.6. J'ai un corei5 2500K => march=icorei7-avx

Comme d'habitude, il y a de grandes chances que ça change très peu de choses. J'ai un autre linux tout à fait opérationnel, donc je m'amuse avec la gentoo à essayer de l'optiminer à bloc. D'ailleurs, c'est pour moi l'un des intérêts majeur de gentoo, sinon, autant installer des paquets précompilés   :Wink:  et ça, je le fais déjà sur mon autre linux. Et puis, j'y peux rien si je suis un geek   :Laughing: 

----------

## xaviermiller

Salut,

Je viens de voir sur la mailing list des développeurs Gentoo que l'un des seuls gros bugs très très bloquants est Grub2.

Donc évite de compiler Grub2 avec GCC 4.6, voire même ne pas utiliser Grub de Gentoo.

----------

## d2_racing

Si mon souvenir est bon, c'est Grub1 le problème et non Grub2.

https://bugs.gentoo.org/show_bug.cgi?id=360513

Funtoo a passé à GCC 4.6 il y a plusieurs semaines et ça fonctionne nickel.

----------

## xaviermiller

au temps pour moi ; je suis un peu à la bourre après les réveillons, et j'ai lu trop rapidement le message dans la mailing list.

Un contournement possible serait d'installer grub-static.

----------

## mazkagaz

[mode_TROLL ON]

euh sinon, juste pour savoir, LILO est mort ?

[mode_TROLL OFF]

----------

## d2_racing

Mort et enterré  :Razz: 

----------

## lalebarde

Désolé de ré-ouvrir ce fil   :Razz:  . 

Ne suffirait-il pas de mettre 

```
sys-boot/grub-0.97-r10
```

 dans /etc/portage/profile/package.provided. Et ensuite de passer sur gcc 4.6 ou 4.7 pour tout recompiler   :Twisted Evil:   ?

En fait, tant qu'on ne réinstalle pas grub dans la MBR, peut-il y avoir un problème   :Question:    A ce que j'ai compris, grub est vraiment tout seul au boot et doit se débrouiller avec ce qu'il a ; il n'a même pas accès au système de fichiers.

Merci de confirmer ou le contraire.....

----------

## xaviermiller

Non, il suffit de passer à GRUB 2 ou autre chose (syslinux pour ma part : plus simple et plus stable)

----------

