-
Notifications
You must be signed in to change notification settings - Fork 13.8k
Demote both armebv7r-none-* targets. #146523
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
Conversation
Some changes occurred in src/doc/rustc/src/platform-support cc @Noratrieb These commits modify compiler targets. |
r? compiler |
These targets are not widely used, and are difficult to test because qemu-system-arm cannot emulate them.
6beb63a
to
430d353
Compare
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. |
Rebased now for #146419 is in. Happy to wait for objections - no real hurry here. |
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 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 |
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. |
@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? |
I would take the rust-embedded/cortex-ar repo and change tests.sh to use the BE target. |
This isn't controversial and the MCP at day 10 (short of a few hours I think). @bors r+ rollup |
… 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.
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
… 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.
… 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.
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
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
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.
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. |
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. |
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
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.