Hi!
gzip fails to compile on mingw32 ("./configure --host i586-mingw32msvc
&& make") due to undefined SIGPIPE. I noticed that there's already code
to prevent this problem, but it isn't placed before any use of this macro,
and hence not (currently) effective.
See attached patch.
--
Robert Millan
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
diff -urp gzip-1.3.12/gzip.c gzip-1.3.12.new/gzip.c
--- gzip-1.3.12/gzip.c 2007-03-20 06:09:51.000000000 +0100
+++ gzip-1.3.12.new/gzip.c 2007-11-22 16:52:52.000000000 +0100
@@ -211,6 +211,30 @@ size_t z_len; /* strlen(z_suffix
/* The set of signals that are caught. */
static sigset_t caught_signals;
+static int sig[] =
+{
+ /* SIGINT must be first, as 'foreground' depends on it. */
+ SIGINT
+
+#ifdef SIGHUP
+ , SIGHUP
+#endif
+#ifdef SIGPIPE
+ , SIGPIPE
+#else
+# define SIGPIPE 0
+#endif
+#ifdef SIGTERM
+ , SIGTERM
+#endif
+#ifdef SIGXCPU
+ , SIGXCPU
+#endif
+#ifdef SIGXFSZ
+ , SIGXFSZ
+#endif
+};
+
/* If nonzero then exit with status WARNING, rather than with the usual
signal status, on receipt of a signal with this value. This
suppresses a "Broken Pipe" message with some shells. */
@@ -1755,29 +1779,6 @@ local void treat_dir (fd, dir)
static void
install_signal_handlers ()
{
- static int sig[] =
- {
- /* SIGINT must be first, as 'foreground' depends on it. */
- SIGINT
-
-#ifdef SIGHUP
- , SIGHUP
-#endif
-#ifdef SIGPIPE
- , SIGPIPE
-#else
-# define SIGPIPE 0
-#endif
-#ifdef SIGTERM
- , SIGTERM
-#endif
-#ifdef SIGXCPU
- , SIGXCPU
-#endif
-#ifdef SIGXFSZ
- , SIGXFSZ
-#endif
- };
int nsigs = sizeof sig / sizeof sig[0];
int i;