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