Skip to content
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

Promote loongarch64-unknown-linux-musl to tier 2 #753

Closed
1 of 3 tasks
heiher opened this issue May 27, 2024 · 4 comments
Closed
1 of 3 tasks

Promote loongarch64-unknown-linux-musl to tier 2 #753

heiher opened this issue May 27, 2024 · 4 comments
Labels
major-change A proposal to make a major change to rustc major-change-accepted A major change proposal that was accepted T-compiler Add this label so rfcbot knows to poll the compiler team

Comments

@heiher
Copy link

heiher commented May 27, 2024

Proposal

Promote the loongarch64-unknown-linux-musl target to tier 2.

Musl targets are hard to use with -Zbuild-std because they require a full musl sysroot to be available, including an implementation of libunwind. Shipping these in rustup makes them much easier to use.

Tier 2 Target Requirements

A tier 2 target must have value to people other than its maintainers.

A tier 2 target must have a designated team of developers.

Myself and @xen0n will be maintaining this target.

The target must not place undue burden on Rust developers not specifically concerned with that target.

This is not much different from all the other musl targets already at tier 2.

The target must provide documentation for the Rust community explaining how to build for the target using cross-compilation, and explaining how to run tests for the target.

This will be included in the PR which adds the target.

The target must document its baseline expectations for the features or versions of CPUs, operating systems, libraries, runtime environments, and similar.

Documentation is provided for requirements.

If introducing a new tier 2 or higher target that is identical to an existing Rust target except for the baseline expectations for the features or versions of CPUs, operating systems, libraries, runtime environments, and similar, then the proposed target must document to the satisfaction of the approving teams why the specific difference in baseline expectations provides sufficient value to justify a separate target.

Not applicable.

Tier 2 targets must not leave any significant portions of core or the standard library unimplemented or stubbed out, unless they cannot possibly be supported on the target. As an exception, a target identical to an existing tier 1 target except for lower baseline expectations for the OS, CPU, or similar, may propose to qualify as tier 2 (but not higher) without support for std if the target will primarily be used in no_std applications, to reduce the support burden for the standard library. In this case, evaluation of the proposed target's value will take this limitation into account.

This target supports the full standard library functionality.

The code generation backend for the target should not have deficiencies that invalidate Rust safety properties, as evaluated by the Rust compiler team.

The standard codegen backends are used.

If the target supports C code, and the target has an interoperable calling convention for C code, the Rust target must support that C calling convention for the platform via extern "C".

Yes.

The target must build reliably in CI, for all components that Rust's CI considers mandatory.

Yes.

The approving teams may additionally require that a subset of tests pass in CI.

Building the target in CI must not take substantially longer than the current slowest target in CI, and should not substantially raise the maintenance burden of the CI infrastructure.

Tier 2 targets should, if at all possible, support cross-compiling.

Yes.

In addition to the legal requirements for all targets (specified in the tier 3 requirements), because a tier 2 target typically involves the Rust project building and supplying various compiled binaries, incorporating the target and redistributing any resulting compiled binaries (e.g. built libraries, host tools if any) must not impose any onerous license requirements on any members of the Rust project, including infrastructure team members and those operating CI systems.

No license issues.

Tier 2 targets must not impose burden on the authors of pull requests, or other developers in the community, to ensure that tests pass for the target.

This target runs no tests.

The target maintainers should regularly run the testsuite for the target, and should fix any test failures in a reasonably timely fashion.

Yes.

All requirements for tier 3 apply.

Yes.

Mentors or Reviewers

@wesleywiser

You can read more about Major Change Proposals on forge.

Process

The main points of the Major Change Process are as follows:

  • File an issue describing the proposal.
  • A compiler team member or contributor who is knowledgeable in the area can second by writing @rustbot second.
    • Finding a "second" suffices for internal changes. If however, you are proposing a new public-facing feature, such as a -C flag, then full team check-off is required.
    • Compiler team members can initiate a check-off via @rfcbot fcp merge on either the MCP or the PR.
  • Once an MCP is seconded, the Final Comment Period begins. If no objections are raised after 10 days, the MCP is considered approved.

You can read more about Major Change Proposals on forge.

Comments

This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.

@heiher heiher added major-change A proposal to make a major change to rustc T-compiler Add this label so rfcbot knows to poll the compiler team labels May 27, 2024
@rustbot
Copy link
Collaborator

rustbot commented May 27, 2024

This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.

Concerns or objections to the proposal should be discussed on Zulip and formally registered here by adding a comment with the following syntax:

@rustbot concern reason-for-concern 
<description of the concern> 

Concerns can be lifted with:

@rustbot resolve reason-for-concern 

See documentation at https://forge.rust-lang.org

cc @rust-lang/compiler @rust-lang/compiler-contributors

@rustbot rustbot added the to-announce Announce this issue on triage meeting label May 27, 2024
@heiher
Copy link
Author

heiher commented May 27, 2024

Adding support for loongarch64-*-linux-musl targets has been proposed as early as MCP 518. This MCP is just to make it clear.

@davidtwco
Copy link
Member

@rustbot second

@heiher
Copy link
Author

heiher commented Jun 12, 2024

Closing as accepted.

@heiher heiher closed this as completed Jun 12, 2024
bors added a commit to rust-lang-ci/rust that referenced this issue Jun 12, 2024
ci: Add support for dist-loongarch64-musl

MCP: rust-lang/compiler-team#753
Tracking issue: rust-lang#122592

try-job: dist-loongarch64-musl
@apiraino apiraino added major-change-accepted A major change proposal that was accepted and removed final-comment-period The FCP has started, most (if not all) team members are in agreement labels Jun 12, 2024
@rustbot rustbot added the to-announce Announce this issue on triage meeting label Jun 12, 2024
@apiraino apiraino removed the to-announce Announce this issue on triage meeting label Jun 14, 2024
bors added a commit to rust-lang-ci/rust that referenced this issue Jun 16, 2024
ci: Add support for dist-loongarch64-musl

MCP: rust-lang/compiler-team#753
Tracking issue: rust-lang#122592

try-job: dist-loongarch64-musl
workingjubilee added a commit to workingjubilee/rustc that referenced this issue Jun 24, 2024
…-Simulacrum

Promote loongarch64-unknown-linux-musl to Tier 2 with host tools

MCP: rust-lang/compiler-team#753
Tracking issue: rust-lang#122592

try-job: dist-loongarch64-musl
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Jun 24, 2024
…-Simulacrum

Promote loongarch64-unknown-linux-musl to Tier 2 with host tools

MCP: rust-lang/compiler-team#753
Tracking issue: rust-lang#122592

try-job: dist-loongarch64-musl
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Jun 24, 2024
Rollup merge of rust-lang#126298 - heiher:loongarch64-musl-ci, r=Mark-Simulacrum

Promote loongarch64-unknown-linux-musl to Tier 2 with host tools

MCP: rust-lang/compiler-team#753
Tracking issue: rust-lang#122592

try-job: dist-loongarch64-musl
heiher added a commit to heiher/rust that referenced this issue Aug 29, 2024
heiher added a commit to heiher/rust that referenced this issue Sep 23, 2024
heiher added a commit to heiher/rust that referenced this issue Sep 23, 2024
heiher added a commit to heiher/rust that referenced this issue Sep 23, 2024
heiher added a commit to heiher/rust that referenced this issue Sep 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
major-change A proposal to make a major change to rustc major-change-accepted A major change proposal that was accepted T-compiler Add this label so rfcbot knows to poll the compiler team
Projects
None yet
Development

No branches or pull requests

4 participants