SSE2 required for i686 targets in rust >= 1.86
Jan Palus
atler at pld-linux.org
Fri Oct 10 19:56:24 CEST 2025
On 23.07.2025 22:33, Jan Rękorajski wrote:
> On Wed, 23 Jul 2025, Jakub Bogusz wrote:
>
> > On Fri, May 16, 2025 at 12:27:34PM +0200, Jan Palus wrote:
> > > Starting with rust 1.86 binaries built for i686 (including rustc itself)
> > > require SSE2 instructions (refer to release notes for rationale). The
> > > question is how we'd like to handle this:
> > >
> > > 1. Change target to i586-unknown-linux-gnu for i686.
> > > i586-unknown-linux-gnu is "Tier 2 platform without host tools" so
> > > we'd need to build both i686-unknown-linux-gnu for tools which would
> > > require SSE2 as well as i586-unknown-linux-gnu.
> > >
> > > 2. Put "Requires: cpuinfo(sse2)" possibly through some %rust_req macro
> > > in every package utilizing rust
> > >
> > > 3. Change our baseline for i686 so SSE2 is mandatory and do nothing.
> > >
> > > Any other ideas are welcome.
> >
> > 1 looks like big PITA, so I'd go with 2...
>
> Considering that more and more ~base libraries are being ported to rust
> and ix86 *hardware* is practically obsolete and barely exists, the only
> real choice is 3.
>
> Let's face it, we have i686 not to run on i686 hw, but for random
> binaries not available on x86_64.
Thing is if we just accept sse2 in i686, we could just as well add
-msse2 to %{rpmcflags}/%{rpmcxxflags} but then it's no longer "i686" --
it's effectively "pentium4" target. I'm not gonna make that call though
so I'll stick to 2. for the time being. If someone wants to add -msse2
feel free to do so.
More information about the pld-devel-en
mailing list