Date: Sun, 23 Jul 2006 18:25:23 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: tyler@bleepsoft.com Cc: freebsd-hackers@freebsd.org Subject: Re: Platform dependent locations Message-ID: <20060723.182523.324389931.imp@bsdimp.com> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <00DBA5C9-C270-4E3A-AAD0-DD294B6A2E1C@bleepsoft.com> "R. Tyler Ballance" <tyler@bleepsoft.com> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060723.182523.324389931.imp>