Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Summary

Demote target x86_64-apple-darwin from Tier 1 to Tier 2 with host tools as this platform’s lifetime is limited.

Tier 2 with host tools means that the x86_64-apple-darwin target, including tools like rustc and cargo, is guaranteed to build but is not guaranteed to pass tests.

This RFC does not propose removing the target completely from the codebase.

Motivation

The x86_64-apple-darwin target has no long-term future. Upcoming changes will affect Rust’s ability to ensure that the target meets the Tier 1 requirements, so we should demote it to Tier 2 with host tools in a controlled fashion.

The most immediate critical change is that the free GitHub Actions macOS x86_64 runners that the Rust project relies on will be discontinued soon. There is no known long-term replacement for these runners.

A brief timeline

x86_64-apple-darwin popularity

Looking at the public download statistics for the previous month (retrieved on 2025-07-21), we can see that x86_64-apple-darwin has substantially fewer downloads than aarch64-apple-darwin:

rustc

platformdownloadspercentage
x86_64-unknown-linux-gnu194.38M81.58%
aarch64-apple-darwin7.15M3.00%
x86_64-apple-darwin2.74M1.15%

std

platformdownloadspercentage
x86_64-unknown-linux-gnu95.12M66.20%
aarch64-apple-darwin4.82M3.35%
x86_64-apple-darwin2.76M1.92%

Guide-level explanation

The first release after this RFC is merged will be the last one with Tier 1 support for the x86_64-apple-darwin target. The release after that will demote the target to Tier 2 with host tools, which means we no longer guarantee that it will be tested by CI.

Once this RFC is merged, a blog post will be published on the main Rust Blog announcing the change to alert users of the demotion.

The demotion will also be mentioned in the release announcement for the last release with Tier 1 support, as well as the first release with Tier 2 support.

Reference-level explanation

The CI setup for rust-lang/rust will be modified to change the dist-x86_64-apple builder to no longer build the tests or run them.

Drawbacks

Without automated testing, this target will likely deteriorate more quickly.

Users may be relying on Rust’s Tier 1 support to provide confidence for their own artifacts. These users will be stuck on an old compiler version.

Rationale and alternatives

  • Rust CI could use emulation, such as that provided by Rosetta 2. Lightweight experiments show that this may increase CI times by a factor of 3 (e.g. a step taking 200 seconds would now take 600 seconds). This would be a temporary solution, as eventually Apple will sunset Rosetta 2.

    We may choose to run tests in emulation even after the target is demoted to Tier 2 with host tools. That change would be evaluated independently from this RFC and in a similar fashion to other non-Tier-1 targets with extra testing. This evaluation would include aspects like CI complexity, test flakiness, test execution time, ability of contributors to have access to the hardware to fix issues, etc. Any extra testing would be at the whim of various Rust teams to reduce or remove at any point with no prior notice.

  • The Rust Foundation could pay for GitHub Actions runners that will continue to use the x86_64 architecture, such as macos-13-large, macos-14-large, or macos-15-large. This would be a temporary solution, as eventually GitHub will sunset all x86_64-compatible runners.

  • A third party could indefinitely provide all appropriate CI resources for the x86_64 architecture. No such third party has made themselves known, nor has the Rust infrastructure team determined how to best integrate such resources.

Prior art

  • The i686-pc-windows-gnu target was demoted in RFC 3771. Similar to this RFC, the ability to reliably test the target was questionable.

  • The i686-apple-darwin target was demoted in RFC 2837. Similar to this RFC, relevant hardware was no longer produced and it had been announced that upcoming operating systems would no longer support the architecture.

Unresolved questions

  • None

Future possibilities

x86_64-apple-darwin could be demoted to Tier 3 or support completely removed. There’s no strong technical or financial reason to do this at this point in time. Should further demotions be proposed, those will be evaluated separately and on thier own merits, using the target tier policy as guidance.