From 1580fa0a4bda870130e9d4187abb268c7b9db180 Mon Sep 17 00:00:00 2001 From: tebako-ci Date: Tue, 22 Sep 2026 14:17:11 +0800 Subject: [PATCH] ci: spec22-gems msys harness presses probe images in the leg's format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The three mkimage invocations hardcoded --format dwarfs. On the arm64 leg that fails by name: the windows/arm64 link unit is limnifs-only (clangarm64 has no native dwarfs-t), so its driver never mounts dwarfs bytes and the tfs CLI (v2.8.16) answers "mkimage --format dwarfs is not available on windows-arm64 ... use --format limnifs" โ€” the second arm64 dogfood's exit 1 (tebako-runtime-ruby run 35690023046, after the arch-detection fix carried staging and the bridge tree green). The press format now rides the same arch detection as the DLL naming: dwarfs on x64 (the x64 env image's format), limnifs on arm64. The setup image and both payload probes (materialized + negative oracle) share the one derivation, so the proof legs always mount the format the runtime under test actually ships. --- ci/spec22-gems/run-msys.sh | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ci/spec22-gems/run-msys.sh b/ci/spec22-gems/run-msys.sh index bbbc886..ba11cca 100755 --- a/ci/spec22-gems/run-msys.sh +++ b/ci/spec22-gems/run-msys.sh @@ -145,6 +145,17 @@ case "$pkg_stem" in esac UCRT64_BIN="${UCRT64_BIN:-/d/a/_temp/msys64/$MSYS_TOOLCHAIN/bin}" +# The probe images press in the format the leg's own driver mounts: +# dwarfs on x64 (the x64 env image's format), limnifs on arm64 โ€” the +# arm64 link unit is limnifs-only (clangarm64 has no native dwarfs-t), +# so its driver never mounts dwarfs bytes and the tfs CLI fails a +# dwarfs press there by name ("mkimage --format dwarfs is not available +# on windows-arm64"). +case "$MSYS_TOOLCHAIN" in + clangarm64) PRESS_FORMAT=limnifs ;; + *) PRESS_FORMAT=dwarfs ;; +esac + [ -x "$TFS_CLI" ] || [ -f "$TFS_CLI" ] || die "tfs CLI not at $TFS_CLI (download the tebako release's windows tfs.exe)" # -ucrt-ruby.dll โ€” ruby configure's RUBY_SO_NAME for a @@ -239,7 +250,7 @@ if [ ! -f "$SETUP_IMG" ] || [ "$SELF_DIR/fixtures/gem.rb" -nt "$SETUP_IMG" ] \ cp "$SELF_DIR/fixtures/gem.rb" "$SCRATCH/setup-tree/setup/" cp "$SELF_DIR/fixtures/envprobe.rb" "$SCRATCH/setup-tree/setup/" cp "$SELF_DIR/fixtures/pipeprobe.rb" "$SCRATCH/setup-tree/setup/" - "$TFS_CLI" mkimage --format dwarfs "$(w "$SCRATCH/setup-tree")" --output "$(w "$SETUP_IMG")" >/dev/null + "$TFS_CLI" mkimage --format "$PRESS_FORMAT" "$(w "$SCRATCH/setup-tree")" --output "$(w "$SETUP_IMG")" >/dev/null fi # --- 3.5 env diagnostic: Etc.sysconfdir under scrubbed envs ------------- @@ -494,11 +505,11 @@ if [ ! -f "$PAYLOAD_IMG" ] || [ ! -f "$PAYLOAD_IMG_NOMAT" ] \ cp "$SELF_DIR/fixtures/payload-manifest.yaml" "$PROBE_TREE/__tpkg__/manifest.yaml" stamp_library_aliases "$PROBE_TREE/__tpkg__/manifest.yaml" rm -f "$PAYLOAD_IMG" - "$TFS_CLI" mkimage --format dwarfs "$(w "$PROBE_TREE")" --output "$(w "$PAYLOAD_IMG")" >/dev/null + "$TFS_CLI" mkimage --format "$PRESS_FORMAT" "$(w "$PROBE_TREE")" --output "$(w "$PAYLOAD_IMG")" >/dev/null cp "$SELF_DIR/fixtures/payload-manifest-unmaterialized.yaml" "$PROBE_TREE/__tpkg__/manifest.yaml" stamp_library_aliases "$PROBE_TREE/__tpkg__/manifest.yaml" rm -f "$PAYLOAD_IMG_NOMAT" - "$TFS_CLI" mkimage --format dwarfs "$(w "$PROBE_TREE")" --output "$(w "$PAYLOAD_IMG_NOMAT")" >/dev/null + "$TFS_CLI" mkimage --format "$PRESS_FORMAT" "$(w "$PROBE_TREE")" --output "$(w "$PAYLOAD_IMG_NOMAT")" >/dev/null "$TFS_CLI" cat "$(w "$PAYLOAD_IMG")" /__tpkg__/manifest.yaml | grep -q "^materialize:" \ || die "the pressed image lost the materialize: key (spec 22 ยง4)" "$TFS_CLI" cat "$(w "$PAYLOAD_IMG_NOMAT")" /__tpkg__/manifest.yaml | grep -q "^materialize:" \