Bettyhacks.com

German - BettyHacks.com => Software => Thema gestartet von: gunnar am 13. Jul 2011, 16:07

Titel: Aktueller GCC 4.5.2 von CodeSourcery produziert Alignment Warnings
Beitrag von: gunnar am 13. Jul 2011, 16:07
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

Titel: Re: Aktueller GCC 4.5.2 von CodeSourcery produziert Alignment Warnings
Beitrag von: glotzi am 16. Aug 2011, 07:39
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
Titel: Re: Aktueller GCC 4.5.2 von CodeSourcery produziert Alignment Warnings
Beitrag von: gunnar am 04. Nov 2011, 15:05
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
Titel: Re: Aktueller GCC 4.5.2 von CodeSourcery produziert Alignment Warnings
Beitrag von: gunnar am 16. Apr 2013, 21:41
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