cross building i386 on amd64

Brooks Davis brooks at freebsd.org
Fri Apr 16 19:23:16 UTC 2021


On Fri, Apr 16, 2021 at 07:22:38PM +0200, 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?

This way of distributing objects is not reliably supported.  You could probably
work around it by running "make toolchain" on the i386 box (perhaps
after installing devel/llvm11 and adding CROSS_TOOLCHAIN=llvm11 to avoid
building clang).  You might also find that nuking
/usr/obj/usr/src/i386.i386/tmp/legacy works.

-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20210416/b3ec6131/attachment.sig>


More information about the freebsd-hackers mailing list