# [systeme] C compiler cannot create executables

## Darius4all

bonjour a tous, aprés plusieurs heures de recherches manip et autre je pete un plomb avec ce probleme somme toute assez courant semble t il.

j'ai changé de profile amd64 no-multilib pour un profile 32/64 classique et depuis je ne peux plus rien compiler qui fasse appel a gcc.

j'ai bien sur cherché a droite a gauche et testé les solutions qui ont étaient trouvées par les autres utilisateurs que ce soit de gentoo ou autre distros, mais ca ne veut pas.

solutions testées :

- recompile noyau

- gcc-config -f 1 (une seule version de gcc sur l'ordi)

- binutils-config 1

- env-update

- source /etc/profile

- ldconfig

je dois en oublier une ou deux mais la je commence a sécher fortement.

je suis en profile amd64 2008 kernel 2.6.24-gentoo-r7, gcc 4.1.2.

/etc/make.conf :

```

# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /etc/make.conf.example for a more detailed example.

CFLAGS="-march=nocona -fomit-frame-pointer -O2 -pipe"

CXXFLAGS="${CFLAGS}"

# This should not be changed unless you know exactly what you are doing.  You

# should probably be using a different stage, instead.

CHOST="x86_64-pc-linux-gnu"

USE="wma real rtc X a52 aac acpi alsa aspell async audiofile bidi cdda cddb cdio cdparanoia cdr cdrom cpudetection css dbus divx dts dvd dvdnav dvdr encode ffmpeg flac freetype ftp gif gimp gnutls gtk gtk2 hal hddtemp httpd imagemagick ipw4965 ivman java jpeg live mad matroska mmxext moznocompose moznoirc moznomail mp3 mpeg mplayer msn musepack nvidia ogg oggvorbis opengl png quicktime rtsp samba skins spell ssse3 stream svg theora truetype utf8 vcd vlm vorbis wifi wxwindows x264 xinerama xscreensaver xv xvid -cups -ipv6 rar"

VIDEO_CARDS="nvidia"

MAKEOPTS="-j3"

LC_ALL="fr_FR.UTF-8"

LINGUAS="fr fr_FR"

INPUT_DEVICES="evdev keyboard mouse joystick"

FETCHCOMMAND="axel -n 3 -a -o /usr/portage/distfiles/ \${URI}"

RESUMECOMMAND="axel -n 3 -a -o /usr/portage/distfiles/ \${URI}"

GENTOO_MIRRORS="ftp://213.186.33.38/gentoo-distfiles/ http://mirror.muntinternet.net/pub/gentoo/ ftp://mirror.muntinternet.net/pub/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/"

```

emerge gcc me donne le message d'erreur suivant :

```

* ERROR: sys-devel/gcc-4.1.2 failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_compile

 *             environment, line 4602:  Called toolchain_src_compile

 *             environment, line 5073:  Called gcc_src_compile

 *             environment, line 2925:  Called gcc_do_make

 *             environment, line 2755:  Called die

 * The specific snippet of code:

 *       emake LDFLAGS="${LDFLAGS}" STAGE1_CFLAGS="${STAGE1_CFLAGS}" LIBPATH="${LIBPATH}" BOOT_CFLAGS="${BOOT_CFLAGS}" ${GCC_MAKE_TARGET} || die "emake failed with ${GCC_MAKE_TARGET}";

 *  The die message:

 *   emake failed with profiledbootstrap

 * 

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

 * A complete build log is located at '/var/tmp/portage/sys-devel/gcc-4.1.2/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-devel/gcc-4.1.2/temp/environment'.

```

du coup sur un emerge wine par exemple :

```

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

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

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

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

checking for C compiler default output file name... 

configure: error: C compiler cannot create executables

See `config.log' for more details.

!!! Please attach the following file when seeking support:

!!! /var/tmp/portage/app-emulation/wine-0.9.57/work/wine-0.9.57/config.log

 * 

 * ERROR: app-emulation/wine-0.9.57 failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_compile

 *             environment, line 2427:  Called econf 'src_compile' 'src_compile' '--sysconfdir=/etc/wine' '--with-curses'

 *               ebuild.sh, line  513:  Called die

 * The specific snippet of code:

 *            die "econf failed"

 *  The die message:

 *   econf failed

 * 

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

 * A complete build log is located at '/var/tmp/portage/app-emulation/wine-0.9.57/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/app-emulation/wine-0.9.57/temp/environment'.

```

wine et flash étant la raison principale de mon changement de profile, je suis gentilment en train de craquer :p

voila vous savez tout

----------

## MasterPrenium

Salouté, 

J'ai eu le même problème que toi il n'y a pas si longtemps, ma réponse ne vas probablement pas te plaire mais au moins çà marche, pour résoudre çà j'ai redécompresser une archive stage 3, et recompiler gcc à partir du gcc de la stage ....

Sinon si t'arrive à trouver un gcc précompilé pour recompiler gcc çà fonctionnera normalement  :Smile: 

----------

## Bob_Le_Mou

Bonjour,

Je ne sais pas si c'est lié, mais il y 2 semaines, j'ai installé une nouvelle gentoo, après un upgrade hardware (nouvelle carte mère + nouveau processeur...) 

J'ai utilisé pour ce faire un liveCD 2008.0 beta1, car il utilise un noyau 2.6.24 et ma carte ethernet était reconnue..., avec le profile 2008.0 (amd64 multilib).

La compilation s'est passé correctement, jusqu'à l'emerge de kdelibs et là impossible de compiler... Quelque soit la version (3.8, 3.9)...

Après avoir bien sécher, j'ai pris l'option de re-passer un profile 2007.0 + recompilation générale, et là tout est passé.

J'ai pas vraiment cherché (boulot, vacances ) mais je suspecte l'utilisation de CCFLAGS par défaut un peu plus agressifs dans la 2008.0 (??) vu qu'il me semble pas y avoir de différence de version entre le gcc utilisé sur la 2008.0 et la 2007.0.

Bien sûr, cette conclusion n'engage que moi...

/edit

De plus si ton processeur correspond à çà, enleve -fomit-frame-pointer si tu compiles pour un profile amd64 :

 Intel Core 2 Duo/Quad / Xeon 51xx/53xx, Pentium Dual-Core Exxxx

vendor_id  : GenuineIntel

cpu family  : 6

model  : 15

model name  : Intel(R) Core(TM)2 CPU XXXX @ XXXGHz

32 bit profile (x86)

CHOST="i686-pc-linux-gnu"

CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"

CXXFLAGS="${CFLAGS}"

64 bit profile (amd64)

CHOST="x86_64-pc-linux-gnu"

CFLAGS="-march=nocona -O2 -pipe"

CXXFLAGS="${CFLAGS}"

--> gentoo wiki

edit/

B.

----------

## Darius4all

merci les gens, je vais tester ce soir et je vous dit quoi.

edit : ma config est celle du bas dans ma signature  :Wink: 

----------

## ghoti

En cherchant tout-à-fait autre chose, je suis tombé par hasard sur ceci

Je n'ai pas creusé mais à première vue, on dirait que ça ressemble à ton problème, non ?

----------

## Darius4all

ah oui ca m'a l'air pas mal aussi, merci pour le lien je vais tester ca également, je vous dit quoi.

----------

## Bob_Le_Mou

Bizarre...

Cette option "General Setup -> Optimize for size (Look out for broken compilers!) " est activée dans ma config kernel...

B.

----------

## Link31

Cet avertissement ("Look out for broken compilers!") signifie que certains compilateurs peuvent générer du code incorrect lors de la compilation du noyau avec les options en question.

Il se peut qu'un noyau compilé avec ces options fasse planter des programmes en userspace, mais je ne vois pas pourquoi il s'acharnerait particulièrement sur GCC.

Donc l'interprétation faite dans ce post est complètement fantaisiste  :Rolling Eyes: 

En ce qui concerne le problème de Darius4all, la réponse est dans le config.log.

----------

## Desintegr

Il faudrait voir les logs complet de l'erreur donnée par gcc (config.log).

Essaye sinon de compiler un simple programme C du genre :

```
int main() {

   return 0;

}
```

Aussi, activer l'option Optimize for size n'est pas une très bonne idée car ça peut désactiver beaucoup d'optimisation que tu aurais normalement en -O2.

----------

## Bob_Le_Mou

Bon ben je le désactive.

----------

## Darius4all

testé sans -fomit-frame-pointer marche pas non plus.

j'ai pas testé l'option du kernel vu qu'elle ne semble pas appropriée

l'est ou le config.log que vous voulez?

----------

## Desintegr

 *Quote:*   

> !!! Please attach the following file when seeking support:
> 
> !!! /var/tmp/portage/app-emulation/wine-0.9.57/work/wine-0.9.57/config.log

 

----------

## Darius4all

bon semblerait que ca reparte, je viens de relinker le profile, env-update, source/etc/profile, emerge --sync, emerge -uDv world, 10 paquets a mettre a jour, j'en suis au 9eme (thunderbird) sans plantage ... la suite au prochain épisode on voit si ca tient

----------

## loopx

Je pense avoir eu le problème ...

c'était ptet bien un problème de profile gcc (gcc-config -l)

----------

## Darius4all

j'ai fait le gcc-config déjà.

fausse alerte ca plante toujours, sur gcc wine etc ...

----------

## xaviermiller

heu, tu es bien en multilib ? et tes CFLAGS, quels sont-ils ?

----------

## Bob_Le_Mou

+1 pour le config.log

----------

## Darius4all

oui je suis sur le profil par défaut amd64 2008.

ce soir le .log de wine je suis au taf la je peux pas le sortir

edit :

les CFLAGS march=nocona -O2 -pipe

----------

## Bob_Le_Mou

le config.log de GCC... 

sinon, jette un coup d'oeil à ce post, peut-être que ...

----------

## xaviermiller

et emerge --info  :Wink: 

----------

## Darius4all

Bob_Le_Mou : j'ai commencer par ca pour les options 32bits du kernel elles y sont.

les logs ce soir ^^

----------

## Darius4all

emerge --info :

```

Portage 2.1.4.4 (default/linux/amd64/2008.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.24-gentoo-r7 x86_64)

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

System uname: 2.6.24-gentoo-r7 x86_64 Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz

Timestamp of tree: Tue, 06 May 2008 10:00:01 +0000

app-shells/bash:     3.2_p33

dev-java/java-config: 1.3.7, 2.1.6

dev-lang/python:     2.4.4-r9

dev-python/pycrypto: 2.0.1-r6

sys-apps/baselayout: 1.12.11.1

sys-apps/sandbox:    1.2.18.1-r2

sys-devel/autoconf:  2.13, 2.61-r1

sys-devel/automake:  1.7.9-r1, 1.9.6-r2, 1.10.1

sys-devel/binutils:  2.18-r1

sys-devel/gcc-config: 1.4.0-r4

sys-devel/libtool:   1.5.26

virtual/os-headers:  2.6.23-r3

ACCEPT_KEYWORDS="amd64"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=nocona -O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-march=nocona -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="ftp://213.186.33.38/gentoo-distfiles/ http://mirror.muntinternet.net/pub/gentoo/ ftp://mirror.muntinternet.net/pub/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/"

LANG="fr_FR@euro"

LC_ALL="fr_FR.UTF-8"

LINGUAS="fr fr_FR"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="X a52 aac acl acpi alsa amd64 aspell async audiofile berkdb bidi bzip2 cdda cddb cdio cdparanoia cdr cdrom cli cpudetection cracklib crypt css dbus divx dri dts dvd dvdnav dvdr encode ffmpeg flac fortran freetype ftp gdbm gif gimp gnutls gpm gtk gtk2 hal hddtemp httpd iconv imagemagick ipw4965 isdnlog ivman java jpeg live mad matroska midi mmx mmxext moznocompose moznoirc moznomail mp3 mpeg mplayer msn mudflap multilib musepack ncurses nls nptl nptlonly nvidia ogg oggvorbis opengl openmp pam pcre perl png pppd python quicktime rar readline reflection rtc rtsp samba session skins spell spl sse sse2 ssl ssse3 stream svg tcpd theora truetype unicode utf8 vcd vlm vorbis wifi wma wxwindows x264 xinerama xorg xscreensaver xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev keyboard mouse joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="fr fr_FR" USERLAND="GNU" VIDEO_CARDS="nvidia"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

```

pour gcc j'ai pas de config.log voici la fin du build.log :

```

make[4]: entrant dans le rÃ©pertoire Â« /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/gcc Â»

./xgcc -B./ -B/usr/x86_64-pc-linux-gnu/bin/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -L/var/tmp/portage/sys-devel/gcc-4.1.2/work/build/gcc/../ld -O2 -O2 -march=nocona -O2 -pipe  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -I. -I32 -I/var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/gcc -I/var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/gcc/32 -I/var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/gcc/../include -I/var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/gcc/../libcpp/include  -m32 -g0 -finhibit-size-directive -fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss -fno-unit-at-a-time  -fno-omit-frame-pointer -fno-asynchronous-unwind-tables \

     -c /var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/gcc/crtstuff.c -DCRT_BEGIN \

     -o 32/crtbegin.o

Dans le fichier inclus Ã  partir de /usr/include/features.h:345,

          Ã  partir de /usr/include/stdio.h:28,

          Ã  partir de /var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/gcc/tsystem.h:90,

          Ã  partir de /var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/gcc/crtstuff.c:68:

/usr/include/gnu/stubs.h:7:27: erreur: gnu/stubs-32.h : Aucun fichier ou rÃ©pertoire de ce type

make[4]: *** [32/crtbegin.o] Erreur 1

make[4]: quittant le rÃ©pertoire Â« /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/gcc Â»

make[3]: *** [extra32] Erreur 2

make[3]: quittant le rÃ©pertoire Â« /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/gcc Â»

make[2]: *** [stmp-multilib] Erreur 2

make[2]: quittant le rÃ©pertoire Â« /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/gcc Â»

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

make[1]: quittant le rÃ©pertoire Â« /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/gcc Â»

make: *** [profiledbootstrap] Erreur 2

 * 

 * ERROR: sys-devel/gcc-4.1.2 failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_compile

 *             environment, line 4602:  Called toolchain_src_compile

 *             environment, line 5073:  Called gcc_src_compile

 *             environment, line 2925:  Called gcc_do_make

 *             environment, line 2755:  Called die

 * The specific snippet of code:

 *       emake LDFLAGS="${LDFLAGS}" STAGE1_CFLAGS="${STAGE1_CFLAGS}" LIBPATH="${LIBPATH}" BOOT_CFLAGS="${BOOT_CFLAGS}" ${GCC_MAKE_TARGET} || die "emake failed with ${GCC_MAKE_TARGET}";

 *  The die message:

 *   emake failed with profiledbootstrap

 * 

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

 * A complete build log is located at '/var/tmp/portage/sys-devel/gcc-4.1.2/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-devel/gcc-4.1.2/temp/environment'.

```

----------

## Desintegr

Je soupçonnerais une glibc mal installée :

 *Quote:*   

> $ equery b /usr/include/gnu/stubs-32.h 
> 
> [ Searching for file(s) /usr/include/gnu/stubs-32.h in *...
> 
> sys-libs/glibc-2.7-r2 (/usr/include/gnu/stubs-32.h)

 

----------

## Darius4all

ouais mais glibc elle compile pas non plus du coup :/

```

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

checking whether ln -s works... yes

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

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes

checking for x86_64-pc-linux-gnu-gcc option to accept ANSI C... none needed

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

configure: error: C preprocessor "/lib/cpp" fails sanity check

See `config.log' for more details.

 * 

 * ERROR: sys-libs/glibc-2.6.1 failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_compile

 *             environment, line 3390:  Called eblit-run 'src_compile'

 *             environment, line 1082:  Called eblit-glibc-src_compile

 *       src_compile.eblit, line  168:  Called src_compile

 *             environment, line 3390:  Called eblit-run 'src_compile'

 *             environment, line 1082:  Called eblit-glibc-src_compile

 *       src_compile.eblit, line  179:  Called toolchain-glibc_src_compile

 *       src_compile.eblit, line  120:  Called glibc_do_configure 'src_compile'

 *       src_compile.eblit, line   97:  Called die

 * The specific snippet of code:

 *      "${S}"/configure ${myconf} || die "failed to configure glibc"

 *  The die message:

 *   failed to configure glibc

 * 

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

 * A complete build log is located at '/var/tmp/portage/sys-libs/glibc-2.6.1/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-libs/glibc-2.6.1/temp/environment'.

 * 

```

----------

## Desintegr

Tu peux trouver une glibc digne de ce nom sur la tinderbox.

----------

## Darius4all

j'ai besoin de copier quoi dans ce qe j'ai extrait de l'archive ? tout juste un ou 2 fichier ?

la en copiant les fichiers je me retrouve avec une 

```
libc.6.so too short
```

du coup kernel panic je boot plus.

je vais repartir avec un livecd mais je récup quoi du coup ?

----------

## Desintegr

Les paquets binaires doivent être installés avec emerge -K !

Réinstalle correctement ta glibc à partir d'un LiveCD. Mais il va falloir surement recréer des liens correctement avant (comme /lib/libc.so.6, etc.)

----------

## Darius4all

en gros je reboot sur le livecd je chroot mon environement et j'emerge -K glibc ?

----------

## Darius4all

bon je crois que je vais devoir passer par une extraction d'un stage 3.

je peux pas chrooter depuis le livecd j'ai une erreur de libc.so.6

j'ai tenté de recopier les fichiers lib concernés depuis le livecd mais ca passe pas mieux l'ordi se plain de pas trouver le fichier alors qu'il y est.

si vous savez ce qu'il me manque comme lien a refaire ou si j'ai une solution de contournement je suis tout ouie  :Very Happy: 

----------

## Darius4all

bon petit progrés, j'ai extrait le stage 3 dans un rep a part et j'ai recopié /usr/lib, /usr/lib32, /usr/lib64, /bin, /usr/bin, /usr/sbin (celui la je suis pas sur de l'avoir copié)

le systeme boot maintenant, ne se plaignant plus d'un prob libc.so.6, mais toujours pas possible de compiler gcc ou glibc.

emerge -K glibc me renvoi qu'il me faut glibc ... 

j'ai fait un env-update, un ldconfig, un source /etc/profile mais ca passe pas.

help pliz :p

----------

