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
Was soll man dazu noch sagen?!?
Und deswegen nutzt man nicht den GCC aus dem Paket Manager sondern lädt das Paket bei ARM herunter...
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.