Guten Morgen allerseits,
heute bin ich fast aus allen Wolken gefallen: Ein Code der gestern abend
noch problemlos kompiliert wurde, hat heute Warnungen ausgespuckt:
1
warning: ‘_vector_11’ appears to be a misspelled signal handler [enabled by default]
Ursache war ein Paketupdate des avr-gcc von 4.8-2 auf 4.8-2.1
Dieses Update enthält einen bekannten (kleinen) Bug, der dazu führt dass
bei benutzung von -flto diese Warnungen fälschlicherweise ausgegeben
werden (das Binary selbst ist nicht betroffen und funktioniert
problemlos)
Details siehe hier: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59396
Die Warnung kann also ignoriert werden, ist aber lästig: Mein Code wird
grundsätzlich solange behandelt, bis er keine Warnungen ausgibt (weil
ich dann eine neu dazugekommene sofort sehe). Gefixt wird das
offensichtlich erst in 4.8.3
Ich bin jedenfalls wieder auf 4.8-2 zurück.
Vielleicht hilft es jemandem...
Michael Reinelt schrieb:> Ich bin jedenfalls wieder auf 4.8-2 zurück.
Du könntest natürlich auch einfach den Compiler selbst bauen und dann
den entsprechenden Fix bereits mit reinziehen. ;-)
Jörg Wunsch schrieb:> Michael Reinelt schrieb:>> Ich bin jedenfalls wieder auf 4.8-2 zurück.>> Du könntest natürlich auch einfach den Compiler selbst bauen und dann> den entsprechenden Fix bereits mit reinziehen. ;-)
Ganz kurz (um genau zu sein 1.0/F_CPU Sekunden) hab ich sogar daran
gedacht ;-)
Jörg Wunsch schrieb:> Du könntest natürlich auch einfach den Compiler selbst bauen und dann> den entsprechenden Fix bereits mit reinziehen. ;-)
Es ist - hmm - etwas zeitaufwendig, wenn man sich als gelegentlicher
Compilerselbst(bio)bauer die benötigten (welche denn?) Patches
zusammensuchen will.
Konrad S. schrieb:> Es ist - hmm - etwas zeitaufwendig, wenn man sich als gelegentlicher> Compilerselbst(bio)bauer die benötigten (welche denn?) Patches> zusammensuchen will.
Das war glaub ich auch nicht wirklich ernst gemeint :-)
Konrad S. schrieb:> Es ist - hmm - etwas zeitaufwendig, wenn man sich als gelegentlicher> Compilerselbst(bio)bauer die benötigten (welche denn?) Patches> zusammensuchen will.
Naja, diejenigen, die für die jeweilige Distributionsversion benutzt
worden sind, sollten doch einfach zu beschaffen sein, oder? Man muss
doch eigentlich nur das nachvollziehen, was der Distributor da getan
hat, dann den gewünschten zusätzlichen Patch beilegen und alles nochmal
compilieren.
Johann L. schrieb:> Kannst du nicht einfach mit -w linken?
Könnte ich sicher, wenn ich wüsste was -w tut. Meine gcc-ManPage kennts
mal nicht (oder ich finds nicht), ld-manpage auch nicht.
Wo und wie würde ich das aufrufen? Vermutlich bei -Wl,<linker options>
Jörg Wunsch schrieb:> Konrad S. schrieb:>> Es ist - hmm - etwas zeitaufwendig, wenn man sich als gelegentlicher>> Compilerselbst(bio)bauer die benötigten (welche denn?) Patches>> zusammensuchen will.>> Naja, diejenigen, die für die jeweilige Distributionsversion benutzt> worden sind, sollten doch einfach zu beschaffen sein, oder? Man muss> doch eigentlich nur das nachvollziehen, was der Distributor da getan> hat, dann den gewünschten zusätzlichen Patch beilegen und alles nochmal> compilieren.
Ja. Normalerweise gibt es zu jedem kompilierten Paket die entsprechenden
Quellpakete, aus denen die Pakete erzeugt wurden.
Dann noch den Fix einpatchen und los geht's :-)
Der Aufwand hält sich im Rahmen.
Chris D. schrieb:> Der Aufwand hält sich im Rahmen.
Ja, wenn man die ganze Toolchain und -dev Pakete schon drauf hat.
Ansonsten tu ich mir das nur an wenns wirklich dringend ist.
Michael Reinelt schrieb:> Johann L. schrieb:>> Kannst du nicht einfach mit -w linken?>> Könnte ich sicher, wenn ich wüsste was -w tut. Meine gcc-ManPage kennts> mal nicht (oder ich finds nicht), ld-manpage auch nicht.
Chris D. schrieb:> Dann noch den Fix einpatchen und los geht's :-)>> Der Aufwand hält sich im Rahmen.
Ich würd mal sagen, 99% der Compilerbenutzer wissen nicht, wie man einen
Compiler selber compiliert.
Das war vorher nicht da! ich schwöre! :-)
keine Ahnung wie ich das übersehen konnte...
> Also normal compilieren mit all den -W Warnungen die du magst, und> während dem LTO-Lauf die Warnungen deaktivieren.
Hmmm... da ich erst seit kurzem mit LTO arbeite (dank einem
interessanten Thread hier) hab ich keinen "extra LTO-Lauf" (ist
vielleicht ein Fehler?)
Mein makefile sieht so aus:
Peter Dannegger schrieb:> Ich würd mal sagen, 99% der Compilerbenutzer wissen nicht, wie man einen> Compiler selber compiliert.
Hab mir schon gedacht, dass ich einer Minderheit angehöre. :-)
Chris D. schrieb:> Ja. Normalerweise gibt es zu jedem kompilierten Paket die entsprechenden> Quellpakete, aus denen die Pakete erzeugt wurden.
Die zuhause für AVR-Entwicklung verwendetete Distribution macht bei
gcc-4.4 Schluss. Damit ist kein Blumentopf zu gewinnen. Ich könnte
natürlich die Paketquellen einer anderen Distribution zerpflücken ...
Welche Distribution ist denn bei den gcc-Versionen immer vorne mit
dabei? Den gcc-4.8.1 habe ich schon - ungepatcht allerdings.
Konrad S. schrieb:> Welche Distribution ist denn bei den gcc-Versionen immer vorne mit> dabei? Den gcc-4.8.1 habe ich schon - ungepatcht allerdings.
ich bin da mit Debian eigentlich sehr zufrieden, sofern du dich aus dem
stabilen Bereich raustraust. Das geht aber mit "Pinning" sehr gut und
komfortabel. Ich hab einen mix aus Stable (sehr wenig), Testing (das
meiste), Unstable (sehr wenig) und von Fall zu Fall probier ich gerne
mal ein Paket aus Experimental aus.
beim gcc-avr siehts da momentan so aus:
stable: 4.7.2
testing, unstable, experimental: 4.8-2.1
der "normale" gcc ist im experimental schon auf 4.9
Michael Reinelt schrieb:> ich bin da mit Debian eigentlich sehr zufrieden, sofern du dich aus dem> stabilen Bereich raustraust. Das geht aber mit "Pinning" sehr gut und> komfortabel. Ich hab einen mix aus Stable (sehr wenig), Testing (das> meiste), Unstable (sehr wenig) und von Fall zu Fall probier ich gerne> mal ein Paket aus Experimental aus.
Danke, dann schau ich mal in die Richtung. Ich hole mir da dann eh nur
die Quelltext-Pakete, denn mein aktuelles System bleibt drauf, solange
es dafür Security-Updates gibt. Da sind 'ne Menge (angepasste, selbst
compilierte und selbst geschriebene) Sachen drauf, die wunderbar laufen,
solange mir Updates nicht wieder was zerlegen (VDR ist da etwas
anfällig).
Konrad S. schrieb:>(VDR ist da etwas anfällig).
Ah ja, das kommt mir bekannt vor :-) extrem schädlich für den WAF wenn
VDR am Entwicklungsrechner läuft. Da hab ich sehr schnell die
Budgetfreigabe der Regierung für eigenen Rechner bekommen ;-)
Johann L. schrieb:> Also normal compilieren mit all den -W Warnungen die du magst, und> während dem LTO-Lauf die Warnungen deaktivieren.
Johann, falls du hier nochmal reinliest und etwas Zeit hast, könntest du
mir erläutern wie das mit dem "LTO-Lauf" in meinem Makefile (siehe
weiter oben) aussehen sollte? Danke!
Peter Dannegger schrieb:
> Ich würd mal sagen, 99% der Compilerbenutzer wissen nicht, wie man einen> Compiler selber compiliert.
Jap, so ist es halt.
Wozu muss ich es wissen? was bringt mir das?
Mein Auto braucht Diesel zum fahren was er damit macht ist mir Sch...
egal
Martin schrieb:> Wozu muss ich es wissen? was bringt mir das?> Mein Auto braucht Diesel zum fahren was er damit macht ist mir Sch...> egal
Für den Ottonormalverbraucher mag das egal sein, aber wenn du selbst
Autos herstellen willst ( Compilerbenutzer ), solltest du auch wissen
wie ein Auto und seine Bestandteile funktionieren.
AVerr schrieb:> Martin schrieb:>> ... Mein Auto braucht Diesel ...> Für den Ottonormalverbraucher ...
Martin ist aber Dieselnormalverbraucher und damit fährt er ganz gut. ;-)