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

From: Brooks Davis <brooks_at_freebsd.org>
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 :
>  
> > On 4/27/23 10:19 AM, John Baldwin wrote:
> > > For 13.0, i386 was demoted from Tier 1 to Tier 2. In the announcement
> > > of this for 13.0, the project committed to an update on i386's future
> > > around the time of 14.0. The announcement at the time suggested that
> > > i386 would be supported less in 14.x than in 13.x.
> > > 
> > > My proposal is that for 14.x we treat i386 like any other Tier 2
> > > platform. That is, release images and packages would only be provided
> > > on a best-effort basis, and we would not guarantee providing them. I
> > > think we should also stop shipping binary updates for the base system
> > > (freebsd-update) for 14.x for i386.
> > > 
> > > A larger question is what to do about 32-bit platforms moving forward.
> > > My proposal for powerpc, i386, and armv[67] is that we say publicly
> > > that we anticipate not supporting them in 15. That is, that we may
> > > remove them outright from the tree, or we may leave them in the tree,
> > > but we do not plan on building packages or release images. Another
> > > option to consider for 32-bit platforms perhaps in 15 is to remove
> > > kernel support and only retain the ability to build userland. The
> > > goal of saying this now-ish (or about the time 14.0 is going to ship)
> > > would be to give time for users and developers to respond in the
> > > window between 14.0 and 15.0 so we can evaluate those responses as an
> > > input into the final decision for 15.
> > 
> > We discussed this topic during the 15.0 developer summit and the consensus
> > among the folks present (which is only a subset of our community), is
> > that there is still interest in supporting armv7 kernels in 15.0, but not
> > kernels for other platforms. In addition, no one expressed a need for
> > full 32-bit world support for i386 and powerpc, only for compat32 support
> > in the kernel, and lib32 (cc -m32) support in userland.
> 
> (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.

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.

-- Brooks