Forum: Compiler & IDEs internal compiler error


von Mehr (Gast)


Lesenswert?

Hallo,

ich bin dabei Ulrich Radigs Webserver-Software an die Pollin-Hardware 
anzupassen und neu zu kompilieren.
Auf einem PC (W2K SP4) in der Firma kann ich erfolgreich übersetzen und 
den AVR flashen.
Auf zwei PC's zu hause (1.PC W2K SP4; 2.PC WXP SP3) erhalte ich folgende 
Fehlermeldung:

Build started 6.10.2008 at 20:54:26
avr-gcc.exe  -mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99 
-DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -MD -MP -MT base64.o -MF dep/base64.o.d  -c 
../base64.c
../base64.c: In function 'decode_base64':
../base64.c:77: internal compiler error: Illegal instruction
Please submit a full bug report,
with preprocessed source if appropriate.
See 
<URL:http://sourceforge.net/tracker/?atid=520074&group_id=68108&func=browse>; 
for instructions.
make: *** [base64.o] Error 1
Build failed with 1 errors and 0 warnings...

Was ist hier faul? Wer kann mir helfen?

Gruß

Micha

von Mark .. (mork)


Lesenswert?

Welche Version von avr-gcc/WinAVR benutzt du? Eventuell upgraden.

von Mehr (Gast)


Lesenswert?

Hallo,

sorry, hatte die Version vergessen:

WINAVR: WinAVR-20080610
AVR-Studio: 4.14.589

Gruß

Micha

von Andreas K. (a-k)


Lesenswert?

Was schon früher in anderen Fällen geholfen hat:

WinAVR komplett deinstallieren.
Alle Reste vorheriger Installationen beseitigen.
Neu installieren.

Denn am WinAVR liegt es ja wohl nicht, wenn es nicht vom Quellcode 
sondern vom PC abhängt.

von Mehr (Gast)


Lesenswert?

Hallo,

leider hatte ich sehr wenig Zeit.
Deinstallieren und Einträge in der Registry löschen hat auch nichts 
gebracht.
(ich hatte nach WinAVR und ähnlichen Einträgen gesucht)
Ich habe den W2K-PC platt gemacht und das System (wieder W2K) neu 
aufgesetzt, SP4 aufgespielt und alle anstehenden Updates ausgeführt.
Leider der selbe Fehler wieder. (:-((

Da ich mittlerweile mehr als einen PC besitze habe ich AVR-Studio und 
WinAVR noch auf einem anderen PC (W2K-SP4 aktuellster Stand) installiert 
und sieh da es funktioniert.

Ich habe leider keine Erklärung für deses Verhalten. Was an den beiden 
erstgenannten PC's anders ist, ist das darin eine VIA-CPU (700 und 900 
MHz) werkelt.
Bei anderer Software ist bisher nie ein Fehler aufgetreten.

Hat jemand eine Tüte Rat fürmich?

Gruß Micha

von let (Gast)


Lesenswert?

Sowas Ähnliches gab es gerade erst in einem anderen Thread.
Die Binaries sind für irgendwelche neueren Prozessoren
gebaut. Offenbar sind die VIAs nicht so ganz kompatibel zu
den aktuelleren x86ern.

Beitrag "Was ist die aktuelle, STABILE WinAVR Version?"

von Stefan E. (sternst)


Lesenswert?

> ../base64.c:77: internal compiler error: Illegal instruction

Der Compiler wurde offensichtlich mit bestimmten CPU-Optimierungen 
übersetzt und enthält daher Opcodes, die deine CPU schlicht nicht 
hat/versteht.
So wie z.B. auch in diesem Fall:
http://sourceforge.net/tracker/index.php?func=detail&aid=2155852&group_id=68108&atid=520074

von testhro (Gast)


Lesenswert?

Ich habe bei mir auf dem betroffenen System (Pentium-MMX) die Version
WINAVR-20070525 am laufen.

Die sollte mit VIA auch tun.

von Mehr (Gast)


Lesenswert?

Hallo,

danke für Eure Hilfe!

Ich hab' jetzt die Version 20071221 installiert - damit kann ich meinen 
Sourcecode erfolgreich compilieren.

Jetzt aber noch eine Frage:
Da mein PC mit der VIA C3-CPU doch schon etwas betagt ist, würde ein 
Bugreporting an Eric Weddington und sein Team etwas bringen?
Haben die Programmierer Zeit sich noch mit dem "alten Kram" zu 
beschäftigen?

Gruß Micha

von (prx) A. K. (prx)


Lesenswert?

Gibt's wohl nicht viel zu tun ausser neu übersetzen für i586. Dein C3 
ist ziemlich antik, nicht wirklich erstaunlich dass das heute mal 
Probleme gibt. Wer für PentiumPro (i686) übersetzt, und das ist 
mittlerweile ziemlich verbreitet, riskiert Ärger mit dem C3. Denn der 
ist nur fast dazu kompatibel: ihm fehlt CMOVxx. 
http://gcc.gnu.org/ml/gcc-patches/2004-07/msg02718.html

Insofern kann ein Tip an Eric schon helfen. Damit die nächste Version 
wieder für i586 übersetzt wird.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Andreas Kaiser wrote:

> WinAVR komplett deinstallieren.
> Alle Reste vorheriger Installationen beseitigen.
> Neu installieren.

Ob das was bringt...? Das ist ja offensichtlich ein Compiler-Bug. Den 
betrefflichen Source etwas umschreiben koennte auch helfen.

von testhro (Gast)


Lesenswert?

> Den betrefflichen Source etwas umschreiben koennte auch helfen.

Spätestens wenn er den Optimizer einschaltet: -Os und Inlinecode
generiert wirt, knallt es wieder.

siehe:
http://sourceforge.net/tracker/index.php?func=detail&aid=2144298&group_id=68108&atid=520074

Da die meisten AVR-Projekte ja doch relativ übersichtlich sind,
sollte man den Compiler mit -m486 übersetzen und gut wär.

Das Performancepenalty sollte minimal sein.

@Mehr: Ohne Bugreports wird sich kaum was tun.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.