Reject unsound toggling of Arm atomics-32 target feature by taiki-e · Pull Request #136170 · rust-lang/rust (original) (raw)
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 andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation6 Commits1 Checks6 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
This target feature has the same semantics as RISC-V forced-atomics
target feature that already marked as Forbidden (llvm/llvm-project@f5ed0cb) and toggling it can cause ABI incompatibility.
( |
---|
"forced-atomics", |
Stability::Forbidden { reason: "unsound because it changes the ABI of atomic operations" }, |
&[], |
), |
Comment on feature definition in LLVM also says:
Code built with this feature is not ABI-compatible with code built without this feature, if atomic variables are exposed across the ABI boundary.
r? @workingjubilee or @RalfJung
@rustbot label +O-Arm
Could not assign reviewer from: workingjubilee
.
User(s) workingjubilee
are either the PR author, already assigned, or on vacation. Please use r?
to specify someone else to assign.
r? @estebank
rustbot has assigned @estebank.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.
Use r?
to explicitly pick a reviewer
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
Relevant to the compiler team, which will review and decide on the PR/issue.
Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state
labels
Seems fine? Added to our target defs in 89582e8 so yeah, this was always explicitly for our purposes because we want to be able to assume this.
@bors r+ rollup
📌 Commit 7f83f8a has been approved by workingjubilee
It is now in the queue for this repository.
bors added S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
Seems like we should document the atomics ABI of thumbv6m_none_eabi somewhere, probably here?
Cc @nikic
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 9 pull requests
Successful merges:
- rust-lang#136121 (Deduplicate operand creation between scalars, non-scalars and string patterns)
- rust-lang#136134 (Fix SIMD codegen tests on LLVM 20)
- rust-lang#136153 (Locate asan-odr-win with other sanitizer tests)
- rust-lang#136161 (rustdoc: add nobuild typescript checking to our JS)
- rust-lang#136166 (interpret: is_alloc_live: check global allocs last)
- rust-lang#136168 (GCI: Don't try to eval / collect mono items inside overly generic free const items)
- rust-lang#136170 (Reject unsound toggling of Arm atomics-32 target feature)
- rust-lang#136176 (Render pattern types nicely in mir dumps)
- rust-lang#136186 (uefi: process: Fix args)
r? @ghost
@rustbot
modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request
Rollup of 9 pull requests
Successful merges:
- rust-lang#136121 (Deduplicate operand creation between scalars, non-scalars and string patterns)
- rust-lang#136134 (Fix SIMD codegen tests on LLVM 20)
- rust-lang#136153 (Locate asan-odr-win with other sanitizer tests)
- rust-lang#136161 (rustdoc: add nobuild typescript checking to our JS)
- rust-lang#136166 (interpret: is_alloc_live: check global allocs last)
- rust-lang#136168 (GCI: Don't try to eval / collect mono items inside overly generic free const items)
- rust-lang#136170 (Reject unsound toggling of Arm atomics-32 target feature)
- rust-lang#136176 (Render pattern types nicely in mir dumps)
- rust-lang#136186 (uefi: process: Fix args)
r? @ghost
@rustbot
modify labels: rollup
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request
github-actions bot pushed a commit to tautschnig/verify-rust-std that referenced this pull request
Rollup of 9 pull requests
Successful merges:
- rust-lang#136121 (Deduplicate operand creation between scalars, non-scalars and string patterns)
- rust-lang#136134 (Fix SIMD codegen tests on LLVM 20)
- rust-lang#136153 (Locate asan-odr-win with other sanitizer tests)
- rust-lang#136161 (rustdoc: add nobuild typescript checking to our JS)
- rust-lang#136166 (interpret: is_alloc_live: check global allocs last)
- rust-lang#136168 (GCI: Don't try to eval / collect mono items inside overly generic free const items)
- rust-lang#136170 (Reject unsound toggling of Arm atomics-32 target feature)
- rust-lang#136176 (Render pattern types nicely in mir dumps)
- rust-lang#136186 (uefi: process: Fix args)
r? @ghost
@rustbot
modify labels: rollup
Labels
Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 state
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Relevant to the compiler team, which will review and decide on the PR/issue.