On Thu, 4 Feb 2010, Joel E. Denny wrote: > >From a47eeff13e6105e678a1cc3031ed8f33fa141fc3 Mon Sep 17 00:00:00 2001 > From: Joel E. Denny <[email protected]> > Date: Thu, 4 Feb 2010 18:20:12 -0500 > Subject: [PATCH] portability: fix several issues with M4 subprocess. > > M4's output pipe was not being drained upon fatal errors during > scan_skel. As a result, broken-pipe messages from M4 were seen > on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a > failure in the test suite. The problem was that, on platforms > where the default disposition for SIGPIPE is ignore instead of > terminate, M4 sometimes saw fwrite fail with errno=EPIPE and > then reported it. However, there's some sort of race condition, > because the new test group occasionally succeeded. > Reported by Albert Chin at > <http://lists.gnu.org/archive/html/bug-bison/2010-02/msg00004.html>. > > There were also problems with the test suite deadlocking on > Tru64 5.1b. Reported by Didier Godefroy at > <http://lists.gnu.org/archive/html/bug-bison/2009-05/msg00005.html>. > Switching to create_pipe_bidi suggested by Akim Demaille. > > To solve both of these problems, switch to gnulib's > create_pipe_bidi and register M4 process as a slave. Along the > way, clean up file name conflict handling, which was affected by > the broken-pipe problem before the switch.
After a few superficial tweaks, I pushed that to branch-2.4.2, branch-2.5, and master.
