• src/doors/syncscumm/build.bat

    From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Sat Jul 25 00:18:18 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/15985e829639c90cf336f262
    Modified Files:
    src/doors/syncscumm/build.bat
    Log Message:
    syncscumm: rebuild create_project.exe on every build

    The Win32 build failed at project generation:

    [build] Generating MSVC project files (create_project --termgfx) ...
    ERROR: Unknown parameter "--termgfx"

    create_project is built from the vendored ScummVM sources, which carry a
    local patch adding that flag, but build.bat only built it when the .exe did
    not already exist. A copy produced before df6c0f44e0 (saver-19-week) --
    which renamed the flag from --synchronet -- was therefore reused against sources that no longer offered it. The error names the flag rather than
    the stale tool, pointing away from the cause.

    Build it unconditionally; CMake's own dependency check keeps the
    up-to-date case cheap. The comment above it still called the patch by the flag's old name.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 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
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)