> 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

Reply via email to