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

Reply via email to