Aktueller GCC 4.5.2 von CodeSourcery produziert Alignment Warnings

Begonnen von gunnar, 13. Jul 2011, 16:07

« vorheriges - nächstes »
Nach unten

gunnar

Hallo,

ich habe gesehen, dass McBetty mit dem Compiler von CodeSourcery kompiliert wird und wollte diesen ziemlich aktuellen Compiler auch für Boop nehmen. Ihm unterliegt nicht die newlibc sondern die uClibc. Eine kleine Änderung musste ich machen: siprintf in sprintf umbenennen, ansonsten lief es gut durch bis auf etliche Alignment Warnings im Thumb-Code:

/opt/CodeSourcery-arm-uclinux/bin/arm-uclinuxeabi-ld.real: Warning: alignment 1 of symbol `default_RFsettings' in cc1100/rf.thumb.o is smaller than 4 in infrared/ir_rf.thumbunopt.o
/opt/CodeSourcery-arm-uclinux/bin/arm-uclinuxeabi-ld.real: Warning: alignment 1 of symbol `default_RFsettings' in cc1100/rf.thumb.o is smaller than 4 in infrared/ir_lirc.thumbunopt.o
/opt/CodeSourcery-arm-uclinux/bin/arm-uclinuxeabi-ld.real: Warning: alignment 1 of symbol `conf' in cc1100/cc1100.thumb.o is smaller than 4 in infrared/ir_lirc.thumbunopt.o
/opt/CodeSourcery-arm-uclinux/bin/arm-uclinuxeabi-ld.real: Warning: alignment 1 of symbol `confasync' in cc1100/cc1100.thumb.o is smaller than 4 in infrared/ir_lirc.thumbunopt.o


Eigentlich ist es doch richtig, dass Thumb Code ein anderes Alignment hat, wieso kommt trotzdem ein Linker Warning?
Oder führt diese Konstellation sogar zu richtigen Fehlern beim Zugriff auf die falsch aligneten Daten? Wahrscheinlich gibt es Probleme wenn der ARM Code darauf zugreift, aber nicht wenn ausschließlich aus dem Thumb Code darauf zugegriffen wird, oder?

Viele Grüße
Gunnar


glotzi

Warum nimmst du überhaupt den CodeSourcery Kram? Dieser ganze kommerzielle Kram ist mir zu aufgeblasen und undurchsichtig.

Ich nehme die hier
https://github.com/esden/summon-arm-toolchain

gunnar

Hallo Glotzi,

ich habe mal die summon Toolchain ausprobiert. Dazu musste ich eine Dummy Funktion für _setbrk einfügen, sonst linkte es nicht. Die alignment Warnungen kommen aber auch mit dieser Toolchain.

Viele Grüße
Gunnar

gunnar

Hallo,

ich habe die aktuelle summon Toolchain mit dem GCC 4.7.3 vom Linaro Projekt gebaut. Das Build Script gibt es hier:
https://github.com/esden/summon-arm-toolchain
Ich habe kleine Änderungen für diese Toolchain gemacht, u.A. auch das Alignment fest auf 4 Bytes eingestellt.

Jetzt kommen die Warnungen nicht mehr und das Binary läuft. :-)

Viele Grüße
Gunnar

Nach oben