make-w32
[Top][All Lists]
Advanced

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

RE: Crash with recursive make


From: John Hall
Subject: RE: Crash with recursive make
Date: Tue, 10 Oct 2006 13:46:27 +0100

On 09 October 2006 20:50, Eli Zaretskii <address@hidden> wrote:

> > I can reproduce it with version.txt just containing the word 'hello'
> > (with \r\n line terminator).
> 
> It works for me.
 
> > What does make use the specified shell for? I traced through the
> > code and whatever I set SHELL to, CreateProcess in process_begin is
> > launching cat directly - it doesn't seem to use a shell.
 
> ??? Really?  Don't you see a temporary batch file being created and
> run?

No. Perhaps it only does this for actions? If you change the line in my
example to something like:

VERSION_STRING = $(shell \this\path\does\not\exist\cat $(VERSION_TXT))

you get this error message
process_begin: CreateProcess(NULL, \this\path\does\not\exist\cat
file.txt, ...) failed.

which shows clearly that make is trying to execute cat directly.
 
> > I can send you my version of cat if you want.
> 
> It'd be better if you could try cat.exe from GnuWin32.

I've tried that and it crashes too.

I then realised that the unique thing about my setup is that I'm
building with VS 2005, so I recompiled make with VS 2003 and the crash
no longer happens. I would suggest, therefore, that the version of
'close' in the  C runtime shipped with VS 2005 is stricter about
checking its arguments, which is why I see it and you don't.

Regards,
John




reply via email to

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