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