Skip to content
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

Add +forced-atomics feature to esp32s2 no_std target #133599

Merged
merged 1 commit into from
Nov 30, 2024

Conversation

MabezDev
Copy link
Contributor

@MabezDev MabezDev commented Nov 28, 2024

Similar to #114499 but for the Xtensa backend. The ESP32-S2 doesn't have native atomic support, but can have atomic load/stores as part of the ISA with this LLVM codegen feature.

Note: The current rev of LLVM that rustc is using doesn't contain the +forced-atomics feature for Xtensa, but I'm pushing this now to remove the patch from our fork in esp-rs/rust.

r? @Amanieu because you reviewed the related RISC-V PR

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 28, 2024
@rustbot
Copy link
Collaborator

rustbot commented Nov 28, 2024

These commits modify compiler targets.
(See the Target Tier Policy.)

@MabezDev MabezDev changed the title Add +forced-atomics feature to esp32s2 Add +forced-atomics feature to esp32s2 Nov 28, 2024
@MabezDev MabezDev changed the title Add +forced-atomics feature to esp32s2 Add +forced-atomics feature to esp32s2 no_std target Nov 28, 2024
@Amanieu
Copy link
Member

Amanieu commented Nov 29, 2024

Won't this cause warning messages to be printing on current versions due to unknown LLVM features?

@MabezDev
Copy link
Contributor Author

Won't this cause warning messages to be printing on current versions due to unknown LLVM features?

It will but that's the case anyways with the cpu selection for example. The current targets in upstream rustc aren't really usable until rustc drops LLVM18, and even then I don't think all the patches to replace our custom toolchain will be available until LLVM 20 or perhaps LLVM 21. This just reduces the patch-set I have to manage and doesn't affect any real users just yet.

@Amanieu
Copy link
Member

Amanieu commented Nov 30, 2024

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Nov 30, 2024

📌 Commit 727f6a6 has been approved by Amanieu

It is now in the queue for this repository.

@bors 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 Nov 30, 2024
jieyouxu added a commit to jieyouxu/rust that referenced this pull request Nov 30, 2024
…cs, r=Amanieu

Add `+forced-atomics` feature to esp32s2 no_std  target

Similar to rust-lang#114499 but for the Xtensa backend. The ESP32-S2 doesn't have native atomic support, but can have atomic load/stores as part of the ISA with this LLVM codegen feature.

Note: The current rev of LLVM that rustc is using doesn't contain the `+forced-atomics` feature for Xtensa, but I'm pushing this now to remove the patch from our fork in `esp-rs/rust`.

r? `@Amanieu` because you reviewed the related RISC-V PR
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 30, 2024
Rollup of 10 pull requests

Successful merges:

 - rust-lang#116161 (Stabilize `extended_varargs_abi_support`)
 - rust-lang#132750 ([AIX] handle libunwind native_libs)
 - rust-lang#133488 (tests: Add regression test for self referential structs with cow as last field)
 - rust-lang#133569 (Bump `ruzstd` to 0.7.3)
 - rust-lang#133585 (Do not call `extern_crate` on current trait on crate mismatch errors)
 - rust-lang#133587 (Fix target_feature handling in freg of LoongArch inline assembly)
 - rust-lang#133599 (Add `+forced-atomics` feature to esp32s2 no_std  target)
 - rust-lang#133620 (Simplify hir_typeck_pass_to_variadic_function)
 - rust-lang#133623 (Improve span handling in `parse_expr_bottom`.)
 - rust-lang#133625 (custom MIR: add doc comment for debuginfo)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 30, 2024
Rollup of 10 pull requests

Successful merges:

 - rust-lang#116161 (Stabilize `extended_varargs_abi_support`)
 - rust-lang#132750 ([AIX] handle libunwind native_libs)
 - rust-lang#133488 (tests: Add regression test for self referential structs with cow as last field)
 - rust-lang#133569 (Bump `ruzstd` to 0.7.3)
 - rust-lang#133585 (Do not call `extern_crate` on current trait on crate mismatch errors)
 - rust-lang#133587 (Fix target_feature handling in freg of LoongArch inline assembly)
 - rust-lang#133599 (Add `+forced-atomics` feature to esp32s2 no_std  target)
 - rust-lang#133620 (Simplify hir_typeck_pass_to_variadic_function)
 - rust-lang#133623 (Improve span handling in `parse_expr_bottom`.)
 - rust-lang#133625 (custom MIR: add doc comment for debuginfo)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 46f826c into rust-lang:master Nov 30, 2024
6 checks passed
@rustbot rustbot added this to the 1.85.0 milestone Nov 30, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Nov 30, 2024
Rollup merge of rust-lang#133599 - esp-rs:target/esp32s2-forced-atomics, r=Amanieu

Add `+forced-atomics` feature to esp32s2 no_std  target

Similar to rust-lang#114499 but for the Xtensa backend. The ESP32-S2 doesn't have native atomic support, but can have atomic load/stores as part of the ISA with this LLVM codegen feature.

Note: The current rev of LLVM that rustc is using doesn't contain the `+forced-atomics` feature for Xtensa, but I'm pushing this now to remove the patch from our fork in `esp-rs/rust`.

r? ``@Amanieu`` because you reviewed the related RISC-V PR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants