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

From: Damjan Jovanovic <damjan.jov_at_gmail.com>
Date: Sun, 22 Jun 2025 02:33:40 UTC
On Sat, Jun 21, 2025 at 11:31 PM Warner Losh <imp@bsdimp.com> wrote:

> On Sat, Jun 21, 2025 at 10:09 AM Rick Macklem <rick.macklem@gmail.com>
> wrote:
> >
> > On Sat, Jun 21, 2025 at 7:54 AM Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
> wrote:
> > >
> > > On Sat, 21 Jun 2025 16:48:10 +0300
> > > Vadim Goncharov <vadimnuclight@gmail.com> wrote:
> > >
> > > > On Sat, 21 Jun 2025 02:58:59 +0000
> > > > Colin Percival <cperciva@tarsnap.com> wrote:
> > > >
> > > > > On 6/20/25 15:15, Vadim Goncharov wrote:
> > > > > > On Sat, 21 Jun 2025 04:09:29 +0900
> > > > > > Tomoaki AOKI <junchoon@dec.sakura.ne.jp> wrote:
> > > > > >
> > > > > >>>>> - ~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?
> > > > > >>> Hopefully never.
> > > > > >>
> > > > > >> Maybe this could puzzle more persons.
> > > > > >>
> > > > > >> IIUC, lib32 is for running 32bit apps on 64bit platform, which
> is NOT
> > > > > >> planned for removal.
> > > > > >>
> > > > > >> What is going to be deprecated is 32bit bare-metal hardwares
> supports
> > > > > >> for i386 and 32bit PowerPC, which never runs on 64bit modes.
> > > > > >
> > > > > > Does that mean that support for 32-bit builds for virtual
> machines (that's
> > > > > > important because they use less memory -> buy cheaper,
> especially when
> > > > > > lots of them) will be continued after 2030 ?
> > > > >
> > > > > If by "virtual machine" you mean bhyve/qemu/KVM/virtualbox/etc
> then no, that
> > > > > will not be possible in 15.x and later because a full virtual
> machine needs
> > > > > to run a FreeBSD kernel, and there will be no FreeBSD/i386 kernel
> for 15.x
> > > > > and later.
> > > > >
> > > > > If by "virtual machine" you mean containers, that will still be
> possible.
> > > >
> > > > Of course I mean real virtual machine e.g. running in a cloud. The
> same code
> > > > compiled for 32 bits consumes less memory than for 64 bits (int and
> ptr size).
> > > > So for 100 VMs in a cloud 1 GB RAM each vs 100 VMs in a cloud 2 GB
> RAM you
> > > > have a significant cost difference (lib32 is only partial solution
> here, as
> > > > you also have system daemons and kernel).
>
> The counter to this is it doesn't matter if basic functionality like
> time can't work beyond 2038. Our i386 port has ABI issues that makes
> it impossible to have a 64-bit time_t. The number of system calls that
> need to change is crazy. Having a 64-bit time_t is possible with a
> whole new ABI, but there's half a dozen places in i386 specific code
> that know time_t is 4 bytes and externalize it as such that would need
> to be fixed. It's a lot of work for almost no benefit...


But if so, removing the i386 kernel won't help, because the i386 userland
would still suffer from the Y2038 problem even on an amd64 kernel.

--
Damjan