Package: release.debian.org
Severity: important
X-Debbugs-Cc: debian-r...@lists.debian.org, sylves...@debian.org, 
d...@debian.org

Hi!

This is prompted by #1095862 (RC-bug on LLVM/rustc for
unsoundness/miscompilations on current Debian i386, because LLVM and
thus rustc don't support Debian's i386 baseline).

The issue was discussed back in November on debian-release/-devel,
including a roll call for opinions on raising i386's baseline by elbrus
[0] (with 6 pro voices, mine included, and no objections), and an
analysis of affected hardware[1].

IMHO the most sensible change to the baseline would be to move from:

- i686 since Debian 12 'bookworm'. There's no MMX nor SSE. [2]

to

- i686 with MMX and SSE/SSE2 ("Pentium 4") since Debian 13 'trixie'

which is what I want to suggest by filing this issue. It seems to be
sometimes refered to as i786, but that doesn't seem to be the universal
nomenclature - but i686 is already meaning different things as well.

I recently picked up the discussion on IRC (05.02.25):

12:35:13 <smcv> amacater, f_g: I think rust having a realistic/working
baseline on i386 would be better than dropping rusty things from i386,
because sooner or later I expect something like Mesa will pick up a Rust
dependency, and that's necessary for the legacy-binaries/Wine/Steam
use-case

20:03:03 <elbrus> f_g: if the baseline could be raised across the
toolchain packages in sync (I mean, if they agree what to raise it too),
than I (as a Release Team member) are fine with the raise; much more
appreciated than removal of rustc on i386

I am not worried about the rebuild side for rustc, as we (well, mostly
you ;)) rebuild the Rust world roughly every 6 weeks anyway with each
new upstream release, and we still plan on uploading 1.85 for Trixie
before the freeze starts. For rustc and LLVM an updated baseline would
actually align us closer with upstream rather than deviating from it, so
I expect the majority of fallout to be dropping patches that worked
around this fact.

Yesterday I reached out to the LLVM and GCC maintainers. Sylvestre (for
the LLVM side) would be fine with raising its target to match a bumped
baseline like described above, doko (for the GCC side) thinks it is too
late in the release cycle to do that because of the number of rebuilds
and potential performance implications it entails.

@Sylvestre, @Doko : please expand the above if you feel like something
is missing!

A mixed approach (raising the baseline to allow LLVM and rustc to bump
their targets, but keeping GCC's default target and thus the majority of
packages at the current/old baseline and skip the rebuilds there) might
be possible, but also has potential perfomance or bugginess implications
because of switching back and forth between x87 and SSE floating
operations.

So it seems we are at an impasse now with the toolchain freeze rapidly
approaching - and might have to remove i386 support from rustc (and in
theory, LLVM as well, but I will of course defer to the respective
team's opinion on that) for Trixie after all. Any further input that
might help get this unstuck highly appreciated.

I am sorry that this came up this late in the release cycle, and that I
didn't push faster between November and now to get this resolved.

Thanks for the consideration,
Fabian

0: https://lists.debian.org/debian-devel/2024/11/msg00389.html
1: https://lists.debian.org/debian-release/2024/11/msg00459.html
2: https://wiki.debian.org/ArchitectureSpecificsMemo#i386-1

Reply via email to