Kernel oops with 0.42 on ARM
Wed Mar 15 14:50:00 GMT 2006
On 3/15/06, firstname.lastname@example.org <email@example.com> wrote:
> I have a Cerf Board which happily runs kernel 126.96.36.199 when built using
> gcc 3.4.4, glibc 2.3.5 and binutils 2.16.1 via a Kegel 0.38 crosstool
> script. The Cerf Board is a PXA 255 (ARM XScale.) I tried upgrading to
> 0.42 crosstool with gcc 4.1.0, glibc 2.3.2 and binutils 2.16.1. This is
> a combination that is listed as successful in Dan's Magic Matrix. The
> toolchain and kernel built successfully but when the kernel starts I get
> an oops with an undefined instruction 0 at a pc address c01facdc that
> seems via System.map to be actually in the stuart device structure from
> generic.c in arch/arm/mach-pxa.
0) turn off gcc's strict aliasing (-fno-strict-aliasing) if it's not off already
and otherwise crank down the optimization. If that makes the
problem go away, great. Otherwise:
1) run the gcc regression test suite
Yes, this is a pain, but so is everything else!
If this finds unexpected failures, great; file bugs for them
at gcc's bugzilla. And/or:
2) add a debug print statement to the kernel at the very
beginning and make sure you can see it when the kernel
a) add more print statements in the code after the last print
statement you saw when you booted last
b) build, reboot, go back to step a
Eventually you'll narrow down the offending code, and can
look at the problem in more detail by examining the generated code.
Once you find it, you may be able to tweak the source to avoid it.
File a bug with gcc's bugzilla with the offending code, what got generated,
and what you had to do to work around it.
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc