NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
toolchain/45168: Failing "c->c_magic == CALLOUT_MAGIC" assertion on evbarm kernel build with gcc 4.5
>Number: 45168
>Category: toolchain
>Synopsis: Failing "c->c_magic == CALLOUT_MAGIC" assertion on evbarm
>kernel build with gcc 4.5
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: toolchain-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jul 23 11:05:00 +0000 2011
>Originator: Peter Tworek
>Release: current
>Organization:
>Environment:
NetBSD 5.99.55 NetBSD 5.99.55 (GTA02_FAKE) #4: Sat Jul 23 12:40:01 CEST 2011
tworaz@crow:/home/tworaz/devel/NetBSD/obj-gta02/sys/arch/evbarm/compile/GTA02_FAKE
evbarm
>Description:
I've encountered a problem which seems to be triggered by new gcc
version. So far I've only reproduced it on OpenMoko GTA02 port I'm working on,
but I think it should also be reproducible on other evbarm ports. In my
configuration I have a kernel and a small ramdisk running on both the device
and qemu. With gcc 4.1 everything works as expected. The kernel boots and I'm
able to runn a few programs I've included in my ramdisk. When I've switched to
4.5 I've experienced the
following problem. In my ramdisk's /etc/rc I simply execute /bin/sh.
When I run it on qemu I see a shell prompt but after I type any command
kernel panics.
panic: kernel diagnostic assertion "c->c_magic == CALLOUT_MAGIC" failed:
file "/home/tworaz/devel/NetBSD/src/sys/kern/kern_timeout.c", line 314
Stopped in pid 3.1 (ls) at netbsd:cpu_Debugger+0x4: bx r14
db> bt
netbsd:panic+0x10
scp=0xc0314560 rlv=0xc03d7f68 (netbsd:kern_assert+0x40)
rsp=0xc27bde2c rfp=0xc27bde40
r7=0xc069cf80
netbsd:kern_assert+0xc
scp=0xc03d7f34 rlv=0xc02bb8d0 (netbsd:callout_destroy+0x8c)
rsp=0xc27bde44 rfp=0xc27bde54
r4=0xc1cbbb0c
netbsd:callout_destroy+0xc
scp=0xc02bb850 rlv=0xc0291ee4 (netbsd:exit1+0x328)
rsp=0xc27bde58 rfp=0xc27bdeac
r4=0xc27bde64
netbsd:exit1+0xc
scp=0xc0291bc8 rlv=0xc02923b0 (netbsd:sys_exit+0x3c)
rsp=0xc27bdeb0 rfp=0xc27bdec8
r7=0x00000001
0
scp=0x00000000 rlv=0xc0326e8c (netbsd:syscall+0x88)
rsp=0xc27bdecc rfp=0xc27bdf58
uvm_fault(0xc06a9e44, fffff000, 1) -> e
Fatal kernel mode data abort: 'Translation Fault (S)'
trapframe: 0xc27bdb20
FSR=00000005, FAR=fffffff8, spsr=60000013
r0 =0000001e, r1 =c03e8dba, r2 =fffffff8, r3 =00000000
r4 =00000000, r5 =c27bdec8, r6 =c0314e90, r7 =e92dd880
r8 =00000001, r9 =c27bde98, r10=0000fffb, r11=c27bdba0
r12=c27bdab8, ssp=c27bdb6c, slr=c0314128, pc =c020d360
Faulted in DDB; continuing...
The same ramdisk (built with gcc 4.5) works fine when using kernel compiled
with gcc 4.1.
>How-To-Repeat:
Steps:
1. Build evbarm kernel + ramdisk with gcc 4.5. Thernel needs to have
DIAGNOSTICS option enabled
2. Boot it and try to run any command.
Exp:
No kernel assertions are triggered
Act:
Kernel panics.
>Fix:
Workaround: Build userland with gcc 4.5, kernel with 4.1.
Home |
Main Index |
Thread Index |
Old Index