From owner-svn-src-all@FreeBSD.ORG Tue Jun 8 19:27:58 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BDBA11065676; Tue, 8 Jun 2010 19:27:58 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 4CC5D8FC19; Tue, 8 Jun 2010 19:27:58 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id o58JMAjH011770; Tue, 8 Jun 2010 13:22:10 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Tue, 08 Jun 2010 13:22:10 -0600 (MDT) Message-Id: <20100608.132210.10150326092157406.imp@bsdimp.com> To: jhb@freebsd.org From: "M. Warner Losh" In-Reply-To: <201006081446.09423.jhb@freebsd.org> References: <201006081804.o58I473g073875@svn.freebsd.org> <201006081446.09423.jhb@freebsd.org> X-Mailer: Mew version 6.3 on Emacs 22.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208921 - in head/sys: amd64/amd64 conf i386/i386 x86/x86 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2010 19:27:58 -0000 In message: <201006081446.09423.jhb@freebsd.org> John Baldwin writes: : On Tuesday 08 June 2010 2:04:07 pm John Baldwin wrote: : > Author: jhb : > Date: Tue Jun 8 18:04:07 2010 : > New Revision: 208921 : > URL: http://svn.freebsd.org/changeset/base/208921 : > : > Log: : > Move the machine check support code to the x86 tree since it is identical : > on i386 and amd64. : > : > Requested by: alc : : It would be nice to consolidate as that is identical on both : platforms, but that moving to x86/include is trickier as the header needs to : be available in userland, probably as still. : would work ok (i.e. in /usr/include/x86/mca.h), but that makes things trickier : in the kernel as the file should really live in sys/x86/include, not sys/x86 : directly. : : I'm open to suggestions on if this is feasible and if so how to do it. I believe we had a long talk about this before. copy the current {i386,amd64}/mca.h to x86/mca.h new {i386,amd64}/mca.h == #include (no copyright notice, etc) just like we do for the pc98 stuff. The mca.h file would live in sys/x86/include. That was the consensus of the conversation at the time. There's some support for this already in the tree for pc98 vs i386 stuff. There's work in flight for mips and powerpc that do similar things for the 64-bit versions (the mips stuff is on the drawing board, the powerpc stuff is in nathanw's branch). Plus this dove-tails into the MACHINE_CPUARCH stuff I've worked on with the tbemd branch that's headed into head as soon as the mips merge is sorted out. In src/include/Makefile we have: .if defined(_MARCH) ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \ ${DESTDIR}${INCLUDEDIR}/${_MARCH}; \ cd ${.CURDIR}/../sys/${_MARCH}/include; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ ${DESTDIR}${INCLUDEDIR}/${_MARCH} .if exists(${.CURDIR}/../sys/${_MARCH}/include/pc) ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \ ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc; \ cd ${.CURDIR}/../sys/${_MARCH}/include/pc; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ ${DESTDIR}${INCLUDEDIR}/${_MARCH}/pc .endif .endif we could add .if defined(_MCARCH) ${INSTALL} -d -o ${BINOWN} -g ${BINGRP} -m 755 \ ${DESTDIR}${INCLUDEDIR}/${_MCARCH}; \ cd ${.CURDIR}/../sys/${_MARCH}/include; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 *.h \ ${DESTDIR}${INCLUDEDIR}/${_MCARCH} .endif just after it, plus a few touch-ups elsewhere in the file (like defining _MCARCH if MACHINE_CPUARCH != MACHINE_ARCH). And just to recap, MACHINE_ARCH is the binary architecture that's being built. MACHINE_CPUARCH is where the source for a group of related MACHINE_ARCH live. MACHINE_CPUARCH is mips for all mips platforms, but MACHINE_ARCH is mipsel or mipseb (and maybe mips64el and mips64eb) for those platforms. To apply this pattern to intel, MACHINE_ARCH={i386,amd64} and MACHINE_CPUARCH=x86. Warner