[OE-core] kernel miscompilation with gcc 4.8 for ARMv5

Enrico Scholz enrico.scholz at sigma-chemnitz.de
Wed Jul 10 11:36:46 UTC 2013


Hi,

is it expected that recent gcc 4.8[1] compiles the kernel correctly?
Kernels for ARMv5 platforms (PXA168 -> 3.4.52, MX28 -> 3.8.13) fail here
100% at early boot with

[    0.404750] Unable to handle kernel paging request at virtual address 00210020
[    0.412468] pgd = c0004000
[    0.415187] [00210020] *pgd=00000000
[    0.418812] Internal error: Oops: 5 [#1] PREEMPT ARM
[    0.423781] CPU: 0    Not tainted  (3.8.13.ipan4 #1)
[    0.428781] PC is at kmem_cache_alloc+0x44/0xcc
[    0.433375] LR is at con_insert_unipair+0xa4/0xf0
[    0.438093] pc : [<c00a6d7c>]    lr : [<c02dc654>]    psr: 20000053

(this is a similar error as described in [2]).  Enabling heavy memory
debugging shows

[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0436000   (4280 kB)
[    0.000000]       .init : 0xc0436000 - 0xc046a000   ( 208 kB)
[    0.000000]       .data : 0xc046a000 - 0xc049bff8   ( 200 kB)
[    0.000000]        .bss : 0xc049c01c - 0xc0511680   ( 470 kB)
[    0.000000] =============================================================================
[    0.000000] BUG kmem_cache_node (Not tainted): Redzone overwritten
[    0.000000] -----------------------------------------------------------------------------
[    0.000000] 
[    0.000000] INFO: 0xc78010fc-0xc78010ff. First byte 0x5a instead of 0xbb
[    0.000000] INFO: Slab 0xc0620024 objects=18 used=18 fp=0x  (null) flags=0x0080
[    0.000000] INFO: Object 0xc78010e0 @offset=224 fp=0xc78011c0
[    0.000000] 
[    0.000000] Bytes b4 c78010d0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
[    0.000000] Object c78010e0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
[    0.000000] Object c78010f0: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 5a              kkkkkkkkkkkZ
[    0.000000] Redzone c78010fc: 5a 5a 5a 5a                                      ZZZZ
[    0.000000] Padding c78011a4: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a  ZZZZZZZZZZZZZZZZ
[    0.000000] Padding c78011b4: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a              ZZZZZZZZZZZZ
[    0.000000] Backtrace: 

for the 3.4.52 kernel.  Compiling mm/slub.o with -O1 fixes *these*
problems but there happen other crashes later.


A kernel compiled for an ARMv7 platform (OMAP4, kernel 3.4.43) seems to
work (although there might be enabled other kernel options).


Are these problems resp. fixes known?



Enrico

Footnotes: 
[1]  from 4f5009dcbbeb27bdf5dcaebb3b457fecef410ebe

[2]  https://bugs.launchpad.net/ubuntu/+source/gcc-4.8/+bug/1178847



More information about the Openembedded-core mailing list