RustInQemu: Difference between revisions

From QEMU
No edit summary
No edit summary
Line 3: Line 3:
== Rust target support for Qemu host platforms ==
== Rust target support for Qemu host platforms ==


* Qemu supported platforms matrix from [https://qemu-project.gitlab.io/qemu/about/build-platforms.html here]
Information sources:
* Rust target support tiers from [https://doc.rust-lang.org/nightly/rustc/platform-support.html here]
* [https://qemu-project.gitlab.io/qemu/about/build-platforms.html Qemu supported platforms matrix]
* [https://doc.rust-lang.org/nightly/rustc/platform-support.html Rust target support tiers]
* Supported architectures for:
* Supported architectures for:
** [https://www.freebsd.org/platforms/ FreeBSD]
** [https://www.freebsd.org/platforms/ FreeBSD]
** [https://www.netbsd.org/ports/ NetBSD]
** [https://www.netbsd.org/ports/ NetBSD]
** [https://www.openbsd.org/plat.html OpenBSD]
** [https://www.openbsd.org/plat.html OpenBSD]
'''Notes:'''
* Some of the N/A entries I'm uncertain about
** I think OpenBSD lacks mips32 support, but the presence of Loongson means I'm having trouble pinning that down with certainty
** I think NetBSD lacks mips64 support, but I don't entirely know how to interpret the way they describe CPU architecture support, so again, I'm uncertain.
** I don't believe macOS or Windows have ARM32 support, but I'm not sure where to confirm that
** I believe macOS has dropped 32-bit x86 support, but I'm not sure if we support any old macOS versions which might support 32-bit x86


{| class="wikitable"
{| class="wikitable"
Line 76: Line 84:
| style="background-color:red" | -
| style="background-color:red" | -
| style="background-color:red" | -
| style="background-color:red" | -
| ?
| style="background-color:grey" | N/A?
|-
|-
! MIPS (64-bit)
! MIPS (64-bit)

Revision as of 06:27, 17 September 2021

Notes about possibilities for including Rust code in the Qemu project. Started after discussion at the Rust in Qemu BoF at KVM Forum 2021.

Rust target support for Qemu host platforms

Information sources:

Notes:

  • Some of the N/A entries I'm uncertain about
    • I think OpenBSD lacks mips32 support, but the presence of Loongson means I'm having trouble pinning that down with certainty
    • I think NetBSD lacks mips64 support, but I don't entirely know how to interpret the way they describe CPU architecture support, so again, I'm uncertain.
    • I don't believe macOS or Windows have ARM32 support, but I'm not sure where to confirm that
    • I believe macOS has dropped 32-bit x86 support, but I'm not sure if we support any old macOS versions which might support 32-bit x86
Legend
Tier1* Rust Tier 1 with Host Tools supported target.
Tier2* Rust Tier 2 with Host Tools supported target
Tier3* Rust Tier 3 target, with full standard library, and host tool build support
Tier2 Rust Tier 2 target without host tools, but with full standard library.
Tier3 Rust Tier 3 target, but lacks either full standard library or host tool build support.
- Rust does not have support for this target
N/A OS doesn't support this architecture


xxx Linux macOS Windows FreeBSD NetBSD OpenBSD
armv6 Tier2* N/A? N/A? Tier3* Tier3* N/A
armv7 Tier2* N/A? N/A? Tier3* Tier3* -
aarch64 Tier1* Tier2* Tier2* Tier3* Tier3* Tier3*
MIPS (32-bit) Tier2* N/A N/A - - N/A?
MIPS (64-bit) Tier2* N/A N/A - N/A? -
PPC (32-bit) Tier2* N/A N/A - Tier2* Tier3
PPC (64-bit) Tier2* N/A N/A Tier3* N/A? N/A
RISC-V (64-bit) Tier2* N/A N/A - N/A N/A
s390x Tier2* N/A N/A N/A N/A N/A
SPARC (32-bit) Tier3 N/A N/A N/A - N/A
SPARC (64-bit) Tier2 N/A N/A - Tier3* Tier3
x86 (32-bit) Tier1* N/A? Tier1* Tier2 Tier3* Tier3*
x86 (64-bit) Tier1* Tier1* Tier1* Tier2* Tier2* Tier3*