Hallo,
habe mir mal wieder meine Toolchain auf avr-gcc 11.2.0 aktualisiert, wie
immer mit frischen benötigten Paketen, u.a. binutils 2.37 statt
Vorgängerversion 2.36.1
Baue ich die Toolchain mit binutils 2.36.1 ist alles in Butter.
Baue ich mit binutils 2.37 funktioniert hinter nichts.
Atmel Studio 7 meckert mit
> Error recipe for target 'main.o' failed
und Arduino IDE meckert je nach µC mit
> as: unrecognized option `-mmcu=avrxmega3'
Was auch auffällt ist das der bin Ordner in der mit 2.37 gebauten
Toolchain ziemlich leer ist. Siehe Screenshots. Kurzerhand aufgefüllte
Dateien aus der 2.36.1 Toolchain hilft nicht. Die Fehlermeldung bleiben
gleich.
Jetzt wollte ich fragen ob schon jemand mit den binutils 2.37 eine
Toolchain gebaut und wie das bei ihm aussieht?
Hallo,
das müßtest du mir bitte genauer erklären. Ich weiß derzeit nur eins,
dass es mit binutils v2.36.1 funktioniert nur mit v2.37 nicht.
Nachdem die Linux Bauphase durch ist, in dessen /bin übrigens alles
vollständig scheint, folgt die Windows Bauphase, die Konfigzeile für den
binutils Teil sieht so aus
build: muss Linux 64 Bit, weil gebaut wird unter Ubuntu 20.04 LTS in
einer VM.
host: ist ja später ein Windows 64Bit unter der der avr-gcc kompilieren
soll
target: avr
Ich kann ehrlich gesagt keinen Fehler sehen, zudem ich das Script schon
länger unverändert nutze.
Hallo,
wundert mich ehrlich gesagt. Ich probiere das nochmal mit "deinem
Mirror" obwohl das ja die gleichen Dateien sein müßten.
Was hast du in der libiberty geändert?
Achso: den Mirror hatte ich angeführt, weil die repos "binutils-gdb" bei
mir anderweitig zu Fehlern geführt hatten, als ich mich mit toolchains
auseinandergesetzt hatte (hauptsächlich im gdb Part).
Hallo,
ne, da ändert sich leider nichts bei mir.
Kann mir jemand sagen was Johann mit Host-Tools konkret meint?
Möglicherweise bin ich Begriffsstutzig.
Vermutlich, dass der falsche Assembler aufgerufen wird.
Bin mir nicht sicher, wie der lookup da funktioniert, aber avr-as ist
jedenfalls eines der Programme, die bei dir in der neuen Version fehlen.
Hallo,
naja, meine Frage lautete ja warum fehlen die Programme bei mir?
Woran kann das liegen?
Johann vermute daraufhin was mit Host-Tools. Ich kann aber damit nichts
anfangen. Ich dachte zuerst er meint die Parametrierung mit host und
target, dass kanns aber nicht sein was er vielleicht meint.
avr-gcc (Treiber) ruft nich avr-as auf sondern den as, der gefunden
wird. Schau dir Ausgabe von -v oder -### an.
as steht normal im gleichen Verzeichnis wie cc1, cc1plus, lto1 etc.
Hallo,
as gibt es nicht. Ordnerinhalt siehe Bild.
Die Ausgabe mit -v in AS7 ist die Eingangs gezeigte:
Error recipe for target 'main.o' failed
Mehr gibts da nicht zu sehen.
Außerdem treibt mich noch die Frage um, was ist an der binutils 2.37
anders wie zur 2.36.1? Mit letzterer klappt ja alles.
Ich werde mal binutils alleine bauen lassen und das Logfile zeigen ...
Johann L. schrieb:> Das ist nicht die Ausgabe von -v.
Verstehe ich nicht. In AS7 ist die Option -v aktiv.
Ausgabe ist: Error recipe for target 'main.o' failed
> Es ist kein Target as installiert, daher wird der Host as genommen.
Was meinst du mit "ist nicht installiert"? Wo soll es denn installiert
sein?
Ich meine das Dateien fehlen sehe ich ja selber. Die Frage ist warum
diese fehlen?
Johann L. schrieb:> as steht normal im gleichen Verzeichnis wie cc1, cc1plus, lto1 etc.
Auch das habe ich nochmal mit einer älteren gebauten Toolchain
verglichen.
C:\avrToolchain\avr-gcc-11.2.0_...\libexec\gcc\avr\11.2.0\
In dem Ordner fehlen keine Dateien, alles exakt gleich vorhanden.
as.exe ist hier nicht vorhanden.
as.exe liegt bei allen anderen Toolchains
C:\avrToolchain\avr-gcc-11.2.0_...\avr\bin\
Genau der Ordner \avr\bin\ fehlt in der neu gebauten Toolchain.
Habe den Ordner von der vorherigen Toolchain kopiert.
Danach ging immer noch nichts. Ich musste feststellen das auch der
Ordner
C:\avrToolchain\avr-gcc-11.2.0_...\avr\lib\ldscripts\
komplett fehlt.
Habe ihn ebenfalls von der vorherigen Toolchain mit binutils 2.36.1
kopiert.
Jetzt kann ich kompilieren.
Meine Frage lautet aber weiterhin, warum fehlen die vielen Dateien
nachdem Bau der Toolchain mit binutils 2.37? Normal ist das ja nun
nicht. Man sitzt bestimmt immer auf einem kleinen Pulverfass.
make[1]: Verzeichnis „/home/ubuntixer/toolchain/buildWindows/binutils“ wird betreten
2
make[1]: Für das Ziel „all-target“ ist nichts zu tun.
Das Script sollte ja das build-Verzeichnis säubern - das fehlte hier
wohl leider. Da wurden nur ein paar libs und manpages bearbeitet.
Die config.log Datei aus dem build-Verzeichnis wäre auch nicht schlecht
zu sehen.
PS: Auf dem System scheint locale nicht richtig konfiguriert zu sein
(Siehe Umlaut). Ich würde da irgendwas *.UTF-8 einstellen.
Veit D. schrieb:> Spracheinstellung sieht so aus, sollte passen. Kann ich für dich noch> woanders was ändern?
Aber, ja! :)
LANG ist keine UTF-8 locale. Das ist heutzutage eher unüblich, ich bin
mir aber nicht sicher, ob es echt ein Problem darstellt. Manche tools
wie "sort" usw. sind locale-sensitive.
von hier: http://ftp.gnu.org/gnu/binutils/
Wegen der Spracheinstellung. Ich habe zwischenzeitlich mehrere
Anleitungen zur Spracheinstellung gelesen. Die sehen alle wie meine aus
bzw. werden so konfiguriert. ??? Tut mir leid. Wenn es noch irgendein
Tipp gibt die Kompatibilität zu verbessern, nur zu.
Veit D. schrieb:> Tut mir leid. Wenn es noch irgendein> Tipp gibt die Kompatibilität zu verbessern, nur zu.
Ja, das ist wahrscheinlich nichts.
> von hier: http://ftp.gnu.org/gnu/binutils/
Das sind die selben, die ich auch erstellt hatte.
Tja... in deinem Log fehlten wie gesagt die builds von einigen targets.
Solltest du nochmal ein neues Log anfertigen, lass bitte das "-j 4" beim
make weg. Das macht das Log ziemlich schwer nachzuvollziehen.
Al Fine schrieb:> Tja... in deinem Log fehlten wie gesagt die builds von einigen targets.> Solltest du nochmal ein neues Log anfertigen, lass bitte das "-j 4" beim> make weg. Das macht das Log ziemlich schwer nachzuvollziehen.
Wäre gerade fertig gewurden. Ohne "-j 4" mache ich morgen. Ist ja kein
Problem.
Hallo,
habe es mit einem Kern laufen lassen. ;-) Enthalten sind Abschnittsweise
alle Terminalausgaben und hoffentlich die Richtigen der gewünschten
build Logfiles. Beim überfliegen sehe ich erstmal keine falschen
Umlaute. Mal sehen wie das bei dir ist. Wenn du mir sagst wonach du in
den Logfiles genau suchst könnte ich mitmachen.
Veit D. schrieb:> Wenn du mir sagst wonach du in> den Logfiles genau suchst könnte ich mitmachen.
Nach Auffälligkeiten :)
Sehe nur leider nicht viel. "iconv" ist offenbar nicht installiert -
glibc also auch nicht. Ob mawk für den job genügt, weiß ich nicht
sicher. bison ist auch nicht da, scheint aber keinen Unterschied zu
machen.
Dein Build wechselt nicht mal in die binutils und gas
Unterverzeichnisse.
Hallo,
eine Neuinstallation der Software unter Linux die man zum bauen benötigt
brachte auch keinen Erfolg. Irgendwelche anderen Vermutungen? Ansonsten
muss ich das erstmal auf Eis legen.
Veit D. schrieb:> Hallo,>> eine Neuinstallation der Software unter Linux die man zum bauen benötigt> brachte auch keinen Erfolg. Irgendwelche anderen Vermutungen? Ansonsten> muss ich das erstmal auf Eis legen.
Sorry, ich sehe das leider nicht. Da müsste ich selbst dran rumfrickeln,
um den Fehler vllt. zu finden.
Hallo,
die Windows Bauphase ist schon in 3 Abschnitte unterteilt. Sind alle im
.zip. Wenn es mit der Bauphase der binutils zusammenhängt, dann sollte
in dessen Terminallogfile bzw. Config.log etwas zu finden sein. Wonach
genau würdest du in den Files schauen? Mir fehlt da die Erfahrung. Was
hat es mit den uint Warnungen auf sich?
Zur Zeit teste ich das Script von Zakkemble. Mal sehen ob das durchläuft
und wie sich das mit den binutils Versionen verhält.
Ich werde meine Scripte anschließend nochmal mit verschiedenen set
Optionen laufen lassen. Nur weiß ich schon das es mit -e bei den uint
Warnungen abbricht. Weit werde ich damit nicht kommen.
Hallo,
das Script von Zakkemble läuft leider auch nicht durch. Je nach binutils
Version mal ziemlich weit bzw. kurz. "2.37" bricht zeitig hier ab siehe
unten.
Morgen mach ich mit meinen Scripten weiter ...
Ich glaube aber nicht daran das es an den Scripten liegt, sondern das
dem Ubuntu irgendein Tool oder Datei fehlt. So meine Vermutung. Letztens
fehlte texinfo die eine damals neue Version von binutils plötzlich
verlangte.
Was habt ihr zum bauen alles für Tools/Software installiert?
1
checking whether stpcpy is declared... no
2
checking whether asprintf is declared... yes
3
checking whether vasprintf is declared... make[2]: Leaving directory '/home/ubuntixer/zakkemble/binutils-2.37/obj-avr/libiberty'
Hallo,
wenn ich das Windows Build binutils Schritt für Schritt mache bekomme
ich mit 'make' schon Fehlermeldungen. Hier weiß ich nicht wie gravierend
die sind. Und wenn ich weitermache mit 'make install' fehlt ihm ein zlib
Verzeichnis und bricht ab. Fehlt eine Software zum bauen?
Veit D. schrieb:> wenn ich das Windows Build binutils Schritt für Schritt mache bekomme> ich mit 'make' schon Fehlermeldungen. Hier weiß ich nicht wie gravierend> die sind.
Nun ja, diese hier wurde oben ja schon erwähnt:
error: unknown type name ‘uint’
78 | uint recursion;
Wie gravieren sowas ist, kannst du dir selber ja zusammenreimen. Ich
würde sagen, schon ein kleines bisschen….
Oliver
Hallo,
hatte heute noch eine neue Umgebung mit Ubuntu 21.04 statt 20.04.LTS
eingerichtet in der Hoffnung das irgendein benötigtes Softwarepaket
vielleicht veraltet ist. War aber nicht der Fall. Die Arbeit war
umsonst. Das installieren von zlib brachte auch keinen Erfolg.
wegen error: unknown type name ‘uint’
Wenn ich in Zeile 81 in der rust-demangle.c 'uint' gegen 'unsigned'
austausche kompiliert gar nichts mehr. Da will schon das Linux Build
Script gleich zu Anfang nicht laufen. Wäre interessant was Al Fine da
genau geändert hat?
Werde wohl doch einmal in der Mailing Liste fragen.
Danke erstmal an alle für eure Zeit und Mühe fürs mitmachen.
Hallo,
an die Mailing Liste habe ich soeben geschrieben. Hoffe das das auch
ankommt und ich auch benachrichtigt werde. Auf die Mailingliste setzen
konnte ich mich nicht, erhalte immer Server Error.
> Ich habe in der Datei alle Vorkommen von uint gegen unsigned> ausgetauscht. War keine Rocket-Science.
Also an genau 2 Stellen?
Hallo,
ich habe jetzt mal mehr oder weniger Spaßenshalber die rust-demangle.c
gegen die Datei aus binutils 2.36.1 ausgetauscht. Die Toolchain scheint
vollständig zu sein. Die hier
Beitrag "Re: mal wieder binutils, diesmal v2.37 (avr-gcc)" als fehlend
aufgeführten Ordner sind vorhanden. Jetzt vervollständige ich noch
fehlende Controller Dateien und teste das einmal in AS7.
Zur Zeit baut es erneut mit 'unsigned' Korrektur.
Hallo,
also die vorhin gebaute Toolchain funktioniert erstmal. Mit
verschiedenen Controllern Code kompilieren und ein Blinktest geflasht >
funktioniert. Da scheint wirklich die rust-demangle.c irgendwie schuldig
zu sein. Hätte ich so nicht gedacht.
Das neue Build mit 'uint -> unsigned' läuft noch ...
Hallo,
also :-) , die neue Toolchain mit der 'unsigned' modifizierten
rust-demangle.c ist auch vollständig und funktioniert in AS7.
Die Datei rust-demangle.c wurde grob gesagt um paar Zeilen ergänzt u.a.
mit dem ominösen uint ergänzt. Sehr große Unterschiede gibts nicht
zwischen v2.36.1 und 2.37. Entweder ändert man uint zu unsigned oder
tauscht diese Datei mit der aus den binutils 2.36.1 aus. Beides
funktioniert(e) bei mir.
Ich hätte nie gedacht das diese eine Warnung soviel Auswirklung hat,
denn Warnungen gibts ja mehrere während des Bauprozesses. Zudem es die
Vorsilbe uint ja in C/C++ gibt. Deswegen hatte ich das nicht
weiterverfolgt.
Ganz großes Danke an alle für die Hilfe und Hinweise.
Was für ein Wahnsinn. :-)
Soll ich meine E-Mail mit den Erkenntnissen ergänzen und nochmal an die
Mailingliste senden?
Veit D. schrieb:> Ich hätte nie gedacht das diese eine Warnung soviel Auswirklung hat,
Warnungen gibts zwar viele, aber das war keine. Das war ein Fehler,
englisch: error. Den Unterschied müsstest du nochmals nachlesen.
Oliver
Oliver S. schrieb:> Veit D. schrieb:>> Ich hätte nie gedacht das diese eine Warnung soviel Auswirklung hat,>> Warnungen gibts zwar viele, aber das war keine. Das war ein Fehler,> englisch: error. Den Unterschied müsstest du nochmals nachlesen.>> Oliver
Richtig. Ich würde empfehlen, in solchen Build-Skripten mit "set -e" zu
arbeiten. Dann hält das Skript beim ersten Fehler an, anstatt einfach
beim nächsten Kommando weiter zu machen.
Hallo,
derzeit nichts dringendes. Hatte nur gesehen das gcc 11.2. raus ist und
habe mir eine neue Toolchain bauen wollen. Zum Zeitpunkt verwende ich
dann immer von allen die aktuellen Versionen. Nur deswegen bin ich
darüber gestolpert.
Übrigens wurde das Problem mit der binutils 2.37 im "branch with commit
999566402e3" gefixt.