problems with i386 jail on amd64 install 7.0 Release
Dominic Fandrey
kamikaze at bsdforen.de
Fri Mar 28 14:34:06 PDT 2008
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.
More information about the freebsd-questions
mailing list