Problems with gcc 4.0 for powerpc

Dmytro Bablinyuk bablind@bigpond.net.au
Thu Jan 12 08:40:00 GMT 2006


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 



More information about the Gcc mailing list