From: Joel Rosdahl Date: Mon, 5 Feb 2024 18:51:49 +0000 (+0100) Subject: fix: Fix MSVC crash when using /Zi /Fddebug.pdb X-Git-Tag: v4.10~106 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=02d8748a816c8913a5b973b4b0661f5ee6124ded;p=thirdparty%2Fccache.git fix: Fix MSVC crash when using /Zi /Fddebug.pdb With /Zi, MSVC starts a long-lived mspdbsrv.exe background process. The implementation of #1274 kills all processes created by ccache including mspdbsrv.exe, which can make cl.exe crash with this error message: fatal error C1090: PDB API call failed, error code '23': (0x000006BA) Fix this by setting JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK to only kill the compiler and not processes that the compiler creates. Fixes #1386 in a better way. --- diff --git a/src/execute.cpp b/src/execute.cpp index 0c51671bf..0f64f0a46 100644 --- a/src/execute.cpp +++ b/src/execute.cpp @@ -174,7 +174,8 @@ win32execute(const char* path, // process is killed. JOBOBJECT_EXTENDED_LIMIT_INFORMATION jobInfo = {}; jobInfo.BasicLimitInformation.LimitFlags = - JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; + JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE + | JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK; BOOL job_success = SetInformationJobObject( job, JobObjectExtendedLimitInformation, &jobInfo, sizeof(jobInfo)); if (!job_success) {