From owner-freebsd-arch@FreeBSD.ORG Sun Jan 11 21:47:52 2009 Return-Path: Delivered-To: arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44DEB106566B; Sun, 11 Jan 2009 21:47:52 +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 01FD78FC0C; Sun, 11 Jan 2009 21:47:51 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.2/8.14.1) with ESMTP id n0BLj3b4051162; Sun, 11 Jan 2009 14:45:03 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Sun, 11 Jan 2009 14:45:24 -0700 (MST) Message-Id: <20090111.144524.235773790.imp@bsdimp.com> To: sam@FreeBSD.org From: "M. Warner Losh" In-Reply-To: <496A65E1.5030309@freebsd.org> References: <20090111191251.GA74450@zim.MIT.EDU> <20090111.142350.1560738814.imp@bsdimp.com> <496A65E1.5030309@freebsd.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: arch@FreeBSD.org Subject: Re: Quick hack to make fast kernel builds easier [really cross-build support] X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jan 2009 21:47:52 -0000 In message: <496A65E1.5030309@freebsd.org> Sam Leffler writes: : M. Warner Losh wrote: : > In message: <20090111191251.GA74450@zim.MIT.EDU> : > David Schultz writes: : > : On Sun, Jan 11, 2009, Ed Schouten wrote: : > : > I often just run `make' in /usr/obj/..., : > : > which also saves some typing, but unfortunately that doesn't work when : > : > cross compiling. : > : : > : Also, as far as I know, there's no convenient way to rebuild a : > : single module for another architecture. I use the following script : > : called 'arch' to set the appropriate environment variables, so if : > : I've already run 'make universe' and I want to rebuild libc for : > : sparc64, I say: : > : : > : cd /usr/src/lib/libc && arch sparc64 make : > : : > : It would be nice if there were a better mechanism for this that's : > : integrated into the build system. : > : > I do one of the following: : > : > (1) env TARGET=arm make buildworld -DNO_CLEAN : > : > or : > : > (2) env TARGET=arm make buildenv : > $ cd lib/libc && make : > : > These both work out well enough in practice for me. I've wanted a : > target that was 'reworld' that just did an 'all' and maybe a few other : > things, but I've never had the time to polish this up (had it in a : > couple of trees that I lost due to disk failure). : > : > I do agree it would be nice if there was some way to do 'all' for a : > subdirectory with a 'trust me, I know what I'm doing, so don't do all : > that other stuff' flag. : > : > : I told das privately but will note publicly that: : : tools/tools/nanobsd/gateworks : : uses make buildenv to cross-build various bits. At some point I want to : promote some of the shell code to be part of nanobsd but until we've got : something to deal with ports I'm in no hurry. I've done similar things... Cross building ports is a very interesting problem... Warner