I have an AMD64 desktop/server system (amd64 arch) that I would like
to use for cross-compiling packages for my i686 laptop.  The problem
isn't that my laptop is slow, just that I use it for real work, and
pretend work, so I would like to reduce the amount of time and risk
involved in keeping it up to date.

So far I have tried two methods:

1. crossdev.  This method works for compiling some packages with:

ROOT=/mnt/path PORTAGE_CONFIGROOT=/mnt/path emerge <pkg>

But it doesn't work for deep world updates (emerge -DNuv world), as
portage ends up using the make.conf from the host, not target.  I also
have some problems with portage using the hosts package database.

Even when building specific packages, there seem to be many packages
that fail to link, or run things like freetype-config or kde-config to
determine paths for libraries and include files and the like, and that
doesn't work right when cross-compiling.

2. chroot.  I created a chroot environment by copying the actual / and
/var filesystems from my laptop, so I could use the actual 32-bit
toolchain and package database for my laptop.  This works better, as I
can at least start deep world updates, and I don't have the link or
*-config issues with the crossdev method.  The big problem here is
packages that use uname or /bin/arch commands to determine the
architecture.  Since the kerrnel the chroot is running on is still for
the amd64 arch, these packages get the idea that they can compile
64-bit code, which of course fails miserably with a 32-bit compiler.

My current options for making this really are to either setup a
virtual machine with something like vmware-server, so that I actually
boot the i686 kernel.  I would probably try to use an nfs-root for
this.  Or I can convert my box to an x86 profile, which should also
fix my problems with chroot environment.  But of course I would lose
any ability to play around with the 64-bit stuff, and the ability to
file bugs against the packages that (wrongly) look at uname/arch
output.

So does anybody have an AMD64-to-i686 cross-compiling environment that
they are happy with?

-Richard
--
gentoo-amd64@gentoo.org mailing list

Reply via email to