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