We have a boot loader (u-boot) that runs on powerpc platform (MPC8272)
If we cross-compile it using gcc 3.4.4 it works fine and it generates the
following start and end of the functions
powerpc-linux-uclibc-gcc 3.4.4:
stwu r1,-24(r1)
li r0,128
...
addi r1,r1,24
blr
That works fine. But if we recompile bootloader using 4.0.2 then we start
getting problems. The code is kind of working but hangs very shortly in some
place that has no affect on system.
And here is the code that 4.0.2 generates with the same options.
powerpc-linux-uclibc-gcc 4.0.2:
stwu r1,-32(r1)
li r0,128
...
addi r1,r1,32
blr
Little difference in code but somehow it makes difference between working
and not working. System.map files from 4.0.2 and 3.4.4 are very different -
both of them looks ok but 4.0.2 version hangs very quickly in random place.
Here the options we use
powerpc-linux-uclibc-gcc -g -Os -fPIC -ffixed-r14 -meabi -fno-builtin -ffreestanding
-nostdinc -isystem -pipe -fno-schedule-insns -fno-schedule-insns2 -ffixed-r2
-ffixed-r29 -mstring -mcpu=603e -Wall -Wstrict-prototypes
If somebody can suggest anything I will really appreciate. Can I make 4.0
"slightly more compatible" with 3.4?
Thank you