tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

GCC 4.5.3 breaks sandpoint's altboot


it seems there is still a problem when using GCC 4.5.3 for PowerPC.
Sandpoint's standalone boot loader "altboot" (refer to:
src/sys/arch/sandpoint/stand/altboot/) is no longer stable since our switch.

The bug is quite mysterious. When I added some printf()s, while trying to
find the crash location, I got new crashes, in the middle of those printf

I used constructs like:
    printf("1234567890 XXXXXXXXXXX\n");
and it prints a random number of digits to the serial console, when reaching
a specific function (it works in other functions). Sometimes "1234", then
"1234567". Then it freezes (crashes). I have no idea what is causing that.

Yesterday I decided to go back to GCC 4.1.3 (./ -V HAVE_GCC=4). And
this made altboot work again! No more problems at all! So it is quite
likely we have a 4.5.3 related issue somewhere.

As a PPC kernel seems to work quite well with 4.5.3 for most ports, I
suspect there is still a problem with 4.5.3 support code in libkern or
libsa, which is used for standalone programs only?

Any idea where to look? What has changed for 4.5.3?
src/sys/lib/libkern/arch/powerpc/gprsavrest.S, which also caused problems
with altboot, was already fixed some weeks ago, and seems ok now.

Frank Wille

Home | Main Index | Thread Index | Old Index