Subject: port-amd64/35829: 4.0BETA2/amd64 compiler builds bad SMP kernels
To: None <port-amd64-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: Manuel Bouyer <Manuel.Bouyer@lip6.fr>
List: netbsd-bugs
Date: 02/24/2007 18:55:00
>Number: 35829
>Category: port-amd64
>Synopsis: 4.0BETA2/amd64 compiler builds bad SMP kernels
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: port-amd64-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Feb 24 18:55:00 +0000 2007
>Originator: Manuel Bouyer
>Release: NetBSD 4.0_BETA2, NetBSD-daily 200702160000Z
>Organization:
>Environment:
System: NetBSD truc.lip6.fr 4.0_BETA2 NetBSD 4.0_BETA2 (CONF_BUG) #1: Sat Feb 24 18:57:58 MET 2007 root@truc.lip6.fr:/home/tmp/amd64/obj/home/4/src/sys/arch/amd64/compile/CONF_BUG amd64
Architecture: x86_64
Machine: amd64
>Description:
A SMP kernel build via config+make dies shortly after starting 2
concurent
dd if=/dev/zero of=some_file bs=1k
It dies with a trap. I suspect some SMP synchronisation mechanism
are not working properly, and some kernel structure gets corrupted.
The same kernel config build from the same source tree via
build.sh kernel=...
is rock solid. This has been verified on 2 boxes by 2 independant
persons. Running 'make cleandir; make' in the build tree created
by build.sh also produces a bad kernel, so it's probably a difference
in the native vs cross tools.
>How-To-Repeat:
cd sys/arch/amd64/conf; config GENERIC.MP; cd ../compile/GENERIC.MP; make
>Fix:
workaround: use build.sh kernel=GENERIC.MP