> From: "Markus Mauhart" <[EMAIL PROTECTED]> > Date: Sat, 14 Jan 2006 23:58:49 +0100 > > Unfortunately for the project I'm currently interested I get the same strange > behaviour as recently when I for myself removed the if-w32-disable-j-code. > It seems to be a combination of my "complicated" makefile stressing gmake > generally, then stressed w32-code paths, stressed "-j"-codepaths, ... > Without "-j [n] under w32", it workes flawless since 1 year, nevertheless > it may be some bug in my makefile.
If the build works without -jN, the first thing to suspect is the Makefile. However, Make should not crash, even if your Makefile is wrong; it is allowed to fail to produce the targets, but it is not allowed to crash. > 2) inside cmd.exe, using my trivial or your current patch: > "make -f Mymakefile -j 2or3orMore" ... executes like no "-j" had been used. Is your Makefile recursive? If so, see my questions to Paul: it sounds like sub-Makes get -j1 switch for some reason, it's not yet clear to me if that's by design or through some bug/mis-feature. > "make -f Mymakefile -j" > two kinds of nonsense happen: > > Mymakefile running in mode 1, make creates 100-1000 bat files, executes > 10-100 of them, then make.exe hanges, consuming its complete CPU, having no > process childs.. At this point, when it hangs like that, how about if you attach a debugger to it and see where it loops, and why? > Mymakefile running in mode 2, make creates some 100 bat files, then ... What are ``mode 1'' and ``mode 2'', and how are they related to the issue of -jN? > make.cvs.20060114.j_patch.mss.exe[1]: touch: open: > out/plugin/ndisasm/vc.Gui.Sh/disasm.obj: No such file or directory > make.cvs.20060114.j_patch.mss.exe: Interrupt/Exception caught (code = > 0xc0000005, addr = 0x398) > make.cvs.20060114.j_patch.mss.exe: *** [all] Error 255 Your Make is built with a Microsoft compiler, right? If so, can you set up a JIT debugging environment, so that when it crashes like above, a debugger is launched and attached to the crashing Make? Then please see where it crashes, look around a bit with a debugger to see why, and come back here to tell what you saw. (FWIW, I suspect that we launch too many sub-processes, since getloadavg is a no-op for Windows; then some system resources are depleted, some system call fails, but Make fails to notice that, and blithely tries to continue. But that's a guess, and it doesn't explain why it works with Cygwin.) _______________________________________________ Make-w32 mailing list [email protected] http://lists.gnu.org/mailman/listinfo/make-w32
