Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

thejpster
Copy link
Contributor

OK, slightly more controversial than #146520 and #146522 - I'd like to drop the bare-metal big-endian Armv7-R targets down to Tier 3.

The reason is simple - we cannot test them in https://github.com/rust-embedded/cortex-ar/. This because QEMU support for Big Endian Armv7-R is broken. I tried quite hard, but all the strings I printed with semihosting came out byte swapped (or "etybawa depp") because of how QEMU kludges the access to memory in big-endian mode.

The target also has only a single maintainer. Although, if @chrisnc wants to put up a case for keeping it at Tier 2 though, I'm happy to hear it!

This PR wil be rebased once #146419 completes the queue.

@rustbot
Copy link
Collaborator

rustbot commented Sep 13, 2025

Some changes occurred in src/doc/rustc/src/platform-support

cc @Noratrieb

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

@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 Sep 13, 2025
@rustbot
Copy link
Collaborator

rustbot commented Sep 13, 2025

r? @ehuss

rustbot has assigned @ehuss.
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

@ehuss
Copy link
Contributor

ehuss commented Sep 13, 2025

r? compiler

@rustbot rustbot assigned jackh726 and unassigned ehuss Sep 13, 2025
@jackh726
Copy link
Member

Being unable to test is a good reason to drop to tier 3. Obviously we should wait for #146419 to land, and I'd like to give @chrisnc ~1 week to reply here and make a case for keeping it at tier 2. But short of that, r=me

These targets are not widely used, and are difficult to test because
qemu-system-arm cannot emulate them.
@thejpster thejpster force-pushed the demote-armebv7r-targets branch from 6beb63a to 430d353 Compare September 14, 2025 08:50
@rustbot
Copy link
Collaborator

rustbot commented Sep 14, 2025

This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@thejpster
Copy link
Contributor Author

Rebased now for #146419 is in. Happy to wait for objections - no real hurry here.

@chrisnc
Copy link
Contributor

chrisnc commented Sep 17, 2025

I am inclined to agree that this target does not meet the bar for Tier 2, and it was introduced in a time before the tier requirements as they currently exist were implemented. Is there an open issue against qemu to fix big-endian support? Do the tests in cortex-ar run on any real big-endian Arm core?

The cheapest way to access and develop on a big-endian Cortex-R I am aware of is this $50 board from TI: https://www.ti.com/tool/LAUNCHXL2-TMS57012

@thejpster
Copy link
Contributor Author

I only have an AM243x board which I think is little-endian only.

I found this issue which implies that BE-8 should kind of work in QEMU? I don’t really have the energy to dig into it though.

If someone really wanted to test big-endian mode, there’s also the ARM Fixed Virtual Platforms. However they are not freely available and you need Arm Design Studio to access them.

@chrisnc
Copy link
Contributor

chrisnc commented Sep 17, 2025

@thejpster I'd be interested in taking a stab at getting this working, as it would be generally useful independent of the ultimate fate of armebv7r. Do you have a script or example somewhere that is behaving in the way you're describing?

@thejpster
Copy link
Contributor Author

I would take the rust-embedded/cortex-ar repo and change tests.sh to use the BE target.

@jackh726
Copy link
Member

This isn't controversial and the MCP at day 10 (short of a few hours I think).

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Sep 26, 2025

📌 Commit 430d353 has been approved by jackh726

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 Sep 26, 2025
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 26, 2025
… r=jackh726

Demote both armebv7r-none-* targets.

OK, slightly more controversial than rust-lang#146520 and rust-lang#146522  - I'd like to drop the bare-metal **big-endian** Armv7-R targets down to Tier 3.

The reason is simple - we cannot test them in https://github.com/rust-embedded/cortex-ar/. This because QEMU support for Big Endian Armv7-R is broken. I tried quite hard, but all the strings I printed with semihosting came out byte swapped (or "etybawa depp") because of how QEMU kludges the access to memory in big-endian mode.

The target also has only a single maintainer. Although, if `@chrisnc` wants to put up a case for keeping it at Tier 2 though, I'm happy to hear it!

This PR wil be rebased once rust-lang#146419 completes the queue.
bors added a commit that referenced this pull request Sep 26, 2025
Rollup of 7 pull requests

Successful merges:

 - #145113 (resolve: Do not finalize shadowed bindings)
 - #146523 (Demote both armebv7r-none-* targets.)
 - #146778 (Use standard attribute logic for allocator shim)
 - #147016 (fix doc comments to be more standard)
 - #147027 (Add new `tyalias` intra-doc link disambiguator)
 - #147031 (mbe: Simplify check_redundant_vis_repetition)
 - #147046 (Rename `rust.use-lld` to `rust.bootstrap-override-lld`)

r? `@ghost`
`@rustbot` modify labels: rollup
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 26, 2025
… r=jackh726

Demote both armebv7r-none-* targets.

OK, slightly more controversial than rust-lang#146520 and rust-lang#146522  - I'd like to drop the bare-metal **big-endian** Armv7-R targets down to Tier 3.

The reason is simple - we cannot test them in https://github.com/rust-embedded/cortex-ar/. This because QEMU support for Big Endian Armv7-R is broken. I tried quite hard, but all the strings I printed with semihosting came out byte swapped (or "etybawa depp") because of how QEMU kludges the access to memory in big-endian mode.

The target also has only a single maintainer. Although, if ``@chrisnc`` wants to put up a case for keeping it at Tier 2 though, I'm happy to hear it!

This PR wil be rebased once rust-lang#146419 completes the queue.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 26, 2025
… r=jackh726

Demote both armebv7r-none-* targets.

OK, slightly more controversial than rust-lang#146520 and rust-lang#146522  - I'd like to drop the bare-metal **big-endian** Armv7-R targets down to Tier 3.

The reason is simple - we cannot test them in https://github.com/rust-embedded/cortex-ar/. This because QEMU support for Big Endian Armv7-R is broken. I tried quite hard, but all the strings I printed with semihosting came out byte swapped (or "etybawa depp") because of how QEMU kludges the access to memory in big-endian mode.

The target also has only a single maintainer. Although, if ```@chrisnc``` wants to put up a case for keeping it at Tier 2 though, I'm happy to hear it!

This PR wil be rebased once rust-lang#146419 completes the queue.
bors added a commit that referenced this pull request Sep 26, 2025
Rollup of 10 pull requests

Successful merges:

 - #145113 (resolve: Do not finalize shadowed bindings)
 - #146523 (Demote both armebv7r-none-* targets.)
 - #146704 (port `#[debugger_visualizer]` to the new attribute system)
 - #146758 (Stop linking rs{begin,end} objects on x86_64-*-windows-gnu)
 - #146778 (Use standard attribute logic for allocator shim)
 - #146849 (Reduce some uses of `LegacyBang`)
 - #147016 (fix doc comments to be more standard)
 - #147027 (Add new `tyalias` intra-doc link disambiguator)
 - #147031 (mbe: Simplify check_redundant_vis_repetition)
 - #147058 (Ignore more failing ui tests for GCC backend)

Failed merges:

 - #147046 (Rename `rust.use-lld` to `rust.bootstrap-override-lld`)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit that referenced this pull request Sep 27, 2025
Rollup of 10 pull requests

Successful merges:

 - #145113 (resolve: Do not finalize shadowed bindings)
 - #146523 (Demote both armebv7r-none-* targets.)
 - #146704 (port `#[debugger_visualizer]` to the new attribute system)
 - #146758 (Stop linking rs{begin,end} objects on x86_64-*-windows-gnu)
 - #146778 (Use standard attribute logic for allocator shim)
 - #146849 (Reduce some uses of `LegacyBang`)
 - #147016 (fix doc comments to be more standard)
 - #147027 (Add new `tyalias` intra-doc link disambiguator)
 - #147031 (mbe: Simplify check_redundant_vis_repetition)
 - #147058 (Ignore more failing ui tests for GCC backend)

Failed merges:

 - #147046 (Rename `rust.use-lld` to `rust.bootstrap-override-lld`)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 024fbad into rust-lang:master Sep 27, 2025
10 checks passed
@rustbot rustbot added this to the 1.92.0 milestone Sep 27, 2025
rust-timer added a commit that referenced this pull request Sep 27, 2025
Rollup merge of #146523 - thejpster:demote-armebv7r-targets, r=jackh726

Demote both armebv7r-none-* targets.

OK, slightly more controversial than #146520 and #146522  - I'd like to drop the bare-metal **big-endian** Armv7-R targets down to Tier 3.

The reason is simple - we cannot test them in https://github.com/rust-embedded/cortex-ar/. This because QEMU support for Big Endian Armv7-R is broken. I tried quite hard, but all the strings I printed with semihosting came out byte swapped (or "etybawa depp") because of how QEMU kludges the access to memory in big-endian mode.

The target also has only a single maintainer. Although, if ````@chrisnc```` wants to put up a case for keeping it at Tier 2 though, I'm happy to hear it!

This PR wil be rebased once #146419 completes the queue.
@jackh726
Copy link
Member

Ah, well I see now that this should have gone through FCP prior to merge according to https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#demoting-or-removing-targets.

Gonna figure out the exact remedy here - I really don't personally think that we should revert this (temporarily), since I think that if we do an actual FCP, it's going to go through with no issue, but need some clarification/second opinions on if the MCP second was sufficient enough in practice, or if we want to do a retroactive FCP.

@workingjubilee
Copy link
Member

workingjubilee commented Sep 27, 2025

Based on the discussion in https://rust-lang.zulipchat.com/#narrow/channel/233931-t-compiler.2Fmajor-changes/topic/Demote.20both.20armebv7r-none-*.20targets.20compiler-team.23912/with/541843034 the resolution is that we're fine with not elevating this to an FCP. This is an exceptional measure to demote a janky, barely-used target of ambiguous maintainability that predates the existing tier policy where the sole maintainer is on-board with the demotion. It's not clear if all of those criteria needed to be met, but it felt apparent that after meeting all of those criteria, there is no clear need to put the question to the group.

@thejpster thejpster deleted the demote-armebv7r-targets branch September 28, 2025 09:07
github-actions bot pushed a commit to rust-lang/rust-analyzer that referenced this pull request Sep 29, 2025
Rollup of 10 pull requests

Successful merges:

 - rust-lang/rust#145113 (resolve: Do not finalize shadowed bindings)
 - rust-lang/rust#146523 (Demote both armebv7r-none-* targets.)
 - rust-lang/rust#146704 (port `#[debugger_visualizer]` to the new attribute system)
 - rust-lang/rust#146758 (Stop linking rs{begin,end} objects on x86_64-*-windows-gnu)
 - rust-lang/rust#146778 (Use standard attribute logic for allocator shim)
 - rust-lang/rust#146849 (Reduce some uses of `LegacyBang`)
 - rust-lang/rust#147016 (fix doc comments to be more standard)
 - rust-lang/rust#147027 (Add new `tyalias` intra-doc link disambiguator)
 - rust-lang/rust#147031 (mbe: Simplify check_redundant_vis_repetition)
 - rust-lang/rust#147058 (Ignore more failing ui tests for GCC backend)

Failed merges:

 - rust-lang/rust#147046 (Rename `rust.use-lld` to `rust.bootstrap-override-lld`)

r? `@ghost`
`@rustbot` modify labels: rollup
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.

7 participants