-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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 mips64r6 and mips32r6 as target_arch values #112374
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @jackh726 (or someone else) soon. 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 (
|
Some changes occurred in compiler/rustc_codegen_cranelift cc @bjorn3 Some changes occurred in compiler/rustc_codegen_gcc cc @antoyo These commits modify compiler targets. The Miri subtree was changed cc @rust-lang/miri |
702010a
to
9ab4b30
Compare
@alexcrichton Would you mind offering your review and suggestions for this pull request, since you have reviewed an earlier MIPS R6-related pull request (#90001)? |
Alas sorry but I don't know enough about MIPS to review this. |
☔ The latest upstream changes (presumably #108796) made this pull request unmergeable. Please resolve the merge conflicts. |
add mips32r6 and mips64r6 target_arch detection This PR introduces `"mips32r6"` and `"mips64r6"` as valid `target_arch` values, and would be the arch values used by Tier-3 targets `mipsisa32r6-unknown-linux-gnu`, `mipsisa32r6el-unknown-linux-gnu`, `mipsisa64r6-unknown-linux-gnuabi64` and `mipsisa64r6el-unknown-linux-gnuabi64`. This PR is made for rust-lang/rust#112374. This PR has a corresponding [MCP](rust-lang/compiler-team#632) waiting for review. mips64r6 has the same ABIs, syscall conventions, and various magic numbers as mips64 does. So this PR just adds mips64r6 to all mips64 detection macros. Similarly, mips32r6 share their ABIs, syscall conventions and various magic with mips, so the PR just adds mips32r6 to where mips is to be detected.
@bors r+ rollup |
☀️ Test successful - checks-actions |
Finished benchmarking commit (8d361cb): 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)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 658.423s -> 658.585s (0.02%) |
…-Simulacrum Update crates for better MIPS R6 support Update crates to remove dependency on old versions of rustix and linux-raw-sys. Update libc, rustix, and linux-raw-sys to enhance support for MIPS R6 introduced by rust-lang#112374 Commands that do the update: ```shell cargo +nightly update tempfile clap cargo +nightly update linux-raw-sys rustix ```
minor: update libc to 0.2.148 This update is a follow-up for [#112374](rust-lang/rust#112374). The command that does this update: `cargo update -p libc`
This PR introduces
"mips32r6"
and"mips64r6"
as validtarget_arch
values, and would be the arch value used by Tier-3 targetsmipsisa32r6-unknown-linux-gnu
,mipsisa32r6el-unknown-linux-gnu
,mipsisa64r6-unknown-linux-gnuabi64
andmipsisa64r6el-unknown-linux-gnuabi64
.This PR was inspired by
rustix
attempting to link traditional mips64el objects with mips64r6el objects when building for mips64r6, even thoughrustix
recently removed outline assembly support. This is because currently this target'starget_arch
is"mips64"
and rustix has its respective assembly implementation as well as a pre-compiled little-endian static library prepared for mips64el, a tier-2 target with the sametarget_arch
. After some discussions on zulip, I decided to treat mips64r6 as an independent architecture from Rust's POV, since these two architectures are incompatible anyway.This PR is now waiting for
libc
to release a new version with support for thesetarget_arch
values. It is not expected to introduce changes to any other target, especially Tier-1 and Tier-2 targets.This PR has its corresponding MCP approved.