Ugh. This other permutation of the parallel make failure... make[5]: *** read jobs pipe: No such file or directory. Stop.
may not be easy to fix. The offending code seems to be in the section... #else /* Set interruptible system calls, and read() for a job token. */ set_child_handler_action_flags (1, waiting_jobs != NULL); got_token = read (job_rfd, &token, 1); saved_errno = errno; set_child_handler_action_flags (0, waiting_jobs != NULL); in job.c. As I understand this code, it is using its own interrupt handling setup in set_child_handler_action_flags(). and so the EINTRLOOP() macro fix would be inappropriate there. Sigh, On Wed, Oct 21, 2015 at 9:02 AM, Jack Howarth <howarth.at.f...@gmail.com> wrote: > It looks like we are still missing some instances of EINTRLOOP() macro > usage. The gcc5 build with fink make still fails with the proposed fix > starting at... > > make[5]: *** read jobs pipe: No such file or directory. Stop. > make[5]: *** Waiting for unfinished jobs.... > > and resulting in.... > > make: INTERNAL: Exiting with 1 jobserver tokens available; should be 8! > > I am certain that the issue is missing instances of EINTRLOOP() on file > i/o in make 4.x but we will just have to weed through all of the different > cases. This makes sense as the exact initial context of the make error does > vary across the different failing package builds but always ends in the > jobs being reduced to 1. The likely candidate for the failure with the gcc5 > build is the instance of... > > got_token = read (job_rfd, &token, 1); > > which is missing the EINTRLOOP() macro. > Jack > > On Tue, Oct 20, 2015 at 10:52 PM, Jack Howarth <howarth.at.f...@gmail.com> > wrote: > >> Of course the 10.12 should be 10.11 (doh). FYI, the original discussion >> of the requirement for the EINTRLOOP() macros can be found at... >> >> https://lists.gnu.org/archive/html/make-alpha/2001-05/msg00008.html >> >> On Tue, Oct 20, 2015 at 10:29 PM, Jack Howarth <howarth.at.f...@gmail.com >> > wrote: >> >>> FYI, I've also opened a bug report at... >>> >>> https://savannah.gnu.org/bugs/index.php?46261 >>> >>> and posted the proposed fix there as well. >>> >>> On Tue, Oct 20, 2015 at 10:16 PM, Jack Howarth < >>> howarth.at.f...@gmail.com> wrote: >>> >>>> The attached packaging adds the change... >>>> >>>> diff -uNr make-4.1.orig/main.c make-4.1/main.c >>>> --- make-4.1.orig/main.c 2014-10-05 12:24:51.000000000 -0400 >>>> +++ make-4.1/main.c 2015-10-20 22:08:00.000000000 -0400 >>>> @@ -3364,9 +3364,12 @@ >>>> #else >>>> /* Close the write side, so the read() won't hang. */ >>>> close (job_fds[1]); >>>> - >>>> - while (read (job_fds[0], &token, 1) == 1) >>>> + int r; >>>> + EINTRLOOP (r, read (job_fds[0], &token, 1)); >>>> + while (r == 1) { >>>> ++tcnt; >>>> + EINTRLOOP (r, read (job_fds[0], &token, 1)); >>>> + } >>>> #endif >>>> >>>> if (tcnt != master_job_slots) >>>> >>>> which seems to eliminate the build failures with make 4.1 on 10.12 here >>>> by adding the missing usage of the EINTRLOOP() on the read calls in main.c. >>>> Jack >>>> >>> >>> >> >
------------------------------------------------------------------------------
_______________________________________________ Fink-devel mailing list Fink-devel@lists.sourceforge.net List archive: http://news.gmane.org/gmane.os.apple.fink.devel Subscription management: https://lists.sourceforge.net/lists/listinfo/fink-devel