Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jul 2006 16:06:31 -0500
From:      "R. Tyler Ballance" <tyler@bleepsoft.com>
To:        FreeBSD Hackers <freebsd-hackers@freebsd.org>
Subject:   Platform dependent locations (was Re: Building a sandboxed kernel)
Message-ID:  <00DBA5C9-C270-4E3A-AAD0-DD294B6A2E1C@bleepsoft.com>
In-Reply-To: <20060723.105549.2106235963.imp@bsdimp.com>
References:  <7ADD22A7-42DE-49D8-B411-DBA4CB2FA0CD@bleepsoft.com> <20060723100223.GB24435@gothmog.pc> <3320CEAC-8A5C-407D-9867-C2A22820A599@bleepsoft.com> <20060723.105549.2106235963.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
-----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-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00DBA5C9-C270-4E3A-AAD0-DD294B6A2E1C>