diff --git a/lib/BuildSystem/LaneBasedExecutionQueue.cpp b/lib/BuildSystem/LaneBasedExecutionQueue.cpp index 7f0e83ad..69bea512 100644 --- a/lib/BuildSystem/LaneBasedExecutionQueue.cpp +++ b/lib/BuildSystem/LaneBasedExecutionQueue.cpp @@ -159,10 +159,12 @@ class LaneBasedExecutionQueue : public BuildExecutionQueue { } posix_spawnattr_setsigdefault(&attributes, &mostSignals); #else - sigset_t allSignals; - sigfillset(&allSignals); - posix_spawnattr_setsigdefault(&attributes, &allSignals); -#endif + sigset_t mostSignals; + sigfillset(&mostSignals); + sigdelset(&mostSignals, SIGKILL); + sigdelset(&mostSignals, SIGSTOP); + posix_spawnattr_setsigdefault(&attributes, &mostSignals); +#endif // Establish a separate process group. posix_spawnattr_setpgroup(&attributes, 0); diff --git a/lib/Commands/NinjaBuildCommand.cpp b/lib/Commands/NinjaBuildCommand.cpp index 5b8ac09a..a00d7d8a 100644 --- a/lib/Commands/NinjaBuildCommand.cpp +++ b/lib/Commands/NinjaBuildCommand.cpp @@ -1169,9 +1169,11 @@ buildCommand(BuildContext& context, ninja::Command* command) { } posix_spawnattr_setsigdefault(&attributes, &mostSignals); #else - sigset_t allSignals; - sigfillset(&allSignals); - posix_spawnattr_setsigdefault(&attributes, &allSignals); + sigset_t mostSignals; + sigfillset(&mostSignals); + sigdelset(&mostSignals, SIGKILL); + sigdelset(&mostSignals, SIGSTOP); + posix_spawnattr_setsigdefault(&attributes, &mostSignals); #endif // Establish a separate process group.