Follow-up Comment #13, bug #15919 (project make): How much explanation do you want for a 1 line patch, which just initialises a variable?
The way that make builds when it is in parallel make mode is different from the way that it builds when it is building sequentially. The bug manifests itself for any number of jobs greater than 1, there is nothing special about 2, and my test case sets it to infinite. The guts of the GNU make engine is two mutually recursive routines, check_dep and update_file. (update_file_1 is just called from one place, and so could be usefully declared "inline", or make could be compiled with -finline-functions-called-once) The underdocumented requirement for check_dep is to build an non-intermediate files that this file depends on, and set *must_make_pointer to be 1 if this needs to be made. There is an undocumented requirement when jobs are run in parrallel for the state not to be left in cs_deps_running if all of the dependencies have completed. The is what my fix does. More later..... _______________________________________________________ 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