Project RP004: Support 64-bit RISC-V Linux port of Rust to Tier-1

Bidding Starts: Friday, December 8, 2023

Bidding Ends: Friday, January 26, 2024

Contract start date:

Summary:

Proposal:

  • The Rust language community has a Target Tier Policy that outlines expectations from Rust language ports to different platforms.
  • A Tier-1 target gets the highest quality assurance scrutiny. Achieving Tier-1 target status makes the Rust port maximally hygienic for use in miscellaneous product ecosystems.
  • At present, the 64-bit RISC-V Linux port of Rust (represented by the riscv64gc-unknown-linux-gnu Rust target triplet) is deemed a Tier-2 target.
  • The proposal is to take it to Tier-1 (“Guaranteed to work”) status on Linux, just like the 64 bit x86_64 (x86-64-unknown-linux-gnu) and 64-bit Arm (aarch64-unknown-linux-gnu) target triples.
  • The proposal covers both the cross-compilation as well as hosted-compilation target options.

Milestones to Deliver:

  • Milestone 1: CI Integration and Gap-Analysis 
    • The Rust-lang test suite and associated github runners must be extended to work with the following platform targets:
      • The qemu simulator’s qemu-system-riscv64 target running on an x86_64 or AArch64 Linux host
      • The Hifive silicon platform
    • On the basis of complete Rust lang test suite runs, a report outlining failing tests, failure analysis, gap analysis (eg, missing compiler features etc) must be provided.
    • The report and the ensuing discussions will help shape the next milestone. At this stage, any serious blockers that hinder subsequent milestones must be clearly identified.
  • Milestone 2: 100% pass rate for the Rust language test suite 
    • All tests in the test suite should pass. This will involve verification of passing test functionality, fixing of failing tests where possible and provision of suitable justification when not.
  • Milestone 3: Promotion of the riscv64gc-unknown-linux-gnu target triple to Tier-1 status 
    • All the documented expectations from a Tier-1 target must be met
    • All relevant interactions with the open Rust lang community representatives must be done
    • Basically, the ideal outcome of this milestone should be an announcement by the Rust lang project about this triple having achieved Tier-1 as a part of a release, or a robust understanding of what needs to be done to get there


The system SW engineer must follow through on the outlined Tier-1 requirements. This must involve raising an RFC and getting it reviewed with the Rust lang community to ensure that all relevant stakeholders sign-off on the requirements in a transparent manner. Use the successful AArch64 Linux RFC as a guideline.

Bidding Closed