about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsayantn <sayantn05@gmail.com>2025-04-18 09:29:14 +0530
committerAmanieu d'Antras <amanieu@gmail.com>2025-04-20 21:39:39 +0000
commit867fe30ba076e2f631e279c4001f65fab3654085 (patch)
treef603ce4bec3932837fda71d4f23aa271260885c6
parentdb127cd717afaa023f528943aa9c8c6ad0c24bec (diff)
downloadrust-867fe30ba076e2f631e279c4001f65fab3654085.tar.gz
rust-867fe30ba076e2f631e279c4001f65fab3654085.zip
Add `test-everything` annotations to more archs to ensure test coverage, and some small changes to make CI pass
 - Disable `vsx` tests for `ppc` and `ppc64`
 - Disable `tme` tests for `aarch64` and `aarch64_be`
 - Disable `frecipe` tests for `loongarch64`
 - Add `altivec` run for PPC32 (with `-C target-feature=+vsx` `qemu` gives a nasty error)
-rw-r--r--library/stdarch/.github/workflows/main.yml48
-rw-r--r--library/stdarch/ci/docker/aarch64-unknown-linux-gnu/Dockerfile3
-rw-r--r--library/stdarch/ci/docker/aarch64_be-unknown-linux-gnu/Dockerfile1
-rw-r--r--library/stdarch/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile3
-rw-r--r--library/stdarch/ci/docker/powerpc-unknown-linux-gnu/Dockerfile3
-rw-r--r--library/stdarch/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile1
-rwxr-xr-xlibrary/stdarch/ci/run.sh12
-rw-r--r--library/stdarch/crates/stdarch-verify/tests/x86-intel.rs3
8 files changed, 53 insertions, 21 deletions
diff --git a/library/stdarch/.github/workflows/main.yml b/library/stdarch/.github/workflows/main.yml
index 8a9bf04be55..877602e7eb8 100644
--- a/library/stdarch/.github/workflows/main.yml
+++ b/library/stdarch/.github/workflows/main.yml
@@ -122,6 +122,42 @@ jobs:
 
         # Add additional variables to the matrix variations generated above using `include`:
         include:
+        # `TEST_EVERYTHING` setups - there should be at least 1 for each architecture
+        - target:
+            tuple: aarch64-unknown-linux-gnu
+            os: ubuntu-latest
+          test_everything: true
+        - target:
+            tuple: armv7-unknown-linux-gnueabihf
+            os: ubuntu-latest
+          test_everything: true
+        - target:
+            tuple: loongarch64-unknown-linux-gnu
+            os: ubuntu-latest
+          test_everything: true
+        - target:
+            tuple: powerpc-unknown-linux-gnu
+            os: ubuntu-latest
+          disable_assert_instr: true
+          test_everything: true
+        - target:
+            tuple: powerpc64-unknown-linux-gnu
+            os: ubuntu-latest
+          disable_assert_instr: true
+          test_everything: true
+        - target:
+            tuple: powerpc64le-unknown-linux-gnu
+            os: ubuntu-latest
+          disable_assert_instr: true
+          test_everything: true
+        - target:
+            tuple: riscv64gc-unknown-linux-gnu
+            os: ubuntu-latest
+          test_everything: true
+        - target:
+            tuple: s390x-unknown-linux-gnu
+            os: ubuntu-latest
+          test_everything: true
         - target:
             tuple: x86_64-unknown-linux-gnu-emulated
             os: ubuntu-latest
@@ -145,18 +181,6 @@ jobs:
         #    os: ubuntu-latest
         #  norun: true
         - target:
-            tuple: powerpc-unknown-linux-gnu
-            os: ubuntu-latest
-          disable_assert_instr: true
-        - target:
-            tuple: powerpc64-unknown-linux-gnu
-            os: ubuntu-latest
-          disable_assert_instr: true
-        - target:
-            tuple: powerpc64le-unknown-linux-gnu
-            os: ubuntu-latest
-          disable_assert_instr: true
-        - target:
             tuple: aarch64-apple-darwin
             os: macos-15
           norun: true # https://github.com/rust-lang/stdarch/issues/1206
diff --git a/library/stdarch/ci/docker/aarch64-unknown-linux-gnu/Dockerfile b/library/stdarch/ci/docker/aarch64-unknown-linux-gnu/Dockerfile
index b5891c09cc5..17025efffea 100644
--- a/library/stdarch/ci/docker/aarch64-unknown-linux-gnu/Dockerfile
+++ b/library/stdarch/ci/docker/aarch64-unknown-linux-gnu/Dockerfile
@@ -15,4 +15,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
 
 ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
     CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64 -cpu max -L /usr/aarch64-linux-gnu" \
-    OBJDUMP=aarch64-linux-gnu-objdump
+    OBJDUMP=aarch64-linux-gnu-objdump \
+    STDARCH_TEST_SKIP_FEATURE=tme
diff --git a/library/stdarch/ci/docker/aarch64_be-unknown-linux-gnu/Dockerfile b/library/stdarch/ci/docker/aarch64_be-unknown-linux-gnu/Dockerfile
index 5dbdd4b9841..d7be70843d1 100644
--- a/library/stdarch/ci/docker/aarch64_be-unknown-linux-gnu/Dockerfile
+++ b/library/stdarch/ci/docker/aarch64_be-unknown-linux-gnu/Dockerfile
@@ -27,3 +27,4 @@ ENV AARCH64_BE_LIBC="${AARCH64_BE_TOOLCHAIN}/aarch64_be-none-linux-gnu/libc"
 ENV CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_LINKER="${AARCH64_BE_TOOLCHAIN}/bin/aarch64_be-none-linux-gnu-gcc"
 ENV CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64_be -cpu max -L ${AARCH64_BE_LIBC}"
 ENV OBJDUMP="${AARCH64_BE_TOOLCHAIN}/bin/bin/aarch64-none-linux-gnu-objdump"
+ENV STDARCH_TEST_SKIP_FEATURE=tme
diff --git a/library/stdarch/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile b/library/stdarch/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile
index 518add146dd..99ccf286f36 100644
--- a/library/stdarch/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile
+++ b/library/stdarch/ci/docker/loongarch64-unknown-linux-gnu/Dockerfile
@@ -8,4 +8,5 @@ RUN apt-get update && \
 
 ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=loongarch64-linux-gnu-gcc-14 \
     CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-loongarch64-static -cpu max -L /usr/loongarch64-linux-gnu" \
-    OBJDUMP=loongarch64-linux-gnu-objdump
+    OBJDUMP=loongarch64-linux-gnu-objdump \
+    STDARCH_TEST_SKIP_FEATURE=frecipe
diff --git a/library/stdarch/ci/docker/powerpc-unknown-linux-gnu/Dockerfile b/library/stdarch/ci/docker/powerpc-unknown-linux-gnu/Dockerfile
index b240a1d90bf..baad95d5784 100644
--- a/library/stdarch/ci/docker/powerpc-unknown-linux-gnu/Dockerfile
+++ b/library/stdarch/ci/docker/powerpc-unknown-linux-gnu/Dockerfile
@@ -8,4 +8,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
 ENV CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_LINKER=powerpc-linux-gnu-gcc \
     CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc -cpu mpc8610 -L /usr/powerpc-linux-gnu" \
     CC=powerpc-linux-gnu-gcc \
-    OBJDUMP=powerpc-linux-gnu-objdump
+    OBJDUMP=powerpc-linux-gnu-objdump \
+    STDARCH_TEST_SKIP_FEATURE=vsx
diff --git a/library/stdarch/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile b/library/stdarch/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile
index b3126426d53..dcbcb43513e 100644
--- a/library/stdarch/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile
+++ b/library/stdarch/ci/docker/powerpc64-unknown-linux-gnu/Dockerfile
@@ -9,5 +9,6 @@ ENV CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_LINKER=powerpc64-linux-gnu-gcc \
     CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64 -cpu power11 -L /usr/powerpc64-linux-gnu" \
     CC=powerpc64-linux-gnu-gcc \
     OBJDUMP=powerpc64-linux-gnu-objdump \
+    STDARCH_TEST_SKIP_FEATURE=vsx \
 #   These 2 tests have erratic behaviour with qemu, see https://gitlab.com/qemu-project/qemu/-/issues/1623#note_2449012173
     STDARCH_TEST_SKIP_FUNCTION=vec_lde_u16,vec_lde_u32
diff --git a/library/stdarch/ci/run.sh b/library/stdarch/ci/run.sh
index 82a6f8dfc72..16098642286 100755
--- a/library/stdarch/ci/run.sh
+++ b/library/stdarch/ci/run.sh
@@ -121,13 +121,15 @@ case ${TARGET} in
         cargo_test "${PROFILE}"
 	      ;;
     powerpc64*)
-        # We don't build the ppc 32-bit targets with these - these targets
-        # are mostly unsupported for now.
-        OLD_RUSTFLAGS="${RUSTFLAGS}"
-        export RUSTFLAGS="${OLD_RUSTFLAGS} -C target-feature=+altivec"
+        export RUSTFLAGS="${RUSTFLAGS} -C target-feature=+altivec"
         cargo_test "${PROFILE}"
 
-        export RUSTFLAGS="${OLD_RUSTFLAGS} -C target-feature=+vsx"
+        export RUSTFLAGS="${RUSTFLAGS} -C target-feature=+vsx"
+        cargo_test "${PROFILE}"
+        ;;
+    powerpc*)
+        # qemu has a bug in PPC32 which leads to a crash when compiled with `vsx`
+        export RUSTFLAGS="${RUSTFLAGS} -C target-feature=+altivec"
         cargo_test "${PROFILE}"
         ;;
 
diff --git a/library/stdarch/crates/stdarch-verify/tests/x86-intel.rs b/library/stdarch/crates/stdarch-verify/tests/x86-intel.rs
index cb772ac8822..6719c066083 100644
--- a/library/stdarch/crates/stdarch-verify/tests/x86-intel.rs
+++ b/library/stdarch/crates/stdarch-verify/tests/x86-intel.rs
@@ -749,7 +749,8 @@ fn equate(
             &Type::PrimUnsigned(32),
             "unsigned __int32" | "unsigned int" | "unsigned long" | "const unsigned int",
         ) => {}
-        (&Type::PrimUnsigned(64), "unsigned __int64" | "size_t") => {}
+        (&Type::PrimUnsigned(64), "unsigned __int64") => {}
+        (&Type::PrimUnsigned(SS), "size_t") => {}
 
         (&Type::M128, "__m128") => {}
         (&Type::M128BH, "__m128bh") => {}