• src/sbbs3/build.bat

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Jun 20 18:54:51 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/baa8e3884e651aec34ca94b9
    Modified Files:
    src/sbbs3/build.bat
    Log Message:
    build: use x64-hosted compiler (PreferredToolArchitecture=x64) on Windows

    The 32-bit-hosted CL.exe (HostX86\x86) intermittently crashed with
    0xC0000005 (STATUS_ACCESS_VIOLATION) on the parallel Windows GitLab build
    -- e.g. job 1547029, where CL.exe died compiling upgrade_to_v319.vcxproj.
    The crash is in the compiler front-end itself, not our code, and lands on
    a random source file each run: the classic symptom of the 32-bit host exhausting its ~2GB user address space under a loaded parallel build.

    Passing PreferredToolArchitecture=x64 as a solution-wide global property switches CL.exe to the x64-hosted, x86-targeting cross-compiler
    (HostX64\x86). Output is identical (still /MACHINE:X86, /arch:IA32) but
    the compiler runs as a 64-bit process with no 2GB ceiling. Set on the
    msbuild command line (not a .vcxproj/Directory.Build) so it is a global property guaranteed visible before Cpp.Default.props selects the tool architecture, and so it also covers the sibling xpdev/smblib libs.

    Follow-on to the mspdbsrv (266083317) and LTCG mitigations in Directory.Build.targets.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

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