When will Apple Silicon have Tier 1 support?
1 Like
The main (only?) blocker there is being able to run CI on it.
10 Likes
Please let me know if there’s some way that I can word the tracking issue to be more clear about it.
opened 02:00AM - 01 Jul 20 UTC
O-macos
T-compiler
T-infra
C-tracking-issue
O-AArch64
<!--
==================================
Thanks for maintaining this trackin… g issue! Please give `@Jake Goulding` and `@Pietro Albini` a ping in Zulip to let us know you've edited this.
==================================
-->
[Apple has announced][announce] that future computers will utilize Arm processors instead of x86_64 processors. This is a tracking issue for supporting that platform.
> :warning: **Don't rely on this thread to decide whether to purchase Apple Silicon hardware.** :warning:
> The Rust project can't make any guarantee on the level of support the compiler will have when the hardware ships.
[announce]: https://www.apple.com/newsroom/2020/06/apple-announces-mac-transition-to-apple-silicon/
### Current status summary (2020-11-27)
- There is no timeline for any level of support.
- The x86_64 version of `rustc` works under [Rosetta][], producing x86_64 binaries that themselves run under Rosetta.
- `aarch64-apple-darwin` is a tier 2 target and is available for download via rustup. This compiler can be used to cross-compile from `x86_64-apple-darwin` as well as running natively on Arm.
- Compiler tests are **not** being run at this point, as CI has no way of executing them.
[Rosetta]: https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment
### About tracking issues
Tracking issues are used to record the overall progress of implementation. They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is *not* meant for large scale discussion, questions, or bug reports about a feature. Instead, join the discussion and/or contribute in the [**#t-compiler/arm** Zulip stream][stream] or open a new issue for bug reports. You are encouraged to comment here to link to related issues.
This tracking issue will be closely moderated in an attempt to maintain a high signal-to-noise ratio.
[stream]: https://rust-lang.zulipchat.com/#narrow/stream/242906-t-compiler.2Farm
### Steps
This is not yet intended to be an exhaustive or even accurate list of steps.
- [ ] Find out if there is anyone inside the compiler team with the time to drive the effort forward. This will allow us to efficiently allocate the [Developer Transition Kits][dtk] (DTK), if we end up receiving any.
- [x] Reach out to our contacts at Apple to see if DTKs are available, and to establish a line of communication if there are problems down the line. **Please coordinate with the leads of the compiler and infra teams on Zulip on this**.
- [x] Achieve Tier 3 support:
- ~~Wait for proper support to be upstreamed into LLVM, and update the Rust compiler to pull the latest version of LLVM~~.
- Our current LLVM supports targeting the appropriate hardware well enough.
- Update the [libc crate][libc]'s conditional compilation to account for the new target.
- [x] https://github.com/rust-lang/libc/pull/1817 (in libc 0.2.73)
- Update the [cc crate][cc] to account for the new target.
- [x] https://github.com/alexcrichton/cc-rs/pull/527 (in cc 1.0.58)
- Submit an initial target specification for `aarch64-apple-darwin`.
- [x] https://github.com/rust-lang/rust/pull/74541
- Get the target specification into the bootstrap compiler.
- [x] https://github.com/rust-lang/rust/pull/74541
- [x] https://github.com/rust-lang/rust/pull/75261
- [x] Achieve Tier 2 support:
- [x] Get Xcode 12 on our CI
- Update the [openssl-src crate][openssl-src] to account for the new target.
- [x] https://github.com/alexcrichton/openssl-src-rs/pull/74
- Setup a cross-compiling builder to reach Tier 2
- [x] Add to CI (https://github.com/rust-lang/rust/pull/75991)
- [x] Build Cargo (https://github.com/rust-lang/rust/pull/77239)
- [x] Distribute binaries (https://github.com/rust-lang/rust/pull/77895)
- [ ] Achieve Tier 1 support:
- [ ] Entire test suite passes
- [x] #78092
- [x] #78881
- [ ] Increase the quality and reliability of the target
- [ ] Hook up target hardware to our CI, and start running the test suite as part of our standard QA process.
- [ ] Propose the promotion to Tier 1.
- Miscellaneous
- Rustup
- [x] Add support to rustup (https://github.com/rust-lang/rustup/pull/2521)
- [x] Release it (https://github.com/rust-lang/rustup/issues/2413)
[dtk]: https://developer.apple.com/programs/universal/
[libc]: https://github.com/rust-lang/libc
[cc]: https://github.com/alexcrichton/cc-rs
[openssl-src]: https://github.com/alexcrichton/openssl-src-rs
### Unresolved Questions
This is not yet intended to be an exhaustive or even accurate list of questions.
- [ ] When will our CI providers have access to native hardware?
- [ ] https://github.com/actions/virtual-environments/issues/2187
- [ ] https://github.com/github/roadmap/issues/528
- [ ] What is an accurate target name for the new platform?
- [ ] What is the accurate name of the chip ("silicon", "aarch64", "arm64", etc.)?
- [ ] How can we leave room to support Apple's `arm64e`?
### Implementation history
2 Likes
comex
July 5, 2022, 2:35am
4
Well, some parts of the first post in the tracking issue still describe Apple Silicon as a future platform, which might lead people to conclude that other parts of the post are out of date:
Apple has announced that future computers will utilize Arm processors instead of x86_64 processors.
The Rust project can't make any guarantee on the level of support the compiler will have when the hardware ships.
This will allow us to efficiently allocate the Developer Transition Kits (DTK), if we end up receiving any.
Also, the "current status summary" should have its date bumped, and the bullet describing the native compiler should probably be moved before the bullet about running rustc in Rosetta, since rustup gives you the native compiler by default(?).
9 Likes
Updated, thank you. Let me know if it reads better.
2 Likes
system
Closed
October 5, 2022, 2:58am
7
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.