# [ gcc glibc ]Gros probleme apres install glibc 2.4(~resolu)

## NiQoZ

Je vien (trop vite!) d'installer la glibc 2.4, suite à cette install je ne peut plus rien compiler ...

```

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 i686-pc-linux-gnu-gcc... gcc

checking for C compiler default output... configure: error: C compiler cannot create executables

check `config.log' for details.

!!! Please attach the following file when filing a report to bugs.gentoo.org:

!!! /home/gnoniqoz/portage/gzip-1.3.5-r8/work/gzip-1.3.5/config.log

!!! ERROR: app-arch/gzip-1.3.5-r8 failed.

Call stack:

  ebuild.sh, line 1933:   Called dyn_compile

  ebuild.sh, line 971:   Called src_compile

  gzip-1.3.5-r8.ebuild, line 41:   Called econf 'compile' '--exec-prefix=/'

!!! econf failed

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

```

Le config.log me dit que:

```

configure:1992: checking for C compiler default output

configure:1995: i686-pc-linux-gnu-gcc    conftest.c  >&5

/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/../../../../i686-pc-linux-gnu/bin/ld:/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libc.so: file format not recognized; treating as linker script

/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/../../../../i686-pc-linux-gnu/bin/ld:/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libc.so:5: syntax error

collect2: ld returned 1 exit status

```

Je ne peut donc plus installer de programme la solution serait de recompiler gcc mais évidement c'est impossible (avec portage...).

Je suis un peu largué je doit le dire    :Embarassed:   :Sad:   alors vos idées   :Idea:   et suggestions   :Cool:   seraient les bienvenues. 

D'av Merci .

----------

## xaviermiller

Salut,

As-tu lu ceci ?

----------

## NiQoZ

(apres une apres midi d'inacessibilité du forum je peut enfin répondre...  :Idea:   :Idea:   :Idea:  )

 *Quote:*   

> 
> 
> Salut,
> 
> As-tu lu ceci ?

 

Oui c'est la methode que j'utilise pour mes mises à jours de gcc. Mais mon probleme est que je ne peut pas compiler du tout gcc, ou tout autre programme, car gcc à une lib cassée (~libc.so)... et ne peut pas linker (ld) , et ce suite à l'installation de la nouvelle glibc-2.4    :Confused:  .

La bonne nouvelle c'est que j'ai reussi à récuperer mon systeme en compilant une glibc-2.3.6 sur un autre ordi   :Smile:  .

Mais cela dit mon problème demeure, comment upgrader ma glibc en 2.4, (passant de linuxthreads / nptl à seulement nptl car visiblement elle ne supporte plus l'ancien threading) sans casser gcc   :Twisted Evil:   ????

----------

## xaviermiller

Essaie de retrouver les fameux libcc++.so manquants, par exemple sur une live Gentoo ; place-les temporairement dans /lib et vois si ça s'arrange.

Il y a un an, lors du passage de GCC 3.3 à 3.4, j'avais aussi cassé une gentoo sur un K7; par chance, j'ai récupéré les fichiers sur le K6 d'à côté et j'ai pu réparer le système.

----------

## FreeCake

 *XavierMiller wrote:*   

> Essaie de retrouver les fameux libcc++.so manquants, par exemple sur une live Gentoo ; place-les temporairement dans /lib et vois si ça s'arrange.
> 
> Il y a un an, lors du passage de GCC 3.3 à 3.4, j'avais aussi cassé une gentoo sur un K7; par chance, j'ai récupéré les fichiers sur le K6 d'à côté et j'ai pu réparer le système.

 

Hello !

J'ai eu le meme problème ... en voulant faire un peut de nettoyage dans portage (avec l'option --prune je crois) j'avais vire la libstdc++.so.5 qui est nécessaire à phyton. Résultat plus moyen d'emerger ...

J'ai donc récupérer avec rpm2targz la librairie que me manquait et je l'avais mise dans /lib (sauf erreur). Après j'ai emergé -e mon système. 

Par contre existe-il un moyen de savoir si maintenant python utilise bien la nouvelle librairie au lieu de la libstdc++.so.5 ??

----------

## Trevoke

t'as installe glibc 2.4 ou gcc 3.4?

Ton titre et ton message disent deux choses differentes.

----------

## FreeCake

 *FreeCake wrote:*   

>  *XavierMiller wrote:*   Essaie de retrouver les fameux libcc++.so manquants, par exemple sur une live Gentoo ; place-les temporairement dans /lib et vois si ça s'arrange.
> 
> Il y a un an, lors du passage de GCC 3.3 à 3.4, j'avais aussi cassé une gentoo sur un K7; par chance, j'ai récupéré les fichiers sur le K6 d'à côté et j'ai pu réparer le système. 
> 
> Hello !
> ...

 

Bon, je me réponds à moi meme ... je suis finalement tombé sur une command qui faisait ce que je voulais

```

localhost ~ # ldd -v /usr/bin/python | grep libstd

        libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.6 (0xb7d1e000)

        /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.6:

```

----------

## NiQoZ

 *Quote:*   

> t'as installe glibc 2.4 ou gcc 3.4?
> 
> Ton titre et ton message disent deux choses differentes.

 

Ail,Ail,Ail ça m'apprendra de ne pas me relire. C'est bien la glibc 2.4 j'ai fait un ignoble lapsus   :Sad:   ( je suis confus ...)

Et je ne sait toujours pas comment installer cette glibc 2.4 sans casser mon "gcc3.4" avez vous essayez de faire cette mise à jour (~x86) ???

----------

## yoyo

On en parle justement dans "la Gentoo Weekly Newsletter" du 13 Mars 2006 : http://www.gentoo.org/news/en/gwn/20060313-newsletter.xml.

Enjoy !

----------

## NiQoZ

 *Quote:*   

> On en parle justement dans "la Gentoo Weekly Newsletter" du 13 Mars 2006 : http://www.gentoo.org/news/en/gwn/20060313-newsletter.xml. 

 

Merci yoyo il y a des choses interessantes en effet, cela dit ils ne parlent pas de problèmes avec des gcc cassés...(ou alors j'ai mal lu ...pas tres anglophone le bonhomme  :Embarassed:  ) ils parlent de compilations sans problème avec gcc4.1 (moi je l'est compilée avec gcc3.4) ainsi que de certaines incompatibiltées avec nptlonly (DVD::Rip), et d'autre problèmes notamment avec gcc4.1, mais rien de mon problème initial. 

Ayant "quickpackagé" mes glibc, disposant d'un deuxième ordi, et d'un livecd sous la main   :Cool:   je vait peut être réessayer de réinstaller cette glibc2.4 (perseverant...  :Twisted Evil:  ) mais je me demande encore comment "relinker" correctement gcc après (et pourquoi donc visiblement cela n'arrive pas aux autres. ?  :Evil or Very Mad:  )  

Mais avant cela je vais poursuivre mon investigation dans les forums.

Encore merci.

----------

## titoucha

Ce que j'ai pu retirer à droite et à gauche c'est que pour la Glibc 2.4 il est conseiller d'utiliser GCC 4.1.0, dans mon cas je n'ai pas eu de problème come toi car je l'ai compilée avec la version 4.0.2 de GCC et je n'ai plus de version 3.4.4.

Il faut faire attention avec les version de Glibc et Gcc elles sont pas mal liées.

----------

## guilc

 *titoucha wrote:*   

> Ce que j'ai pu retirer à droite et à gauche c'est que pour la Glibc 2.4 il est conseiller d'utiliser GCC 4.1.0, dans mon cas je n'ai pas eu de problème come toi car je l'ai compilée avec la version 4.0.2 de GCC et je n'ai plus de version 3.4.4.
> 
> Il faut faire attention avec les version de Glibc et Gcc elles sont pas mal liées.

 

Mouais, bof, pipo spotted la...

gcc 3.4 et glibc 2.4, ça tourne TRES bien (sur 4 machines chez moi au moins, et je pense pas être un cas particulier...)

----------

## xaviermiller

En tous cas, chez moi, j'ai cassé plusieurs paquets, dont entre autres X. Je suis en train de faire un emerge -e world et j'espère que ça arrangera le système de base (pour les erreurs de compils des satellites, j'attendrai les nouveaux ebuilds).

----------

## Jim Gentoo

Bonjour,

Ce Week-end après un emerge --deep --update world, le system a fait une mise à jour de GCC me semble t'il '(je n'ai pas beaucoup prété attention au message en fait   :Embarassed:  )

Depuis je n'arrive pas à démarré GDM, le système me dit de reconfigurer X, mais j'ai vérifier plusieur fois la config, c'est Ok...

J'ai vu après coup la doc de la mise à jour de GCC   :Confused: 

Hier, j'ai fait:

```
gcc-config 1 (pour rétablir la conf GCC par défaut ( dans mon cas la version 3.4.5 ))

source /etc/profil

emerge --oneshot -av libtool

puis

emerge -aev system
```

Mais rien y fait... toujours gdm qui ne redémarre pas...

Est-ce qu'un recomplitation de Xorg et GDM pourrait arranger le problème?

Edit: modif de la quote, car j'aivais oublié de quote la première commande...la polus importante   :Rolling Eyes: Last edited by Jim Gentoo on Fri Mar 17, 2006 8:03 am; edited 1 time in total

----------

## George Abitbol

J'ai eu des problemes aussi apres compilation de glibc 2.4, avec les librairies /lib/libc.lo.6 et /lib/lipthread.so.0, resolu avec un cp bien crade depuis une kororaa, et recompil d'une version stable.

----------

## montesq

 *Quote:*   

> et pourquoi donc visiblement cela n'arrive pas aux autres. ?

 

Euh malheureusement je suis dans la même.... situtation que toi (si ça peut te rassurer :/)

----------

## Jim Gentoo

C'est bien cette librairie qui me pose problème, d'ailleur voici le message exact:

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

/usr/bin/X: relocation error: /usr/lib/x : symbol __guard, version GLIBC_2.3.2 not defined in file libc.so.6 with link time reference

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

Failed to start the X server ( your graphical interface). It is likely that it is not set up correctly. You will need to log in on a console and reconfigure the X server. Then restart GDM

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

----------

## xaviermiller

oui, même message que toi ; je vérifie ce soir, mais apparemment la recompil de xorg semble arranger les choses...

en fait, c'est quasi-normal et évident que tout changement important de glibc implique de tout devoir recompiler...

EDIT: X et nvidia-* recompilés, l'interface graphique refonctionne  :Very Happy:  rebuild de world à 50%...

----------

## NiQoZ

 *Quote:*   

> C'est bien cette librairie qui me pose problème, d'ailleur voici le message exact:
> 
> ======================
> 
> /usr/bin/X: relocation error: /usr/lib/x : symbol __guard, version GLIBC_2.3.2 not defined in file libc.so.6 with link time reference
> ...

 

Bon, les gars pardonnez moi mais vous êtes à coté de la plaque... Mon post concerne un problème avec la glibc-2.4 et gcc. Là vous me parlez de problème de dépendance avec xorg ce qui est normal après avoir changer de lib. Une simple recompilation est necessaire.

 *Quote:*   

> oui, même message que toi ; je vérifie ce soir, mais apparemment la recompil de xorg semble arranger les choses...
> 
> en fait, c'est quasi-normal et évident que tout changement important de glibc implique de tout devoir recompiler... 

 

Ben oui, seulement dans mon cas c'est gcc qui est cassé et pour pouvoir tout recompiler ce programme (petite merveille d'ailleur ) est plus que necessaire   :Laughing: 

Alors j'aimerai avant que le sujet de ce post ne devie trop du probleme d'origine...

Si après avoir installé le package glibc2.4 (compilé avec gcc3.4 ou gcc4.1 c'est pareil) vous vous retrouvez avec l'erreur à la compilation suivante :

```

./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --exec-prefix=/ --enable-nls --build=i686-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 i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc

checking for C compiler default output... configure: error: C compiler cannot create executables

check `config.log' for details.

!!! Please attach the following file when filing a report to bugs.gentoo.org:

!!! /var/tmp/portage/gzip-1.3.5-r8/work/gzip-1.3.5/config.log

!!! ERROR: app-arch/gzip-1.3.5-r8 failed.

Call stack:

  ebuild.sh, line 1557:   Called dyn_compile

  ebuild.sh, line 966:   Called src_compile

  gzip-1.3.5-r8.ebuild, line 41:   Called econf '--exec-prefix=/' '--enable-nls'

!!! econf failed

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

```

et que par la même le config.log de cette compil vous dit: 

```

configure:1992: checking for C compiler default output

configure:1995: i686-pc-linux-gnu-gcc -march=pentium-m -mtune=pentium-m -fvisibility=default -pipe -ftracer -O3 -fomit-frame-pointer -ffast-math -momit-leaf-frame-pointer  -Wl,-O1 conftest.c  >&5

/usr/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../i686-pc-linux-gnu/bin/ld:/usr/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../libc.so: file format not recognized; treating as linker script

/usr/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../i686-pc-linux-gnu/bin/ld:/usr/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../libc.so:5: syntax error

collect2: ld returned 1 exit status

```

Et que vous sachiez comment résoudre ce problème, ce serait sympa de m'en faire part !   :Wink: 

Je précise que :

```

         # cat /usr/lib/libc.so

/* GNU ld script

   Use the shared library, but some functions are only in

   the static library, so try that secondarily.  */

OUTPUT_FORMAT(elf32-i386)

GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux.so.2 ) )

```

Donc lié à libc.so.6...

Voila voila merci d'avance de me lire.

----------

## Jim Gentoo

L'origine du pb est la même non ?

As-tu essayé ceci:

source /etc/profil

emerge --oneshot -av libtool

puis

emerge -aev system

----------

## xaviermiller

Oui, l'origine du problème est la même : je viens de planter mon laptop avec le même scénario : update vers glibc2.4 et gcc3.4.trucmachin ; tout n'a pas été recompilé et j'ai des erreurs d'exécution et de compilation

Sur le desktop, l'emerge -e est à 60%, et ce qui a été recompilé tourne à merveille...

CQFD ?

----------

## Jim Gentoo

Bon bah en faisant mes manips et en recompilant Xorg-X11, c'est ok, ca roule.

----------

## NiQoZ

 *Quote:*   

> As-tu essayé ceci:
> 
> source /etc/profil
> 
> emerge --oneshot -av libtool
> ...

 

Bon, il faut que je m'explique encore une fois !!!  :Twisted Evil: 

Jim Gentoo relis mon post :

```

...................................

error: C compiler cannot create executables

..................................
```

Donc les commandes ne peuvent pas fonctionner, c'est pourtant logique...comment compiler libtool avec un gcc cassé ???

Et l'origine du probleme est peu être la même (glibc) mais le probleme lui est tout autre car visiblement chez vous la mise à jour de la glibc n'a pas cassé votre gcc ??? (probleme avec xorg pour Jim Gentoo... et autre problemes indeterminés pour  Xavier Miller...)?

C'est sympa de répondre mais la on ne fait qu'ajouter du "bruit"  au reseau et ne sommes pas très constructifs je pense que je vais rediger un nouveau post pour essayer de reveillez les quelques "gourous"  que je sait derriere leurs pc   :Idea: 

----------

## LaMs

regarde comment il font pour une LFS (Linux From Scratch) , va te chercher un gcc sur le net et installe le. Pour les petite saute d'humeur je crois qu'il serait bon de prendre une bonne gorgée d'eau. Il ne faut pas oublier que ces personnes ne veulent que t'aider.

Lams

----------

## xaviermiller

as-tu changé tes CFLAGS ?

----------

## Jim Gentoo

Merci LaMs,

Je dois ajouter aussi que dans ma première intervention j'ai mal coté les commandes à faire... Et j'ai oublié la plus importante   :Embarassed: 

Réinitialiser les variables pour pointer sur le bon compilateur:

Le gcc-config 1

Car même si le nouveau Gcc est bancale, l'ancien est toujours présent sur le système. Il suffit donc de bien positionner les variables d'environement pour remettre en selle le bon compilateur.

Pour faire cela, en lisant le lien de XavierMiller dans sa première réponse, et je le répete sans faute cette fois ci:

#gcc-config 1

#source /etc/profil

#emerge --oneshot -av libtool

#emerge -aev system

Et c'est je pense ma dernière intervention dans cette discussion, mon but était parce que j'avais le même problème, d'en trouver une solution, en partageant les symptômes et comme j'ai résolu mon problème, d'en partager les solutions. Le but n'est evidemment pas d'enerver qui que ce soit...

----------

## xaviermiller

Est-ce résolu ?   :Wink: 

----------

## NiQoZ

 *Quote:*   

> Car même si le nouveau Gcc est bancale, l'ancien est toujours présent sur le système. Il suffit donc de bien positionner les variables d'environement pour remettre en selle le bon compilateur. 

 

Tous mes gcc j'ai les differentes series 3.3; 3.4; 4 en sont au même point cad "cassés" car le probleme ne vient pas des gcc (tu dis "le nouveau" mais je n'en est pas de nouveaux, je les ai tous compilés en même temps..., tu confond ton problème avec le mien) mais de glibc ... (à partir de libc.so).

Et je te remercie pour ces commandes mais je les connaissaient déja vu que je change souvent de gcc et que je recompile souvent des trucs (geek)   :Laughing: 

Mon ton quelque peu vif provient plus du fait que je suis "vexe" par mon probleme insoluble, que du fait d'une quelqonque animausité envers les gens qui cherche à m'aider certe, mais aussi à s'aider eux même (->Jim Gentoo) ... il faut le reconnaitre.

Je pense que je vais opter pour la solution LFS, cela dit  je ne voudrait pas me perdre dans la débauche de liens symboliques en tous genre que sont les wrappers gcc (visiblement). Néanmoins c'est la seule façon (que je connait) de réamorcer la compilation sur mon systeme avec la glibc-2.4 (que je suis impatient de tester (geek){2} avec gcc-4.1...

----------

## boozo

'alute

je te mets un petit lien qui m'avais sauvé mon install il y qqes temps (seul le ftp de fredan fonctionne actuellement)... moi j'avais bêtement unmergé gcc mais celà revient au même que d'avoir un gcc inutilisable dc avec un binaire détarré à la racine celà avais fonctionné et hop en retour un gcc pour se sortir temporairement de l'affaire (cad non compilé avec ta glibc-2.4)   :Wink: 

en espérant t'être utile   :Smile: 

PS: y'a peut-être d'autres ftp avec une archi plus adéquoite mais c'est une piste

[Edit] dsl pour la confusion...   :Embarassed:   c'est ta glibc-2.4 qui est à plat... le gcc n'est qu'un corrolaire...

ceci étant il y a peut-être des binaires de glibc... je ne sais pas trop alors mille excuses pour le bruit   :Confused: 

----------

## titoucha

 *guilc wrote:*   

>  *titoucha wrote:*   Ce que j'ai pu retirer à droite et à gauche c'est que pour la Glibc 2.4 il est conseiller d'utiliser GCC 4.1.0, dans mon cas je n'ai pas eu de problème come toi car je l'ai compilée avec la version 4.0.2 de GCC et je n'ai plus de version 3.4.4.
> 
> Il faut faire attention avec les version de Glibc et Gcc elles sont pas mal liées. 
> 
> Mouais, bof, pipo spotted la...
> ...

 

Ben si c'est du pipo, il y a quand même pas mal de gens qui ont un problème  :Confused: 

Enfin moi ce que j'en dis.   :Rolling Eyes: 

----------

## NiQoZ

Alors là boozo tu me sauve la vie, c'est exactement ce que je cherchai    :Laughing: 

Un gcc indépendant de glibc-2.4. Tu ne pouvait pas être plus précis et efficace, encore merci.

Pour reprendre mes bétises ecrites avant. si tous le "bruit" était constitué de message avec cette pertinence on économiserai de la bande passante, lol ...( je me plaint mais internet c'est quant meme super  :Wink:  )   :Wink: 

Donc merci à tous pour vos réponses et pour avoir fait vivre ce post maintenant normalement résolu pour moi (j'ai pas encore essayé ce gcc binaire...) et je l'éspere pour tout ceux qui on eu ce probleme.

Je remet le lien de boozo 

----------

## NiQoZ

Apres avoir essayer un autre gcc ( package precompilé gcc-3.4.4-r1.tbz2 ) mon probleme etait toujours le même: pas de compilateur...  :Crying or Very sad: 

Ex:

```

~ # gcc -o test asfinfo.c

/usr/lib/gcc/i686-pc-linux-gnu/3.4.4/../../../../i686-pc-linux-gnu/bin/ld:/usr/lib/gcc/i686-pc-linux-gnu/3.4.4/../../../libc.so: file format not recognized; treating as linker script

/usr/lib/gcc/i686-pc-linux-gnu/3.4.4/../../../../i686-pc-linux-gnu/bin/ld:/usr/lib/gcc/i686-pc-linux-gnu/3.4.4/../../../libc.so:5: syntax error

collect2: ld a retourné 1 code d'état d'exécution

```

J'ai quand même eu l'idee de regarder le contenu de libc.so (glibc-2.4) qui est un "linker script"

```
~ # cat /usr/lib/libc.so

/* GNU ld script

   Use the shared library, but some functions are only in

   the static library, so try that secondarily.  */

OUTPUT_FORMAT(elf32-i386)

GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux.so.2 ) )

```

et de le comparer au même fichier de mon autre ordi sous glibc-2.3.6

```

$ cat /usr/lib/libc.so

/* GNU ld script

   Use the shared library, but some functions are only in

   the static library, so try that secondarily.  */

OUTPUT_FORMAT(elf32-i386)

GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a )

```

A la vue de cette différence j'ai essayé de les échanger et... miracle  tout fonctionne maintenant parfaitement  :Cool:   :Very Happy: 

Un problème subsiste:

Pourquoi AS_NEEDED ( /lib/ld-linux.so.2 ) plante t'il le systeme chez moi ???

Si quelqu'un à la réponse ca m'interesse car modifier un fichier à la barbare comme cela, ça m'embête un peu ...

----------

## Dominique_71

Il faut être attentif quand on fait un emerge --update --deep world ou system de toujours faire un pretend pour vérifier si gcc et glibc vont être uppgradés.

Si c'est le cas, il faut alors suivre  Gentoo Linux GCC Upgrade Guide

Un autre thread intéressant et plus détaillé est Stage 1/3 Installation Guide for Gentoo 2005.1 & GCC 3.4.5 Il contient notamment certains réglages à modifier dans make.conf pour tirer parti au mieux de gcc 3.4+.[/url]

----------

## boozo

 :Very Happy:   mais de rien... content d'avoir été utile

en revanche...

 *NiQoZ wrote:*   

> Un problème subsiste:
> 
> Pourquoi AS_NEEDED ( /lib/ld-linux.so.2 ) plante t'il le systeme chez moi ???
> 
> Si quelqu'un à la réponse ca m'interesse car modifier un fichier à la barbare comme cela, ça m'embête un peu ...

 

là je sèche   :Rolling Eyes:   Si il n'y as rien sur le(s) forum(s), voir sur bugzilla peut-être ou sur la liste gcc ou glibc...

Btw: bon je sais bien que lorsqu'on à un pb qui prend la tête et que qq'un se met dedant en essayant d'aider... qqfois celà peut agacer mais bon... par écran interposé ce n'est pas toujours simple à expliquer et à comprendre   :Wink:   la démarche est volontaire, désintéressée et se veut mutualiste ce qui est déja fort louable en soi ; donc il vaut mieux, pour tous et à plus d'un titre, éviter le plus possible certaines remarques piquantes du fait de l'agacement et de temps à autres s'auto-modérer sans trop envenimer...   :Wink: 

Cdlt.

----------

## xaviermiller

Vu que je produis du bruit, je ne dirai plus rien ; j'ai d'autres choses à faire que du bruit...

----------

## Shibo

 *NiQoZ wrote:*   

> Apres avoir essayer un autre gcc ( package precompilé gcc-3.4.4-r1.tbz2 ) mon probleme etait toujours le même: pas de compilateur... 
> 
> Ex:
> 
> ```
> ...

 

Bonjour,

je suis un débutant mais je me demandais tout de même quelque chose: j'ai eu des problèmes avec glibc et gcc comme tout le monde à l'exception près que j'ai du changer mon chost car il n'était pas compatible avec glibc et surtout avec le nptl. Donc je suis passé du i386 au i686 mais quand je fait un cat de usr/lib/libc.so je vois tout comme toi qu'il me manque AS_NEEDED ( /lib/ld-linux.so.2 ) mais surtout que le format de sortie est elf32-i386. Dans mon cas celà ne devrait-il pas être i686? Quel est ton architecture ?

----------

## boozo

'alute

 *Shibo wrote:*   

> Bonjour,
> 
> je suis un débutant mais je me demandais tout de même quelque chose: j'ai eu des problèmes avec glibc et gcc comme tout le monde à l'exception près que j'ai du changer mon chost car il n'était pas compatible avec glibc et surtout avec le nptl. Donc je suis passé du i386 au i686 mais quand je fait un cat de usr/lib/libc.so je vois tout comme toi qu'il me manque AS_NEEDED ( /lib/ld-linux.so.2 ) mais surtout que le format de sortie est elf32-i386. Dans mon cas celà ne devrait-il pas être i686? Quel est ton architecture ?

 

 :Shocked:   :Shocked:   :Shocked:   il ne faut jamais changer le CHOST au risque de se retouver très vite avec un système inutilisable !!!  :Evil or Very Mad: 

comment as-tu procédé pour ce faire et surtout qui et/ou quoi t'y as conduit ?   :Confused: 

----------

## Shibo

Ce qui m'a obligé a changer de chost? Nptl!

En effet, il semble que le dernier glibc soit incompatible avec les arch i386. Il y avais 2 solutions pour parrer à ce problème. Primo: marsquer soi-même le dernier glibc mais cela nécessitais de masquer aussi la derniere version de gcc qui est liée à glibc (d'après ce que j'ai compris des multitudes de topics english que j'ai lu là dessu). J'ai tanté le coup sans trop de succés puis d'un coté je n'aime pas faire marche arrière (bienque j'ai essayé en tantant de réutiliser un ancien profile gcc fonctionelle - sans succés). Secundo: Changer de chost. Je savais les risque encourus mais de toute façon je devrai le changer un jour ou l'autre. Pour changer le chost on m'a conseiller ceci:

```
emerge glibc binutils gcc libstdc++-v3 libtol portage linux-headers

emerge -e world

Ou 

emerge -e system 

emerge -e system 

emerge -e world 

emerge -e world

```

J'ai d'abort re-emerger 2 fois glibc, gcc et co (pour etre sur que la compilation soit pour l'architecture) après avoir changer le chost. J'ai aussi lancé un script sh qui verifie que les path pointant vers touts les programmes necessaire à la compilation fonctionne (mais j'ai oublié son nom). Il fallait specifié l'ancienne version de gcc et en plus j'ai specifier l'arch.

Au final j'arrive donc avec ceci:

```

 # gcc-config -l

 [1] i386-pc-linux-gnu-3.3.6

 [2] i386-pc-linux-gnu-3.3.6-hardened

 [3] i386-pc-linux-gnu-3.3.6-hardenednopie

 [4] i386-pc-linux-gnu-3.3.6-hardenednopiessp

 [5] i386-pc-linux-gnu-3.3.6-hardenednossp

 [6] i686-pc-linux-gnu-3.4.5 *

 [7] i686-pc-linux-gnu-3.4.5-hardened

 [8] i686-pc-linux-gnu-3.4.5-hardenednopie

 [9] i686-pc-linux-gnu-3.4.5-hardenednopiessp

 [10] i686-pc-linux-gnu-3.4.5-hardenednossp

```

```

# cat /etc/env.d/05gcc

PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.4.5"

ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.4.5"

MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.4.5/man"

INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.4.5/info"

LDPATH="/usr/lib/gcc/i686-pc-linux-gnu/3.4.5"

GCC_SPECS=""

```

```

# cat /etc/env.d/gcc/config

CURRENT=i686-pc-linux-gnu-3.4.5

```

Vu qu'il semble que mon probléme soit un probléme de linker (Voir juste plus bas) j'ai été jetté un oeil dans /usr/lib/libc.so. Si je ne m'abuse c'est le script de link.

L'erreur de la compilation:

```

checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc

checking for C compiler default output file name... configure: error: C compiler cannot create executables

```

```

# cat /usr/lib/libc.so

/* GNU ld script

   Use the shared library, but some functions are only in

   the static library, so try that secondarily.  */

OUTPUT_FORMAT(elf32-i386)

GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.2 ))

```

Note: le AS_NEEDED n'était pas là au debut, je l'ai rajouté car c'était la solution miracle pour un autre utilisateur.

Il y a un truc dans ce linker qui me turlupine le bulbe: pourquoi le output_format est-il en i386? J'ai été vérifié sur un autre pc en i686 (fonctionelle) et le output_format est en i386 donc le pb ne semble pas venir de là.

Autre chose utile je pense:

```

 # binutils-config -l

 [1] i686-pc-linux-gnu-2.16.1 *

```

Les logs de l'emerge ne me révele pas beaucoup d'indice. Voici cependant le log de mon dernier emerge:

```

1143049268: Started emerge on: Mar 22, 2006 18:41:08

1143049268:  *** emerge  screen

1143049272:  >>> emerge (1 of 1) app-misc/screen-4.0.2-r4 to /

1143049272:  === (1 of 1) Cleaning (app-misc/screen-4.0.2-r4::/usr/portage/app-misc/screen/screen-4.0.2-r4.ebuild)

1143049285:  === (1 of 1) Compiling/Merging (app-misc/screen-4.0.2-r4::/usr/portage/app-misc/screen/screen-4.0.2-r4.ebuild)

1143049368:  *** terminating.

```

Par contre, un truc bizard dans le config.log:

```

 # cat /var/tmp/portage/screen-4.0.2-r4/work/screen-4.0.2/config.log

This file contains any messages produced by compilers while

running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was

generated by GNU Autoconf 2.59.  Invocation command line was

  $ ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --with-socket-dir=/var/run/screen --with-sys-screenrc=/etc/screenrc --enable-rxvt_osc --enable-telnet --enable-colors256 --enable-pam --build=i686-pc-linux-gnu

## --------- ##

## Platform. ##

## --------- ##

hostname = GServ

uname -m = i686

uname -r = 2.6.12-gentoo-r10

uname -s = Linux

uname -v = #3 SMP Fri Mar 10 18:31:18 CET 2006

/usr/bin/uname -p = Pentium III (Coppermine)

/bin/uname -X     = unknown

/bin/arch              = i686

/usr/bin/arch -k       = unknown

/usr/convex/getsysinfo = unknown

hostinfo               = unknown

/bin/machine           = unknown

/usr/bin/oslevel       = unknown

/bin/universe          = unknown

PATH: /sbin

PATH: /usr/sbin

PATH: /usr/lib/portage/bin

PATH: /bin

PATH: /usr/bin

PATH: /opt/bin

PATH: /usr/i686-pc-linux-gnu/gcc-bin/3.4.5

PATH: /usr/i386-pc-linux-gnu/gcc-bin/3.3.6 <------ Ici !

## ----------- ##

## Core tests. ##

## ----------- ##

configure:1465: checking for i686-pc-linux-gnu-gcc

configure:1481: found /usr/bin/i686-pc-linux-gnu-gcc

configure:1491: result: i686-pc-linux-gnu-gcc

configure:1773: checking for C compiler version

configure:1776: i686-pc-linux-gnu-gcc --version </dev/null >&5

i686-pc-linux-gnu-gcc (GCC) 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0, pie-8.7.9)

Copyright (C) 2004 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

```

Jusqu'ici tout semble coorecte, sauf le pb du path mais je ne vois pas d'ou il proviens.

La suite du log, désolé pour la longeur mais étant un débutant je ne sais pas trop dire les parties réelement interessantes:

```

configure:1779: $? = 0

configure:1781: i686-pc-linux-gnu-gcc -v </dev/null >&5

Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/specs

Configured with: /var/tmp/portage/gcc-3.4.5/work/gcc-3.4.5/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.5 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.5 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.5/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.5/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.5/include/g++-v3 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libgcj --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu

Thread model: posix

gcc version 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0, pie-8.7.9)

configure:1784: $? = 0

configure:1786: i686-pc-linux-gnu-gcc -V </dev/null >&5

i686-pc-linux-gnu-gcc: `-V' option must have argument

configure:1789: $? = 1

configure:1812: checking for C compiler default output file name

configure:1815: i686-pc-linux-gnu-gcc -Os -march=i686 -pipe -formit-pointer -DPTYMODE=0620 -DPTYGROUP=5 -DUSE_PAM -DNONETHACK   -Wl,-z,now conftest.c  >&5

cc1: error: unrecognized command line option "-formit-pointer"

configure:1818: $? = 1

configure: failed program was:

| /* confdefs.h.  */

|

| #define PACKAGE_NAME ""

| #define PACKAGE_TARNAME ""

| #define PACKAGE_VERSION ""

| #define PACKAGE_STRING ""

| #define PACKAGE_BUGREPORT ""

| /* end confdefs.h.  */

|

| int

| main ()

| {

|

|   ;

|   return 0;

| }

configure:1857: error: C compiler cannot create executables

See `config.log' for more details.

## ---------------- ##

## Cache variables. ##

## ---------------- ##

ac_cv_env_CC_set=

ac_cv_env_CC_value=

ac_cv_env_CFLAGS_set=set

ac_cv_env_CFLAGS_value='-Os -march=i686 -pipe -formit-pointer -DPTYMODE=0620 -DPTYGROUP=5 -DUSE_PAM -DNONETHACK'

ac_cv_env_CPPFLAGS_set=

ac_cv_env_CPPFLAGS_value=

ac_cv_env_CPP_set=

ac_cv_env_CPP_value=

ac_cv_env_LDFLAGS_set=set

ac_cv_env_LDFLAGS_value=' -Wl,-z,now'

ac_cv_env_build_alias_set=set

ac_cv_env_build_alias_value=i686-pc-linux-gnu

ac_cv_env_host_alias_set=set

ac_cv_env_host_alias_value=i686-pc-linux-gnu

ac_cv_env_target_alias_set=

ac_cv_env_target_alias_value=

ac_cv_prog_CC=i686-pc-linux-gnu-gcc

## ----------------- ##

## Output variables. ##

## ----------------- ##

AWK=''

CC='i686-pc-linux-gnu-gcc'

CFLAGS='-Os -march=i686 -pipe -formit-pointer -DPTYMODE=0620 -DPTYGROUP=5 -DUSE_PAM -DNONETHACK'

CPP=''

CPPFLAGS=''

DEFS=''

ECHO_C=''

ECHO_N='-n'

ECHO_T=''

EGREP=''

EXEEXT=''

INSTALL_DATA=''

INSTALL_PROGRAM=''

INSTALL_SCRIPT=''

LDFLAGS=' -Wl,-z,now'

LIBOBJS=''

LIBS=''

LTLIBOBJS=''

OBJEXT=''

PACKAGE_BUGREPORT=''

PACKAGE_NAME=''

PACKAGE_STRING=''

PACKAGE_TARNAME=''

PACKAGE_VERSION=''

PATH_SEPARATOR=':'

SHELL='/bin/sh'

VERSION='4.0.2'

WRITEPATH=''

XTERMPATH=''

ac_ct_CC=''

ac_prefix_program=''

bindir='${exec_prefix}/bin'

build_alias='i686-pc-linux-gnu'

datadir='/usr/share'

exec_prefix='NONE'

host_alias='i686-pc-linux-gnu'

includedir='${prefix}/include'

infodir='/usr/share/info'

libdir='${exec_prefix}/lib'

libexecdir='${exec_prefix}/libexec'

localstatedir='/var/lib'

mandir='/usr/share/man'

oldincludedir='/usr/include'

prefix='/usr'

program_transform_name='s,x,x,'

sbindir='${exec_prefix}/sbin'

sharedstatedir='${prefix}/com'

sysconfdir='/etc'

target_alias=''

## ----------- ##

## confdefs.h. ##

## ----------- ##

#define PACKAGE_BUGREPORT ""

#define PACKAGE_NAME ""

#define PACKAGE_STRING ""

#define PACKAGE_TARNAME ""

#define PACKAGE_VERSION ""

configure: exit 77

```

Dernière chose aussi: Pour tester mon make.conf j'ai fait un sh /etc/make.conf.

Voilà, je pense que c'est à peu de chose prés mon cheminement.

Maintenant là question: Une idée ??  :Very Happy: 

Edit: J'oubliais le truc cocasse: je peux compiler des programmes que je crée sans le moindre problème et pourtant c'est pas des simple hello world.

----------

## Dominique_71

Est-ce que tu as fais 

```
# source /etc/profile
```

après avoir émergé gcc?

Pour le toolkit, un bon moyen pour l'installer est

```
# emerge --oneshot -av libtool
```

après avoir resourcé /etc/profile

Après quoi 

```
# emerge -eav system

# emerge -eav world
```

devrait faire le reste du travail. Voir Gentoo Linux GCC Upgrade Guide

Le problème avec gcc et glibc est qu'il faut qu'ils soient compilés avec eux-mêmes pour garder la consistance du système. Donc on les compile une première fois, on choisit le nouveau gcc avec gcc-config, et avec emerge système on recompile tout le toolkit + le système de base. Comme il se peut que dans le système de base il y ait des choses qui aient été compilées avec des aniciennes versions de librairies, ont recompile encore une fois le tout, y compris tout le reste du système.

Le résultat va être un nouveau tollkit et un système entier qui aura été compilé avec le nouveau toolkit qui fut compilé avec le nouveau toolkit. En cas de modifications de make.conf, je conseillerais même de faire

```
# env-update && source /etc/profile
```

à la place de simplement

```
source /etc/profile
```

----------

## Shibo

```

# source /etc/profile

# emerge --oneshot -av libtool

```

Je l'ai fait mais je n'arrivais pas a faire d'emerge system/world.

Apparament le problème semble se résoudre. J'ai recompilé gcc avec l'option nptlonly en plus de nptl (pourtant je l'avais dejà fait). J'ai fait un env-update, un etc-update (je ne savais plus si des fichiers de config avait été modif ou pas, ce n'était pas le cas mais on ne sais jamais) ensuite j'ai rerereemegré glibc en spécifiant bien -Nu et apparament celà arrange les choses. Je suppose donc que c'est l'env-update qui a aidé. Je crie peut-être victoire trop tôt mais j'ai réussi à emerger des petits softs ce qui m'était impossible avant. Maintenant je recompile une première fois ma chaintool et ensuite je tanterai l'emerge system ce qui reviens donc au même que de reemerger ma chaine tool si j'ai bien compris. Enfin, ce n'est qu'un 650mhz donc wait and see.

----------

## Dominique_71

Avant de se lancer dans ce genre de manips, je ne saurais trop recommander de faire un stage 4 = backup GNU/Linux System Backup Script (stage4)

Il est aussi toujours possible de reprendre un emerge interrompu avec 

```
emerge --update
```

 mais cette commande ne comprend pas les changements d'use flags, même si ceux-ci ont été fait dans /etc/portage/package.use

----------

