From owner-freebsd-hackers@FreeBSD.ORG Mon Jul 24 00:26:26 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6B72716A4DA for ; Mon, 24 Jul 2006 00:26:26 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (vc4-2-0-87.dsl.netrack.net [199.45.160.85]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7AFB843D45 for ; Mon, 24 Jul 2006 00:26:25 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (localhost.village.org [127.0.0.1] (may be forged)) by harmony.bsdimp.com (8.13.4/8.13.4) with ESMTP id k6O0P4aZ080029; Sun, 23 Jul 2006 18:25:04 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Sun, 23 Jul 2006 18:25:23 -0600 (MDT) Message-Id: <20060723.182523.324389931.imp@bsdimp.com> To: tyler@bleepsoft.com From: "M. Warner Losh" In-Reply-To: <00DBA5C9-C270-4E3A-AAD0-DD294B6A2E1C@bleepsoft.com> References: <3320CEAC-8A5C-407D-9867-C2A22820A599@bleepsoft.com> <20060723.105549.2106235963.imp@bsdimp.com> <00DBA5C9-C270-4E3A-AAD0-DD294B6A2E1C@bleepsoft.com> X-Mailer: Mew version 4.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Sun, 23 Jul 2006 18:25:04 -0600 (MDT) Cc: freebsd-hackers@freebsd.org Subject: Re: Platform dependent locations X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jul 2006 00:26:26 -0000 In message: <00DBA5C9-C270-4E3A-AAD0-DD294B6A2E1C@bleepsoft.com> "R. Tyler Ballance" writes: : -----BEGIN PGP SIGNED MESSAGE----- : Hash: SHA1 : : > Doesn't matter. : > : > I often do the following: : > : > setenv TARGET arm # this may be iguana for you : > setenv TARGET_ARCH arm : > setenv MAKEOBJDIRPREFIX /home/imp/obj : > cd p4/imp_arm : > make buildworld : > make buildenv # from here on out is in a subshell : > cd ../arm/src/sys/arm/conf : > config KB920X : > cd ../compile/KB920X : > make depend && make : > : > You'll notice that I built in a tree that had all the arm patches : > applied, and got a 'buildenv' there, but then build the kernel out of : > a different tree. This is a -current p4 tree for both imp_arm and : > arm, but I do this on a RELENG_6 system. I've done it in the recent : > past on a 5.3 system too. : > : > TARGET is MACHINE and TARGET_ARCH is MACHINE_ARCH. MACHINE is the : > kernel architecture, while MACHINE_ARCH is the CPU architecture : > (TARGET_CPU is the specific CPU that we're optimizing for). Chances : > are excellent we'll have TARGET_ARCH armel and armeb shortly. Right : > now we have a hack ARM_BIG_ENDIAN used to control big vs little : > endian, but since MACHINE_ARCH gets encoded into packages, I think we : > need to move it there so binary packages do the right thing. But : > that's a WIP in my tree right now... : : Thanks a lot! Of course, this leads to more questions on my part. : Firstly, is there an already outlined guide for porting to new : platforms? Sadly, no. At the moment one needs to learn by doing.... : (Which is essentially what i'm doing for this project: : http://opensource.bleepsoft.com/index.php/Main/L4BSD ) : : Or is this something I'll get to stumble over through trial and error : with 'make buildworld; ? I'm finding all sorts of extra places where : the FreeBSD build system is expecting platform specific files for : example: : : ===> sys/boot/iguana (cleandir) : cd: can't cd to /usr/home/tyler/perforce/projects/l4bsd/src/sys/boot/ : iguana : *** Error code 2 : : The problem I'm having is that I just want to build the kernel : specific to the "new platform" but will I necessarily have to provide : the proper constructs for the build system to cope with the new : "platform" in src/sys/ ? Yes. However, there may be ways to improve the build infrastructure to make more things optional, like src/sys/boot/$MACHINE... Warner