make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNU make 3.81beta4 released


From: Markus Mauhart
Subject: Re: GNU make 3.81beta4 released
Date: Mon, 16 Jan 2006 23:03:07 +0100

"Eli Zaretskii" <address@hidden> wrote ...
>
>> From: "Markus Mauhart" <address@hidden>
>> 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.
>
>> 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?

No
(it once restarts $(MAKE) with the same Mymakefile but an added include path,
from then on other makefiles are included as necessary)


>> "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?

I did this 1 or 2 weeks ago, having removed the if-w32-disable-j-code, built
with MSVC++ - one problem for me was the single recursion, hence I couldnt
start&debug it inside MSVS.
I tested "mode 1", where it hanges. Once I managed to attach the
MSVS-IDE-debugger, make was IIRC hanging (not looping) inside ...
    while (start_waiting_job (job) && waiting_jobs != 0);

>> 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?

A commandline parameter (upp.blitz=0|1) decides whether each c[++] file is
compiled seperately, or wether most files of a sub-project are compiled
together by inclusion in the same temporary file ... this file is created
on the fly (which btw. in my implementation might violate usual make rules).
In the end, depending on this mode, mymakefile has very different intermediate
targets and tactics and timing.


>> 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?

No, "mss" stands for the msys (+confiure+make) - build  (3 letters, like "cyg").

I will have to repeat this with MSVC and its debugger. My current problem
is very limited time during the week and missing experience in debugging
and understanding this parts of gmake.


> 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.

Ok


Best Regards,
Markus.








reply via email to

[Prev in Thread] Current Thread [Next in Thread]