diff --git a/job.c b/job.c index 81248971..194d2576 100644 --- a/job.c +++ b/job.c @@ -774,9 +774,12 @@ reap_children (int block, int err) /* get exit data */ exit_code = process_exit_code (hPID); - if (werr) - fprintf (stderr, "make (e=%d): %s", exit_code, - map_windows32_error_to_string (exit_code)); + /* the extra tests of exit_code are here to prevent + map_windows32_error_to_string from calling 'fatal', + which will then call reap_children again */ + if (werr && exit_code > 0 && exit_code < WSABASEERR) + fprintf (stderr, "make (e=%d): %s", exit_code, + map_windows32_error_to_string (exit_code)); /* signal */ exit_sig = process_signal (hPID);