From a8c32ecff2f8f8adb2186852e02e29f74f7850f7 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 3 Jul 1999 00:00:19 +0000 Subject: [PATCH] Include signal.h. (SIGCHLD): Define to SIGCLD if SIGCLD is defined but SIGCHLD is not. (main): Ensure SIGCHLD is not ignored, so that we can fork and wait. --- src/tar.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/tar.c b/src/tar.c index 9b73de3..4d3ec0e 100644 --- a/src/tar.c +++ b/src/tar.c @@ -20,6 +20,11 @@ #include +#include +#if ! defined SIGCHLD && defined SIGCLD +# define SIGCHLD SIGCLD +#endif + /* The following causes "common.h" to produce definitions of all the global variables, rather than just "extern" declarations of them. GNU tar does depend on the system loader to preset all GLOBAL variables to neutral (or @@ -1116,6 +1121,11 @@ main (int argc, char *const *argv) xmalloc (sizeof (const char *) * allocated_archive_names); archive_names = 0; +#ifdef SIGCHLD + /* System V fork+wait does not work if SIGCHLD is ignored. */ + signal (SIGCHLD, SIG_DFL); +#endif + init_names (); /* Decode options. */ -- 2.44.0