# [GCC] Gcc sur amd64 multilib ne se compile plus

## titoucha

Je n'arrive plus à compiler Gcc 4.1.1 et Glibc en multilib sur un amd64 et je suis obligé de garder la compatibilité 32bits pour les drivers ati d'après ce que ati indique.

Bon je voudrais en premier m'occuper de GCC.

- Il est compilé en multilib mais refuse de se recompiler, il compile bien les autre programme sauf la glibc qui elle aussi est en multilib.

- J'ai recompilé avec emerge -e tout sauf gcc, glibc.

- J'ai vérifier le compilateur par défaut avec eselect c'est ok.

- J'ai vérifié le fichier de configuration de eselect, je le met. 

```
[global]

        version=x86_64-pc-linux-gnu-4.1.1

        binpath=/usr/x86_64-pc-linux-gnu/gcc-bin/4.1.1

        manpath=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.1/man

        infopath=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.1/info

        alias_cc=gcc

        stdcxx_incdir=g++-v4

        bin_prefix=x86_64-pc-linux-gnu

[x86-vanilla]

        ctarget=i686-pc-linux-gnu

        ldpath=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/32

        cflags=-m32 -L/emul/linux/x86/lib -L/emul/linux/x86/usr/lib

[amd64-vanilla]

        ctarget=x86_64-pc-linux-gnu

        ldpath=/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1

```

- Pour finir le code d'erreur, on voit bien qu'il ne peut pas exécuter le compilateur mais en ce moment je patauge dans la semoule. 

```
Adding multilib support to Makefile in /var/tmp/portage/gcc-4.1.1-r1/work/gcc-4.1.1/libstdc++-v3

multidirs=32

with_multisubdir=

Running configure in multilib subdirs 32

pwd: /var/tmp/portage/gcc-4.1.1-r1/work/build/x86_64-pc-linux-gnu/libstdc++-v3

Running configure in multilib subdir 32

pwd: /var/tmp/portage/gcc-4.1.1-r1/work/build/x86_64-pc-linux-gnu

mkdir 32

configure: creating cache ./config.cache

checking build system type... x86_64-pc-linux-gnu

checking host system type... x86_64-pc-linux-gnu

checking target system type... x86_64-pc-linux-gnu

checking for a BSD-compatible install... /bin/install -c

checking whether build environment is sane... yes

checking for gawk... gawk

checking whether make sets $(MAKE)... yes

checking for x86_64-pc-linux-gnu-gcc... /var/tmp/portage/gcc-4.1.1-r1/work/build/./gcc/xgcc -B/var/tmp/portage/gcc-4.1.1-r1/work/build/./gcc/ -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include  -m32

checking for C compiler default output file name... a.out

checking whether the C compiler works... configure: error: cannot run C compiled programs.

If you meant to cross compile, use `--host'.

See `config.log' for more details.

make[2]: *** [configure-target-libstdc++-v3] Erreur 1

make[2]: quittant le répertoire « /var/tmp/portage/gcc-4.1.1-r1/work/build »

make[1]: *** [all] Erreur 2

make[1]: quittant le répertoire « /var/tmp/portage/gcc-4.1.1-r1/work/build »

make: *** [profiledbootstrap] Erreur 2

!!! ERROR: sys-devel/gcc-4.1.1-r1 failed.

Call stack:

  ebuild.sh, line 1543:   Called dyn_compile

  ebuild.sh, line 936:   Called src_compile

  ebuild.sh, line 1252:   Called toolchain_src_compile

  toolchain.eclass, line 24:   Called gcc_src_compile

  toolchain.eclass, line 1528:   Called gcc_do_make

  toolchain.eclass, line 1402:   Called die

!!! emake failed with profiledbootstrap

!!! If you need support, post the topmost build error, and the call stack if relevant.
```

Alors en bref HHHEEEEEEELLLLLPPPPPP   :Confused: 

----------

## terminou

Salut Compagnon de meme galere!!

j'ai le meme probleme que toi maintenant sur mon A64. j'avais fait un post similaire pour la gentoo pour x86 et la seule soluce a été de tout réinstaller   :Crying or Very sad:  .

j'avais avoir la flemme de tout recommancer car le CD 2006.0 et 2006.1 ne contienne toujours de pilote pour carte WIFI à base de RT2500. ca va etre encore galere de recommer   :Crying or Very sad: 

si tu trouves un moyen pour résoudre ce pb tiens nous au courant.

Edit: Si tu fais un eselect gcc-config list (qqch dans le genre) ca te donne quoi au fait?

Edit 2: Tiens faudrait qu'on regarde ce topic  https://forums.gentoo.org/viewtopic-t-495164.html . il semblerait qu'on doi faire un p'tit emerge -e world. arf, coment pouvait on le savoir ? quand on faut un emerge -Du world , nous ne sommes pas au courant de tout du comment migrer pour chaque paquage   :Question: 

Edit 3 : Oups je parle à un guru..  :Embarassed:  j'ai p'etre répondu à coté. Sorry  :Embarassed: 

----------

## titoucha

Il y a pas mal de temps que j'ai migré sous gcc4.1.1 et le emerge -e world est fait depuis des semaines   :Very Happy: 

Le compilateur sélectionné est correcte et l'on voit que tout est ok

```
eselect compiler list

Available compilers for CTARGET i686-pc-linux-gnu

  [1]   x86_64-pc-linux-gnu-4.1.1/x86-vanilla

Available compilers for CTARGET x86_64-pc-linux-gnu

  [2]   x86_64-pc-linux-gnu-4.1.1/amd64-vanilla

Activated profiles:

  i686-pc-linux-gnu         x86_64-pc-linux-gnu-4.1.1/x86-vanilla

  x86_64-pc-linux-gnu *     x86_64-pc-linux-gnu-4.1.1/amd64-vanilla

```

J'ai trouvé des solutions à ce problème c'est soit de passer en no-multilib soit de tout réinstaller, mais ni l'une ni l'autre ne me satisfait, il doit bien y avoir un endroit/variable qui a été modifié dans mon système pour que gcc ne se recompile plus en multilib   :Twisted Evil: 

Un "guru" complètement dans les choux   :Confused: 

----------

## xaviermiller

Regarde un peu ma réponse https://forums.gentoo.org/viewtopic-t-491857.html  :Wink: 

 *Quote:*   

> Salut,
> 
> dans bugs.gentoo.org, j'ai trouvé 2 types de bugs corrigés 
> 
> 1. En vérifiant le profile du compilateur : https://bugs.gentoo.org/show_bug.cgi?id=142620
> ...

 

----------

## titoucha

Bugzila m'a répondu une fois puis plus rien   :Confused: 

Le peut que j'en ai vu c'est un problème de sandbox qui ne se compile pas, ce qui n'est pas mon cas et la réponse à la fin était tu as un problème de multilib fixe le ça je le sais et il n'y avait pas comment le fixer. 

En bref peux tu me décrire ce que tu as fait.

----------

## xaviermiller

Salut,

Chez moi, je n'avais pas ton cas du multilib, mais j'avais les 2 symptômes des bugs mentionnés : un problème avec un lien symbolique dans ccache, et un cafouillage entre eselect-compiler et gcc-config. J'ai appliqué les 2 corrections et ça a marché.

----------

## terminou

 *XavierMiller wrote:*   

> Salut,
> 
> Chez moi, je n'avais pas ton cas du multilib, mais j'avais les 2 symptômes des bugs mentionnés : un problème avec un lien symbolique dans ccache, et un cafouillage entre eselect-compiler et gcc-config. J'ai appliqué les 2 corrections et ça a marché.

 

tu peux donner plus de details stp car je capte rien   :Embarassed:  ?

----------

## xaviermiller

oki :

Dans le bug emerge sandbox fails "C compiler cannot create executables",  j'ai appliqué la remarque  *Quote:*   

>  ------- Comment #8 From Jakub Moc  2006-08-19 01:12 PST  [reply] -------
> 
> Everyone here, could you 
> 
> emerge -C eselect-compiler; emerge =gcc-config-1*
> ...

 

Mais db ne compilait toujours pas (mais d'autres paquets qui bloquaient, bien).

Alors j'ai suivi le bug sys-libs/db-4.3.29-r2 ( C compiler cannot create executables ) qui donne comme solution de suivre le bug old gcc-config wrapper segfaults with basic flags ($CHOST-cc) *Quote:*   

>  ------- Comment #19 From Paul de Vrieze  2006-08-09 08:27 PST  [reply] -------
> 
> It seems that db triggers this as it looks for more compilers than the other
> 
> packages do. It is however still a problem with compilers posing as compilers
> ...

 

----------

## Alexis

Bonjour, 

eselect compiler a été masqué, regardez https://bugs.gentoo.org/show_bug.cgi?id=143697 et aussi les bugs dont il dépend.

Apparament ce "remplaçant" de gcc-config est buggué, notamment pour le multilib, et donne lieu à pas mal de problèmes.

Il vaut mieux utliser le bon vieux gcc-config-1 et l'utilisation de eselect compiler est fortement déconseillée maintenant.

Une fois le retour à gcc-config effectué, tu auras peut être à reconstruire ta toolchain (méthode ultra bourrine) : emerge -1 binutils gcc glibc

En espérant que ça t'aide  :Smile: 

----------

## titoucha

Je vais essayer je vous tiend au courant, je n'ai plus vraiment besoin de la multilib vu que j'ai remis une carte nvidia, mais c'est pour le principe je n'aime pas rester sur un bug non résolu.

Edit: rien à faire ça ne passe pas j'ai toujours la même faute.

PS: merci pour l'aide.

----------

## man in the hill

Salut, 

J'ai le même problème en voulant faire migrer ma tour vers gcc-4.1.1 !  j'ai réinstallé gcc-config et on verra !

C'est bizarre,  il y a qques mois ce problème n'existait pas avec gcc-4.1.1 !

                                                                                    @ +

[EDIT] J'ai utilisé la CC="gcc" , CXX="g++" pour emerger sanbbox, je verrais par la suite arrivé sur la gibc ... [/EDIT]

----------

## titoucha

J'ai fais le dernier test que je voyais en désespoir de cause, j'ai compilé gcc et glibc sur une autre machine qui elle focntionne, je les ai installés tout est ok, gcc recompile tout les programmes en 64bits mais pas ceux en 32 bits.

Il ne veut toujours ps se recompiler et recompiler glibc et je vien de découvrir qu'il ne compile pas wine non plus.

Dans les rapport de bug que xavier-miller m'a montrere il y avait par deux fois la remarque comme quoi la config multilib était foutu qu'il fallait la fixer, mais il n'y avait pas la méthode et pour l'instant je ne l'ai trouvée nul part.

----------

## titoucha

@man in the hill as-tu installé la version 4.1.1-r1 de gcc, car je suppose que c'est elle qui me met le bronx dans mon système, en ce moment je suis entraint de monter un système en chroot minimum pour faire des test et dès que j'ai mis à jour la version de gcc j'ai eu des m****.

Je reconstruit un paquet binaire de gcc4.1.1 sur mon chroot et je la passe sur mon système normal pour voire ce qui arrive.

----------

## man in the hill

 *titoucha wrote:*   

> @man in the hill as-tu installé la version 4.1.1-r1 de gcc, car je suppose que c'est elle qui me met le bronx dans mon système,
> 
> 

 

Salut,

C'est exactement ça :

```
crazy_gentoo  %

 emerge  -pv gcc

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] sys-devel/gcc-4.1.1-r1  USE="(-altivec) -bootstrap -build -doc fortran -gcj gtk -hardened -ip28 -ip32r10k -mudflap (-multilib) -multislot (-n32) (-n64) nls -nocxx -objc -objc++ -objc-gc -test -vanilla" 0 kB 

Total size of downloads: 0 kB

```

Je suis qu'a mon emerge -e system et il n'y a que sandbox qui n'était pas passé que je switch gcc-4.1.1 avec eselect compiler ou gcc-config...J'ai rajouté les variables CC="gcc" et CXX="g++" ds mon make.conf , juste le temps d'emerger sandbox, je n'ai plus eu de problème de compilation ni gcc, ni la glibc mais le problème sandbox va revenir avec en emergeant mon world , je vais appliquer la même methode mais si j'ai trop de paquets qui plantent je masquerais la version avec la révision !

                                                                          @ +

[EDIT] Après un moment d'hésitation, je reinstalle gcc-4.1.1 (sans revison) , je vais recompiler mon système ! [/EDIT]

----------

## titoucha

J'ai maintenant d'autre erreurs qui ressortent, à force de chercher depuis plusieurs jours j'ai bien dû casser quelque chose d'autre, par contre là je n'ai plus envie de chercher car avec le temps perdu j'aurais eu la possibilité de refaire plusieurs fois un système neuf   :Confused: 

Je refais complètement un nouveau système dans mon chroot et ensuite je le teste, si tout est bon je remplace l'actuel par celui que j'ai dans mon chroot.

Avec cette méthode je ne perd pas mes fichiers de configurations et je n'ai pas d'indisponibilité de ma machine.  :Smile: 

----------

## Enlight

C'est à prendre avec des pincettes mais si jamais tu tentes un truc genre /usr/portage/scripts/bootstrap${kivabien_pour_mon_arch}.sh peut être que ça te rebuildera tout ça correctement (enfin normalement) puis ensuite tu les réemerge pour être sûr.

----------

## man in the hill

 *titoucha wrote:*   

> ...par contre là je n'ai plus envie de chercher car avec le temps perdu j'aurais eu la possibilité de refaire plusieurs fois un système neuf   

 

C'est un vrai dilemne et il y un moment faut changer de stratégie   :Very Happy:   !

 *titoucha wrote:*   

> Je refais complètement un nouveau système dans mon chroot et ensuite je le teste, si tout est bon je remplace l'actuel par celui que j'ai dans mon chroot.
> 
> Avec cette méthode je ne perd pas mes fichiers de configurations et je n'ai pas d'indisponibilité de ma machine. 

 

gcc-4.1.1 est installé et j'ai lancé la compile du système (140 paquets) .

Moi, je n'ai plus mon portable sous la main et je ne supporte pas cette situation ou je pourrais me retrouver ( par ex: une coupure de courant...) dans une vrai galère ... Car quand j'ai mon portable, je le laisse compiler toutes les nouveautés et si ça plante je n'upgrade pas ma tour ... Il n'y a que comme cela que j'aime fonctionner maintenant   :Smile:  ...

Des que tu as la place pour chrooter et monter un autre système, c'est la meilleur solution ! 

                                                                  @ +

----------

## titoucha

 *Enlight wrote:*   

> C'est à prendre avec des pincettes mais si jamais tu tentes un truc genre /usr/portage/scripts/bootstrap${kivabien_pour_mon_arch}.sh peut être que ça te rebuildera tout ça correctement (enfin normalement) puis ensuite tu les réemerge pour être sûr.

 

Je vais essayer je n'ai plus grand chose à perdre.

----------

## man in the hill

Bon, gcc-4.1.1 ou gcc-4.1.1-r1 meme problème avec sandbox de mon côté qui passe en précisant le compilateur ds le make.conf  CC="gcc" et CXX="g++" .

                                                                       @ +

----------

## titoucha

Le truc d'Enlight n'a pas fonctionné j'ai donc fini par utilisé l'installation de mon chroot et je suis donc de retour avec une installation toute neuve   :Very Happy: 

----------

## man in the hill

 *titoucha wrote:*   

> Le truc d'Enlight n'a pas fonctionné j'ai donc fini par utilisé l'installation de mon chroot et je suis donc de retour avec une installation toute neuve  

 

C'est bon d'avoir un système nickel, l'esprit tranquille  et de passer à autre chose   :Laughing:   !   

Mon emerge -e system c'est bien passé à part l'épisode sandbox, je fais un peux de nettoyage avant de lancer le world ! 

                                                             @ +

----------

## titoucha

Ben oui 5 jours sur ce problème qui ma pris la tête, du coup je me suis monté un système en arch et je garde mon chroot pour faire des tests.

Je vais aussi me faire une petite sauvegarde, car la dernière était verolée.

Bonne chance pour ton emerge -e world.   :Smile: 

----------

## man in the hill

 *titoucha wrote:*   

> Bonne chance pour ton emerge -e world.  

 

Merci   :Wink:  ! 

<off> Tu as eu le temps de voir un peu ruby avant ces 5 jours de galère  ? ...</off>

----------

## titoucha

 *man in the hill wrote:*   

> 
> 
> <off> Tu as eu le temps de voir un peu ruby avant ces 5 jours de galère  ? ...</off>

 

Non pas vraiment car j'ai traduit une Faq sur le wiki fait la relecture de la GWN et en plus ma santé, donc je n'ai pas eu le temps.

En plus j'ai découvert un environnement intégré et un cour pour débutant super bien fait pour du ....... Python, je crois que je vais me lancer plutôt dans ce language car la doc y est abondante.

----------

## man in the hill

 *titoucha wrote:*   

> Non pas vraiment car j'ai traduit une Faq sur le wiki fait la relecture de la GWN et en plus ma santé, donc je n'ai pas eu le temps.

 

Je vais essayer de donner un coup sur le wiki un de ces 4 !  Tu n'as pas le temps de t'ennuyer   :Cool:  ...

 *titoucha wrote:*   

> En plus j'ai découvert un environnement intégré et un cour pour débutant super bien fait pour du ....... Python, je crois que je vais me lancer plutôt dans ce language car la doc y est abondante.

 

C'est vrai qu'il y a plus de tutos et d'infos en fr dèjà sur python que ruby ! En fait je suis tombé sur un modo de ce forum  http://www.forum.moteurprog.com/forum.php?PAGE=1&ID_Forum=21 qui est un vrai tueur en programmation ruby, on a eu qques belles discussions et des que je galère vraiment , je le contact et il m'explique les choses clairement ...  En tout cas c'est bien , tu vas nous revenir avec qques beaux scripts ou interfaces graphiques   :Very Happy:  ...

                                                                    @ +, Enjoy !

----------

## titoucha

 *man in the hill wrote:*   

>  *titoucha wrote:*   Non pas vraiment car j'ai traduit une Faq sur le wiki fait la relecture de la GWN et en plus ma santé, donc je n'ai pas eu le temps. 
> 
> Je vais essayer de donner un coup sur le wiki un de ces 4 !  Tu n'as pas le temps de t'ennuyer   ...
> 
>                                                                     @ +, Enjoy !

 

Ce serait bien car il y a du travail, par exemple j'ai traduit une faq sur les USE flags pour les débutants  comme ça maintenant le nouveau qui débarque et qui n'y comprend rien je lui donne le lien   :Wink: 

Je pense aller donner régulièrement des coups de mains sur le wiki, c'est vraiment un super complèment à la doc officielle et il y a pas mal de petit trucs supers et comme ça sa m'évite de trop bricoler mon système et de tout casser et en plus c'est utile à la communauté.

Pour ton "prof" de ruby c'est vraiment le top.

----------

## Delvin

up  :Razz: 

j'ai le meme probléme pour mes driver nvidia

commenty réactive-t-on ce foutu flag ?

----------

## man in the hill

 *Delvin wrote:*   

> up 
> 
> j'ai le meme probléme pour mes driver nvidia
> 
> commenty réactive-t-on ce foutu flag ?

 

Le multilib ? Tu as ton problème dans quel circonstance ?

                                                          @ +

----------

## Delvin

je n'ai plus les devices nvidia dans /dev par exemple, puis j'utilise quelques applications binaires 32 bits comme cedega

quand je fais un emerge -pv gcc, j'ai (-multilib) dans les USE, pourtant il est bien dans le make.conf

----------

## titoucha

Le flag pour la multilib n'a plus l'air de servir, car j'ai un système en multilib et si je fais un 

```
equery u glibc

[ Searching for packages matching glibc... ]

[ Colour Code : set unset ]

[ Legend        : Left column  (U) - USE flags from make.conf                     ]

[                  : Right column (I) - USE flags packages was installed with ]

[ Found these USE variables for sys-libs/glibc-2.4-r3 ]

 U I

 - - build        : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping.

 + + glibc-omitfp : Configure glibc with --enable-omitfp which lets the build system determine when it is safe to use -fomit-frame-pointer

 - - hardened     : activate default security enhancements for toolchain (gcc, glibc, binutils)

 - - multilib     : On 64bit systems, if you want to be able to compile 32bit and 64bit binaries

 + + nls          : Adds Native Language Support (using gettext - GNU locale utilities)

 + + nptl         : Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually)

 + + nptlonly     : Disables building the linuxthreads fallback in glibc ebuilds that support building both linuxthreads and nptl.

 - - profile      : Adds profile support to builds of packages (will likely vary from ebuild to ebuild in support)

 - - selinux      : !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur

```

on voit bien qu'il n'y a pas de flag multilib mis et si je fais 

```
emerge -vp glibc

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] sys-libs/glibc-2.4-r3  USE="-build glibc-omitfp -hardened nls nptl nptlonly -profile" 0 kB

Total size of downloads: 0 kB

```

le flag n'apparait même pas donc la gestion de la multilib passe que par le profile.

Je te conseille d'utiliser le truc qu'a donner @Enlight  *Quote:*   

> C'est à prendre avec des pincettes mais si jamais tu tentes un truc genre /usr/portage/scripts/bootstrap${kivabien_pour_mon_arch}.sh peut être que ça te rebuildera tout ça correctement (enfin normalement) puis ensuite tu les réemerge pour être sûr.

 

 ça va te reconstruire ta toolchain tout seul et tu peux même lui donner l'option -d pour qu'il te donne toutes les erreurs s'ils y en a.

----------

