Re: Deprecation of i386 and 32-bit powerpc for 15.0

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Fri, 20 Jun 2025 20:07:56 UTC
On 6/20/25 13:40, Cy Schubert wrote:
> In message <3e998e81-0c3e-4b9a-8bcd-44b9cf70b6d1@FreeBSD.org>, John Baldwin
> wri
> tes:
>> In February 2023, the FreeBSD core team announced a plan to deprecate
>> most 32-bit platforms in FreeBSD 15.0.  Since that time, armv6 support
>> has been removed from main leaving i386 and 32-bit powerpc as the
>> remaining 32-bit platforms slated for deprecation.  While there have
>> been a few requests to keep full support for these platforms, we have
>> not seen an increase in developer interest or willingness to support
>> these platforms.
>>
>> In the past, removing platforms has been a bit messy.  Once a platform
>> is disconnected in main but remains in older stable branches, there is
>> a risk of MFCs breaking these deprecated platforms.  That has
>> certainly been the case with our most recent removal of MIPS (which is
>> still present in 13).  OTOH, keeping code around in the tree that is
>> deprecated comes at its own cost, and we would like to find the right
>> balance for deprecating i386 and 32-bit powerpc in 15.0.
>>
>> Prompted by a request from re@, srcmgr@ drafted an initial plan back
>> in January and shared it with core@.  core@ asked srcmgr@ to drive
>> this deprecation in coordination with other teams.  srcmgr@ worked
>> with re@ and portmgr@ to refine the initial plan into the proposal
>> below.  One request we received during this process is to keep the
>> full i386 world building even if the kernel is disabled.  Given the
>> presence of armv7 covering 32-bit warnings for userspace still and
>> that most MD code for i386 is already required for lib32 builds, the
>> cost of keeping this building seems relatively minor.
>>
>> The proposed timeline:
>>
>> - On main 3 months prior to the branching of stable/15 (June 2025):
>>
>>     - disable all i386 kernel configs in make universe in main leaving
>>       i386 as a world-only target in make universe
>>
>>     - move 32-bit powerpc out of the default list of targets for
>>       universe in main
>>
>>     - stop building release image snapshots for i386, powerpc, and
>>       powerpcspe
>>
>>     - stop building binary packages for i386 and powerpc for main
>>
>>     - disable CI jobs in jenkins for i386 and powerpc
>>
>> - On stable/15 after it branches (September 2025):
>>
>>     - exclude i386 and powerpc from CI jobs added in jenkins for the new
>>       branch
>>
>>     - do not add package builds or release image builds for i386 and
>>       powerpc for the new branch
>>
>> - ~6 months after branching (BSDCan 2026 devsummit):
>>
>>     - evaluate how stable/14 has been fairing (are MFCs breaking
>>       deprecated platforms) (note that stable/13 will be EOL at this
>>       point)
>>
>>       - if all is smooth, start removing code from main for i386 and
>>         powerpc kernels as well as any powerpc userspace code not
>>         required for lib32
> 
> When can we expect lib32 removal?

As kib@ noted, there is currently no plan to remove lib32 support.  Personally,
I expect it to remain for the foreseeable future.

-- 
John Baldwin