Kris Kennaway wrote:
Mark Moellering wrote:
I have been trying to install an i386 jail on an amd64 install. I added Target=i386 to the command line in the make buildworld and installworld commands. I keep getting the following (or similar) error


'Target' does nothing, there is no such variable. If you meant 'TARGET', that is a real variable but not the one you want. You need to add 'TARGET_ARCH=i386' to your build/installworld to successfully cross-compile.

Kris

You need to mount /libexec into your jail and /usr/lib32 into the /usr/lib. This will get the base system in your jail working. You also need to symlink /usr/lib32 → /usr/lib, because it appears that is hard-coded location in ld-elf32.so.1.

To compile ports in the jail you have to define ARCH=i386 in the make.conf of the jail, because it defaults to the kernel arch amd64. This will get a lot of ports to compile into proper i386 binaries and libraries. But there are ports I have not managed to build, such as wine and perl. The binaries from the wine package just dump core inside my jail. I suppose wine simply interacts to closely with the kernel.

Why perl doesn't build, I don't know. It's my impression that some ports just don't manage to see the libraries they just built. I have no idea, why, though.

For some ports you have to add --host=i386 and --build=i386 to the CONFIGURE_ENV, because configure thinks you're trying to crosscompile and looks for the cross-compiling tools.

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

Reply via email to