compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled by pmur · Pull Request #144705 · rust-lang/rust

@rustbot rustbot added A-compiler-builtins

Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins)

S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

labels

Jul 30, 2025

tgross35

tgross35

tgross35

@rustbot rustbot added the T-libs

Relevant to the library team, which will review and decide on the PR/issue.

label

Jul 31, 2025

tgross35

tgross35

@pmur pmur marked this pull request as ready for review

August 4, 2025 19:56

@rustbot rustbot added S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

and removed S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

labels

Aug 4, 2025

tgross35

Amanieu

@pmur

Add dynamic support for aarch64 LSE atomic ops on linux targets
when optimized-compiler-builtins is not enabled.

A hook, __enable_rust_lse, is provided for the runtime to enable
them if available. A future patch will use this to enable them
if available.

The resulting asm should exactly match that of LLVM's compiler-rt
builtins, though the symbol naming for the support function and
global does not.

@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

Aug 5, 2025

Zalathar added a commit to Zalathar/rust that referenced this pull request

Aug 7, 2025
compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled

Add dynamic support for aarch64 LSE atomic ops on linux/gnu targets when optimized-compiler-builtins is not enabled.

Enabling LSE is the primary motivator for rust-lang#143689, though extending the rust version doesn't seem too farfetched. Are there more details which I have overlooked which make this impractical? I've tested this on an aarch64 host with LSE.

r? `@tgross35`

Zalathar added a commit to Zalathar/rust that referenced this pull request

Aug 7, 2025
compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled

Add dynamic support for aarch64 LSE atomic ops on linux/gnu targets when optimized-compiler-builtins is not enabled.

Enabling LSE is the primary motivator for rust-lang#143689, though extending the rust version doesn't seem too farfetched. Are there more details which I have overlooked which make this impractical? I've tested this on an aarch64 host with LSE.

r? ``@tgross35``

Zalathar added a commit to Zalathar/rust that referenced this pull request

Aug 7, 2025
compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled

Add dynamic support for aarch64 LSE atomic ops on linux/gnu targets when optimized-compiler-builtins is not enabled.

Enabling LSE is the primary motivator for rust-lang#143689, though extending the rust version doesn't seem too farfetched. Are there more details which I have overlooked which make this impractical? I've tested this on an aarch64 host with LSE.

r? ```@tgross35```

bors added a commit that referenced this pull request

Aug 7, 2025
Rollup of 20 pull requests

Successful merges:

 - #137831 (Tweak auto trait errors)
 - #143028 (emit `StorageLive` and schedule `StorageDead` for `let`-`else`'s bindings after matching)
 - #143764 (lower pattern bindings in the order they're written and base drop order on primary bindings' order)
 - #143808 (Port `#[should_panic]` to the new attribute parsing infrastructure )
 - #143906 (Miri: non-deterministic floating point operations in `foreign_items`)
 - #143929 (Mark all deprecation lints in name resolution as deny-by-default and report-in-deps)
 - #144133 (Stabilize const TypeId::of)
 - #144439 (Introduce ModernIdent type to unify macro 2.0 hygiene handling)
 - #144473 (Address libunwind.a inconsistency issues in the bootstrap program)
 - #144659 (bootstrap: refactor mingw dist and fix gnullvm)
 - #144705 (compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled)
 - #144807 (Streamline config in bootstrap)
 - #144900 (Stabilize `unsigned_signed_diff` feature)
 - #144903 (Rename `begin_panic_handler` to `panic_handler`)
 - #144931 ([win][arm64ec] Fix msvc-wholearchive for Arm64EC)
 - #144974 (compiler-builtins subtree update)
 - #144997 (bump bootstrap compiler to 1.90 beta)
 - #145004 (Couple of minor cleanups)
 - #145009 (A couple small changes for rust-analyzer next-solver work)
 - #145014 (Revert "Preserve the .debug_gdb_scripts section")

r? `@ghost`
`@rustbot` modify labels: rollup

tgross35 added a commit to tgross35/rust that referenced this pull request

Aug 7, 2025
compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled

Add dynamic support for aarch64 LSE atomic ops on linux/gnu targets when optimized-compiler-builtins is not enabled.

Enabling LSE is the primary motivator for rust-lang#143689, though extending the rust version doesn't seem too farfetched. Are there more details which I have overlooked which make this impractical? I've tested this on an aarch64 host with LSE.

r? ````@tgross35````

bors added a commit that referenced this pull request

Aug 7, 2025
Rollup of 8 pull requests

Successful merges:

 - #144705 (compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled)
 - #144857 (Port `#[allow_internal_unsafe]` to the new attribute system)
 - #144900 (Stabilize `unsigned_signed_diff` feature)
 - #144903 (Rename `begin_panic_handler` to `panic_handler`)
 - #144974 (compiler-builtins subtree update)
 - #145004 (Couple of minor cleanups)
 - #145007 (Fix build/doc/test of error index generator)
 - #145018 (Derive `Hash` for rustc_public types)

r? `@ghost`
`@rustbot` modify labels: rollup

tgross35 added a commit to tgross35/rust that referenced this pull request

Aug 7, 2025
compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled

Add dynamic support for aarch64 LSE atomic ops on linux/gnu targets when optimized-compiler-builtins is not enabled.

Enabling LSE is the primary motivator for rust-lang#143689, though extending the rust version doesn't seem too farfetched. Are there more details which I have overlooked which make this impractical? I've tested this on an aarch64 host with LSE.

r? `````@tgross35`````

tgross35 added a commit to tgross35/rust that referenced this pull request

Aug 8, 2025
compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled

Add dynamic support for aarch64 LSE atomic ops on linux/gnu targets when optimized-compiler-builtins is not enabled.

Enabling LSE is the primary motivator for rust-lang#143689, though extending the rust version doesn't seem too farfetched. Are there more details which I have overlooked which make this impractical? I've tested this on an aarch64 host with LSE.

r? ``````@tgross35``````

bors added a commit that referenced this pull request

Aug 8, 2025
Rollup of 9 pull requests

Successful merges:

 - #144705 (compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled)
 - #144857 (Port `#[allow_internal_unsafe]` to the new attribute system)
 - #144900 (Stabilize `unsigned_signed_diff` feature)
 - #144903 (Rename `begin_panic_handler` to `panic_handler`)
 - #144974 (compiler-builtins subtree update)
 - #145007 (Fix build/doc/test of error index generator)
 - #145018 (Derive `Hash` for rustc_public types)
 - #145045 (doc(library): Fix Markdown in `Iterator::by_ref`)
 - #145046 (Fix doc comment of File::try_lock and File::try_lock_shared)

r? `@ghost`
`@rustbot` modify labels: rollup

rust-timer added a commit that referenced this pull request

Aug 8, 2025
Rollup merge of #144705 - pmur:murp/aarch64-lse, r=Amanieu

compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled

Add dynamic support for aarch64 LSE atomic ops on linux/gnu targets when optimized-compiler-builtins is not enabled.

Enabling LSE is the primary motivator for #143689, though extending the rust version doesn't seem too farfetched. Are there more details which I have overlooked which make this impractical? I've tested this on an aarch64 host with LSE.

r? ```````@tgross35```````

github-actions bot pushed a commit to rust-lang/compiler-builtins that referenced this pull request

Aug 9, 2025

github-actions bot pushed a commit to rust-lang/miri that referenced this pull request

Aug 9, 2025

github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request

Aug 12, 2025
compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled

Add dynamic support for aarch64 LSE atomic ops on linux/gnu targets when optimized-compiler-builtins is not enabled.

Enabling LSE is the primary motivator for rust-lang#143689, though extending the rust version doesn't seem too farfetched. Are there more details which I have overlooked which make this impractical? I've tested this on an aarch64 host with LSE.

r? ```````@tgross35```````

rust-cloud-vms bot pushed a commit to makai410/rustc_public that referenced this pull request

Aug 16, 2025

rust-cloud-vms bot pushed a commit to makai410/rustc_public that referenced this pull request

Aug 20, 2025

makai410 pushed a commit to makai410/rust that referenced this pull request

Nov 8, 2025
Rollup of 9 pull requests

Successful merges:

 - rust-lang#144705 (compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled)
 - rust-lang#144857 (Port `#[allow_internal_unsafe]` to the new attribute system)
 - rust-lang#144900 (Stabilize `unsigned_signed_diff` feature)
 - rust-lang#144903 (Rename `begin_panic_handler` to `panic_handler`)
 - rust-lang#144974 (compiler-builtins subtree update)
 - rust-lang#145007 (Fix build/doc/test of error index generator)
 - rust-lang#145018 (Derive `Hash` for rustc_public types)
 - rust-lang#145045 (doc(library): Fix Markdown in `Iterator::by_ref`)
 - rust-lang#145046 (Fix doc comment of File::try_lock and File::try_lock_shared)

r? `@ghost`
`@rustbot` modify labels: rollup

makai410 pushed a commit to makai410/rust that referenced this pull request

Nov 10, 2025
Rollup of 9 pull requests

Successful merges:

 - rust-lang#144705 (compiler-builtins: plumb LSE support for aarch64 on linux/gnu when optimized-compiler-builtins not enabled)
 - rust-lang#144857 (Port `#[allow_internal_unsafe]` to the new attribute system)
 - rust-lang#144900 (Stabilize `unsigned_signed_diff` feature)
 - rust-lang#144903 (Rename `begin_panic_handler` to `panic_handler`)
 - rust-lang#144974 (compiler-builtins subtree update)
 - rust-lang#145007 (Fix build/doc/test of error index generator)
 - rust-lang#145018 (Derive `Hash` for rustc_public types)
 - rust-lang#145045 (doc(library): Fix Markdown in `Iterator::by_ref`)
 - rust-lang#145046 (Fix doc comment of File::try_lock and File::try_lock_shared)

r? `@ghost`
`@rustbot` modify labels: rollup

makai410 pushed a commit to makai410/rustc_public that referenced this pull request

Nov 16, 2025

tgross35 pushed a commit to rust-lang/compiler-builtins that referenced this pull request

Jan 31, 2026