This is with GNU Make 3.80.

When doing parallel builds, after make sees the first failure and prints:

make: *** Waiting for unfinished jobs....

It enters a state where a second failure will cause make to exit, leaving
orphaned jobs.  It should continue to wait for the other unfinished jobs.

The following makefile will expose the problem:

[EMAIL PROTECTED]:05pm]~(555) cat Makefile 
all: fail fail2 0 1 2 3

0:
        sleep 3 ; echo $@

1:
        sleep 6 ; echo $@

2:
        sleep 9; echo $@

3:
        sleep 12; echo $@

fail:
        sleep 5; false

fail2:
        sleep 8; false


And an example run:

[EMAIL PROTECTED]:06pm]~(556) make -j
sleep 5; false
sleep 8; false
sleep 3 ; echo 0
sleep 6 ; echo 1
sleep 9; echo 2
sleep 12; echo 3
0
make: *** [fail] Error 1
make: *** Waiting for unfinished jobs....
1
make: *** [fail2] Error 1
[EMAIL PROTECTED]:06pm]~(557) 2
3

You'll notice that although targets 2 and 3 are still running as jobs, the
fact that fail2 failed, make exited.  Then sometime later 2 and 3 finished.

Cheers,
mrc
-- 
     Mike Castle      [EMAIL PROTECTED]      www.netcom.com/~dalgoda/
    We are all of us living in the shadow of Manhattan.  -- Watchmen
fatal ("You are in a maze of twisty compiler features, all different"); -- gcc


_______________________________________________
Bug-make mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to