cross building i386 on amd64

Chris bsd-lists at bsdforge.com
Fri Apr 16 20:04:04 UTC 2021


On 2021-04-16 12:35, Andriy Gapon wrote:
> 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.
+1
FWIW I also do it very similarly to this with great results. :-)

--Chris


More information about the freebsd-hackers mailing list