Follow-up Comment #7, bug #15757 (project make): Thanks for the info. I need to look at it a bit.
There are no fixed size anything in GNU make; everything is dynamic. Your guess is logical, but in fact there is an explanation that fits the facts better that doesn't rely on any resource issue: running "make foo" and "make everything" where everything is a target that eventually depends on foo, is very different in one critical aspect that bears directly on this situation: target-specific variables are inherited through the dependency chain, and this feature is one of the things that is facilitated by that next pointer. So, the longer your chain is from the "top" the more entries are added to/removed from the chain of variable sets. Thus, if you run "make foo" your chain may be only one level deep, while if you run "make everything" by the time make starts to build "foo", your chain may be 5 levels deep (say). I need to check your debug results and compare them with the code and think about this more. I'm actually more concerned with the fact that you don't see this on Linux, which seems to imply that it's less of an algorithm error and more of a heap management error (as you say, maybe memory is not being initialized on Solaris). Bizarre. Unless, there is something non-trivially different about your build on Solaris vs. Linux? Maybe there is conditional code depending on the host OS? Or, Solaris has extra target-specific variables defined? Or...? _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?func=detailitem&item_id=15757> _______________________________________________ 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