Target: Add mips mti baremetal support by wzssyqa · Pull Request #135074 · rust-lang/rust (original) (raw)

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 andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation17 Commits3 Checks6 Files changed

Conversation

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})

@wzssyqa

Do the same thing as gcc, which use the vendor mti to mark the toolchain as MIPS32r2 default.

We support both big endian and little endian flavor:
mips-mti-none-elf
mipsel-mti-none-elf

@wzssyqa

Do the same thing as gcc, which use the vendor mti to mark the toolchain as MIPS32r2 default.

We support both big endian and little endian flavor: mips-mti-none-elf mipsel-mti-none-elf

@rustbot

r? @oli-obk

rustbot has assigned @oli-obk.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

T-compiler

Relevant to the compiler team, which will review and decide on the PR/issue.

labels

Jan 3, 2025

@rustbot

These commits modify compiler targets.
(See the Target Tier Policy.)

Some changes occurred in src/doc/rustc/src/platform-support

cc @Noratrieb

@wzssyqa

I noticed #134721.
For baremetal toolchain, we may follow the gcc naming.

@rust-log-analyzer

This comment has been minimized.

@oli-obk

Who is maintaining the mips targets?

@wzssyqa

Who is maintaining the mips targets?

It's me. I am also the MIPS maintainer of GCC/LLVM mips maintainer.

@wzssyqa

oli-obk

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how is the new mipsel target different from mipsel-unknown-none and should the none target keep existing at all?

@rustbot rustbot added S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

and removed S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

labels

Jan 5, 2025

@wzssyqa @oli-obk

Co-authored-by: Oli Scherer github35764891676564198441@oli-obk.de

@wzssyqa

how is the new mipsel target different from mipsel-unknown-none and should the none target keep existing at all?

Maybe we should remove unknown target or switch it to mips2 instead of mips32r2.
For the triple policy of MIPS in gcc, the default vendor (unknown) means mips1 (for 32bit) or mips3 (for 64bit).

We use the vendor mti for toolchains for MIPSr2, and img for MIPSr6.

If there is no objection, I will switch mipsel-unknown-none to mips2, due to LLVM has no mips1 support yet.

@wzssyqa

For -mti- toolchains we try to use lld instead of gnu ld, which is another difference.

@oli-obk

@bors r+ rollup

Let's land this and look at the unknown target(s?) In follow-ups. If they have no users we should probably just remove them instead of doing sth that no one is testing that it works

@bors

📌 Commit 1a82287 has been approved by oli-obk

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

and removed S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

labels

Jan 5, 2025

@bors

@bors

This was referenced

Jan 5, 2025

@rust-timer

Finished benchmarking commit (7270e73): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌ (primary) - - 0
Regressions ❌ (secondary) 0.4% [0.4%, 0.5%] 3
Improvements ✅ (primary) - - 0
Improvements ✅ (secondary) -0.2% [-0.2%, -0.2%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -3.2%, secondary -1.7%)

This 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.

mean range count
Regressions ❌ (primary) - - 0
Regressions ❌ (secondary) - - 0
Improvements ✅ (primary) -3.2% [-3.2%, -3.2%] 1
Improvements ✅ (secondary) -1.7% [-2.2%, -1.4%] 5
All ❌✅ (primary) -3.2% [-3.2%, -3.2%] 1

Cycles

Results (primary -2.3%)

This 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.

mean range count
Regressions ❌ (primary) - - 0
Regressions ❌ (secondary) - - 0
Improvements ✅ (primary) -2.3% [-2.3%, -2.3%] 1
Improvements ✅ (secondary) - - 0
All ❌✅ (primary) -2.3% [-2.3%, -2.3%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 763.624s -> 763.064s (-0.07%)
Artifact size: 325.63 MiB -> 325.65 MiB (0.01%)

@cuviper cuviper added the relnotes

Marks issues that should be documented in the release notes of the next release.

label

Mar 21, 2025

wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request

Apr 9, 2025

@he32

Upstream changes relative to 1.85.1:

Version 1.86.0 (2025-04-03)

Language

Compiler

Platform Support

Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Rustdoc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request

May 10, 2025

@tmeijn

This MR contains the following updates:

Package Update Change
rust minor 1.85.1 -> 1.86.0

MR created with the help of el-capitano/tools/renovate-bot.

Proposed changes to behavior should be submitted there as MRs.


Release Notes

rust-lang/rust (rust)

v1.86.0

Compare Source

==========================

Language

Compiler

Platform Support

Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Rustdoc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.



This MR has been generated by Renovate Bot.

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request

Jun 16, 2025

@he32

Pkgsrc changes:

Upstream changes:

Version 1.86.0 (2025-04-03)

Language

Compiler

Platform Support

Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.

Libraries

Stabilized APIs

These APIs are now stable in const contexts:

Cargo

Rustdoc

Compatibility Notes

Internal Changes

These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.

Labels

merged-by-bors

This PR was explicitly merged by bors.

relnotes

Marks issues that should be documented in the release notes of the next release.

S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

T-compiler

Relevant to the compiler team, which will review and decide on the PR/issue.