update target support section

This commit is contained in:
Ralf Jung 2023-08-31 16:52:58 +02:00
parent 873a7a384f
commit 3e66914fc8
3 changed files with 16 additions and 21 deletions

View File

@ -156,7 +156,7 @@ program, no matter your host OS. This is particularly useful if you are using
Windows, as the Linux target is much better supported than Windows targets. Windows, as the Linux target is much better supported than Windows targets.
You can also use this to test platforms with different properties than your host You can also use this to test platforms with different properties than your host
platform. For example `cargo miri test --target mips64-unknown-linux-gnuabi64` platform. For example `cargo miri test --target s390x-unknown-linux-gnu`
will run your test suite on a big-endian target, which is useful for testing will run your test suite on a big-endian target, which is useful for testing
endian-sensitive code. endian-sensitive code.
@ -220,20 +220,18 @@ using `--target`!
The following targets are tested on CI and thus should always work (to the The following targets are tested on CI and thus should always work (to the
degree documented below): degree documented below):
- The best-supported target is `x86_64-unknown-linux-gnu`. Miri releases are - All Rust [Tier 1 targets](https://doc.rust-lang.org/rustc/platform-support.html) are supported by
blocked on things working with this target. Most other Linux targets should Miri. They are all checked on Miri's CI, and some (at least one per OS) are even checked on every
also work well; we do run the test suite on `i686-unknown-linux-gnu` as a Rust PR, so the shipped Miri should always work on these targets.
32bit target and `mips64-unknown-linux-gnuabi64` as a big-endian target, as - We also support `s390x-unknown-linux-gnu` as our "big-endian target of choice".
well as the ARM targets `aarch64-unknown-linux-gnu` and - For every other target with OS `linux`, `macos`, or `windows`, Miri should generally work, but we
`arm-unknown-linux-gnueabi`. make no promises.
- `x86_64-apple-darwin` should work basically as well as Linux. We also test - For targets on other operating systems, even basic operations such as printing to the standard
`aarch64-apple-darwin`. However, we might ship Miri with a nightly even when output might not work, and Miri might fail before even reaching the `main` function.
some features on these targets regress.
- `x86_64-pc-windows-msvc` works, but supports fewer features than the Linux and However, even for targets that we do support, the degree of support for accessing platform APIs
Apple targets. For example, file system access and concurrency are not (such as the file system) differs between targets: generally, Linux targets have the best support,
supported on Windows. We also test `i686-pc-windows-msvc`, with the same and macOS targets are usually on par. Windows is supported less well.
reduced feature set. We might ship Miri with a nightly even when some features
on these targets regress.
### Running tests in parallel ### Running tests in parallel

View File

@ -116,7 +116,7 @@ case $HOST_TARGET in
MIRI_TEST_TARGET=tests/avr.json MIRI_NO_STD=1 run_tests_minimal no_std # JSON target file MIRI_TEST_TARGET=tests/avr.json MIRI_NO_STD=1 run_tests_minimal no_std # JSON target file
;; ;;
x86_64-apple-darwin) x86_64-apple-darwin)
MIRI_TEST_TARGET=mips64-unknown-linux-gnuabi64 run_tests # big-endian architecture MIRI_TEST_TARGET=s390x-unknown-linux-gnu run_tests # big-endian architecture
MIRI_TEST_TARGET=x86_64-pc-windows-msvc run_tests MIRI_TEST_TARGET=x86_64-pc-windows-msvc run_tests
;; ;;
i686-pc-windows-msvc) i686-pc-windows-msvc)

View File

@ -83,9 +83,6 @@ fn main() {
test_abi_newtype(0u32); test_abi_newtype(0u32);
test_abi_newtype(0f32); test_abi_newtype(0f32);
test_abi_newtype((0u32, 1u32, 2u32)); test_abi_newtype((0u32, 1u32, 2u32));
// FIXME: skipping the array tests on mips64 due to https://github.com/rust-lang/rust/issues/115404
if !cfg!(target_arch = "mips64") {
test_abi_newtype([0u32, 1u32, 2u32]); test_abi_newtype([0u32, 1u32, 2u32]);
test_abi_newtype([0i32; 0]); test_abi_newtype([0i32; 0]);
}
} }