-
Notifications
You must be signed in to change notification settings - Fork 13.8k
Add managarm as a tier 3 target #123319
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 managarm as a tier 3 target #123319
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @davidtwco (or someone else) some time within the next two weeks. Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (
|
These commits modify compiler targets. Some changes occurred in src/doc/rustc/src/platform-support cc @Nilstrieb Some changes occurred in tests/ui/check-cfg cc @Urgau |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
compiler/rustc_target/src/spec/targets/x86_64_unknown_managarm_mlibc.rs
Outdated
Show resolved
Hide resolved
|
||
## Building Rust programs | ||
|
||
Build a `x86_64-managarm-gcc` using our [gcc fork](https://github.com/managarm/gcc). |
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.
Does lld not work for this target?
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.
Using lld
is not a supported and tested option for us right now.
Addressed the comments with the fixup commits. |
This comment was marked as resolved.
This comment was marked as resolved.
Marking this as blocked on LLVM support for the target |
Just FYI Managarm support has been upstramed to LLVM.. llvm/llvm-project@0f302f3 and will be included with the LLVM 21 release. |
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. |
Now that we're upstream in LLVM 21, we have updated our toolchain and rebased this patchset onto current rust master. Due to changes done to cc-rs in the meantime, we had to get the |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…gets Co-authored-by: Dennis Bonke <[email protected]>
@bors r+ rollup |
☀️ Test successful - checks-actions |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing b53c72f (parent) -> 846e377 (this PR) Test differencesShow 11 test diffsStage 1
Stage 2
Additionally, 2 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 846e377215c5985b3a0fe7af6bb71bdc45912aae --output-dir test-dashboard And then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
Finished benchmarking commit (846e377): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (primary -2.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 0.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 466.779s -> 465.855s (-0.20%) |
This PR aims to introduce the
x86_64-unknown-managarm-mlibc
as a tier 3 target to Rust.managarm is a microkernel with fully asynchronous I/O that also provides a POSIX server. Despite the differences, managarm provides good compatability with POSIX and Linux APIs. As a rule of thumb, barring OS-specific code, it should be mostly source-compatible with Linux.
We have been shipping a patched rust for over 25 releases now, and we would like to upstream our work. For a smoother process, this PR only adds the target to rustc and some documentation.
std
support will be added in a future PR.Addressing the tier 3 target policy
@no92, @64 and @Dennisbonke will be target maintainers.
x86_64-unknown-managarm-mlibc
is what we use for LLVM as well.managarm is licensed as MIT. No dependencies were added.
Understood. None of the listed maintainers are on a Rust team.
Support for
std
will be provided in a future PR. Only minor changes are required, however they depend on support in thelibc
crate which will be PRed in soon.The steps needed to take are described in the documentation provided with this PR.
Understood.
We have no indication that anything breaks due to this PR.
No problems here, as we target
x86_64
.r? compiler-team