Re: Future of 32-bit platforms (including i386) [armv7 specific note]

From: Mark Millard <marklmi_at_yahoo.com>
Date: Thu, 25 May 2023 23:53:00 UTC
Brooks Davis <brooks_at_freebsd.org> wrote on
Date: Thu, 25 May 2023 17:48:28 UTC :

> On Wed, May 24, 2023 at 07:55:15AM -0700, Mark Millard wrote:
> > John Baldwin <jhb_at_FreeBSD.org> wrote on
> > Date: Tue, 23 May 2023 23:46:51 UTC :
> > 
> > . . .
> > 
> > (Prompted by manu's
> > https://lists.freebsd.org/archives/freebsd-arch/2023-May/000454.html .)
> > 
> > I'll note that armv7 does not now have lib32 support
> > for aarch64's that support EL0 AArch32. That would be
> > a development effort.
> > 
> > armv7 can be used via the likes of chrooting into a
> > armv7 world's directory tree for such aarch64's. That
> > is what I do on aarch64 for armv7.
> > 
> > > One question for this is if we think we will have sufficient developer
> > > resources to maintain armv7 kernels for the life of stable/15.
> > 
> > Sufficient developer support to get lib32 supporting
> > armv7 in place and keep it operational?
> 
> It's not too hard (but I did make it harder by requiring that lib32 be
> build via -m32 on an aarch64 sysroot.) Someone would need to get -m32
> working well enough to meet the needs of lib32. I'd suggest looking
> for i386 ifdefs in the x86 and amd64 trees as a start.

Just about -m32 . . .

share/mk/src.opts.mk has long had:

# aarch64 needs arm for -m32 support.
.elif ${__T} == "aarch64" && ${__llt:Marm*} != ""
__DEFAULT_DEPENDENT_OPTIONS+=   LLVM_TARGET_ARM/LLVM_TARGET_AARCH64

that, if I understood right, meant that aarch64 also had
arm targeting enabled by default and such was sufficient
for -m32 to be used.

This was put in place in the 2018-Jun-27 commit described
by:

QUOTE
LLVM_TARGET_ALL: Default LLVM_TARGET_ARM on for aarch64.
This is needed for -m32 support which is used in the kernel cloudabi32 module. Tweak the style to make it easier to understand. 
END QUOTE

So it seems that -m32 had been already in use in some
way.

May be this is not about -m32 itself but about having
more FreeBSD code able to handle -m32 being enabled?
If so, a bunch of commits from 2022-Jun-13 that are
titled like "amd64: -m32 support for machine/..."
might be some of the "x86 and amd64 trees" that you
are referencing?


> Ideally we'd also integrate tests so things didn't rot. I had tests for
> libcompat libraries working in CheriBSD at one point, I'm not entirely
> sure what the state is at the moment, but it wasn't too hard and could
> be resurrected if it's rotted.
> 
> This is one of those things where people need to show up and do the work
> or they have voted with their feet that armv7 isn't important. This
> stuff isn't super hard.

But there may not be many for which much of what is
needed is already familiar material.

===
Mark Millard
marklmi at yahoo.com