Re: FYI: make's "max_jobs" needs to be separated from -j (now?)

From: Dan Mack <mack_at_macktronics.com>
Date: Wed, 02 Oct 2024 16:06:23 UTC
On Wed, 2 Oct 2024, Dan Mack wrote:

> On Wed, 2 Oct 2024, Warner Losh wrote:
>
>>        Ack, okay.   I can't trigger it with a fresh or my /usr/obj but in
>>        any
>>        event the error number 6 is probably referring to a path or
>>        directory
>>        missing while doing a parallel build given some input state :-)
>>
>>        #define ENXIO           6               /* Device not configured */
>>
>>
>>  ENXIO usually is reserved for hardware errors when a device disappears
>>  for block I/O contexts. So I'm not sure that this theory is so good.
>>
>>  But shell error exit statuses are largely independent of errnos.
>>
>>  Warner
>
> Thank you, I was indeed stretching to make error no 6 work for me in this 
> context by thinking it was really a mis identitied file or directory not 
> found.  However, if someone's going to return 6, then they'll return a 6, 
> nothing I can do about it other than expect it again sometime.
> :-)
>
> Dan

Ahh, it's possibly from bmake?  Which makes sense to me:

./contrib/bmake/job.c
         if (count == 1 && tok != '+') {
                 /* make being aborted - remove any other job tokens */
                 DEBUG2(JOB, "(%d) aborted by token %c\n", getpid(), tok);
                 while (read(tokenWaitJob.inPipe, &tok1, 1) == 1)
                         continue;
                 /* And put the stopper back */
                 while (write(tokenWaitJob.outPipe, &tok, 1) == -1 &&
                        errno == EAGAIN)
                         continue;
                 if (shouldDieQuietly(NULL, 1))
                         exit(6);        /* we aborted */
                 Fatal("A failure has been detected "
                       "in another branch of the parallel make");
         }

Dan