Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Apr 2021 22:35:55 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Peter Blok <pblok@bsd4all.org>, freebsd-hackers@freebsd.org
Subject:   Re: cross building i386 on amd64
Message-ID:  <98964b07-b9a5-ca23-ef9d-7cb87d086282@FreeBSD.org>
In-Reply-To: <376DADB2-A7A9-4519-888C-BCD8A32B62B3@bsd4all.org>
References:  <376DADB2-A7A9-4519-888C-BCD8A32B62B3@bsd4all.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?98964b07-b9a5-ca23-ef9d-7cb87d086282>