Quick hack to make fast kernel builds easier [really cross-build
julian at elischer.org
Mon Jan 12 00:22:39 PST 2009
Sam Leffler wrote:
> M. Warner Losh wrote:
>> In message: <20090111191251.GA74450 at zim.MIT.EDU>
>> David Schultz <das at FreeBSD.ORG> 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
>> : > 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
>> (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:
When Cisco was thinking of using BSD for the Nova project I had
a cross build env set up for PPC. I had a chroot where all teh
standard tools were cross tools... so 'cc' ran on a PC but gave PPC
binaries. in addition all the libraries to link with etc. were
all PPC libs. Seemed to work ok..
to rebuild tools WITHIN the chroo you did the build on the enclosing
environment with a DESTDIR=/ppc-chroot TARTGET=PPC (or whatever it
was) and to generate arbitrary PPC binaries you just compiled them
normally within the chroot.
> 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.
> freebsd-arch at freebsd.org mailing list
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe at freebsd.org"
More information about the freebsd-arch