From 42c9472b157fd6e915367904069ac478cbe0ae26 Mon Sep 17 00:00:00 2001 From: tebako-ci Date: Tue, 22 Sep 2026 14:43:56 +0800 Subject: [PATCH] ci: spec22-gems msys harness roots the toolchain bin at the msys mount MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The toolchain-bin default spelled the setup-msys2 install root as /d/a/_temp/msys64 — true on the x64 runners, false on windows-11-arm, whose workspace and toolcache live on C:. The third arm64 dogfood (run 35690023046) showed it exactly: the gem-install PATH carried D:\a\_temp\msys64\clangarm64\bin (nonexistent) while make resolved under C:\a\_temp\msys64\usr\bin, so mkmf's recorded clang++ went ENOENT and sassc's objects died with make error 127. The msys2 shell mounts its install root at /, so //bin resolves the same directory on any drive layout and still rides the conv_envvar conversion into the native spawns. UCRT64_BIN keeps its name and its override contract; only the default changes. --- ci/spec22-gems/run-msys.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ci/spec22-gems/run-msys.sh b/ci/spec22-gems/run-msys.sh index ba11cca..eb2b402 100755 --- a/ci/spec22-gems/run-msys.sh +++ b/ci/spec22-gems/run-msys.sh @@ -35,9 +35,9 @@ # Overridable: # SCRATCH (default: /tmp/spec22-gems-msys-scratch-; # POSIX spelling — it rides the conv_envvars below) -# UCRT64_BIN (default: /d/a/_temp/msys64//bin — the -# setup-msys2 location, toolchain per the arch detected -# below: ucrt64 on x64, clangarm64 on arm64; the +# UCRT64_BIN (default: //bin — POSIX spelling off the +# msys2 install-root mount, toolchain per the arch +# detected below: ucrt64 on x64, clangarm64 on arm64; the # gem-install leg's PATH source for gcc/make, exactly what # the factory builds with; # POSIX spelling — it rides PATH, a conv_envvar) @@ -143,7 +143,11 @@ case "$pkg_stem" in *-windows-ucrt64) CPU_TAG=x64; MSYS_TOOLCHAIN=ucrt64 ;; *) die "no arch-readable runtime exe under $RUNTIME_PKG_DIR (tebako-runtime-*-windows-ucrt64|windows-ucrt-arm64 expected)" ;; esac -UCRT64_BIN="${UCRT64_BIN:-/d/a/_temp/msys64/$MSYS_TOOLCHAIN/bin}" +# POSIX spelling — the msys2 shell mounts its install root at /, so +# //bin resolves on any runner drive layout (the absolute +# /d/a/_temp/msys64 spelling broke on windows-11-arm, whose workspace +# and toolcache live on C: — the third arm64 dogfood's clang++ ENOENT). +UCRT64_BIN="${UCRT64_BIN:-/$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