Skip to content

Conversation

@madsmtm
Copy link
Contributor

@madsmtm madsmtm commented Apr 6, 2025

Replaces target_abi variants. The old variants are still available, but may be deprecated in the future, so I've removed them as examples from the reference.

Depends on rust-lang/rust#139451.

Replaces `target_abi` variants. The old variants are still available, but may be deprecated in the future.
@rustbot rustbot added the S-waiting-on-review Status: The marked PR is awaiting review from a maintainer label Apr 6, 2025
@madsmtm
Copy link
Contributor Author

madsmtm commented Aug 8, 2025

The rustc PR has been approved (and the change is insta-stable), so this is ready for review now

@madsmtm madsmtm marked this pull request as ready for review August 8, 2025 11:55
tgross35 added a commit to tgross35/rust that referenced this pull request Aug 8, 2025
…sleywiser Add `target_env = "macabi"` and `target_env = "sim"` [RFC 2992](rust-lang/rfcs#2992) ([tracking issue](rust-lang#80970)) introduced `cfg(target_abi = ...)` with the original motivation being Mac Catalyst and Apple Simulator targets. These do not actually have a changed calling convention in the same sense that e.g. `cfg(target_abi = "eabihf")` or pointer authentication (`arm64e`) does, see rust-lang#133331. Specifically, for Apple Simulator targets, the binary runs under the following conditions: - Runs with the host macOS kernel (but in a mode configured for iOS/tvOS/...). - Uses frameworks for the specific simulator version being targetted. - System file accesses need to be made relative to the `IPHONE_SIMULATOR_ROOT` environment variable. - Uses host GPUs directly. And for Mac Catalyst: - Runs with the host macOS kernel (but in a mode configured for iOS). - Uses mostly host macOS frameworks (though with a few things changed, e.g. the [`NSImageResizingModeStretch`](https://developer.apple.com/documentation/appkit/nsimage/resizingmode-swift.enum/stretch?language=objc) enum has a different value). - Uses host GPUs, camera and other peripherals directly. As can be seen, these seem better suited as `target_env`s, since it really is the environment that the binary is running under that's changed (regardless of the Mac Catalyst "macabi" having "abi" in the name). So this PR adds `target_env = "sim"` and `target_env = "macabi"`, with the idea of possibly deprecating `target_abi = "sim"` and `target_abi = "macabi"` in the far future. This affects iOS Tier 2 targets (`aarch64-apple-ios-sim`, `x86_64-apple-ios`, `aarch64-apple-ios-macabi` and `x86_64-apple-ios-macabi`), and probably needs a compiler FCP. Fixes rust-lang#133331. Reference PR: rust-lang/reference#1781. Cargo doc PR: rust-lang/cargo#15404. r? compiler CC `@workingjubilee` CC target maintainers `@deg4uss3r` `@thomcc` `@badboy` `@BlackHoleFox` `@madsmtm` `@agg23`
rust-timer added a commit to rust-lang/rust that referenced this pull request Aug 9, 2025
Rollup merge of #139451 - madsmtm:apple-target-env-abi, r=wesleywiser Add `target_env = "macabi"` and `target_env = "sim"` [RFC 2992](rust-lang/rfcs#2992) ([tracking issue](#80970)) introduced `cfg(target_abi = ...)` with the original motivation being Mac Catalyst and Apple Simulator targets. These do not actually have a changed calling convention in the same sense that e.g. `cfg(target_abi = "eabihf")` or pointer authentication (`arm64e`) does, see #133331. Specifically, for Apple Simulator targets, the binary runs under the following conditions: - Runs with the host macOS kernel (but in a mode configured for iOS/tvOS/...). - Uses frameworks for the specific simulator version being targetted. - System file accesses need to be made relative to the `IPHONE_SIMULATOR_ROOT` environment variable. - Uses host GPUs directly. And for Mac Catalyst: - Runs with the host macOS kernel (but in a mode configured for iOS). - Uses mostly host macOS frameworks (though with a few things changed, e.g. the [`NSImageResizingModeStretch`](https://developer.apple.com/documentation/appkit/nsimage/resizingmode-swift.enum/stretch?language=objc) enum has a different value). - Uses host GPUs, camera and other peripherals directly. As can be seen, these seem better suited as `target_env`s, since it really is the environment that the binary is running under that's changed (regardless of the Mac Catalyst "macabi" having "abi" in the name). So this PR adds `target_env = "sim"` and `target_env = "macabi"`, with the idea of possibly deprecating `target_abi = "sim"` and `target_abi = "macabi"` in the far future. This affects iOS Tier 2 targets (`aarch64-apple-ios-sim`, `x86_64-apple-ios`, `aarch64-apple-ios-macabi` and `x86_64-apple-ios-macabi`), and probably needs a compiler FCP. Fixes #133331. Reference PR: rust-lang/reference#1781. Cargo doc PR: rust-lang/cargo#15404. r? compiler CC `@workingjubilee` CC target maintainers `@deg4uss3r` `@thomcc` `@badboy` `@BlackHoleFox` `@madsmtm` `@agg23`
Copy link
Contributor

@ehuss ehuss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@ehuss ehuss added this pull request to the merge queue Oct 2, 2025
Merged via the queue into rust-lang:master with commit 1536d89 Oct 2, 2025
5 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: The marked PR is awaiting review from a maintainer label Oct 2, 2025
@madsmtm madsmtm deleted the apple-target-env-abi branch October 2, 2025 18:21
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Oct 7, 2025
Update books ## rust-lang/reference 4 commits in e11adf6016a362766eea5a3f9832e193994dd0c8..8efb9805686722dba511b7b27281bb6b77d32130 2025-10-06 15:04:20 UTC to 2025-10-01 17:30:01 UTC - Clarify that "or it is dropped" is meant restrictively (rust-lang/reference#2035) - add lifetime extension tests for tuple struct temporaries (rust-lang/reference#2033) - Add `target_env = "macabi"` and `target_env = "sim"` (rust-lang/reference#1781) - Typo fixes for the Tokens page (additions -> editions) (rust-lang/reference#2031)
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Oct 7, 2025
Update books ## rust-lang/reference 4 commits in e11adf6016a362766eea5a3f9832e193994dd0c8..8efb9805686722dba511b7b27281bb6b77d32130 2025-10-06 15:04:20 UTC to 2025-10-01 17:30:01 UTC - Clarify that "or it is dropped" is meant restrictively (rust-lang/reference#2035) - add lifetime extension tests for tuple struct temporaries (rust-lang/reference#2033) - Add `target_env = "macabi"` and `target_env = "sim"` (rust-lang/reference#1781) - Typo fixes for the Tokens page (additions -> editions) (rust-lang/reference#2031)
rust-timer added a commit to rust-lang/rust that referenced this pull request Oct 7, 2025
Rollup merge of #147407 - rustbot:docs-update, r=ehuss Update books ## rust-lang/reference 4 commits in e11adf6016a362766eea5a3f9832e193994dd0c8..8efb9805686722dba511b7b27281bb6b77d32130 2025-10-06 15:04:20 UTC to 2025-10-01 17:30:01 UTC - Clarify that "or it is dropped" is meant restrictively (rust-lang/reference#2035) - add lifetime extension tests for tuple struct temporaries (rust-lang/reference#2033) - Add `target_env = "macabi"` and `target_env = "sim"` (rust-lang/reference#1781) - Typo fixes for the Tokens page (additions -> editions) (rust-lang/reference#2031)
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Oct 8, 2025
Update books ## rust-lang/reference 4 commits in e11adf6016a362766eea5a3f9832e193994dd0c8..8efb9805686722dba511b7b27281bb6b77d32130 2025-10-06 15:04:20 UTC to 2025-10-01 17:30:01 UTC - Clarify that "or it is dropped" is meant restrictively (rust-lang/reference#2035) - add lifetime extension tests for tuple struct temporaries (rust-lang/reference#2033) - Add `target_env = "macabi"` and `target_env = "sim"` (rust-lang/reference#1781) - Typo fixes for the Tokens page (additions -> editions) (rust-lang/reference#2031)
flip1995 pushed a commit to flip1995/rust-clippy that referenced this pull request Oct 18, 2025
Update books ## rust-lang/reference 4 commits in e11adf6016a362766eea5a3f9832e193994dd0c8..8efb9805686722dba511b7b27281bb6b77d32130 2025-10-06 15:04:20 UTC to 2025-10-01 17:30:01 UTC - Clarify that "or it is dropped" is meant restrictively (rust-lang/reference#2035) - add lifetime extension tests for tuple struct temporaries (rust-lang/reference#2033) - Add `target_env = "macabi"` and `target_env = "sim"` (rust-lang/reference#1781) - Typo fixes for the Tokens page (additions -> editions) (rust-lang/reference#2031)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants