Re: [bug #46242] Race condition when input file is updated while compiling

2015-10-21 Thread Egmont Koblinger
On Tue, Oct 20, 2015 at 11:07 PM, Mike Shal wrote: if timestamp(foo.o) < timestamp(foo.c) {rebuild foo.o} > > to: > > if checksum(foo.c) != last_checksum(foo.c) {rebuild things that depend on > foo.c} > > But you can get pretty much all the same benefits without having to hash > everything just b

Re: [bug #46242] Race condition when input file is updated while compiling

2015-10-21 Thread David Boyce
On Tue, Oct 20, 2015 at 2:07 PM, Mike Shal wrote: > I would clarify that the benefit from using the technique in that article is > really because the rebuild algorithm is essentially changed from: > > if timestamp(foo.o) < timestamp(foo.c) {rebuild foo.o} > > to: > > if checksum(foo.c) != last_che

[bug #46261] missing usage of EINTRLOOP macro

2015-10-21 Thread Jack Howarth
Follow-up Comment #3, bug #46261 (project make): There seems to still be missing EINTRLOOP () macro usage on OS X 10.11. The gcc 5.2.0 parallel build still fails but the initial error in its case is... make[5]: *** read jobs pipe: No such file or directory. Stop. ...ending with... make: INTERN

[bug #46261] missing usage of EINTRLOOP macro

2015-10-21 Thread Jack Howarth
Follow-up Comment #5, bug #46261 (project make): The full error that we are seeing on OS X 10.11 under make 4.1 called from perl after a flock() is... make[5]: *** read jobs pipe: No such file or directory. Stop. make[5]: *** Waiting for unfinished jobs libtool: compile: /sw/src/fink.build/

[bug #46261] missing usage of EINTRLOOP macro

2015-10-21 Thread Jack Howarth
Follow-up Comment #6, bug #46261 (project make): How do we know that the earlier call to duplicate the file descriptor in the new_job() subroutine of job.c succeeds? /* Make sure we have a dup'd FD. */ if (job_rfd < 0) { DB (DB_JOBS, ("Duplicate the job FDn"

[bug #46261] missing usage of EINTRLOOP macro

2015-10-21 Thread Jack Howarth
Follow-up Comment #7, bug #46261 (project make): using EINTRLOOP(job_rfd, dup (job_fds[0])); instead of job_rfd = dup (job_fds[0]); in the new_job() subroutine of job.c results in a hang during the parallel build of gcc 5.2.0 rather than the previous error... make[5]: *** read jobs pipe: No

[bug #46261] missing usage of EINTRLOOP macro

2015-10-21 Thread Jack Howarth
Follow-up Comment #8, bug #46261 (project make): The remaining failure in the build of FSF gcc 5.2.0 with make 4.1 on OS X 10.11 under perl may actually be a latent bug in the libjava Makefiles being re-exposed. It is identical to one that I previously reported... https://gcc.gnu.org/bugzilla/sho

[patch] Fix make.texi typo

2015-10-21 Thread John Marshall
A tiny patch for the documentation, adding a missing comma. Cheers, John diff --git a/doc/make.texi b/doc/make.texi index 86a1aeb..f506102 100644 --- a/doc/make.texi +++ b/doc/make.texi @@ -5616,7 +5616,7 @@ Several variables have constant initial values. @cindex != To set a variable fro

Re: [bug #46242] Race condition when input file is updated while compiling

2015-10-21 Thread David Boyce
On Wed, Oct 21, 2015 at 1:01 AM, Egmont Koblinger wrote: > Is there any realistic ETA on this feature? I think you’re missing the fact that nobody is actually working on these things. Make is an open-source project and not one of the ones that has direct corporate backing or engineers paid to wor

[bug #46261] missing usage of EINTRLOOP macro

2015-10-21 Thread Jack Howarth
Follow-up Comment #4, bug #46261 (project make): The offending code... #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;