Platform dependent locations (was Re: Building a sandboxed kernel)

R. Tyler Ballance tyler at bleepsoft.com
Sun Jul 23 21:06:35 UTC 2006


-----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? (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/ ?


Cheers,

- -R. Tyler Ballance




-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (Darwin)

iD8DBQFEw+TZqO6nEJfroRsRAsWnAJ9xQlqy/DuBmR7Mhyvt4CBKQike4gCfdqzu
7OkESbLqY3i8VkzdleQ5tiU=
=8zez
-----END PGP SIGNATURE-----


More information about the freebsd-hackers mailing list