Date: Sun, 15 Mar 2009 19:57:12 +0100 From: Andreas Tobler <andreast-list@fgznet.ch> To: Marcel Moolenaar <xcllnt@mac.com> Cc: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org> Subject: Re: cross build world on amd64 install on ppc Message-ID: <49BD4F88.9060305@fgznet.ch> In-Reply-To: <59998CAE-B90C-4038-A6C8-52C3EB35987E@mac.com> References: <49BC1626.70106@fgznet.ch> <59998CAE-B90C-4038-A6C8-52C3EB35987E@mac.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Marcel Moolenaar wrote: > On Mar 14, 2009, at 1:40 PM, Andreas Tobler wrote: > >> make -j4 buildlernel TARGET_ARCH=powerpc KERNCONF=GENERIC >> make installkernel TARGET_ARCH=powerpc KERNCONF=GENERIC DESTDIR=/tmp >> >> Now I'd like to do the same for 'buildworld'. > > make buildworld TARGET_ARCH... > make installworld TARGET_ARCH... DESTDIR... Yep. >> I have taken the approach to nfs export the /usr/src and the /usr/obj >> from the amd64 to the powerpc machine. > > You can NFS export DESTDIR and mount that on your powerpc > machine. I'll try that later. >> First, is this possible to do a buildkernel/buildworld on an amd64 for >> powerpc and then install it on powerpc? > > Indirectly yes. > >> Is the nfs approach dead wrong? > > No, but there are gotchas. For one, a cross build uses > /usr/obj/${TARGET_ARCH} as the root of the object tree, > whereas a native build simply uses /usr/obj. This needs > to be compensated for. Yes, I did that already. I did a symbolic link for /usr/obj/${TARGET_ARCH}. But better would be to export the /usr/obj/${TARGET_ARCH} instead of /usr/obj on the nfs server. Then I do not need to bother on the client side. Additionally, if I have different TARGET_ARCH's, I can export them to the dedicated client only and make sure that I do not screw up TARGET_ARCH-A while playing with TARGET_ARCH-B. > Also, as part of a buildworld we build host tools. These > you need to build on your powerpc. One way is to do a > buildworld on your powerpc machine after doing it on your > amd64, making sure that the object tree is shared. This > should avoid rebuilding on your powerpc, while making > sure the prerequisites are dealt with. Here I have questions: - do I do a 'make buildworld' on the powerpc with -DNO_CLEAN? - or can I somehow 'make bootstrap-tools'? I tried to do a make bootstrap-tools but failed. What I miss are the parts from tmp/legacy/usr in native ppc format. Also, the strip command in native format, maybe other follow. To install a crossbuilt kernel on ppc I changed the tmp/legacy/usr/bin/install to the ppc native one. >> If it is possible to do a cross buildworld how do I install it on the >> ppc machine? > > I think the easiest approach is to do an installworld on > your amd64 and mount that on your powerpc machine. You > can use rsync to sync your powerpc /. Alternatives are > tar, cp -R, etc... Yes, another possibility. I do not have an urgent need to have a newly built world on my ppc. I'm just playing. > It would be great if we can improve the process so that > you can build on machine X and install on machine Y, by > sharing usr and obj trees. That would be great. I'll continue playing. Thanks so far! Andreas
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49BD4F88.9060305>