Welche GCC Version ist empfehlenswert?

Moderator Persönliche Seite #3274112
Lesenswert?

Naja, neuere Versionen haben in aller Regel alte Bugs repariert und
bessere Optimierung als ältere Versionen.  Dafür können sie natürlich
neue Bugs haben, die möglicherweise noch keiner entdeckt hat.

Ältere Versionen haben teilweise Bugs, die in neueren Versionen
repariert sind (aber für die man vielleicht einen Workaround nehmen
kann, da man sie kennt), daführ fehlen Optimierungen, die erst später
hinzugekommen sind, denn im Gegensatz zu Bugfixes werden die oft nicht
zurück portiert.

4.8.0 ist meines Wissens die neueste Version, 4.7.3 ist die letzte
auf der 4.7er Linie.
Gast #3276729
Lesenswert?

Wie Joerg gut erraten hat, war die Frage fuer AVR gemeint. Und ich habe 
genau hier schon mehrfach von Problemen mit neueren Versionen gelesen, 
bei denen es zu wesentlich groesserem und/oder langsamerem Code gekommen 
ist. Als Grund wurde da zum Beispiel genannt, dass Optimierungen fuer 
die "grossen" CPUs mitunter bei den kleinen Controllern zum 
gegenteiligen Effekt fuehren - ergo die neueste Version nicht unbedingt 
automatisch die beste Version ist.
Gast #3276848
Lesenswert?

Hab gerade eine 4.8.1 Toolchain gebaut und kann nur sagen: Spitze, was 
da rauskommt!
BTW, AVR's verschiedenen Typs sind nicht wirklich unterschiedlich. Ok, 
ganz kleinen ( oder ganz alten) mangelt es an Pointer-Registern, aber 
vor dem Problem steht auch der Assembler-Handoptimierer. GCC ist vor 
allem total emotionslos, wenn es darum geht überflüssige CALL's 
rauszuschmeißen, d.h. man kann schön modular programmieren (gerne auch 
in Klassen) und im .lss File ist von Overhead keine Spur mehr.
Zwischendurch (Übergang zu 4.x und 4.6.x) gab's mal unrühmliche 
Versionen, aber 4.8.1 ist Top. Einzig die "Installation" aus den Sourcen 
ist nicht jedermanns Sache.
Gast #3276899
Lesenswert?

Die letzte habe ich zwangsweise selbst gebaut. Ist schon eine Weile her, 
aber zum Beispiel die Patches fuer 0b...-Definitionen haben bei der 
alten Version gefehlt und die neue Version fuer MacOS hat viel zu 
grossen Code erzeugt. Wenn's geht werde ich jetzt wieder auf eine 
offizielle Version wechseln - aber manchmal geht es halt nicht. Vom 
avrdude habe ich auch eine eigene Version, die Apples USB3-Bug umgeht. 
:-/
Moderator Persönliche Seite #3276956
Lesenswert?

Postix schrieb:
> Und ich habe genau hier schon mehrfach von Problemen mit neueren
> Versionen gelesen, bei denen es zu wesentlich groesserem und/oder
> langsamerem Code gekommen ist.

Schau dir deren Datum bzw. GCC-Version an: das dürfte allesamt auf
(viel) ältere Versionen bezogen gewesen sein.

Seit Johann viele Details im AVR-Frontend mal überarbeitet hat (also
seit GCC 4.7), dürfte der Großteil dieser Berichte der Vergangenheit
angehören.

Postix schrieb:
> Vom avrdude habe ich auch eine eigene Version, die Apples USB3-Bug
> umgeht. :-/

-v, bitte.
Gast #3312881
Lesenswert?

Bastler schrieb:
> Hab gerade eine 4.8.1 Toolchain gebaut und kann nur sagen: Spitze, was
> da rauskommt!

Ich habe mir die dieses Wochenende auch gebaut (schoener Schei...). Aber 
das Resultat begeistert mich nicht so, ich laufe in folgenden Fehler:

---
Source/Screen/Setup/Channel.cpp: In member function 'virtual void 
Screen_Setup_Channel::display()':
Source/Screen/Setup/Channel.cpp:189:1: internal compiler error: in 
push_reload, at reload.c:1360
 }
 ^
libbacktrace could not find executable to open
---

Die 4.8.0 hat das gleiche Problem. :-( Mit welchen Optionen hast du 
deinen gcc gebaut?
Moderator Persönliche Seite #3312908
Lesenswert?

pst schrieb:
> Mit welchen Optionen hast du deinen gcc gebaut?

Das dürfte wenig von den Build-Optionen abhängen.

Ein internal compiler error ("ICE") ist etwas, was nicht auftreten
sollte, aber hin und wieder eben doch passiert.  Sein Auftreten wird
in der Regel durch eine bestimmte Konstellation im Sourcecode
getriggert, der da gerade compiliert wird.

Sinnvoll wäre es also, wenn du das auf das minimale Stückchen
Sourcecode runterbrichst, mit dem der Fehler noch auftritt, und dann
damit einen Bugreport öffnest.
Gast #3317299
Lesenswert?

Jörg Wunsch schrieb:
> OK, daran kann ich natürlich AVRDUDE-seitig auch nicht viel ändern.
>
> Ihr solltet das vielleicht mal Thomas Fischl rüberbringen, und
> eigentlich müsste auch mal jemand Apple einen Bugreport schreiben.

Der USB-Bug war Apple uebrigens durchaus bekannt, auf der 
USB-Mailingliste wurde er diskutiert, wenn auch nicht mit Bezug auf 
AVRDude.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren