https://gitlab.synchro.net/main/sbbs/-/commit/bfa98ca23388299541a625d0
Modified Files:
src/doors/build.bat src/doors/clans-src/src/clans.props
Log Message:
doors/clans: build the Win32 output with the x64-hosted compiler
The Clans failed to build intermittently with an internal compiler error
in a UCRT header, landing on a different source file each run:
corecrt_wstdio.h(1777,37): fatal error C1001: Internal compiler error.
(compiler file 'msc1.cpp', line 1589)
The 32-bit hosted cl.exe runs out of its ~3 GB address space with sixteen projects compiling at once, so the failure moves around and often vanishes
on a straight retry. SyncRPG and SyncSCUMM already build their x86 output
with the x64-hosted cross-compiler for exactly this reason. Select it for
The Clans too, in the props sheet every project in clans.sln imports, so it applies whether the build comes from build.bat, MSBuild by hand, or the
IDE. The emitted code is unchanged x86.
On its own that makes every project fail instead with
TRK0002: Failed to execute command: "...HostX64\x86\CL.exe ..."
The parameter is incorrect.
because FileTracker cannot launch an x64 child from a 32-bit MSBuild
process. SyncSCUMM's props sheet answers this by switching access
tracking off outright, which forfeits the header-dependency data behind incremental builds. Do that only where it is actually needed -- when
MSBuild is a 32-bit process -- and have the doors build.bat prefer MSBuild\Current\Bin\amd64, where tracking works and an unchanged tree
relinks in seconds rather than recompiling all sixteen projects.
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net