# [Glibc] Impossible de la compiler

## DuF

Bonsoir,

Revenant de 3 semaines de vacances (bien méritées, si si  :Smile:  ) j'ai fait l'emerge sync puis la mise à jour qui s'imposait, or j'ai une erreur de manière systématique qui est la suivante : 

```
checking size of long double... 12

running configure fragment for sysdeps/i386/elf

checking for i386 TLS support... yes

running configure fragment for nptl/sysdeps/pthread

checking for forced unwind support... yes

checking for C cleanup handling... yes

running configure fragment for sysdeps/pthread

running configure fragment for sysdeps/unix/sysv/linux

checking for egrep... (cached) grep -E

checking installed Linux kernel header files... 2.0.10 or later

/mnt/data/tmp/portage_tmp/portage/glibc-2.4-r3/work/glibc-2.4/sysdeps/unix/s

linux/configure: line 154: 2 * 65536 + 6 * 256 + : syntax error: operand exp

d (error token is " ")

!!! ERROR: sys-libs/glibc-2.4-r3 failed.

Call stack:

  ebuild.sh, line 1546:   Called dyn_compile

  ebuild.sh, line 937:   Called src_compile

  glibc-2.4-r3.ebuild, line 1184:   Called toolchain-glibc_src_compile

  glibc-2.4-r3.ebuild, line 251:   Called glibc_do_configure 'nptl'

  glibc-2.4-r3.ebuild, line 941:   Called die

!!! failed to configure glibc

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

evant.

```

Et le seul sujet sur le forum gentoo que j'ai trouvé en rapport c'est le suivant : https://forums.gentoo.org/viewtopic-t-477753-highlight-glibc+syntax+error+operand+expected+error+token.html

Malheureusement il n'y a pas de solutions au problème, j'ai bien essayé le changement de version des linux-threads mais cela n'a rien changé...

Je suis assez embêté surtout que suite aux 3 semaines d'absences j'ai une centaine de paquets qui attendent leur mise à jour...

Je vous mets les informations suivantes si jamais cela peut vous aider :

```
 *             ABI:   default

 *          CBUILD:   i686-pc-linux-gnu

 *           CHOST:   i686-pc-linux-gnu

 *         CTARGET:   i686-pc-linux-gnu

 *      CBUILD_OPT:   

 *     CTARGET_OPT:   

 *              CC:   

 *          CFLAGS:   -march=athlon-xp -pipe -O2

 * Configuring GLIBC for nptl with: \n\t\t--disable-stackguard-randomization

\t--enable-old-ssp-compat\n\t\t--with-tls\n\t\t--with-__thread\n\t\t--enable

-ons=ports,nptl,c_stubs,libidn\n\t\t--enable-kernel=2.6.xx\n\t\t--without-se

x

                --without-cvs

                --enable-bind-now

                --build=i686-pc-linux-gnu

                --host=i686-pc-linux-gnu

                --disable-profile

                --without-gd

                --with-headers=/usr/include

                --prefix=/usr

                --libdir=/usr/lib

                --mandir=/usr/share/man

                --infodir=/usr/share/info

                --libexecdir=/usr/lib/misc/glibc

```

Toute idée est la bienvenue !

----------

## nemo13

 *DuF wrote:*   

> 
> 
>   glibc-2.4-r3.ebuild, line 251:   Called glibc_do_configure 'nptl'
> 
>   j'ai bien essayé le changement de version des linux-threads mais cela n'a rien changé...
> ...

 

Bonsoir,

j'ai largement dépasssé mon quota de co..ries, donc une de plus 

1) A priori linux-threads est deprecié la tendance actuelle est à ntpl et ntpl-only ( ya les uses qui vont bien )

2) durant tes wacances gcc 4.1 est passé en stable ( peut-être sans incidence pour toi )

 ou en est-tu sur ce point ?

A+:jlp

----------

## DuF

Effectivement pour les linux-threads, surtout que j'ai bien "nptlonly" en plus de "nptl" dans mes USE flags. Mais comme le seul sujet dans le forum gentoo correspondant parlait de cela, je me suis dit que cela ne coûtait rien d'essayer.

Pour GCC, voilà ce que j'ai d'installé : 

```
*  sys-devel/gcc

      Latest version available: 4.1.1

      Latest version installed: 4.1.1

```

Par contre j'utilise le profile suivant : 

```
[ 23:55:36 27/09/06 || duf@genduf: ~ ]$ gcc-config -c

i686-pc-linux-gnu-3.4.6

```

----------

## titoucha

Il va falloir que tu choisis entre les deux versions de GCC, je te conseille de lire ces deux documents.

http://www.gentoo.org/news/fr/gwn/20060828-newsletter.xml

http://www.gentoo.org/doc/fr/gcc-upgrading.xml

----------

## PabOu

 *titoucha wrote:*   

> Il va falloir que tu choisis entre les deux versions de GCC

 

J'ai plusieurs choses à faire remarquer :

1) Entre les 2 ? il en a peut-être plus.. C'est fort possible si il a toujours une version aussi ancienne que la 3.4 qu'il ait toujours les versions intermediaires entre celle ci et gcc 4.1 (à cause de mon point 3)

2) Si ca ne tenait qu'à moi, le choix serait vite fait : je laisse tomber les versions qui ne sont plus supportées.. plus loin encore, je prends la derniere version que portage me propose

3) Le document de mise à jour gcc dont tu as donné le lien comporte une erreur de traduction (je m'en vais aller remplir un rapport de bogue tiens edit) qui à comme conséquence que les gens n'enlèvent plus les anciennes versions de gcc après une mise à jour.

4) On dit "que tu choisisses" :P

----------

## titoucha

 *PabOu wrote:*   

> 
> 
> 4) On dit "que tu choisisses" 

 

Harg voilà ce qui arrive quand on écrit au saut du lit   :Confused: 

----------

## DuF

 *titoucha wrote:*   

> Il va falloir que tu choisis entre les deux versions de GCC, je te conseille de lire ces deux documents.
> 
> http://www.gentoo.org/news/fr/gwn/20060828-newsletter.xml
> 
> http://www.gentoo.org/doc/fr/gcc-upgrading.xml

 

Le problème, c'est que si je bascule sur le profile gcc-4.1.1 à l'aide de l'outile gcc-config et bien cela ne change rien, la glibc ne compile toujours pas. J'ai essayé en recompilant la toolchain en faisant de la manière suivante :

```

emerge -av glibc binutils gcc libtool portage

env-update && source /etc/profile

emerge -av glibc binutils gcc libtool portage
```

Mais forcément ça ne passe pas vu que la glibc ne compile pas, que ce soit avec le profile gcc-3.x ou 4.1.1.

Pour répondre à PabOu, actuellement si je fais un "gcc-config -l" j'en ai 11 qui sont listés, je peux pas les mettre maintenant je n'ai pas accès à ma machine depuis mon travail, mais j'ai au moins la 3.4.6 et la 4.1.1.

A priori, si je comprends bien ce que vous dites, il me faut passer à Gcc-4.1.1, or j'ai pas l'impression que ça résolve le problème comme j'ai expliqué plus haut...

En tout cas merci de me proposer des choses et de continuer à le faire bien sûr  :Wink:  car étant largué sur le sujet j'en ai bien besoin :-p

----------

## Temet

Remarque, il me semble que c'est normal, j'ai pas lu que la glibc-2.4 ne compilait que sous GCC 4 ?

----------

## kwenspc

ben si elle compile très bien sous gcc-4.1.1. et d'ailleurs c'est la plus récente dans portage...

----------

## yoyo

 *Temet wrote:*   

> Remarque, il me semble que c'est normal, j'ai pas lu que la glibc-2.4 ne compilait que sous GCC 4 ?

 

 *kwenspc wrote:*   

> ben si elle compile très bien sous gcc-4.1.1. et d'ailleurs c'est la plus récente dans portage...

 

 :Laughing: 

À noter que le changement de "profil" gcc se fait maintenant avec la commande "eselect".

Enjoy !

----------

## xaviermiller

Oui, il faut GCC4 pour glibc-2.4...

----------

## kwenspc

oh yes désolé Temet  :Embarassed:   (/me retourne apprendre à lire... ou alors à se réveiller, ça serait pas mal)

----------

## DuF

 *yoyo wrote:*   

>  *Temet wrote:*   Remarque, il me semble que c'est normal, j'ai pas lu que la glibc-2.4 ne compilait que sous GCC 4 ? 
> 
>  *kwenspc wrote:*   ben si elle compile très bien sous gcc-4.1.1. et d'ailleurs c'est la plus récente dans portage... 
> 
> À noter que le changement de "profil" gcc se fait maintenant avec la commande "eselect".
> ...

 

Bon je sais ce qu'il me reste à faire ce soir  :Smile: 

Moi j'étais resté à gcc-config, j'ai un peu zappé quelques trucs à priori...

----------

## xaviermiller

 *yoyo wrote:*   

> À noter que le changement de "profil" gcc se fait maintenant avec la commande "eselect".

 

Ha oui ? j'ai cru qu'on était revenu en arrière vers gcc-config, suite à plusieurs bugs...

----------

## DuF

```
checking for egrep... (cached) grep -E

checking installed Linux kernel header files... 2.0.10 or later

/mnt/data/tmp/portage_tmp/portage/glibc-2.4-r3/work/glibc-2.4/sysdeps/unix/sysv/linux/configure: line 154: 2 * 65536 + 6 * 256 + : syntax error: operand expected (error token is " ")

!!! ERROR: sys-libs/glibc-2.4-r3 failed.

Call stack:

  ebuild.sh, line 1546:   Called dyn_compile

  ebuild.sh, line 937:   Called src_compile

  glibc-2.4-r3.ebuild, line 1184:   Called toolchain-glibc_src_compile

  glibc-2.4-r3.ebuild, line 251:   Called glibc_do_configure 'nptl'

  glibc-2.4-r3.ebuild, line 941:   Called die

!!! failed to configure glibc

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

genduf ~ # eselect compiler show

i686-pc-linux-gnu-4.1.1/vanilla

genduf ~ # gcc-config -c

i686-pc-linux-gnu-4.1.1

```

Bon et bien toujours pareil.... Pourtant d'après les différents outils je suis bien dans la version de GCC-4.1.1.

Donc je suis toujours preneur d'idées.

Merci

----------

## nemo13

 *XavierMiller wrote:*   

>  *yoyo wrote:*   À noter que le changement de "profil" gcc se fait maintenant avec la commande "eselect". 
> 
> Ha oui ? j'ai cru qu'on était revenu en arrière vers gcc-config, suite à plusieurs bugs...

 

rhoo le yoyo y vieilli 

```
emerge -avt eselect-compiler

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

Calculating dependencies   

!!! All ebuilds that could satisfy "eselect-compiler" have been masked.

!!! One of the following masked packages is required to complete your request:

- app-admin/eselect-compiler-2.0.0_rc2-r1 (masked by: package.mask)

# Ned Ludd <solar/gentoo.org> (Aug 14 2006)

# This pkg breaks working systems and eradicator

# has gone MIA yet again.

# Bugs 143697, 108398, 112156, 135702, 137917,

# 138296, 139016, 139629, 143684

For more information, see MASKED PACKAGES section in the emerge man page or 

refer to the Gentoo Handbook.
```

  :Wink: 

----------

## nevro

bon,j'ai eu le meme tour, pas exactement la meme erreur...mais j'ai trouvé un lien qui va peut etre t'aider : http://dev.gentoo.org/~blubb/2005.0-upgrade-amd64.xml

en bidouillant grace à ca, j'ai pu recompiler glibc et gcc qui ne compilé plus..

bonne chance en esperant que ça t'a aidé   :Smile: 

----------

## DuF

 *nevro wrote:*   

> bon,j'ai eu le meme tour, pas exactement la meme erreur...mais j'ai trouvé un lien qui va peut etre t'aider : http://dev.gentoo.org/~blubb/2005.0-upgrade-amd64.xml
> 
> en bidouillant grace à ca, j'ai pu recompiler glibc et gcc qui ne compilé plus..
> 
> bonne chance en esperant que ça t'a aidé  

 

Bon, je suis en train de regarder ça. Il me semble qu'il y a pas mal de parties spécifiques aux processeurs amd 64 bits, ce que je n'ai pas. Donc j'essaye d'adapter et de voir si quelque chose ne pourrait pas m'aider. Pour l'instant je n'ai toujours pas réussi à résoudre le problème, si jamais je trouve je vous tiens informé bien sûr. Je suis toujours preneur de toute aide.

Merci.

----------

## nemo13

 *DuF wrote:*   

> Pour l'instant je n'ai toujours pas réussi à résoudre le problème, si jamais je trouve je vous tiens informé bien sûr. Je suis toujours preneur de toute aide.
> 
> Merci.

 

A tout zazar,

utilises-tu confcache ?

j'ai ramé pendant plusieurs semaines sur gettext à cause de confcache ( qui est masqué depuis fin mai sur toutes les archi )

peut-être aussi ccache ?

désolé de ne pas avoir plus d'idée.

----------

## DuF

 *nemo13 wrote:*   

>  *DuF wrote:*   Pour l'instant je n'ai toujours pas réussi à résoudre le problème, si jamais je trouve je vous tiens informé bien sûr. Je suis toujours preneur de toute aide.
> 
> Merci. 
> 
> A tout zazar,
> ...

 

Non, ni l'un ni l'autre... Merci quand même pour l'idée.

Sinon là je suis en train de regarder les profiles, car avant de partir en vacances j'ai changé mon profile /etc/make.profile donc je me demande si cela ne viendrait pas de là....

----------

## titoucha

Si jamais en dernier ressort tu as le script /usr/portage/scripts/bootstrap.sh qui te permet de reconstruire une toolchain.

----------

## yoyo

 *nemo13 wrote:*   

>  *XavierMiller wrote:*    *yoyo wrote:*   À noter que le changement de "profil" gcc se fait maintenant avec la commande "eselect". Ha oui ? j'ai cru qu'on était revenu en arrière vers gcc-config, suite à plusieurs bugs... 
> 
> rhoo le yoyo y vieilli 

 Chaque jour un peu plus ...    :Rolling Eyes:  Mais bon, c'est pas parce que je suis veteran et toi guru que tu peux me traiter de vieux !!!   :Laughing: 

Mais je n'avais pas vu ça ... Et il y a deux jours, j'ai utilisé gcc-config (les vieilles habitudes ont la vie dure) qui a râlé en disant que maintenant il fallait utiliser eselect pour la sélection des profils de compilateur. Moi bête et discipliné je m'exécute et tout se passe bien. D'ailleurs je le prouve : 

```
 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
```

Mais vos remarques m'ont mises la puce à l'oreille et effectivement ce paquet est bien masqué mais là : 

```
gcc-config -l

 * gcc-config: Active gcc profile is invalid!

 [1] x86_64-pc-linux-gnu-4.1.1
```

Donc bon, je ne vois pas trop quoi faire et j'ai pas envie de tout casser sachant que comme vous pouvez le voir, je n'ai qu'un seul gcc installé.

Pour le moment toutes mes compil' sont passées sans aucun pb donc je ne touche plus à rien.  :Rolling Eyes: 

Enfin je trouve curieux qu'il n'y ait pas de warning lors des "emerge -uDNvp world" disant qu'un paqeut installé est masqué et non présent dans le package.mask.  :Confused: 

----------

## DuF

 *titoucha wrote:*   

> Si jamais en dernier ressort tu as le script /usr/portage/scripts/bootstrap.sh qui te permet de reconstruire une toolchain.

 

Je l'ai lancé et la compilation de Glibc a début, ça va au moins plus loin que jusqu'a présent... Je tiens informé si ça fonctionne jusqu'au bout.

Merci

----------

## Temet

Bah de toute manière, si tu switches sur gcc 4.1.1, y pas juste le eselect/gcc-config à faire!

Le handbook te dira tout quoi faire ... mais en gros, emerge -e system/world ... ça fait mal une migration de gcc :/

----------

## DuF

Bon alors le lancement du script bootstrap.sh semble avoir remis les choses à leur place, d'après ce qu'il a fait, je pense que la seule chose qui n'allait pas chez moi c'était gettext que je n'avais pas recompilé avec la version de GCC-4.1.1. Là je suis en train de repasser sur le handbook de gcc-4.1.1 voir si je n'aurai pas oublier autre chose.

Merci à tous.

----------

