make-w32
[Top][All Lists]
Advanced

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

Re: pipe read hang on Win 2000


From: Greg Chicares
Subject: Re: pipe read hang on Win 2000
Date: Thu, 06 Dec 2001 19:20:46 -0500

"J.B." wrote:
> 
> Using the Win32 port of GNU make 3.79.1 on Windows 2000 with either the 
> Cygwin shell, or the MKS sh.exe, or even the Windows cmd.exe I get a hang 
> when running the following makefile:
> 
> CWD:=$(shell pwd)
> PKGDIR = $(shell echo this.is.a.test | sed 's:\.:/:g')
> 
> all :
>   echo $(CWD)
>   echo $(PKGDIR)
>   echo Done.
>   cd testdir2 && $(MAKE)
[...]
> The line of the makefile that causes the problem is the one with the $(shell 
> ...) command.  I can work around the problem by breaking the $(shell ) 
> command into two shell commands, storing the intermediate result in a file 
> and redirecting I/O rather than using a pipe between echo.exe and sed.exe.  
> Also, I've ruled out these two programs as the culprit.  I can use other 
> programs besides echo and sed and get the hang. Also, the problem doesn't 
> happen on Win NT 4.0.

I just started using win2k this weekend, and found a problem
that's either identical or similar. After a lot of fruitless
searching and experimentation, I reread what Eli said on
2001-11-12:

 | NTVDM is the Windows DOS emulator,
 | so it is irrelevant to Win32 applications.

I was sure I was using win32 versions of make and all the
other gnu utilities--but I was mistaken. My sed.exe was
not a win32 program. I replaced it with this one

  http://www.wzw.tu-muenchen.de/~syring/win32/UnxUtils.html

and now I don't get the NTVDM errors anymore.

You can use the win2k task manager (ctrl-alt-del then T)
to see whether an ntvdm process is loaded. Close all cmd
windows and make sure ntvdm is gone. Open a cmd window
and just run
  sed
If that causes ntvdm to load, then I think that's the
problem. Bear in mind that I've been using this OS for
less than a week and am no expert; there's probably a
better way to go about this, but this way seems to work.

PS Your reply-to address seems to be invalid.



reply via email to

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