> Date: Thu, 5 Oct 2006 13:47:01 +0100 > From: "John Hall" <[EMAIL PROTECTED]> > > When doing a recursive make, the child process immediately crashed. When > running under the debugger I saw a CRT assertion. In func_shell in > function.c it was attempting to close the write side of a pipe, but the > file handle was actually -1. I've just done: > > diff -u -r1.1 -r1.3 > --- function.c 5 Oct 2006 12:21:54 -0000 1.1 > +++ function.c 5 Oct 2006 12:32:13 -0000 1.3 > @@ -1685,7 +1685,8 @@ > free ((char *) command_argv); > > /* Close the write side of the pipe. */ > - (void) close (pipedes[1]); > + if (pipedes[1] >= 0) > + (void) close (pipedes[1]); > #endif > > /* Set up and read from the pipe. */ > > > This fixes it for me, but is not necessarily getting to the root of the > problem.
Thanks for the report and a patch, but could you perhaps run Make under a debugger, put a data breakpoint on pipes[1], and see where does it get the -1 value and why? That should help identify the root of the problem, I think. TIA _______________________________________________ Make-w32 mailing list Make-w32@gnu.org http://lists.gnu.org/mailman/listinfo/make-w32