# configure: error: C compiler cannot create executables

## JoHo42

Hi Leute,

nach einem Portage update bekomme ich beim Update oder Installieren von Programmen folgende Meldung:

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/sys-devel/make-3.81-r2/work/make-3.81/config.log

 * ERROR: sys-devel/make-3.81-r2 failed:

 *   econf failed

 * 

 * Call stack:

 *     ebuild.sh, line   54:  Called src_compile

 *   environment, line 2615:  Called econf '--enable-nls' '--program-prefix=g'

 *     ebuild.sh, line  544:  Called die

 * The specific snippet of code:

 *   			die "econf failed"

Woher kommt das plötzlich?

Jörg

----------

## disi

Ich hatte das vor ca. 2 Tagen. Ein unachtsames emerge --depclean hatte gmp und apr entfernt. Der Compiler war noch da aber funktionierte nicht mehr.

Was ich gemacht hatte:

stage3 ins / herunterladen und mit

```
# tar xvjpfk stage3*
```

entpacken

dann mit gcc-config -l gucken, ob 4.4 compiler noch aktiv ist

emerge -DuN world

und revdep-rebuild

dann war alles gut  :Smile: 

//edit: guck doch mal mit gcc-config -l welche compiler du hast, vielleicht tut ein anderer?

----------

## JoHo42

HI Disi,

ich habe kein deepclean gemacht. Ich habe wohl emerge -C kdevelop gemacht und wollte dieses neu installieren.

Doch ich bekamm auch diese Meldung.

Die programm arp und gmp sind bei mir auch noch auf der Festplatte.

Arp koennte mal wieder ein update gebrauchen doch leider funktioniert das auch nicht.

Joerg

----------

## franzf

Kannst du mal bitte den Inhalt von /var/tmp/portage/sys-devel/make-3.81-r2/work/make-3.81/config.log posten? Wenns zu lange ist auf pastebin. Thx.

----------

## JoHo42

Hi Leute,

ich habe mir einfach nur eine alte Portage Version auf dem Rechner installiert (alte erst geloescht).

Jetzt kann ich wieder updates an make usw.. durchfuerhen.

Keine Ahnung warum das so ist.

Naja vielleicht tritt das Problem nicht mehr auf wenn ich in ein paar Tagen emerge --sync mache.

Gruss Joerg

----------

## JoHo42

Habe heute einen neuen emerge --sync durchgefuehrt und erhalte wieder diese Meldung, dass ich kein Programm uebersetzen kann.

So jetzt habe ich das Problem gefunden.

Hier mal die Meldung aus dem config.log:

configure:3324: x86_64-pc-linux-gnu-gcc -march=athlon64 -O2 -pipe -msse2 -msse3 -mmx -md3dnow -fomit-frame-pointer  -Wl,-O1 -Wl,--as-needed $

cc1: error: unrecognized command line option "-mmx"

cc1: error: unrecognized command line option "-md3dnow"

Allerding unterstuetzt der Processor laut cat /prof/cpuinfo diese Befehle mmx und md3now also warum sollte ich diese loeschen?

Gruss Joerg

----------

## franzf

Mag ja sein, aber dann schreib es auch richtig.

-mmmx

-m3dnow (nicht -md3now)

Das hast du in der make.conf stehen, oder?

----------

## firefly

 *JoHo42 wrote:*   

> Habe heute einen neuen emerge --sync durchgefuehrt und erhalte wieder diese Meldung, dass ich kein Programm uebersetzen kann.
> 
> So jetzt habe ich das Problem gefunden.
> 
> Hier mal die Meldung aus dem config.log:
> ...

 

Nur weil der Prozessor diese unterstützt muss es noch lange nicht heißen, dass der compiler diese parameter kennt  :Wink:  wie schon franf gesagt hat-

----------

## JoHo42

Hi Leute,

es war falsch geschrieben. Jetzt stellt sich mir aber die frage, wenn ich jetzt mein System neu baue ob da manche Programme vielleicht schneller durch werden.

Weil ich jetzt keine mmx Unterstützung drin habe.

Naja eigentlich ist mein PC schnell genug, allerdings wäre das jetzt mal eine Frage ob dem so ist.

Gruss Joerg

----------

## franzf

http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options

 *Quote:*   

> k8, opteron, athlon64, athlon-fx
> 
> AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)

 

Danach schließt "athlon64" mmx und 3dnow schon ein. Diese zusätzlich zu setzen bringt also nix. Wenn du deinen march nicht auch geändert hast, bringt neu bauen absolut nichts  :Smile: 

----------

## schachti

Und wenn man in der make.conf einfach

```
-march=native
```

setzt, umgeht man solche Probleme und muss sich keine Gedanken machen, was die eigene CPU kann und was nicht.   :Wink: 

----------

## franzf

 *schachti wrote:*   

> Und wenn man in der make.conf einfach
> 
> ```
> -march=native
> ```
> ...

 

Genau. Solange man nicht die Hilfe eines anderen Rechners via distcc haben will geht das gut. Mit distcc wird es bei anderen march'es Probleme geben.

----------

