> Date: Wed, 18 Jan 2006 06:35:12 +0200 > From: Eli Zaretskii <[EMAIL PROTECTED]> > > > 261 ? proc_index is allmost 33M ? ! > > > > --> > > > > static sub_process *proc_array[256]; > > static int proc_index = 0; > > > > proc_array[proc_index++] = (sub_process *) proc; > > > > ... looks like we just left the bounds of our static array :-) > > What happens if you use -j 200 instead of just -j? Does it work > successfully then?
Actually, in addition to the obvious bug in sub_proc.c whereby it never checks that the number of processes exceeds the fixed 256-slot array, there's one more problem that I see: the Win32 API function WaitForMultipleObjects that sub_proc.c uses to wait for child processes' demise is documented to be limited to a maximum of MAXIMUM_WAIT_OBJECTS objects. MAXIMUM_WAIT_OBJECTS's value is 64, way less than 256. So please try to run your build with -j 64 in the sub-Make's command line, and see if that works without hanging and without crashing. I will later craft a patch to handle these two problems. _______________________________________________ Make-w32 mailing list [email protected] http://lists.gnu.org/mailman/listinfo/make-w32
