Ich habe gerade einen ganzen Tag wegen eines Bugs in Ubuntu Bionic verschwendet. Ich poste die Lösung mal hier, vielleicht erspart das dem einen oder andern denselben Ärger... Im Wesentlichen ging es bei mir darum, dass Code auf einem STM32-Board nicht lief. Eine gdb-Session ergab, dass "arm" anstelle von "thumb"-Code aus der libc dazugelinkt wurde. Die Flags beim Aufruf von gcc waren aber korrekt: arm-none-eabi-gcc .... -mcpu=cortex-m3 -mthumb Weil mir das keine Ruhe liess habe ich dann unterwegs auf meinem Laptop weitergesucht, und dort war der erzeugte Code seltsamerweise korrekt, obwohl dieser ebenfalls unter "Bionic" läuft (aber von Artful upgradet wurde). Jedenfalls hat sich am Ende herausgestellt, dass die libnewlib-dev und libnewlib-arm-none-eabi von Bionic fehlerhaft sind, in der nächsten Ubuntu Version "cosmic" aber berits gefixt sind. Nach Installation derselben läuft jetzt alles ok. Warum das in einer Ubuntu LTS-Version aber nicht korrigiert wird bleibt schleierhaft :-( Wenn nicht Treiberprobleme mich auf Ubuntu gezwungen hätten bliebe ich bei Debian stable... Siehe auch: https://github.com/bbcmicrobit/micropython/issues/514#issuecomment-404759614
Gast
#5510479
Was soll man dazu noch sagen?!?
Gast
#5510491
Und deswegen nutzt man nicht den GCC aus dem Paket Manager sondern lädt das Paket bei ARM herunter...
Gast
#5510493
Gast
#5510670
Olle Kamelle, seit April bekannt. Den Rotz übernimmt Ubuntu von Debian, dort war das schon falsch. Dass Ubuntu das allerdings immer noch nicht gefixt hat, obwohl Debian das bereits getan hat, ist traurig. Scheinen wohl nicht so viele unter Ubuntu zu nutzen. Nachinstallation von korrekten Debianpaketen hat hier das Problem beseitigt.
Schön, dass ihr das alle wisst, mir war der Bug nicht bekannt und er hat mich ne Menge Zeit gekostet... das wollte ich anderen ersparen... Werde mir jetzt jedenfalls die Tools von ARM direkt installieren...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
