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



_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to