Follow-up Comment #20, bug #15919 (project make): OK, I went through both this bug and bug 3330 last night, and I do see the problem; thanks for all your work and the patch you provided Icarus.
However, I'm not entirely sure that the way you solved this problem is the best one. Setting the state of the intermediate file to cs_not_started seems incorrect to me; it does seem to solve the problem, at least for the cases described in these bug reports, but it means that after we're done the intermediate file is marked as "not started" which I'm not sure is correct. Also, I do see J. David's issue with a pattern rule invoked twice on my vanilla CVS head tree with the original patch applied. I have an alternative change that feels more correct: after all the prereqs of the intermediate file are done, if we don't need to make the intermediate file then we call notice_finished_file() on it to complete it. With this patch, J. David's example works correctly as do the other examples in both this bug and bug 3330. I attach the code change only here: obviously the real fix will involve change logs, test cases, etc. I think your idea of having a timeout is a good one, Icarus, but I think I will make it general so that EVERY test we run has a timeout; these can be modified on a per test basis of course. Please let me know whether this patch solves all the issues you have in real life and any other comments you have. (file #13283) _______________________________________________________ Additional Item Attachment: _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?15919> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make