Update of bug #40225 (project make): Triage Status: None => Major Effort
_______________________________________________________ Follow-up Comment #5: I don't think Frank's suggestion below will work (or maybe I misunderstood it). It's not enough to remember the order in which target recipes were started, because in parallel builds the order of starting targets can be different. Consider a makefile like: foo: slow fast slow: slower fast: faster In a serial make the targets are run as slower -> slow -> faster -> fast -> foo, so that's the order in which we'd always want to see the output. But in parallel make with -j2 for example, the targets will be run as slower -> faster -> fast -> slow -> foo. What we'd need to do is remember the order in which make _would_ have built the targets, if running in a serial way. In order for that to work, we'd need to keep an ordered list of the targets we visit as we walk the dependency graph, and we'd need to convince ourselves that even with parallelism enabled we will walk the graph the same way without skipping any nodes (that is, we need to be sure that we won't jump to another branch of the graph because we know that this branch is blocked by a target currently being built). These changes would need to be made above the job layer, in remake.c which is where the dependency graph is walked. Frank is correct that we'd need to separate the output dump function out and hoist it up a layer, so that it could be done in the proper order. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?40225> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make