Possible bug with cross compiling (i386 on amd64 host).
Ade Lovett
ade at FreeBSD.org
Wed Oct 20 01:47:48 EDT 2010
On Oct 19, 2010, at 13:56 , Tom Judge wrote:
> Is there a way to fix this when the jail is created?
Cross compiling anything but src/ (in tinderbox parlance, jails) is fraught with issues.
The way I do things, with decent enough success (the few edge cases really aren't worth mentioning), is to set up a full i386 chroot (you can probably get away with just the 'bin' set, but I choose to add 'dict' and 'proflibs' since those are needed within the tinderbox-environment, and I like to keep things relatively sane).
nullfs mount whatever you need inside the chroot from the actual amd64 host, add devfs, then add the following lines to /local/i386/.cshrc (and /local/i386/root/.cshrc) -- substitute /local/i386 for wherever you have your chroot.
setenv UNAME_m i386
setenv UNAME_p i386
You can then "chroot /local/i386" and uname will do the right thing. Add the mysql/pgsql client libraries of your choice, along with everything else that tinderbox needs (not the UI bits, since that runs on the amd64 iron), tweak resolv.conf and the mail system (if you want notifications), then run i386 builds from within the chroot.
You can also do this with a (FreeBSD) jail along similar lines, or even a virtualbox host (I also have those for testing things out in a "clean" environment), but the latter does come with a significant performance hit.
If there's sufficient interest, I can probably clean up the above and make an actual i386-chroot-on-amd64-host installation guide.
Now excuse me whilst I wander off and do a global replace of "jail" to "bindist" (or something) within the ports tinderbox code. :)
-aDe
More information about the tinderbox-list
mailing list