-
Notifications
You must be signed in to change notification settings - Fork 13.7k
Update the arm-* and aarch64-* platform docs. #146419
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 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
The Rust Embedded Devices Working Group (wg-embedded) Arm Team (t-arm) agreed to listed as maintainers of: * aarch64-unknown-none * aarch64-unknown-none-softfloat * armv7a-none-eabi * armv7r-none-eabi * armv7r-none-eabihf The aarch64-unknown-none* target didn't have a page so I added it. wg-embedded t-arm did not want to take over: * armebv7r-none-eabi * armebv7r-none-eabihf So I gave them their own target page. The current maintainer remains.
8a54175
to
faf0e14
Compare
Force-pushed with fixed markdown formatting. |
This comment has been minimized.
This comment has been minimized.
827e2cd
to
f1abb70
Compare
This comment has been minimized.
This comment has been minimized.
r? @workingjubilee maybe? |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I may find more nits but the maintainer assent one is blocking, I think.
|
||
## Target maintainers | ||
|
||
* [@chrisnc](https://github.com/chrisnc) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Uhm. Hrm.
@chrisnc Do you assent?
@thejpster I am not sure I have seen an assent by Chris to maintain this specific target variant.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The armebv7r and armv7r targets were on the same page, and so I concluded Chris was the maintainer for both. Pretty sure he wrote the page back in 90893e4.
https://doc.rust-lang.org/beta/rustc/platform-support/armv7r-none-eabi.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The format for these was updated a while ago to drop the bullet points for ease of copy-pasting the usernames in GitHub issues and PRs. Please drop those, no matter who's being listed here (and in all the other files) :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, you're right, I got confused.
I think it would still be helpful to have assent here on this new split and shared responsibility and such.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have been provided with more information on the context it was assented to, that @chrisnc both is fine with the EDWG helping out and does not want to impede them but neither is he interested in definitely becoming part of that team. I am deciding it is trustworthy enough for this to go ahead, as we can always roll back changes if more information comes to light, I just wanted enough information to be able to presume the situation was correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I only looked at the aarch64 document since that's what I'm most familiar with, most of my comments should also apply to the other documents from what I can tell. I'm very happy about more extensive documentation, this is a fairly good first step.
## Start-up and Low-Level Code | ||
|
||
The [Rust Embedded Devices Working Group Arm Team] maintain the | ||
[`aarch64-cpu`] crate, which may be useful for writing bare-metal code using | ||
this target. | ||
|
||
The *TrustedFirmware* group also maintain [Rust crates for this | ||
target](https://github.com/ArmFirmwareCrates). | ||
|
||
[`aarch64-cpu`]: https://docs.rs/aarch64-cpu |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not really sure how the maintainers feel about endorsing third-party crates like this. I think this section could just be dropped and, if you really want to have some start-up code, replaced with a tiny linker script + assembly + Rust entrypoint example when e.g. booting with the Linux boot protocol.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For many targets the code required is more than can fit into a target doc, and often involves multiple files that would be tedious and error prone to copy-paste into a new project. ArmFirmwareCrates is from Arm themselves, so it seemed legit to refer to it. But I can take it out.
I personally find it pretty hard to get started with many of these targets so I think giving people links to code that works and runs is very useful. I’m happy to not have it here, but I don’t know where else it would go.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For a target, if the maintainers think it worthwhile to recommend a crate that deals with the special needs of that target, then we generally do not impede such. Often, external software is required anyways for a target, e.g. specialty linkers or compilers or headers or... whatever. If quite a lot of such supplemental material is needed, it may come as an advisory against maintaining the target at all, but this doesn't seem to rise to such a threshold.
|
||
## Target maintainers | ||
|
||
* [@chrisnc](https://github.com/chrisnc) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The format for these was updated a while ago to drop the bullet points for ease of copy-pasting the usernames in GitHub issues and PRs. Please drop those, no matter who's being listed here (and in all the other files) :)
It seems the existing target docs were not updated when this rule came in. I'm removed the bullets for all the targets maintained by the Rust Embedded Devices Working Group's Arm Team as requested. |
Removes a bunch of information that isn't, strictly speaking, target specific.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@thejpster This looks good to go. I believe you are making some final small edits per our conversation, please ping me again when they're in and I'll take a quick glance at them.
This is important to note, as it affects how easy it is to build a binary, and that `#![no_std]` is mandatory. A different PR should probably add this to all the other platform pages.
Notes added to all the arm-none-, thumb-none-* and aarch64-unknown-none-* pages noting that they are |
looks good to me! @bors r+ rollup |
Rollup of 8 pull requests Successful merges: - #113095 (Document `become` keyword) - #146159 (Some hygiene doc improvements) - #146171 (tidy: check that error messages don't start with a capitalized letter) - #146419 (Update the arm-* and aarch64-* platform docs.) - #146473 (Revert "Constify SystemTime methods") - #146506 (Fix small typo in check-cfg.md) - #146517 (fix Condvar::wait_timeout docs) - #146521 (document `core::ffi::VaArgSafe`) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of #146419 - thejpster:update-arm-target-docs, r=workingjubilee Update the arm-* and aarch64-* platform docs. This PR updates some of the arm*-unknown-none target docs, and adds some missing target pages. ## aarch64-none-elf and aarch64-none-elf-softfloat The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target. ## armv7a-none-eabi and armv7a-none-eabihf The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target. ## armv7r-none-eabi and armv7r-none-eabihf The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and the target page is split from the Big Endian versions. Links are added to the EDWG's support crates for this target. ## armebv7r-none-eabi and armveb7r-none-eabihf The target page is split from the Little Endian versions. No change in maintainers. I have agreement to add EDWG/T-Arm as maintainers, which was voted upon in [their repo](rust-embedded/wg#851).
This PR updates some of the arm*-unknown-none target docs, and adds some missing target pages.
aarch64-none-elf and aarch64-none-elf-softfloat
The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target.
armv7a-none-eabi and armv7a-none-eabihf
The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and a target page is added. Links are added to the EDWG's support crates for this target.
armv7r-none-eabi and armv7r-none-eabihf
The Rust Embedded Devices Working Group's Arm Team is added as a maintainer, and the target page is split from the Big Endian versions. Links are added to the EDWG's support crates for this target.
armebv7r-none-eabi and armveb7r-none-eabihf
The target page is split from the Little Endian versions. No change in maintainers.
I have agreement to add EDWG/T-Arm as maintainers, which was voted upon in their repo.