Follow-up Comment #8, bug #63307 (project make):
There may be an even simpler solution than that. There was never any need to
ignore SIGPIPE, we just need to make sure temporary files are cleaned up if we
get SIGPIPE, it's okay and expected if make dies after that cleanup. There is
already a mechanism in place for that for other signals. Re-using that for
SIGPIPE works:
--- a/src/main.c
+++ b/src/main.c
@@ -1182,11 +1182,6 @@ main (int argc, char **argv, char **envp)
/* Useful for attaching debuggers, etc. */
SPIN ("main-entry");
- /* Don't die if our stdout sends us SIGPIPE. */
-#ifdef SIGPIPE
- bsd_signal (SIGPIPE, SIG_IGN);
-#endif
-
#ifdef HAVE_ATEXIT
if (ANY_SET (check_io_state (), IO_STDOUT_OK))
atexit (close_stdout);
@@ -1285,6 +1280,8 @@ main (int argc, char **argv, char **envp)
FATAL_SIG (SIGXFSZ);
#endif
+ FATAL_SIG (SIGPIPE);
+
#undef FATAL_SIG
/* Do not ignore the child-death signal. This must be done before
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?63307>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/