From aa4cfea81bed597fbc897ffa17b5c7121cd1a911 Mon Sep 17 00:00:00 2001 From: Alex Vanderveen Date: Wed, 30 Sep 2026 20:38:18 -0400 Subject: [PATCH] bios fingerprint: hash sources with carriage returns stripped Git for Windows checks text files out with CRLF, so the windows-2022 release job hashed a byte-identical tree to a different value and BIOS_STALE_FATAL refused the committed backends there while Linux and macOS passed. Stripping CR before hashing makes the fingerprint line-ending independent (verified: an LF tree and a CRLF copy of it now agree). Stamps rewritten to the new canonical value; the generated C is unchanged. Co-Authored-By: Claude Fable 5.1 --- generated/OpenBIOS.emitter.sha | 2 +- generated/SCPH1001.emitter.sha | 2 +- tools/bios_emitter_fingerprint.sh | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/generated/OpenBIOS.emitter.sha b/generated/OpenBIOS.emitter.sha index b58203d3..542f8eee 100644 --- a/generated/OpenBIOS.emitter.sha +++ b/generated/OpenBIOS.emitter.sha @@ -1 +1 @@ -2a15415fec7c3930dd2d7548cb60d8a73d8988e9a86f5fe8d5bc237037e37631 +5f69759d2f0a66ea1014b64a159f2f44fe3f79447972521209fb266b7e20e1de diff --git a/generated/SCPH1001.emitter.sha b/generated/SCPH1001.emitter.sha index 77a0c8a4..b0874169 100644 --- a/generated/SCPH1001.emitter.sha +++ b/generated/SCPH1001.emitter.sha @@ -1 +1 @@ -97ed8bc7144f115ede5c499441c1d2ef0c65d31c67b1f3eb33f48c281a1bb787 +439e85a797f227c8adbc8445832bb45438f357af54ff1ba834302c32003ad12e diff --git a/tools/bios_emitter_fingerprint.sh b/tools/bios_emitter_fingerprint.sh index d2ad8222..31acef4d 100755 --- a/tools/bios_emitter_fingerprint.sh +++ b/tools/bios_emitter_fingerprint.sh @@ -66,6 +66,11 @@ for f in "${FILES[@]}"; do [ -f "$f" ] && present+=("$f"); done # records with a relative path while runtime.cmake recomputes with an absolute # one, and every configure read as STALE with a byte-identical tree. The array # order is defined by this script alone, so it is stable across spellings. +# CR-stripped: Git for Windows checks text files out with CRLF (core.autocrlf +# defaults to true on the windows-* runners), and the same source hashed +# differently there than on the developer's LF checkout -- every Windows CI +# configure read a byte-identical tree as STALE. Stripping CR is a no-op for an +# LF file, so stamps written before this line stay valid. for f in "${present[@]}"; do - sha256sum < "$f" + tr -d '\r' < "$f" | sha256sum done | sha256sum | awk '{print $1}'