Re: Request to reconsider i386 (x86) port for Debian 13
On Sat, 16 Aug 2025 at 07:28:24 -0500, John Goerzen wrote:
Without getting into a debate over whether i386 should or should not be
dropped, as someone that runs other 32-bit archs, I wonder why armhf and
armel weren't similarly targeted?
Each of these 32-bit ports has different characteristics and different
tradeoffs.
i386-without-SSE2 on real 32-bit CPUs (as opposed to i386 as a
compatibility architecture on newer CPUs) is a problematic porting
target because it has non-IEEE floating-point behaviour that frequently
causes trouble: test suites often expect to see the same exact values,
simulations (e.g. networked games) want to see deterministic results
from running the same simulation on different CPUs, and the thing that
finally prompted raising the baseline was that it turned out that it
even harms soundness (ability to generate correct machine code) in
LLVM/rustc. i386-with-SSE2 is a lot easier, because it has the same IEEE
floating point as every other release architecture, but there were only
a few CPU generations that have SSE2 but not 64-bit support (I think the
Pentium 4 around 20 years ago was the most common example).
armel is also on its way out, because it has a *different*
characteristic that makes it a problematic porting target: unlike every
other release architecture, it doesn't have atomic operations in the
baseline instruction set, and they have to be emulated. For example this
is why mozjs/gjs had to be removed from armel in trixie. I suspect we
would have lost armel already if it wasn't for the fact that it's the
newest/highest-functionality Debian port that will run unmodified on
first-generation Raspberry Pi hardware, because ARMv6 is slightly too
old for official Debian's armhf baseline; Raspberry Pi OS, a Debian
derivative, works around this by recompiling armhf with a lower
baseline.
armhf has had CPUs that can run it but not its successor manufactured
more recently than i386 or armel, has normal IEEE floating-point unlike
i386, and has normal atomic operations unlike armel, so it is both less
painful to support and more likely to be useful as a "bare metal" OS
when compared with either i386 or armel.
(I do think that armhf's useful lifetime is limited, too, though.)
smcv
Reply to: