RustInQemu/2022: Difference between revisions
No edit summary |
m (add r4l link) |
||
Line 10: | Line 10: | ||
** [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] | ||
* [https://github.com/Rust-for-Linux/linux/blob/rust/Documentation/rust/arch-support.rst Rust-for-Linux support] | |||
'''Notes:''' | '''Notes:''' |
Revision as of 09:39, 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:
- Qemu supported platforms matrix
- Rust target support tiers
- Supported architectures for:
- Rust-for-Linux support
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
- It's not clear to me if qemu supports 32-bit RISC-V as a built platform
- In the colouring, I've considered Tier3* as "better than" Tier2. This is debatable, but the rationale is that if we don't have host tools, that's not really sufficient for a supported qemu build platform.
- I've not investigated support on Solaris or other Unix variants. Those aren't mentioned here, but I'm not really sure if there are some users of qemu on those platforms.
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 |
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* |