cross building i386 on amd64
Andriy Gapon
avg at FreeBSD.org
Fri Apr 16 19:36:00 UTC 2021
On 16/04/2021 20:22, Peter Blok wrote:
> Hi,
>
> I’m cross building 12-STABLE i386 on a 12-STABLE amd64 system. Sources are refreshed every day.
>
> Build runs fine and put everything in the right directory. For the target i386 system it is in /usr/obj/i386TARGET.
>
> Next I NFS mount the source /on /usr/src and /usr/obj/i386TARGET on /usr/obj on the target machine
>
> When I run make installworld it will use install from /usr/obj/usr/src/i386.i386/tmp/legacy/usr/bin because it is the first install it finds in the PATH set by installworld. This tanks because install is compiled for amd64.
>
> I understand why the legacy path is compiled for amd64. This is needed to build a distribution.
>
> So is this is bug or is the way I distribute the objects not supported?
I used this method only for same architecture installations.
Never tried it for different architectures, so I cannot tell if this is a
regression.
However, I can share the method I use.
On the build machine I just installworld into an empty directory and then tar it up.
In fact, I am doing that without even requiring local root.
I use DESTDIR=/some/path NO_ROOT=t DB_FROM_SRC=t.
And then
tar -c --use-compress-program pbzip2 -f image.tbz -C /some/path "@METALOG"
pbzip2 is just for speed.
--
Andriy Gapon
More information about the freebsd-hackers
mailing list