• src/doors/syncscumm/build.bat

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tue Aug 25 22:05:21 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/987bec6be928b0de24aa46ed
    Modified Files:
    src/doors/syncscumm/build.bat
    Log Message:
    syncscumm: build with the 64-bit MSBuild

    build.bat picked C:\...\MSBuild\Current\Bin\MSBuild.exe, which is a 32-bit process -- and so is every worker node it spawns. This solution builds nine projects under /m, each running cl /MP, and a node's 32-bit address space
    does not survive that: once the .NET JIT can no longer allocate, it fails whichever method it happens to be compiling with

    System.InvalidProgramException: JIT Compiler encountered an internal
    limitation.

    Which method that is varies per run, so a single exhaustion produced a different error every time and the CI failures read as unrelated flakes: the
    CL task failing in PostExecuteTool, the LIB task failing to instantiate, a compiled Regex inside MSBuild's own Expander, vcpkg's inline GetGlobalProperties task "not found", and bare "MSB4166: Child node N exited prematurely". windows-x86 [syncscumm] failed this way intermittently and
    was the only job on that runner ever to fail -- it is the only build here
    big enough to run a node out of address space.

    Prefer Bin\amd64\MSBuild.exe, falling back to the 32-bit one if no installed
    VS 2022 edition ships it. Same MSBuild, 64-bit address space. This is the failure msvc\Directory.Build.props already fixes one layer down for the compiler itself (PreferredToolArchitecture=x64, after the 32-bit cl.exe host ran out of address space under /MP); MSBuild needed the same treatment.

    Introduced in 745c1c542b, which added this build.

    Reproduced locally: a clean build.bat run under the 32-bit MSBuild died with the CL and LIB tasks both throwing InvalidProgramException, and under
    Bin\amd64 the same tree builds through to build-msvc\Release\syncscumm.exe.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KvZbcp3SQ7xt7bgpRRxvpg

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net