Skip to content

Tracking issue for release notes of #137037: add x86-sse2 (32bit) ABI that requires SSE2 target feature #137047

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
1 of 3 tasks
rustbot opened this issue Feb 14, 2025 · 3 comments
Labels
A-ABI Area: Concerning the application binary interface (ABI) A-target-feature Area: Enabling/disabling target features like AVX, Neon, etc. A-targets Area: Concerning the implications of different compiler targets O-x86_32 Target: x86 processors, 32 bit (like i686-*) (IA-32) relnotes Marks issues that should be documented in the release notes of the next release. relnotes-tracking-issue Marks issues tracking what text to put in release notes. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Milestone

Comments

@rustbot
Copy link
Collaborator

rustbot commented Feb 14, 2025

This issue tracks the release notes text for #137037.

Steps

  • Proposed text is drafted by PR author (or team) making the noteworthy change.
  • Issue is nominated for release team review of clarity for wider audience.
  • Release team includes text in release notes/blog posts.

Release notes text

The responsible team for the underlying change should edit this section to replace the automatically generated link with a succinct description of what changed, drawing upon text proposed by the author (either in discussion or through direct editing).

# Compatibility Notes
- [SSE2 is now required for "i686" 32-bit x86 hard-float targets; disabling it causes a warning that will become a hard error eventually.](https://github.com/rust-lang/rust/pull/137037) Use an "i586" target to build code for machines without SSE2.

Tip

Use the previous releases categories to help choose which one(s) to use.
The category will be de-duplicated with all the other ones by the release team.

More than one section can be included if needed.

Release blog section

If the change is notable enough for inclusion in the blog post, the responsible team should add content to this section.
Otherwise leave it empty.

cc @RalfJung, @workingjubilee -- origin issue/PR authors and assignees for starting to draft text

@rustbot rustbot added O-apple Operating system: Apple (macOS, iOS, tvOS, visionOS, watchOS) relnotes Marks issues that should be documented in the release notes of the next release. relnotes-tracking-issue Marks issues tracking what text to put in release notes. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels Feb 14, 2025
@workingjubilee
Copy link
Member

I think this is a compatibility note, so edited it in. This is the big one with breaking changes of some nature, effectively: some x86 targets are required to have SSE2 now. Others don't require it and are expected to use a soft-float ABI where possible.

@RalfJung
Copy link
Member

Others don't require it and are expected to use a soft-float ABI where possible.

Hm, not sure if the "Rust" ABI is truly equivalent to the softfloat ABI. For "C" functions, it definitely is not -- i586 still uses a hardfloat ABI there.

I would just say, use an i586 target if you need to build code that works on systems without SSE2. Those are tier 2 targets, which reflects that this configuration is not nearly as well-supported as the i686 targets with SSE2.

@rustbot rustbot added this to the 1.86.0 milestone Feb 15, 2025
@jieyouxu jieyouxu added A-ABI Area: Concerning the application binary interface (ABI) A-target-feature Area: Enabling/disabling target features like AVX, Neon, etc. A-targets Area: Concerning the implications of different compiler targets O-x86_32 Target: x86 processors, 32 bit (like i686-*) (IA-32) and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. O-apple Operating system: Apple (macOS, iOS, tvOS, visionOS, watchOS) labels Mar 22, 2025
@riking
Copy link

riking commented Mar 26, 2025

Agreed, the release note should explicitly mention "use a i586 target".

@BoxyUwU BoxyUwU closed this as completed Apr 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-ABI Area: Concerning the application binary interface (ABI) A-target-feature Area: Enabling/disabling target features like AVX, Neon, etc. A-targets Area: Concerning the implications of different compiler targets O-x86_32 Target: x86 processors, 32 bit (like i686-*) (IA-32) relnotes Marks issues that should be documented in the release notes of the next release. relnotes-tracking-issue Marks issues tracking what text to put in release notes. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

6 participants