Skip to content

v8a as default aarch64 target - #105026

Merged
bors merged 1 commit into
rust-lang:masterfrom
oToToT:aarch64-v8a
Dec 3, 2022
Merged

v8a as default aarch64 target#105026
bors merged 1 commit into
rust-lang:masterfrom
oToToT:aarch64-v8a

Conversation

@oToToT

@oToToToToToT commented Nov 28, 2022

Copy link
Copy Markdown
Contributor

After llvm/llvm-project@8689f5e landed, LLVM takes the intersection of v8a and v8r as default. This commit brings back v8a support by explicitly specifying v8a in the feature list.

This should solve #97724.

p.s. a bit more context can also be found in llvm/llvm-project#57904 (comment).

@rustbot

Copy link
Copy Markdown
Collaborator

r? @davidtwco

(rustbot has picked a reviewer for you, use r? to override)

@rustbotrustbot 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, 2022
@rustbot

Copy link
Copy Markdown
Collaborator

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

@rust-log-analyzer

This comment has been minimized.

@oToToT
oToToT marked this pull request as draft November 28, 2022 19:23
@rust-log-analyzer

This comment has been minimized.

@oToToT
oToToTforce-pushed the aarch64-v8a branch 2 times, most recently from 0462c1c to c152a73CompareNovember 29, 2022 06:00
After llvm/llvm-project@8689f5e landed, LLVM takes the intersection of v8a and v8r as default.
This commit brings back v8a support by explicitly specifying v8a in the feature list.
This should solve rust-lang#97724.
@oToToT
oToToT marked this pull request as ready for review November 29, 2022 07:02
@adamgemmell

Copy link
Copy Markdown
Contributor

Arm's Rust team agree that this the best course of action due to backwards compatibility and the overwhelming prevalence of A-class processors over R-class ones. We can also expose a new target_feature to support R-class processors which passes -v8a,+v8r to LLVM.

@davidtwco

Copy link
Copy Markdown
Member

@bors r+ rollup

@bors

bors commented Dec 2, 2022

Copy link
Copy Markdown
Collaborator

📌 Commit 382dba5 has been approved by davidtwco

It is now in the queue for this repository.

@borsbors 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 Dec 2, 2022
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Dec 2, 2022
v8a as default aarch64 target
After llvm/llvm-project@8689f5e landed, LLVM takes the intersection of v8a and v8r as default. This commit brings back v8a support by explicitly specifying v8a in the feature list.
This should solve rust-lang#97724.
p.s. a bit more context can also be found in llvm/llvm-project#57904 (comment).
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 2, 2022
…iaskrgr
Rollup of 7 pull requests
Successful merges:
- rust-lang#105026 (v8a as default aarch64 target)
- rust-lang#105033 (sparc-struct-abi: work around new tail-call optimization)
- rust-lang#105144 (Document normalization methods `At::{normalize,query_normalize}`)
- rust-lang#105155 (rustdoc: clean up help and settings button CSS)
- rust-lang#105162 (Properly synthesize `FnSig` value during cycle)
- rust-lang#105163 (Check lifetime param count in `collect_trait_impl_trait_tys`)
- rust-lang#105185 (Move `normalize_fn_sig` to `TypeErrCtxt`)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit dab1434 into rust-lang:masterDec 3, 2022
@rustbotrustbot added this to the 1.67.0 milestone Dec 3, 2022
halstead pushed a commit to openembedded/openembedded-core that referenced this pull request Feb 12, 2026
https://blog.rust-lang.org/2026/01/22/Rust-1.93.0/
Rust changes: https://github.com/rust-lang/rust/releases/tag/1.93.0
Cargo changes: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-193-2026-01-22
* rust-oe-selftest.patch updated for 1.93:
Renamed UI test directive from add-core-stubs to add-minicore as in
rust-lang/rust@3796f7d
* OE-selftests:
- Exclude src/tools/remote-test-client from test suite.
This unit test modifies the TEST_DEVICE_ADDR environment variable,
which breaks the OE test harness that uses the same variable for
QEMU remote testing. Filed a bug with upstream:
rust-lang/rust#151823
- Enable +v8a feature for cortexa57.
Rust 1.93.0 added a regression test (PR #149549) to verify that the
ARMv8-A system register ttbr0_el2 is recognized in inline assembly.
This addresses issue #97724 where LLVM wasn't recognizing ttbr0_el2
as a valid register. Upstream Rust enables +v8a by default for all
AArch64 targets (PR #105026), but Yocto's custom target specification
doesn't inherit this. Adding +v8a ensures LLVM recognizes ARMv8-A
system registers, fixing the test failure.
Related upstream links:
- PR #149549: rust-lang/rust#149549
- Issue #97724: rust-lang/rust#97724
- PR #105026: rust-lang/rust#105026
Test results:
rust v1.93.0
+-------------+--------+---------+
| Machine | Passed | Skipped |
+-------------+--------+---------+
| qemux86-64 | 21,689 | 646 |
| qemux86 | 21,439 | 896 |
| qemuarm64 | 21,495 | 840 |
| qemuarm | 21,421 | 914 |
| qemuriscv64 | 21,466 | 869 |
+-------------+--------+---------+
Test results difference (1.93.0 - 1.92.0):
+-------------+--------+---------+
| Machine | Passed | Skipped |
+-------------+--------+---------+
| qemux86-64 | +205 | +33 |
| qemux86 | +205 | +33 |
| qemuarm64 | +206 | +32 |
| qemuarm | +205 | +33 |
| qemuriscv64 | +205 | +33 |
+-------------+--------+---------+
Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
h5b pushed a commit to jhnc-oss/meta-lts-mixins that referenced this pull request Aug 5, 2026
https://blog.rust-lang.org/2026/01/22/Rust-1.93.0/
Rust changes: https://github.com/rust-lang/rust/releases/tag/1.93.0
Cargo changes: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-193-2026-01-22
* rust-oe-selftest.patch updated for 1.93:
Renamed UI test directive from add-core-stubs to add-minicore as in
rust-lang/rust@3796f7d
* OE-selftests:
- Exclude src/tools/remote-test-client from test suite.
This unit test modifies the TEST_DEVICE_ADDR environment variable,
which breaks the OE test harness that uses the same variable for
QEMU remote testing. Filed a bug with upstream:
rust-lang/rust#151823
- Enable +v8a feature for cortexa57.
Rust 1.93.0 added a regression test (PR #149549) to verify that the
ARMv8-A system register ttbr0_el2 is recognized in inline assembly.
This addresses issue #97724 where LLVM wasn't recognizing ttbr0_el2
as a valid register. Upstream Rust enables +v8a by default for all
AArch64 targets (PR #105026), but Yocto's custom target specification
doesn't inherit this. Adding +v8a ensures LLVM recognizes ARMv8-A
system registers, fixing the test failure.
Related upstream links:
- PR #149549: rust-lang/rust#149549
- Issue #97724: rust-lang/rust#97724
- PR #105026: rust-lang/rust#105026
Test results:
rust v1.93.0
+-------------+--------+---------+
| Machine | Passed | Skipped |
+-------------+--------+---------+
| qemux86-64 | 21,689 | 646 |
| qemux86 | 21,439 | 896 |
| qemuarm64 | 21,495 | 840 |
| qemuarm | 21,421 | 914 |
| qemuriscv64 | 21,466 | 869 |
+-------------+--------+---------+
Test results difference (1.93.0 - 1.92.0):
+-------------+--------+---------+
| Machine | Passed | Skipped |
+-------------+--------+---------+
| qemux86-64 | +205 | +33 |
| qemux86 | +205 | +33 |
| qemuarm64 | +206 | +32 |
| qemuarm | +205 | +33 |
| qemuriscv64 | +205 | +33 |
+-------------+--------+---------+
Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(adapted from oe-core commit ee1a997f0fa7a7bc42d3d38f994e3701295095fc)
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

6 participants

@oToToT@rustbot@rust-log-analyzer@adamgemmell@davidtwco@bors