# [GCC]configure:error:C preprocessor /lib/cpp fails..[Résolu]

## anti-conformiste

Bonjour,

Depuis mon dernier emerge -uavdN world, je ne peux plus installer un pacquet sans avoir ce message d'erreur :

```

[...]

checking for wgetch in -lncurses... yes

checking how to run the C preprocessor... /lib/cpp

configure: error: C preprocessor "/lib/cpp" fails sanity check ******c'est cette ligne la********

See `config.log' for more details.

[...]
```

Je me doute que le probleme vient de la MAJ de GCC 4.1.1-r3 vers 4.1.2.  Il doit y avoir un lien brisé ou ce genre de chose

J'ai googlé et trouvé pas mal de réponses pour ce probleme, mais jamais les memes ...

J'ai meme vu dans ce forum (english version) une mini FAQ qui explique que pour résoudre le probleme, il faut installer les linux-headers...j'suis vraiment pas convaincu... :Rolling Eyes: 

Je pense qu'il faut mettre a jour une de mes variables et non pas faire un lien symbolique (je sais meme pas où de toute façon) en dur ...

mon make.conf

```
[...]

CHOST="i686-pc-linux-gnu"

CFLAGS="-O2 -march=athlon -pipe"

CXXFLAGS="${CFLAGS}"

VIDEO_CARDS="nvidia"

ALSA_CARDS="intel8x0 intel8x0m"

INPUT_DEVICES="keyboard mouse"

LINGUAS="fr"

[...]
```

Mon environnement

```
Linux localhost 2.6.22-gentoo-r9 #6 SMP Sun Feb 24 19:15:43 CET 2008 i686 AMD Sempron(tm) Processor 3100+ AuthenticAMD GNU/Linux
```

Ce topic me parait pertinent. Je l'ai suivi en partie, mais j'ai pas envie de recompiler tout mon systeme et en + je suis à la version 4.1.x depuis quelques mois déjà et j'ai jamais eu de soucis. Cependant j'ai du garder la version 3.4.6-r2 pour des raisons de compatibilité avec certain soft (genre mozilla qui n'est pas d'accord quand je le compile avec la version 4.1.1-r3

Une ID ???   :Idea: 

Merci pour votre aide...Last edited by anti-conformiste on Sun Mar 02, 2008 6:25 pm; edited 1 time in total

----------

## Tuxicomane

Salut,

Par hasard, que renvoie la commande gcc-config -l ?

 *Quote:*   

> J'ai meme vu dans ce forum (english version) une mini FAQ qui explique que pour résoudre le probleme, il faut installer les linux-headers...j'suis vraiment pas convaincu... 

 Ben tu as essayé ? Ça ne risque rien ...

----------

## Desintegr

```
See `config.log' for more details.
```

Et qu'il y-a-t-il dans ce fichier ?

----------

## anti-conformiste

 *Tuxicomane wrote:*   

> Salut,
> 
> Par hasard, que renvoie la commande gcc-config -l ?
> 
>  *Quote:*   J'ai meme vu dans ce forum (english version) une mini FAQ qui explique que pour résoudre le probleme, il faut installer les linux-headers...j'suis vraiment pas convaincu...  Ben tu as essayé ? Ça ne risque rien ...

 

localhost fred # gcc-config -l

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

localhost fred #

----------

## anti-conformiste

 *Desintegr wrote:*   

> 
> 
> ```
> See `config.log' for more details.
> ```
> ...

 

bin je sais pas ou il est ce fichier. J'ai bien un /var/tmp/portage/sys-boot/grub-0.97-r4/temp/build.log qui dit rien de + mais pas de config.log

----------

## Desintegr

De mémoire, /var/tmp/portage/sys-boot/grub-0.97-r4/work/config.log ?

----------

## SlashRhumSlashNeisson

Salut,

Lors de la migration gcc-3.x.x vers gcc-4.1.1, as tu recompilé ton système et ton world?

cf la doc 

```

Exemple de code 2.1 : Mise à jour de GCC

# emerge -uav gcc

(Veuillez remplacer « i686-pc-linux-gnu-4.1.1 » par votre paramètre

CHOST et la version de GCC vers laquelle vous venez de mettre à jour.)

# gcc-config i686-pc-linux-gnu-4.1.1

# env-update && source /etc/profile

(Si vous mettez à jour de gcc 3 vers gcc 4 (de 3.4.6 vers 4.1.1 dans cet

exemple), vous devrez lancer fix_libtool_files.sh à la main.)

# fix_libtool_files.sh 3.4.6

(Recompilation de libtool.)

# emerge --oneshot -av libtool

Pour être complètement sûr que votre système se trouve dans un état sain, vous devez recompiler la chaîne de compilation, puis world, afin de s'assurer que tous les paquets seront recompilés par le nouveau GCC.

Exemple de code 2.2 : Recompilation du système

# emerge -eav system

# emerge -eav world

Il est maintenant prudent de supprimer l'ancienne version de GCC. Si vous préférez, vous pouvez spécifier la version à désinstaller (comme d'habitude, remplacez =sys-devel/gcc-3.4* par la version à retirer) :

Exemple de code 2.3 : Désinstallation des anciennes versions de GCC

# emerge -aC =sys-devel/gcc-3.4*

```

----------

## anti-conformiste

 *SlashRhumSlashNeisson wrote:*   

> Salut,
> 
> Lors de la migration gcc-3.x.x vers gcc-4.1.1, as tu recompilé ton système et ton world?
> 
> cf la doc 
> ...

 

Oui, mais justement en suivant ce tuto il me met ce fameux message et donc je bloque à l'étape de recompilation des fichiers sys.

----------

## anti-conformiste

 *Desintegr wrote:*   

> De mémoire, /var/tmp/portage/sys-boot/grub-0.97-r4/work/config.log ?

 

Bien vu, c'était presque ça !!!   :Very Happy: 

/var/tmp/portage/sys-boot/grub-0.97-r4/work/grub-0.97/config.log en fait, bonne mémoire.

voici le contenu de la chose :

```

his file contains any messages produced by compilers while

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

It was created by GRUB configure 0.97, which was

generated by GNU Autoconf 2.61.  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 --localsta$

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

## Platform. ##

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

hostname = localhost

uname -m = i686

uname -r = 2.6.22-gentoo-r9

uname -s = Linux

uname -v = #6 SMP Sun Feb 24 19:15:43 CET 2008

/usr/bin/uname -p = AMD Sempron(tm) Processor 3100+

/bin/uname -X     = unknown

/bin/arch              = unknown

/usr/bin/arch -k       = unknown

/usr/convex/getsysinfo = unknown

/usr/bin/hostinfo      = unknown

/bin/machine           = unknown

/usr/bin/oslevel       = unknown

/bin/universe          = unknown

PATH: /usr/local/sbin

PATH: /sbin

PATH: /usr/sbin

PATH: /usr/lib/portage/bin

PATH: /usr/local/bin

PATH: /bin

PATH: /usr/bin

PATH: /opt/bin

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

PATH: /usr/kde/3.5/sbin

PATH: /usr/kde/3.5/bin

PATH: /usr/qt/3/bin

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

## Core tests. ##

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

configure:1901: checking for a BSD-compatible install

configure:1957: result: /usr/bin/install -c

configure:1968: checking whether build environment is sane

configure:2011: result: yes

configure:2039: checking for a thread-safe mkdir -p

configure:2078: result: /bin/mkdir -p

configure:2091: checking for gawk

configure:2107: found /bin/gawk

configure:2118: result: gawk

[...]

|                    Syntax error

configure:5361: i686-pc-linux-gnu-gcc -E  -Wall -Wmissing-prototypes -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1 -falign-functions=1$

In file included from /usr/include/bits/posix1_lim.h:153,

                 from /usr/include/limits.h:145,

                 from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/limits.h:122,

                 from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/syslimits.h:7,

                 from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/limits.h:11,

                 from conftest.c:20:

/usr/include/bits/local_lim.h:36:26: error: linux/limits.h: No such file or directory

configure:5367: $? = 1

configure: failed program was:

| /* confdefs.h.  */

| #define PACKAGE_NAME "GRUB"

| #define PACKAGE_TARNAME "grub"

| #define PACKAGE_VERSION "0.97"

[...]configure:5361: i686-pc-linux-gnu-gcc -E -traditional-cpp  -Wall -Wmissing-prototypes -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1 -f$

In file included from /usr/include/features.h:323,

                 from /usr/include/assert.h:38,

                 from conftest.c:23:

/usr/include/sys/cdefs.h:32: error: #error "You need a ISO C conforming compiler to use the glibc headers"

configure:5367: $? = 1

configure: failed program was:

| /* confdefs.h.  */

| #define PACKAGE_NAME "GRUB"

| #define PACKAGE_TARNAME "grub"

| #define PACKAGE_VERSION "0.97"

[...]

|                    Syntax error

configure:5361: /lib/cpp  -Wall -Wmissing-prototypes -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef conftes$

In file included from /usr/include/bits/posix1_lim.h:153,

                 from /usr/include/limits.h:145,

                 from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/limits.h:122,

                 from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/syslimits.h:7,

                 from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/limits.h:11,

                 from conftest.c:20:

/usr/include/bits/local_lim.h:36:26: error: linux/limits.h: No such file or directory

configure:5367: $? = 1

configure: failed program was:

| /* confdefs.h.  */

| #define PACKAGE_NAME "GRUB"

| #define PACKAGE_TARNAME "grub"

[...]|                    Syntax error

configure:5466: /lib/cpp  -Wall -Wmissing-prototypes -Wunused -Wshadow -Wpointer-arith -falign-jumps=1 -falign-loops=1 -falign-functions=1 -Wundef conftes$

In file included from /usr/include/bits/posix1_lim.h:153,

                 from /usr/include/limits.h:145,

                 from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/limits.h:122,

                 from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/syslimits.h:7,

                 from /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/limits.h:11,

                 from conftest.c:20:

/usr/include/bits/local_lim.h:36:26: error: linux/limits.h: No such file or directory

configure:5472: $? = 1

configure: failed program was:

| /* confdefs.h.  */

| #define PACKAGE_NAME "GRUB"

| #define PACKAGE_TARNAME "grub"

[...]
```

J'ai pas tout mis, j'ai pris les morceaux qui semblent intéressant...

----------

## xaviermiller

essaie de réinstaller linux-headers

----------

## SlashRhumSlashNeisson

C'est bizarre, si tu as suivi le tutos, et que tu bloques à l'emerge du system,

tu devrais avoir l'ancienne version de gcc présente  :Question: 

 *anti-conformiste wrote:*   

> localhost fred # gcc-config -l
> 
> [1] i686-pc-linux-gnu-4.1.2 *
> 
> localhost fred #

 

----------

## anti-conformiste

 *SlashRhumSlashNeisson wrote:*   

> C'est bizarre, si tu as suivi le tutos, et que tu bloques à l'emerge du system,
> 
> tu devrais avoir l'ancienne version de gcc présente 
> 
>  *anti-conformiste wrote:*   localhost fred # gcc-config -l
> ...

 

 :Embarassed:  je l'ai viré pensant que c'était peut-etre elle qui provoquait le conflit

----------

## anti-conformiste

 *XavierMiller wrote:*   

> essaie de réinstaller linux-headers

 

Bin c'est ça qui me parait pas naturel, en + j'ai pas les linux-headers pour la version de mon noyau.

```
* sys-kernel/linux-headers

     Available versions:  *2.0.40-r1 *2.2.26-r1 2.4.26-r1 ~2.4.33.3 2.6.17-r2 2.6.22-r2 ~2.6.23 ~2.6.23-r1 2.6.23-r2 2.6.23-r3 ~2.6.24

     Homepage:            http://www.kernel.org/ http://www.gentoo.org/

     Description:         Linux system headers

uname -r

2.6.22-gentoo-r9 => pas les headers pour cette version...

```

----------

## Desintegr

 *anti-conformiste wrote:*   

> en + j'ai pas les linux-headers pour la version de mon noyau.

 

Ce n'est pas très grave ça, le plus important c'est de les avoir  :Smile: .

----------

## SlashRhumSlashNeisson

Essaie de recompiler glibc et gcc   :Idea: 

et dans la foulée recompiles ton kernel

----------

## Desintegr

 *SlashRhumSlashNeisson wrote:*   

> Essaie de recompiler glibc et gcc et dans la foulée recompiles ton kernel

 

À mon avis, installer les linux-headers est suffisant.

----------

## anti-conformiste

Vu que mon GCC-4.1.2 fonctionne plus, je ne peux plus rien compiler...(j'ai cette erreur de compilation systematiquement)

Je ne peux meme pas revenir en arriere vu que j'ai viré le 3.x. 

Je suis un peu perdu, je n'ai jamais eu de probleme aussi genant avec mon petit pengouin depuis 3 ans.

Et je l'aime ma petite bestiole, meme si c'est long, tres long pourqu'elle soit très rapide. (je suis un sentimental   :Crying or Very sad:  )

Mais quand on part de rien pour installer une gentoo, y' a bien un compilateur qui s'en occupe.

Quelqu'un peut-il éclairer mes lanternes ?

----------

## Desintegr

Tu peux installer les linux-headers via un paquet binaire.

Par exemple, celui-ci : http://tinderbox.x86.dev.gentoo.org/html/default-linux/x86/All/linux-headers-2.6.23-r3.html

----------

## anti-conformiste

 *Desintegr wrote:*   

> Tu peux installer les linux-headers via un paquet binaire.
> 
> Par exemple, celui-ci : http://tinderbox.x86.dev.gentoo.org/html/default-linux/x86/All/linux-headers-2.6.23-r3.html

 

Ca a l'air de passer !   :Smile: 

Mais je comprends pas bien pourquoi...   :Rolling Eyes:   L'ancien gcc n'avait pas besoin des fichiers headers pour compiler; d'ailleur la plupart des fichiers utiles à la compilation d'un fichier C et C++ (genre stdin.h, malloc.h, etc. - de mémoire, je ne code plus depuis 7 ans ) sont fournis avec le compileur.

J'en suis à recompiler toutes les appli. avec gcc-4.1.2 avec un emerge -e system.

Je vous tiens au courant quand c'est fini...

----------

