The only way errorJobs ever gets filled is by engine.c
around line 680 with a snippet that reads


                        if (!keepgoing) {
                                if (!silent)
                                        printf("\n");
                                job->next = errorJobs;
                                errorJobs = job;
                                /* XXX don't free the command */
                                return;
                        }


Index: job.c
===================================================================
RCS file: /cvs/src/usr.bin/make/job.c,v
retrieving revision 1.144
diff -u -p -r1.144 job.c
--- job.c       31 Dec 2019 13:59:14 -0000      1.144
+++ job.c       4 Jan 2020 12:14:50 -0000
@@ -546,8 +547,7 @@ postprocess_job(Job *job)
        } else if (job->exit_type != JOB_EXIT_OKAY && keepgoing)
                free(job);
 
-       if (errorJobs != NULL && !keepgoing &&
-           aborting != ABORT_INTERRUPT)
+       if (errorJobs != NULL && aborting != ABORT_INTERRUPT)
                aborting = ABORT_ERROR;
 
        if (aborting == ABORT_ERROR && DEBUG(QUICKDEATH))

Reply via email to