On Sun, Jun 11, 2006 at 04:11:58PM -0700, Matthew Dillon wrote: > > : > :On Sun, Jun 11, 2006 at 02:03:32PM -0700, Matthew Dillon wrote: > :> Well, looking at the 'gmake' source, there are a couple of places > :> where it can generate 'write error', primarily when it is closing > :> stdout. > : > :That's exactly were it is bailing out. The problem comes from earlier > :write failures when a program set non-blocking operation on the stdout > :descriptor. I have an initial patch for that, but Rumko reported > :segfaults from it, which I haven't had time to investigate yet. > : > :Joerg > > Non-blocking? Why would the stdout descriptor be set to non-blocking? > Is gmake doing that or is it the program fork/exec'ing gmake ?
libc_r is doing that. E.g. gmake calls a threaded program, the program sets non-blocking mode and gmake tries to write something to stdout when it is blocking. This results in the error bit getting set and the error 2 to occur during cleanup. Joerg
