authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-08 14:52:21+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-10-08 14:52:21+02:00
log8d97f05662dcae88bde353224d97a2c72b93bac5
tree6d2a8850cac5dd5ad32fb35cf7365733d9a3cb9e
parent2b924667780402de0241c4d60c769cb497f45c0b
parent3a383661efd7d8b1dda4893d6ed26a046648ed6e
signature Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

Merge branch 'riscv-ci'


8 files changed, 135 insertions(+), 39 deletions(-)

.forgejo/workflows/ci.yaml+21
......@@ -161,6 +161,27 @@ jobs:
161161 run: sh ci/powerpc64le-linux-release.sh
162162 timeout-minutes: 240
163163
164 riscv64-linux-debug:
165 runs-on: [self-hosted, riscv64-linux]
166 steps:
167 - name: Checkout
168 uses: https://codeberg.org/ziglang/checkout@19af6bac491e2534a4687a50ee84fa7f13258d28
169 with:
170 fetch-depth: 0
171 - name: Build and Test
172 run: sh ci/riscv64-linux-debug.sh
173 timeout-minutes: 420
174 riscv64-linux-release:
175 runs-on: [self-hosted, riscv64-linux]
176 steps:
177 - name: Checkout
178 uses: https://codeberg.org/ziglang/checkout@19af6bac491e2534a4687a50ee84fa7f13258d28
179 with:
180 fetch-depth: 0
181 - name: Build and Test
182 run: sh ci/riscv64-linux-release.sh
183 timeout-minutes: 360
184
164185 s390x-linux-debug:
165186 runs-on: [self-hosted, s390x-linux]
166187 steps:
ci/aarch64-openbsd-debug.sh+3-1
......@@ -50,6 +50,8 @@ stage3-debug/bin/zig build install test docs \
5050 -Duse-zig-libcxx \
5151 -Denable-llvm \
5252 -Dno-lib \
53 -Dskip-non-native
53 -Dskip-non-native \
54 -Dskip-compile-errors \
55 -Dskip-single-threaded
5456
5557stage4-debug/bin/zig test ../test/behavior.zig
ci/aarch64-openbsd-release.sh+3-1
......@@ -52,7 +52,9 @@ stage3-release/bin/zig build install test docs \
5252 -Duse-zig-libcxx \
5353 -Denable-llvm \
5454 -Dno-lib \
55 -Dskip-non-native
55 -Dskip-non-native \
56 -Dskip-compile-errors \
57 -Dskip-single-threaded
5658
5759# Ensure that the fuzzer at least compiles.
5860# https://codeberg.org/ziglang/zig/issues/30728
ci/riscv64-linux-debug.sh+3-1
......@@ -50,6 +50,8 @@ stage3-debug/bin/zig build install test docs \
5050 -Duse-zig-libcxx \
5151 -Denable-llvm \
5252 -Dno-lib \
53 -Dskip-non-native
53 -Dskip-non-native \
54 -Dskip-compile-errors \
55 -Dskip-single-threaded
5456
5557stage4-debug/bin/zig test ../test/behavior.zig
ci/riscv64-linux-release.sh+3-1
......@@ -52,7 +52,9 @@ stage3-release/bin/zig build install test docs \
5252 -Duse-zig-libcxx \
5353 -Denable-llvm \
5454 -Dno-lib \
55 -Dskip-non-native
55 -Dskip-non-native \
56 -Dskip-compile-errors \
57 -Dskip-single-threaded
5658
5759# Ensure that the fuzzer at least compiles.
5860stage3-release/bin/zig build test-std --fuzz=1K -Dno-lib -Dfuzz-only -Doptimize=ReleaseSafe
lib/std/crypto/hybrid_kem.zig+61
......@@ -13,6 +13,7 @@
1313//! The combiner uses the C2PRI construction to derive the final shared secret
1414//! from the component shared secrets, ciphertext, and public key.
1515
16const builtin = @import("builtin");
1617const std = @import("std");
1718const crypto = std.crypto;
1819const fmt = std.fmt;
......@@ -370,6 +371,8 @@ test "MLKEM768-X25519 basic round trip" {
370371}
371372
372373test "MLKEM768-X25519 test vector 0" {
374 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
375
373376 var seed: [32]u8 = undefined;
374377 var expected_ek: [1216]u8 = undefined;
375378 var randomness: [64]u8 = undefined;
......@@ -394,6 +397,8 @@ test "MLKEM768-X25519 test vector 0" {
394397}
395398
396399test "MLKEM768-X25519 test vector 1" {
400 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
401
397402 var seed: [32]u8 = undefined;
398403 var expected_ek: [1216]u8 = undefined;
399404 var randomness: [64]u8 = undefined;
......@@ -418,6 +423,8 @@ test "MLKEM768-X25519 test vector 1" {
418423}
419424
420425test "MLKEM768-X25519 test vector 2" {
426 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
427
421428 var seed: [32]u8 = undefined;
422429 var expected_ek: [1216]u8 = undefined;
423430 var randomness: [64]u8 = undefined;
......@@ -442,6 +449,8 @@ test "MLKEM768-X25519 test vector 2" {
442449}
443450
444451test "MLKEM768-X25519 test vector 3" {
452 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
453
445454 var seed: [32]u8 = undefined;
446455 var expected_ek: [1216]u8 = undefined;
447456 var randomness: [64]u8 = undefined;
......@@ -466,6 +475,8 @@ test "MLKEM768-X25519 test vector 3" {
466475}
467476
468477test "MLKEM768-X25519 test vector 4" {
478 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
479
469480 var seed: [32]u8 = undefined;
470481 var expected_ek: [1216]u8 = undefined;
471482 var randomness: [64]u8 = undefined;
......@@ -490,6 +501,8 @@ test "MLKEM768-X25519 test vector 4" {
490501}
491502
492503test "MLKEM768-X25519 test vector 5" {
504 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
505
493506 var seed: [32]u8 = undefined;
494507 var expected_ek: [1216]u8 = undefined;
495508 var randomness: [64]u8 = undefined;
......@@ -514,6 +527,8 @@ test "MLKEM768-X25519 test vector 5" {
514527}
515528
516529test "MLKEM768-X25519 test vector 6" {
530 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
531
517532 var seed: [32]u8 = undefined;
518533 var expected_ek: [1216]u8 = undefined;
519534 var randomness: [64]u8 = undefined;
......@@ -538,6 +553,8 @@ test "MLKEM768-X25519 test vector 6" {
538553}
539554
540555test "MLKEM768-X25519 test vector 7" {
556 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
557
541558 var seed: [32]u8 = undefined;
542559 var expected_ek: [1216]u8 = undefined;
543560 var randomness: [64]u8 = undefined;
......@@ -562,6 +579,8 @@ test "MLKEM768-X25519 test vector 7" {
562579}
563580
564581test "MLKEM768-X25519 test vector 8" {
582 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
583
565584 var seed: [32]u8 = undefined;
566585 var expected_ek: [1216]u8 = undefined;
567586 var randomness: [64]u8 = undefined;
......@@ -586,6 +605,8 @@ test "MLKEM768-X25519 test vector 8" {
586605}
587606
588607test "MLKEM768-X25519 test vector 9" {
608 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
609
589610 var seed: [32]u8 = undefined;
590611 var expected_ek: [1216]u8 = undefined;
591612 var randomness: [64]u8 = undefined;
......@@ -610,6 +631,8 @@ test "MLKEM768-X25519 test vector 9" {
610631}
611632
612633test "MLKEM768-P256 test vector 0" {
634 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
635
613636 var seed: [32]u8 = undefined;
614637 var expected_ek: [1249]u8 = undefined;
615638 var randomness: [160]u8 = undefined;
......@@ -634,6 +657,8 @@ test "MLKEM768-P256 test vector 0" {
634657}
635658
636659test "MLKEM768-P256 test vector 1" {
660 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
661
637662 var seed: [32]u8 = undefined;
638663 var expected_ek: [1249]u8 = undefined;
639664 var randomness: [160]u8 = undefined;
......@@ -658,6 +683,8 @@ test "MLKEM768-P256 test vector 1" {
658683}
659684
660685test "MLKEM768-P256 test vector 2" {
686 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
687
661688 var seed: [32]u8 = undefined;
662689 var expected_ek: [1249]u8 = undefined;
663690 var randomness: [160]u8 = undefined;
......@@ -682,6 +709,8 @@ test "MLKEM768-P256 test vector 2" {
682709}
683710
684711test "MLKEM768-P256 test vector 3" {
712 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
713
685714 var seed: [32]u8 = undefined;
686715 var expected_ek: [1249]u8 = undefined;
687716 var randomness: [160]u8 = undefined;
......@@ -706,6 +735,8 @@ test "MLKEM768-P256 test vector 3" {
706735}
707736
708737test "MLKEM768-P256 test vector 4" {
738 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
739
709740 var seed: [32]u8 = undefined;
710741 var expected_ek: [1249]u8 = undefined;
711742 var randomness: [160]u8 = undefined;
......@@ -730,6 +761,8 @@ test "MLKEM768-P256 test vector 4" {
730761}
731762
732763test "MLKEM768-P256 test vector 5" {
764 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
765
733766 var seed: [32]u8 = undefined;
734767 var expected_ek: [1249]u8 = undefined;
735768 var randomness: [160]u8 = undefined;
......@@ -754,6 +787,8 @@ test "MLKEM768-P256 test vector 5" {
754787}
755788
756789test "MLKEM768-P256 test vector 6" {
790 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
791
757792 var seed: [32]u8 = undefined;
758793 var expected_ek: [1249]u8 = undefined;
759794 var randomness: [160]u8 = undefined;
......@@ -778,6 +813,8 @@ test "MLKEM768-P256 test vector 6" {
778813}
779814
780815test "MLKEM768-P256 test vector 7" {
816 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
817
781818 var seed: [32]u8 = undefined;
782819 var expected_ek: [1249]u8 = undefined;
783820 var randomness: [160]u8 = undefined;
......@@ -802,6 +839,8 @@ test "MLKEM768-P256 test vector 7" {
802839}
803840
804841test "MLKEM768-P256 test vector 8" {
842 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
843
805844 var seed: [32]u8 = undefined;
806845 var expected_ek: [1249]u8 = undefined;
807846 var randomness: [160]u8 = undefined;
......@@ -826,6 +865,8 @@ test "MLKEM768-P256 test vector 8" {
826865}
827866
828867test "MLKEM768-P256 test vector 9" {
868 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
869
829870 var seed: [32]u8 = undefined;
830871 var expected_ek: [1249]u8 = undefined;
831872 var randomness: [160]u8 = undefined;
......@@ -850,6 +891,8 @@ test "MLKEM768-P256 test vector 9" {
850891}
851892
852893test "MLKEM1024-P384 test vector 0" {
894 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
895
853896 var seed: [32]u8 = undefined;
854897 var expected_ek: [1665]u8 = undefined;
855898 var randomness: [80]u8 = undefined;
......@@ -874,6 +917,8 @@ test "MLKEM1024-P384 test vector 0" {
874917}
875918
876919test "MLKEM1024-P384 test vector 1" {
920 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
921
877922 var seed: [32]u8 = undefined;
878923 var expected_ek: [1665]u8 = undefined;
879924 var randomness: [80]u8 = undefined;
......@@ -898,6 +943,8 @@ test "MLKEM1024-P384 test vector 1" {
898943}
899944
900945test "MLKEM1024-P384 test vector 2" {
946 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
947
901948 var seed: [32]u8 = undefined;
902949 var expected_ek: [1665]u8 = undefined;
903950 var randomness: [80]u8 = undefined;
......@@ -922,6 +969,8 @@ test "MLKEM1024-P384 test vector 2" {
922969}
923970
924971test "MLKEM1024-P384 test vector 3" {
972 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
973
925974 var seed: [32]u8 = undefined;
926975 var expected_ek: [1665]u8 = undefined;
927976 var randomness: [80]u8 = undefined;
......@@ -946,6 +995,8 @@ test "MLKEM1024-P384 test vector 3" {
946995}
947996
948997test "MLKEM1024-P384 test vector 4" {
998 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
999
9491000 var seed: [32]u8 = undefined;
9501001 var expected_ek: [1665]u8 = undefined;
9511002 var randomness: [80]u8 = undefined;
......@@ -970,6 +1021,8 @@ test "MLKEM1024-P384 test vector 4" {
9701021}
9711022
9721023test "MLKEM1024-P384 test vector 5" {
1024 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
1025
9731026 var seed: [32]u8 = undefined;
9741027 var expected_ek: [1665]u8 = undefined;
9751028 var randomness: [80]u8 = undefined;
......@@ -994,6 +1047,8 @@ test "MLKEM1024-P384 test vector 5" {
9941047}
9951048
9961049test "MLKEM1024-P384 test vector 6" {
1050 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
1051
9971052 var seed: [32]u8 = undefined;
9981053 var expected_ek: [1665]u8 = undefined;
9991054 var randomness: [80]u8 = undefined;
......@@ -1018,6 +1073,8 @@ test "MLKEM1024-P384 test vector 6" {
10181073}
10191074
10201075test "MLKEM1024-P384 test vector 7" {
1076 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
1077
10211078 var seed: [32]u8 = undefined;
10221079 var expected_ek: [1665]u8 = undefined;
10231080 var randomness: [80]u8 = undefined;
......@@ -1042,6 +1099,8 @@ test "MLKEM1024-P384 test vector 7" {
10421099}
10431100
10441101test "MLKEM1024-P384 test vector 8" {
1102 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
1103
10451104 var seed: [32]u8 = undefined;
10461105 var expected_ek: [1665]u8 = undefined;
10471106 var randomness: [80]u8 = undefined;
......@@ -1066,6 +1125,8 @@ test "MLKEM1024-P384 test vector 8" {
10661125}
10671126
10681127test "MLKEM1024-P384 test vector 9" {
1128 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
1129
10691130 var seed: [32]u8 = undefined;
10701131 var expected_ek: [1665]u8 = undefined;
10711132 var randomness: [80]u8 = undefined;
lib/std/crypto/ml_kem.zig+8
......@@ -1522,6 +1522,8 @@ test "Compression" {
15221522}
15231523
15241524test "noise" {
1525 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
1526
15251527 var seed: [32]u8 = undefined;
15261528 for (&seed, 0..) |*s, i| {
15271529 s.* = @as(u8, @intCast(i));
......@@ -1655,14 +1657,20 @@ test "Test happy flow" {
16551657// Code to test NIST Known Answer Tests (KAT), see PQCgenKAT.c.
16561658
16571659test "NIST KAT test d00.Kyber512" {
1660 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
1661
16581662 try testNistKat(d00.Kyber512, "e9c2bd37133fcb40772f81559f14b1f58dccd1c816701be9ba6214d43baf4547");
16591663}
16601664
16611665test "NIST KAT test d00.Kyber1024" {
1666 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
1667
16621668 try testNistKat(d00.Kyber1024, "89248f2f33f7f4f7051729111f3049c409a933ec904aedadf035f30fa5646cd5");
16631669}
16641670
16651671test "NIST KAT test d00.Kyber768" {
1672 if (builtin.zig_backend == .stage2_llvm and builtin.target.cpu.arch.isRiscv64()) return error.SkipZigTest; // https://codeberg.org/ziglang/zig/issues/37128
1673
16661674 try testNistKat(d00.Kyber768, "a1e122cad3c24bc51622e4c242d8b8acbcd3f618fee4220400605ca8f9ea02c2");
16671675}
16681676
test/tests.zig+33-35
......@@ -2323,38 +2323,38 @@ pub const debugger_matrix: []const RunnerTarget = &.{
23232323 },
23242324};
23252325
2326fn compatible32bitArch(host: *const std.Target) ?std.Target.Cpu.Arch {
2326fn supportedCompatArch(host: *const std.Target, arch: std.Target.Cpu.Arch) bool {
23272327 return switch (host.os.tag) {
23282328 .freebsd => switch (host.cpu.arch) {
2329 .aarch64 => .arm,
2330 .powerpc64 => .powerpc,
2331 else => null,
2329 .aarch64 => arch == .arm,
2330 else => false,
23322331 },
23332332 .illumos => switch (host.cpu.arch) {
2334 .x86_64 => .x86,
2335 else => null,
2333 .x86_64 => arch == .x86,
2334 else => false,
23362335 },
23372336 .linux => switch (host.cpu.arch) {
2338 .aarch64 => .arm,
2339 .aarch64_be => .armeb,
2340 .mips64 => .mips,
2341 .mips64el => .mipsel,
2342 .powerpc64 => .powerpc,
2343 .sparc64 => .sparc,
2344 .x86_64 => .x86,
2345 else => null,
2337 .aarch64 => arch == .arm or arch == .thumb,
2338 .aarch64_be => arch == .armeb or arch == .thumbeb,
2339 .mips64 => arch == .mips,
2340 .mips64el => arch == .mipsel,
2341 .powerpc64 => arch == .powerpc,
2342 .riscv64 => arch == .riscv32,
2343 .sparc64 => arch == .sparc,
2344 .x86_64 => arch == .x86,
2345 else => false,
23462346 },
23472347 .netbsd => switch (host.cpu.arch) {
2348 .riscv64 => .riscv32,
2349 .sparc64 => .sparc,
2350 .x86_64 => .x86,
2351 else => null,
2348 .riscv64 => arch == .riscv32,
2349 .sparc64 => arch == .sparc,
2350 .x86_64 => arch == .x86,
2351 else => false,
23522352 },
23532353 .windows => switch (host.cpu.arch) {
2354 .x86_64 => .x86,
2355 else => null,
2354 .x86_64 => arch == .x86,
2355 else => false,
23562356 },
2357 else => null,
2357 else => false,
23582358 };
23592359}
23602360
......@@ -2362,15 +2362,22 @@ pub fn isNative(actual_target: *const std.Build.ResolvedTarget, host: *const std
23622362 if (actual_target.query.isNative()) return true;
23632363 const actual = &actual_target.result;
23642364
2365 if (actual.cpu.arch != host.cpu.arch and
2366 actual.cpu.arch != compatible32bitArch(host))
2367 {
2365 if (actual.cpu.arch != host.cpu.arch and !supportedCompatArch(host, actual.cpu.arch))
23682366 return false;
2369 }
23702367
23712368 if (actual.os.tag != host.os.tag)
23722369 return false;
23732370
2371 // This check is really only necessary for the case where `host.cpu.arch.isAarch64()` and
2372 // `actual.cpu.arch.isArm()`. As they are wholly separate `std.Target` families with their own
2373 // feature bits, the logic below would produce complete nonsense.
2374 //
2375 // This does mean that we aren't actually checking feature compatibility between these two
2376 // families even though we should. That's not a problem currently, but in the future, we may
2377 // need to add a special code path just for this specific case...
2378 if (actual.cpu.arch.family() != host.cpu.arch.family())
2379 return true;
2380
23742381 // Remove features that don't actually affect compatibility.
23752382 const irrelevant: std.Target.Cpu.Feature.Set = switch (host.cpu.arch) {
23762383 .x86_64 => std.Target.x86.featureSet(&.{
......@@ -2891,15 +2898,6 @@ fn addOneModuleTest(
28912898 const libc_suffix = if (test_target.link_libc == true) "-libc" else "";
28922899 const model_txt = target.cpu.model.name;
28932900
2894 // These emulated targets need a lot more RAM for unknown reasons.
2895 const max_rss = if (mem.eql(u8, options.name, "std") and
2896 (target.cpu.arch == .hexagon or
2897 (target.cpu.arch.isRISCV() and !resolved_target.query.isNative()) or
2898 target.cpu.arch.isWasm()))
2899 options.max_rss * 2
2900 else
2901 options.max_rss;
2902
29032901 const these_tests = b.addTest(.{
29042902 .root_module = b.createModule(.{
29052903 .root_source_file = b.path(options.root_src),
......@@ -2911,7 +2909,7 @@ fn addOneModuleTest(
29112909 .sanitize_thread = options.sanitize_thread,
29122910 .single_threaded = test_target.single_threaded,
29132911 }),
2914 .max_rss = max_rss,
2912 .max_rss = options.max_rss,
29152913 .filters = options.test_filters,
29162914 .use_llvm = test_target.use_llvm,
29172915 .use_lld = test_target.use_lld,