Re: compiling for other architecture [armv6 targeting specifically]

From: Mark Millard <marklmi_at_yahoo.com>
Date: Tue, 05 Mar 2024 17:43:35 UTC
Mathieu Arnold <mat_at_freebsd.org> wrote on
Date: Tue, 05 Mar 2024 15:37:08 UTC :

> I don't think you need to do much of the things you are saying, cross
> building can't really work because most ports will compile something and
> then try to run it, which won't work because an armv6 binary won't run
> on a x86_64 machine.
> 
> What works on the other hand is using poudriere and qemu-user-static.
> 
> you install both, and if you want to build packages for armv6, you just
> create a jail with the arch as "arm.armv6", and then simply run
> poudriere bulk with the arm jail. It will build everything in a jail,
> and you'll get arm packages in the end.

Back when FreeBSD ran official port -> package building was
targeting armv6 it worked this way. But there were major problems.

The last armv6 attempt was on Thu, 05 Oct 2023 02:37:41 GMT. It
queued 34637 packages (so a from-scratch build attempt). It built
8276. 242 failed. 25763 were skipped because of the failures. 356
were ignored up front. The overall ending status was
"stopped:crashed:". This was a 132releng-armv6 quarterly build.

The prior from-scratch "stopped:done:" build was on
Sat, 05 Aug 2023 04:40:30 GMT. Queued 34382. Built 26346. Failed
407. Skipped 6844. Ignored 721. Again a 132releng-armv6 quarterly
build. (Unusually successful for fairly modern times.)

The most recent from-scratch main-armv6 build (non-quarterly)
goes back to Sun, 11 Dec 2022 03:52:32 GMT. It had a
large incremental build on Thu, 12 Jan 2023 03:51:11 GMT,
which is the last of the "stopped:done" builds for main-armv6.

From my own on-time involvement and and general observation
of the official package build attempts for 32 bit architectures
on 64-bit hosts is that has rarely gone well overall.

> On Sun, Mar 03, 2024 at 01:53:31PM +0100, Oliver Epper wrote:
> > Hi all,
> > 
> > I am currently working on an updated port of net/pjsip. I have a personal
> > use case building for the raspberry-pi, too. All the information that I
> > found so far seemed outdated. Many are talking about building a
> > cross-compiler. With clang that should not be necessary, right?
> > 
> > Can anyone point me to more recent information on how I can build for armv6
> > on a x86_64 machine?
> > 
> > greetings
> > Oliver
> > 
> > P.S.: I know how to build for different architectures. My questions are all
> > about the "dos and don'ts" and best practices when it comes to the FreeBSDs
> > ports system.

===
Mark Millard
marklmi at yahoo.com