On Mon, 10 Jun 2024 at 20:17:27 +0500, Andrey Rakhmatullin wrote:
> On Mon, Jun 10, 2024 at 04:02:54PM +0100, Simon McVittie wrote:
> > several important upstreams no longer consider i386 to be useful (and
> > especially i386-without-SSE2), so so the burden of supporting 32-bit
> > CPUs in modern software will fall on the downstream developers who have
> > chosen that their aim is to support 32-bit CPUs.
> 
> I assume such software already has this status on Debian i386 (and so is
> either not built there or supported only by the maintainer, or maybe built
> with a raised baseline) so there should be no regression here

Some concrete examples:

* Packages built with -fcf-protection (Intel CET) require CPU support
  for "long NOP" opcodes which are, or used to be, non-baseline.
  This is a security hardening measure, so if we disable it in order
  to respect the documented baseline, the result is that our binaries
  are less secure than they could be (fewer mitigations for exploits)
  on CPUs where those opcodes actually *are* supported. (That's what
  started this thread: sudo enables this hardening.)

* nodeJS, Qt5WebEngine and others have a known baseline violation by using
  and requiring SSE2 internally, which they document by depending on
  sse2-support. I thought Chromium did this too, but maybe it either
  doesn't do that any more, or still has the baseline violation but
  doesn't document it.

* Packages built with rustc (notably Firefox and librsvg) had a known
  baseline violation in the past (they would crash with an illegal
  instruction on i586) which was made officially not-a-bug by raising the
  baseline to i686.

* In packages with test suites that compare the results of floating-point
  calculations at a high precision (such as librsvg), the fact that we
  target the legacy i387 FPU (which has 80-bit excess precision) rather
  than SSE2 (which has 64-bit IEEE precision) has caused a lot of extra
  work for maintainers in the past, due to tests getting a result on i386
  that differs from the result on every other platform we support.

* Some third-party software like Steam does not follow our baselines,
  and unconditionally requires newer CPU features. (Not a concern for
  Steam on i386 any more, because Steam now requires a 64-bit CPU, so
  bookworm's steam-installer is intentionally not installable on purely
  32-bit systems - but Steam will not actually work on a baseline *64-bit*
  CPU any more.)

    smcv

Reply via email to