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 <noreply@anthropic.com>
This commit is contained in:
Alex Vanderveen
2026-09-30 20:38:18 -04:00
parent 34191cadcc
commit aa4cfea81b
3 changed files with 8 additions and 3 deletions
+1 -1
View File
@@ -1 +1 @@
2a15415fec7c3930dd2d7548cb60d8a73d8988e9a86f5fe8d5bc237037e37631
5f69759d2f0a66ea1014b64a159f2f44fe3f79447972521209fb266b7e20e1de
+1 -1
View File
@@ -1 +1 @@
97ed8bc7144f115ede5c499441c1d2ef0c65d31c67b1f3eb33f48c281a1bb787
439e85a797f227c8adbc8445832bb45438f357af54ff1ba834302c32003ad12e
+6 -1
View File
@@ -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}'