-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Add riscv64gc-unknown-hermit Tier 3 target #89424
Add riscv64gc-unknown-hermit Tier 3 target #89424
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nagisa (or someone else) soon. Please see the contribution instructions for more information. |
|
This comment has been minimized.
This comment has been minimized.
base.features = "+m,+a,+f,+d,+c".to_string(); | ||
base.code_model = Some(CodeModel::Medium); | ||
base.relocation_model = RelocModel::Pic; | ||
base.tls_model = TlsModel::LocalExec; |
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.
Why is this TLS model used by default? Does the target not support InitialExec
?
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 don't think that InitialExec
is needed since the target is not used to build shared libraries.
Please quote the corresponding requirements verbatim from the tier 3 target tier policy to explain how the target meets those requirements (just a comment here is fine). Adding a page to |
This comment has been minimized.
This comment has been minimized.
Yes, that's me. I am working on the riscv64 port of RustyHermit.
The naming
This is not a problem. The changes for the new target are very small and do not include any new dependencies.
I understand.
Not all parts of
This is still very work-in-progress. RustyHermit will be usable on RISC-V like on x86-64. The riscv64 port is available here. Building the programs in the example/ folder already works using the new target triple and disabling the default features. Supported features are The kernel can be used with the hypervisor With rusty-loader located in loader/, RustyHermit can be run on qemu with the OpenSBI firmware and possibly real hardware with a SBI compatible firmware.
I understand.
There are no changes affecting other targets. |
Can you please add the platform documentation as a markdown file linked from the target's entry in platform-support? |
As requested by Josh above, please add an entry to r=me afterwards. |
triage: @rustbot label: -S-waiting-on-author +S-waiting-on-review |
☔ The latest upstream changes (presumably #91284) made this pull request unmergeable. Please resolve the merge conflicts. |
That is not the case. What @joshtriplett was requesting is a file under In addition to this for this to be mergeable, you will need to rebase your PR branch, rather than merging in the master. See https://rustc-dev-guide.rust-lang.org/git.html#rebasing-and-conflicts |
2805718
to
e52b122
Compare
e52b122
to
1ca12bf
Compare
@stlankes will revise and re-open the pull request. |
This pull request adds the riscv64gc-unknown-hermit target and is based on existing targets (hermit, riscv64gc).
I understand that Tier 3 targets must meet certain requirements. Adding this target introduces no new dependencies
or changes affecting other targets.