-C Fix\sa\spossible\sprintf()\sof\sa\sNULL\sstring\sin\sfuzzcheck.\s\s(Passing\sa\sNULL\sto\n"%s"\sin\sSQLite's\sinternal\sprintf()\sprints\sthe\stext\n"NULL",\sbut\sit\sapparently\ssegfaults\sglibc.\s\sWhatever.)\n[forum:/forumpost/e07d56579b|Forum\spost\se07d56579b].
-D 2025-08-05T23:01:31.334
+C Add\sa\sscript\sto\sbuild\sARM64EC\sbinaries\son\sWindows11\sfor\sARM64.
+D 2025-08-06T12:43:06.426
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F tool/mksrczip.tcl 81efd9974dbb36005383f2cd655520057a2ae5aa85ac2441a80c7c28f803ac52
F tool/mktoolzip.tcl c9f388b2b0751982aef29a0c1d80f7959dbe38065ebb4421c39844e92622b086
F tool/mkvsix.tcl 67b40996a50f985a573278eea32fc5a5eb6110bdf14d33f1d8086e48c69e540a
+F tool/mkwinarm64ec.tcl c6fb6ca0311d186717e10de4671d3b7f733de77dcc3ab4194db9eebaed9134d4
F tool/offsets.c 8ed2b344d33f06e71366a9b93ccedaa38c096cc1dbd4c3c26ad08c6115285845
F tool/omittest-msvc.tcl d6b8f501ac1d7798c4126065030f89812379012cad98a1735d6d7221492abc08
F tool/omittest.tcl bec70ef0e16255c8d9eb06ecd7edf823c07a60a836186cdbce3528fb34b67995
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P ae9d7c9c922bb241363aa690b42b9664c4ad6e76ed5ce474daf1ab44461bc6a3
-R 8b47b9bd61b54c94afdf5fabe8653f59
+P 4ec69baf4f2a75585b92388cbc352836116381dce3f2d44a3b0f7d3360a17cf0
+R a564d6d7434fe8725c39442de9668b7a
U drh
-Z bbf4b84c82e3def5532a80b930cdbf65
+Z e0b59ca34b9c8462da51eecece7aeb91
# Remove this line to create a well-formed Fossil manifest.
--- /dev/null
+# Script to build ARM64-EC binaries on Windows.
+#
+# Run from the top-level of a check-out, on a Windows11 ARM machine that
+# has Fossil installed, using a command like this:
+#
+# tclsh tool/mmkwinarm64ec.tcl
+#
+# Output will be a file named:
+#
+# sqlite-win-arm64ec-3MMPP00.zip
+#
+# Where MM is the minor version number and PP is that patch level.
+#
+puts "Running nmake..."
+flush stdout
+exec nmake /f Makefile.msc "PLATFORM=ARM64EC" "BCC=cl -nologo -arm64EC" "TCC=cl -nologo -arm64EC -I." "CFLAGS=-nologo -arm64EC -I." clean sqlite3.exe sqldiff.exe sqlite3_rsync.exe sqlite3.dll >@ stdout 2>@ stderr
+
+proc check-type {file} {
+ set in [open "| link /dump /headers $file" rb]
+ set txt [read $in]
+ close $in
+ if {![string match {*8664 machine (x64) (ARM64X)*} $txt]} {
+ puts "$file is not an ARM64-EC binary"
+ puts "OUTPUT:\n$txt"
+ flush stdout
+ exit 1
+ }
+ puts "Confirmed: $file is an ARM64-EC binary"
+}
+check-type sqlite3.exe
+check-type sqldiff.exe
+check-type sqlite3_rsync.exe
+check-type sqlite3.dll
+
+set in [open VERSION rb]
+set VERSION [read $in]
+close $in
+regexp {3.(\d+).(\d+)} $VERSION all minor patch
+set filename [format sqlite-win-arm64ec-3%02d%02d00 $minor $patch]
+
+puts "Constructing $filename..."
+exec fossil test-filezip $filename sqlite3.def sqlite3.dll sqlite3.exe sqldiff.exe sqlite3_rsync.exe >@ stdout 2>@ stderr
+puts "$filename: [file size $filename] bytes"
+exec fossil test-filezip -l $filename >@ stdout 2>@ stderr