On 09 October 2006 20:50, Eli Zaretskii <[EMAIL PROTECTED]> 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 _______________________________________________ Make-w32 mailing list Make-w32@gnu.org http://lists.gnu.org/mailman/listinfo/make-w32