Centralized building

Eirik Øverby ltning at anduin.net
Sun Nov 20 08:50:39 GMT 2005

On Nov 19, 2005, at 19:43 , Joseph Koshy wrote:

>> AFAICT cross-compiling amd64 on a i386 machine isn't supported
>> yet. I ran into a similar problem when I upgraded an i386
>> machine to amd64. I thought I could just set CPUTYPE=athlon-64
>> and buildworld would do the right thing. Apparently not.
> Bootstrapping a single machine is supported:
> # make buildworld TARGET_ARCH=new-arch
> plus a few other steps.  (See build(7)).
> There have been a couple of postings on the mailing lists
> on this topic in the recent past.  I've taken a stab at
> describing how to cross-bootstrap too:
> http://edoofus.blogspot.com/2005/10/cross-building-freebsd.html
> The OP wanted to do a 'buildworld TARGET_ARCH=foo' on one
> machine and then an 'installworld' on a different set of
> machines.

Yes, and he still wonders if this is supposed to be doable or not.
I think the culprit is (partly) the fact that every architecture is  
built into its own subdirectory in /usr/obj, EXCEPT the architecture  
the build is running on. The same goes for the install part, and if  
the build and install architectures differ, it cannot ever work.  
Setting MAKEOBJDIRPREFIX on the target host makes the install start,  
but it fails after a couple of minutes with the "dd: not found" error.
(I do notice that there is a /usr/obj/usr directory created also when  
cross-building; I'm assuming this contains the build bootstrap tools).

> --
> FreeBSD Volunteer,     http://people.freebsd.org/~jkoshy

More information about the freebsd-stable mailing list