Follow-up Comment #4, bug #40322 (project make): That is not what is supposed to happen.
When you press Ctrl-C, the SIGINT handler is invoked, this is the function fatal_error_signal defined on command.c. (Please verify that the signal handler is indeed invoked.) Since on Windows SIGINT handler is run by the system in a separate thread, the first thing Make does in fatal_error_signal is suspend the main thread, so the main job is stopped in its tracks. Then it blocks inside reap_children waiting for the child processes to exit, until all the child processes finish in one way or another. (The call to reap_children is made as long as at least one job slot is still active.) On Windows, reap_children calls process_wait_for_any, which waits (using WaitForMultipleObjects) for one or more sub-process handles to become signaled,and then processes the demise of whatever process this handle belonged to. So Make indeed does not kill the child processes, but it does wait for them all to exit, before proceeding. Now, it could be that in your case, the linker is not run directly by Make, but by some intermediary process, and that intermediary exits without waiting for the linker. Make doesn't know anything about its grandchildren processes, only about its immediate children. Is this the case? Otherwise, I don't see how things could go wrong, please try to investigate. Thanks. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?40322> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make