Hello! I am building the software out of a MacPorts installation on an Apple PowerBook G4 with Mac OS X 10.4.11, Tiger:
Executing: cd
"/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13"
&& ./configure --prefix=/opt/local --disable-silent-rules DEFS=NO_ASM
--disable-year2038
/opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/local/include -Wno-cast-qual -Wno-conversion -Wno-float-equal
-Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter -pipe
-Os -arch ppc -MT libgzip_a-error.o -MD -MP -MF .deps/libgzip_a-error.Tpo -c -o
libgzip_a-error.o `test -f 'error.c' || echo './'`error.c
In file included from /usr/include/sys/wait.h:110,
from /usr/include/stdlib.h:64,
from ./stdlib.h:36,
from error.c:29:
/usr/include/sys/signal.h:145: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'mcontext64_t'
/usr/include/sys/signal.h:177: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'ucontext64_t'
make[3]: *** [libgzip_a-error.o] Error 1
pre-processed C file has:
1604 # 27 "/usr/include/machine/_types.h" 2 3 4
1605 # 28 "/usr/include/sys/_types.h" 2 3 4
...
1612 struct __darwin_mcontext;
1613 # 49 "/usr/include/sys/_types.h" 3 4
...
1640 # 93 "/usr/include/sys/_types.h" 3 4
...
1658 typedef struct __darwin_mcontext *__darwin_mcontext_t;
...
1709 struct __darwin_ucontext
1710
1711 {
1712 int uc_onstack;
1713 __darwin_sigset_t uc_sigmask;
1714 __darwin_stack_t uc_stack;
1715
1716
1717
1718 struct __darwin_ucontext *uc_link;
1719
1720 __darwin_size_t uc_mcsize;
1721 __darwin_mcontext_t uc_mcontext;
1722 };
1723
1724
1725
1726 typedef struct __darwin_ucontext __darwin_ucontext_t;
1727 # 28 "/usr/include/_types.h" 2 3 4
...
4361 # 128 "/usr/include/sys/signal.h" 3 4
4362 #define SIG_DFL (void (*)( ))0
4363 #define SIG_IGN (void (*)( ))1
4364 #define SIG_HOLD (void (*)( ))5
4365 #define SIG_ERR ((void (*)( ))-1)
4366
4367
4368
4369
4370
4371
4372 #define _MCONTEXT_T
4373 typedef __darwin_mcontext_t mcontext_t;
4374
4375
4376
4377
4378 #define _MCONTEXT64_T
4379 typedef __darwin_mcontext64_t mcontext64_t;
4380 # 160 "/usr/include/sys/signal.h" 3 4
4381 #define _SIGSET_T
4382 typedef __darwin_sigset_t sigset_t;
4383 # 170 "/usr/include/sys/signal.h" 3 4
4384 #define _UCONTEXT_T
4385 typedef __darwin_ucontext_t ucontext_t;
4386
4387
4388
4389
4390 #define _UCONTEXT64_T
4391 typedef __darwin_ucontext64_t ucontext64_t;
4392 # 186 "/usr/include/sys/signal.h" 3 4
/usr/include/sys/signal.h has:
134 #ifndef _ANSI_SOURCE
135 #include <sys/_types.h>
136
137 #ifndef _MCONTEXT_T
138 #define _MCONTEXT_T
139 typedef __darwin_mcontext_t mcontext_t;
140 #endif
141
142 #ifndef _POSIX_C_SOURCE
143 #ifndef _MCONTEXT64_T
144 #define _MCONTEXT64_T
145 typedef __darwin_mcontext64_t mcontext64_t;
146 #endif
147 #endif /* _POSIX_C_SOURCE */
...
169 #ifndef _UCONTEXT_T
170 #define _UCONTEXT_T
171 typedef __darwin_ucontext_t ucontext_t;
172 #endif
173
174 #ifndef _POSIX_C_SOURCE
175 #ifndef _UCONTEXT64_T
176 #define _UCONTEXT64_T
177 typedef __darwin_ucontext64_t ucontext64_t;
178 #endif
179 #endif /* _POSIX_C_SOURCE */
A search gives (my Mac is PPC):
pete 244 /\ find /usr/include -type f -name '*.h' -exec ggrep -En
'[um]context' {} /dev/null \;
/usr/include/i386/ucontext.h:31:struct mcontext
/usr/include/i386/ucontext.h:33:struct __darwin_mcontext
/usr/include/i386/ucontext.h:57:typedef __darwin_mcontext_t mcontext_t;
/usr/include/machine/ucontext.h:26:#include "ppc/ucontext.h"
/usr/include/machine/ucontext.h:28:#include "i386/ucontext.h"
/usr/include/ppc/ucontext.h:30:struct mcontext {
/usr/include/ppc/ucontext.h:38:struct __darwin_mcontext {
/usr/include/ppc/ucontext.h:48:typedef __darwin_mcontext_t
mcontext_t;
/usr/include/ppc/ucontext.h:52:struct mcontext64 {
/usr/include/ppc/ucontext.h:62:typedef struct mcontext64 * mcontext64_t;
/usr/include/sys/_types.h:31:struct mcontext;
/usr/include/sys/_types.h:32:struct mcontext64;
/usr/include/sys/_types.h:34:struct __darwin_mcontext;
/usr/include/sys/_types.h:107:typedef struct mcontext *__darwin_mcontext_t;
/* [???] machine context */
/usr/include/sys/_types.h:108:typedef struct mcontext64
*__darwin_mcontext64_t; /* [???] machine context */
/usr/include/sys/_types.h:110:typedef struct __darwin_mcontext
*__darwin_mcontext_t; /* [???] machine context */
/usr/include/sys/_types.h:159:struct ucontext
/usr/include/sys/_types.h:161:struct __darwin_ucontext
/usr/include/sys/_types.h:168: struct ucontext *uc_link;
/* pointer to resuming context */
/usr/include/sys/_types.h:170: struct __darwin_ucontext *uc_link;
/* pointer to resuming context */
/usr/include/sys/_types.h:173: __darwin_mcontext_t uc_mcontext;
/* pointer to machine specific context */
/usr/include/sys/_types.h:176:typedef struct ucontext __darwin_ucontext_t;
/* [???] user context */
/usr/include/sys/_types.h:178:typedef struct __darwin_ucontext
__darwin_ucontext_t; /* [???] user context */
/usr/include/sys/_types.h:182:struct ucontext64 {
/usr/include/sys/_types.h:186: struct ucontext64 *uc_link;
/* pointer to resuming context */
/usr/include/sys/_types.h:188: __darwin_mcontext64_t uc_mcontext64;
/* pointer to machine specific context */
/usr/include/sys/_types.h:190:typedef struct ucontext64
__darwin_ucontext64_t; /* [???] user context */
/usr/include/sys/signal.h:139:typedef __darwin_mcontext_t
mcontext_t;
/usr/include/sys/signal.h:145:typedef __darwin_mcontext64_t
mcontext64_t;
/usr/include/sys/signal.h:171:typedef __darwin_ucontext_t
ucontext_t;
/usr/include/sys/signal.h:177:typedef __darwin_ucontext64_t
ucontext64_t;
/usr/include/sys/ucontext.h:28:#include <machine/ucontext.h>
/usr/include/sys/ucontext.h:43:typedef struct ucontext ucontext_t;
/usr/include/sys/ucontext.h:45:typedef struct __darwin_ucontext ucontext_t;
/usr/include/sys/ucontext.h:52:typedef struct ucontext64 ucontext64_t;
/usr/include/ucontext.h:27:#include <sys/ucontext.h>
Of all these seven C header files
/usr/include/i386/ucontext.h
/usr/include/machine/ucontext.h
/usr/include/ppc/ucontext.h
/usr/include/sys/_types.h
/usr/include/sys/signal.h
/usr/include/sys/ucontext.h
/usr/include/ucontext.h
only
13 ..... /usr/include/sys/_types.h
48 .... /usr/include/sys/signal.h
are included (running GCC with -H). Possibly not enough…
Patching with
--- lib/error.c~ 2023-05-28 03:10:34.000000000 +0200
+++ lib/error.c 2025-04-14 09:44:06.000000000 +0200
@@ -24,6 +24,7 @@
#include "error.h"
+#include <ucontext.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
now
13 ..... /usr/include/sys/_types.h
44 . /usr/include/ucontext.h
45 .. /usr/include/sys/ucontext.h
46 ... /usr/include/machine/ucontext.h
47 .... /usr/include/ppc/ucontext.h
53 .... /usr/include/sys/signal.h
are included, and the result is now:
/opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/local/include -Wno-cast-qual -Wno-conversion -Wno-float-equal
-Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter -pipe
-Os -arch ppc -MT libgzip_a-fclose.o -MD -MP -MF .deps/libgzip_a-fclose.Tpo -c
-o libgzip_a-fclose.o `test -f 'fclose.c' || echo './'`fclose.c
In file included from /usr/include/signal.h:63,
from ./signal.h:52,
from /usr/include/sys/select.h:146,
from /usr/include/unistd.h:483,
from ./unistd.h:40,
from fclose.c:23:
/usr/include/sys/signal.h:145: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'mcontext64_t'
/usr/include/sys/signal.h:177: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'ucontext64_t'
make[3]: *** [libgzip_a-fclose.o] Error 1
I.e. SUCCESS, another source file needs a patch.
--- lib/fclose.c~ 2023-01-02 02:20:46.000000000 +0100
+++ lib/fclose.c 2025-04-14 09:50:41.000000000 +0200
@@ -17,6 +17,7 @@
#include <config.h>
/* Specification. */
+#include <ucontext.h>
#include <stdio.h>
#include <errno.h>
leads to instant new SUCCESS:
/opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/local/include -Wno-cast-qual -Wno-conversion -Wno-float-equal
-Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter -pipe
-Os -arch ppc -MT libgzip_a-fflush.o -MD -MP -MF .deps/libgzip_a-fflush.Tpo -c
-o libgzip_a-fflush.o `test -f 'fflush.c' || echo './'`fflush.c
In file included from /usr/include/signal.h:63,
from ./signal.h:52,
from /usr/include/sys/select.h:146,
from /usr/include/unistd.h:483,
from ./unistd.h:40,
from fflush.c:25:
/usr/include/sys/signal.h:145: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'mcontext64_t'
/usr/include/sys/signal.h:177: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'ucontext64_t'
--- lib/fflush.c~ 2023-04-07 06:15:26.000000000 +0200
+++ lib/fflush.c 2025-04-14 09:54:11.000000000 +0200
@@ -19,6 +19,7 @@
#include <config.h>
/* Specification. */
+#include <ucontext.h>
#include <stdio.h>
#include <errno.h>
leads to:
/opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/local/include -Wno-cast-qual -Wno-conversion -Wno-float-equal
-Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter -pipe
-Os -arch ppc -MT libgzip_a-fpurge.o -MD -MP -MF .deps/libgzip_a-fpurge.Tpo -c
-o libgzip_a-fpurge.o `test -f 'fpurge.c' || echo './'`fpurge.c
In file included from /usr/include/sys/wait.h:110,
from /usr/include/stdlib.h:64,
from ./stdlib.h:36,
from fpurge.c:27:
/usr/include/sys/signal.h:145: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'mcontext64_t'
/usr/include/sys/signal.h:177: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'ucontext64_t'
fpurge.c: In function 'rpl_fpurge':
fpurge.c:47: warning: implicit declaration of function 'fpurge'
The warning is caused in /usr/include/stdio.h by:
319 #ifndef _POSIX_C_SOURCE
320 __const char
321 *fmtcheck(const char *, const char *);
322 int fpurge(FILE *);
323 #endif /* not POSIX */
_POSIX_C_SOURCE is handled in the pre-compiled output here:
1485 # 18 "fpurge.c" 2
1486
1487
1488 # 1 "./stdio.h" 1
1489 # 20 "./stdio.h"
1490
1491 # 21 "./stdio.h" 3
1492 # 42 "./stdio.h" 3
1493 #define _POSIX_C_SOURCE 200809L
1494 #define _GL_DEFINED__POSIX_C_SOURCE
...
2003 # 50 "./stdio.h" 2 3
2004
2005 #undef _GL_ALREADY_INCLUDING_STDIO_H
2006
2007
2008 #undef _GL_DEFINED__POSIX_C_SOURCE
2009 #undef _POSIX_C_SOURCE
*fpurge() is handled in the pre-compiled output here:
4078 # 1064 "./stdio.h" 3
4079 #define fpurge rpl_fpurge
4080
4081 extern int rpl_fpurge (FILE *gl_stream) __attribute__ ((__nonnull__
(1)));
...
5238 # 30 "fpurge.c" 2
5239
5240 int
5241 rpl_fpurge (FILE *fp)
5242 {
5243 # 43 "fpurge.c"
5244 #undef fpurge
5245
5246
5247
5248 int result = fpurge (fp);
5249
5250
5251 if (result == 0)
5252
5253
5254
5255
5256
5257
5258 if ((fp->_flags & 0x0004) != 0)
5259 fp->_w = 0;
5260
5261 return result;
5262 # 150 "fpurge.c"
5263 }
Is line #43 in original fpurge.c too much for Mac OS X 10.4.11, Tiger?
config.status has
D["HAVE_FPURGE"]=" 1"
D["HAVE_DECL_FPURGE"]=" 1"
no line with HAVE___FPURGE (or HAVE_STDIO_EXT_H).
lib/fpurge.c has:
22 #if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >=
7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.10, Android API >= 23, musl libc */
23 # if HAVE_STDIO_EXT_H
24 # include <stdio_ext.h>
25 # endif
26 #endif
27 #include <stdlib.h>
28
29 #include "stdio-impl.h"
30
31 int
32 fpurge (FILE *fp)
33 {
34 #if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >=
7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.10, Android API >= 23, musl libc */
35
36 __fpurge (fp);
37 /* The __fpurge function does not have a return value. */
38 return 0;
39
40 #elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD,
DragonFly, Mac OS X, Cygwin >= 1.7 */
41
42 /* Call the system's fpurge function. */
43 # undef fpurge
44 # if !HAVE_DECL_FPURGE
45 extern int fpurge (FILE *);
46 # endif
47 int result = fpurge (fp);
48 # if defined __sferror || defined __DragonFly__ || defined __ANDROID__
49 /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3,
Android */
50 if (result == 0)
51 /* Correct the invariants that fpurge broke.
52 <stdio.h> on BSD systems says:
53 "The following always hold: if _flags & __SRD, _w is 0."
54 If this invariant is not fulfilled and the stream is read-write
but
55 currently reading, subsequent putc or fputc calls will write
directly
56 into the buffer, although they shouldn't be allowed to. */
57 if ((fp_->_flags & __SRD) != 0)
58 fp_->_w = 0;
59 # endif
60 return result;
61
62 #else
63
64 /* Most systems provide FILE as a struct and the necessary bitmask in
65 <stdio.h>, because they need it for implementing getc() and putc()
as
66 fast macros. */
67 # if defined _IO_EOF_SEEN || defined _IO_ftrylockfile ||
__GNU_LIBRARY__ == 1
68 /* GNU libc, BeOS, Haiku, Linux libc5 */
69 fp->_IO_read_end = fp->_IO_read_ptr;
70 fp->_IO_write_ptr = fp->_IO_write_base;
71 /* Avoid memory leak when there is an active ungetc buffer. */
72 if (fp->_IO_save_base != NULL)
73 {
74 free (fp->_IO_save_base);
75 fp->_IO_save_base = NULL;
76 }
77 return 0;
78 # elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
79 /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3,
Android */
80 fp_->_p = fp_->_bf._base;
81 fp_->_r = 0;
82 fp_->_w = ((fp_->_flags & (__SLBF | __SNBF | __SRD)) == 0 /* fully
buffered and not currently reading? */
83 ? fp_->_bf._size
84 : 0);
85 /* Avoid memory leak when there is an active ungetc buffer. */
86 if (fp_ub._base != NULL)
87 {
88 if (fp_ub._base != fp_->_ubuf)
89 free (fp_ub._base);
90 fp_ub._base = NULL;
91 }
92 return 0;
93 # elif defined __EMX__ /* emx+gcc */
94 fp->_ptr = fp->_buffer;
95 fp->_rcount = 0;
96 fp->_wcount = 0;
97 fp->_ungetc_count = 0;
98 return 0;
99 # elif defined __minix /* Minix */
100 fp->_ptr = fp->_buf;
101 if (fp->_ptr != NULL)
102 fp->_count = 0;
103 return 0;
104 # elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1,
Solaris, OpenServer, UnixWare, mingw, MSVC, NonStop Kernel, OpenVMS */
105 fp_->_ptr = fp_->_base;
106 if (fp_->_ptr != NULL)
107 fp_->_cnt = 0;
108 return 0;
109 # elif defined __UCLIBC__ /* uClibc */
110 # ifdef __STDIO_BUFFERS
111 if (fp->__modeflags & __FLAG_WRITING)
112 fp->__bufpos = fp->__bufstart;
113 else if (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING))
114 fp->__bufpos = fp->__bufread;
115 # endif
116 return 0;
117 # elif defined __QNX__ /* QNX */
118 fp->_Rback = fp->_Back + sizeof (fp->_Back);
119 fp->_Rsave = NULL;
120 if (fp->_Mode & 0x2000 /* _MWRITE */)
121 /* fp->_Buf <= fp->_Next <= fp->_Wend */
122 fp->_Next = fp->_Buf;
123 else
124 /* fp->_Buf <= fp->_Next <= fp->_Rend */
125 fp->_Rend = fp->_Next;
126 return 0;
127 # elif defined __MINT__ /* Atari FreeMiNT */
128 if (fp->__pushed_back)
129 {
130 fp->__bufp = fp->__pushback_bufp;
131 fp->__pushed_back = 0;
132 }
133 /* Preserve the current file position. */
134 if (fp->__target != -1)
135 fp->__target += fp->__bufp - fp->__buffer;
136 fp->__bufp = fp->__buffer;
137 /* Nothing in the buffer, next getc is nontrivial. */
138 fp->__get_limit = fp->__bufp;
139 /* Nothing in the buffer, next putc is nontrivial. */
140 fp->__put_limit = fp->__buffer;
141 return 0;
142 # elif defined EPLAN9 /* Plan9 */
143 fp->rp = fp->wp = fp->lp = fp->buf;
144 return 0;
145 # else
146 # error "Please port gnulib fpurge.c to your platform! Look at the
definitions of fflush, setvbuf and ungetc on your system, then report this to
bug-gnulib."
147 # endif
148
149 #endif
150 }
The patch
--- lib/fpurge.c~ 2023-01-02 02:20:46.000000000 +0100
+++ lib/fpurge.c 2025-04-14 11:27:29.000000000 +0200
@@ -17,6 +17,7 @@
#include <config.h>
/* Specification. */
+#include <ucontext.h>
#include <stdio.h>
#if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7,
UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.10, Android API >= 23, musl libc */
still leaves a warning
fpurge.c: In function 'rpl_fpurge':
fpurge.c:48: warning: implicit declaration of function 'fpurge'
so I finally used the patch:
--- lib/fpurge.c~ 2023-01-02 02:20:46.000000000 +0100
+++ lib/fpurge.c 2025-04-14 11:29:37.000000000 +0200
@@ -17,6 +17,7 @@
#include <config.h>
/* Specification. */
+#include <ucontext.h>
#include <stdio.h>
#if HAVE___FPURGE /* glibc >= 2.2, Haiku, Solaris >= 7,
UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.10, Android API >= 23, musl libc */
@@ -40,7 +41,6 @@
#elif HAVE_FPURGE /* FreeBSD, NetBSD, OpenBSD, DragonFly,
Mac OS X, Cygwin >= 1.7 */
/* Call the system's fpurge function. */
-# undef fpurge
# if !HAVE_DECL_FPURGE
extern int fpurge (FILE *);
# endif
The next error is with lib/fseek.c:
/opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/local/include -Wno-cast-qual -Wno-conversion -Wno-float-equal
-Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter -pipe
-Os -arch ppc -MT libgzip_a-fseek.o -MD -MP -MF .deps/libgzip_a-fseek.Tpo -c -o
libgzip_a-fseek.o `test -f 'fseek.c' || echo './'`fseek.c
In file included from /usr/include/signal.h:63,
from ./signal.h:52,
from /usr/include/sys/select.h:146,
from /usr/include/unistd.h:483,
from ./unistd.h:40,
from fseek.c:23:
/usr/include/sys/signal.h:145: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'mcontext64_t'
/usr/include/sys/signal.h:177: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'ucontext64_t'
The patch
--- lib/fseek.c~ 2023-01-02 02:20:46.000000000 +0100
+++ lib/fseek.c 2025-04-14 11:31:49.000000000 +0200
@@ -17,6 +17,7 @@
#include <config.h>
/* Specification. */
+#include <ucontext.h>
#include <stdio.h>
/* Get off_t. */
cures it and leads to:
/opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/local/include -Wno-cast-qual -Wno-conversion -Wno-float-equal
-Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter -pipe
-Os -arch ppc -MT libgzip_a-fseeko.o -MD -MP -MF .deps/libgzip_a-fseeko.Tpo -c
-o libgzip_a-fseeko.o `test -f 'fseeko.c' || echo './'`fseeko.c
In file included from /usr/include/signal.h:63,
from ./signal.h:52,
from /usr/include/sys/select.h:146,
from /usr/include/unistd.h:483,
from ./unistd.h:40,
from fseeko.c:23:
/usr/include/sys/signal.h:145: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'mcontext64_t'
/usr/include/sys/signal.h:177: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'ucontext64_t'
The cure is:
--- lib/fseeko.c~ 2023-01-02 02:20:46.000000000 +0100
+++ lib/fseeko.c 2025-04-14 11:33:31.000000000 +0200
@@ -17,6 +17,7 @@
#include <config.h>
/* Specification. */
+#include <ucontext.h>
#include <stdio.h>
/* Get off_t, lseek, _POSIX_VERSION. */
giving:
/opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/local/include -pipe -Os -arch ppc -MT fprintf.o -MD -MP -MF
$depbase.Tpo -c -o fprintf.o fprintf.c &&\
mv -f $depbase.Tpo $depbase.Po
In file included from /usr/include/sys/wait.h:110,
from /usr/include/stdlib.h:64,
from ./stdlib.h:36,
from fprintf.c:27:
/usr/include/sys/signal.h:145: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'mcontext64_t'
/usr/include/sys/signal.h:177: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'ucontext64_t'
Again, the cure is:
--- lib/fprintf.c~ 2023-01-02 02:20:46.000000000 +0100
+++ lib/fprintf.c 2025-04-14 11:35:15.000000000 +0200
@@ -19,6 +19,7 @@
#endif
/* Specification. */
+#include <ucontext.h>
#include <stdio.h>
#include <errno.h>
which leads to:
/opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/local/include -pipe -Os -arch ppc -MT vasnprintf.o -MD -MP -MF
$depbase.Tpo -c -o vasnprintf.o vasnprintf.c &&\
mv -f $depbase.Tpo $depbase.Po
In file included from /usr/include/sys/wait.h:110,
from /usr/include/stdlib.h:64,
from ./stdlib.h:36,
from vasnprintf.c:84:
/usr/include/sys/signal.h:145: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'mcontext64_t'
/usr/include/sys/signal.h:177: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'ucontext64_t'
From
--- lib/vasnprintf.c~ 2023-07-16 18:50:01.000000000 +0200
+++ lib/vasnprintf.c 2025-04-14 11:37:10.000000000 +0200
@@ -79,6 +79,7 @@
# endif
#endif
+#include <ucontext.h>
#include <locale.h> /* localeconv() */
#include <stdio.h> /* snprintf(), sprintf() */
#include <stdlib.h> /* abort(), malloc(), realloc(), free() */
I get:
/opt/local/bin/gcc-apple-4.2 -std=gnu99 -DHAVE_CONFIG_H -I.
-I/opt/local/include -pipe -Os -arch ppc -MT vfprintf.o -MD -MP -MF
$depbase.Tpo -c -o vfprintf.o vfprintf.c &&\
mv -f $depbase.Tpo $depbase.Po
In file included from /usr/include/sys/wait.h:110,
from /usr/include/stdlib.h:64,
from ./stdlib.h:36,
from vfprintf.c:27:
/usr/include/sys/signal.h:145: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'mcontext64_t'
/usr/include/sys/signal.h:177: error: expected '=', ',', ';', 'asm' or
'__attribute__' before 'ucontext64_t'
And
--- lib/vfprintf.c~ 2023-01-02 02:20:46.000000000 +0100
+++ lib/vfprintf.c 2025-04-14 11:39:33.000000000 +0200
@@ -19,6 +19,7 @@
#endif
/* Specification. */
+#include <ucontext.h>
#include <stdio.h>
#include <errno.h>
leads to: Compilation finished at Mon Apr 14 11:39:58
To check whether the built binaries work correctly I invoked 'make test':
---> Testing gzip
Executing: cd
"/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13"
&& /usr/bin/make check
if test -d ./.git \
&& git --version >/dev/null 2>&1; then \
cd . && \
git submodule --quiet foreach \
'test "$(git rev-parse "$sha1")" \
= "$(git merge-base origin "$sha1")"' \
|| { echo 'maint.mk: found non-public submodule commit' >&2; \
exit 1; }; \
else \
: ; \
fi
/usr/bin/make check-recursive
Making check in lib
/usr/bin/make check-am
make[3]: Nothing to be done for `check-am'.
Making check in doc
make[2]: Nothing to be done for `check'.
Making check in .
/usr/bin/make check-local
./gzip < ./gzip.doc >gzip.doc.gz-t && mv gzip.doc.gz-t gzip.doc.gz
PATH=.:$PATH; { test '.' != . \
|| zdiff gzip.doc.gz; }
PATH=.:$PATH; zdiff ./gzip.doc ./gzip.doc
PATH=.:$PATH; zdiff ./gzip.doc gzip.doc.gz
PATH=.:$PATH; zdiff - ./gzip.doc <gzip.doc.gz
PATH=.:$PATH; zdiff gzip.doc.gz gzip.doc.gz
PATH=.:$PATH; zgrep -iV >/dev/null
PATH=.:$PATH; \
for opt in --rsyncable '' -1 -9; do \
for file in gunzip gzexe zcat zcmp zdiff zegrep zfgrep zforce zgrep
zless zmore znew ./ChangeLog ./configure ./gzip.c; do \
gzip $opt -c -- "$file" \
| gzip -d | cmp - "$file" || exit 1; \
done; \
done
Making check in tests
/usr/bin/make check-TESTS
PASS: gzip-env
PASS: helin-segv
PASS: help-version
PASS: hufts
PASS: keep
PASS: list
PASS: list-big
PASS: memcpy-abuse
PASS: mixed
PASS: null-suffix-clobber
PASS: pipe-output
PASS: reproducible
PASS: stdin
PASS: timestamp
PASS: two-files
PASS: trailing-nul
PASS: unpack-invalid
PASS: unpack-valid
PASS: upper-suffix
PASS: write-error
PASS: z-suffix
PASS: zdiff
PASS: zgrep-f
PASS: zgrep-abuse
PASS: zgrep-binary
PASS: zgrep-context
zgrep-signal: set-up failure: signal handling busted on this host
ERROR: zgrep-signal
PASS: znew-k
=====================================
gzip 1.13: tests/test-suite.log
=====================================
# TOTAL: 28
# PASS: 27
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 1
.. contents:: :depth: 2
ERROR: zgrep-signal
===================
++
initial_cwd_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests
gt-zgrep-signal.XXXX
+++
destdir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests
+++ template_=gt-zgrep-signal.XXXX
+++ MAX_TRIES_=4
+++
destdir_slash_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/
++++ unset TMPDIR
+++ d=/tmp/-p.VvzFjBXf
gt-zgrep-signal.s07R
++++ echo gt-zgrep-signal.XXXX
++++ sed 's/XX*$//'
+++ base_template_=gt-zgrep-signal.
++++ echo gt-zgrep-signal.XXXX
++++ wc -c
+++ template_length_= 21
++++ echo gt-zgrep-signal.
++++ wc -c
+++ nx_= 17
++++ expr 21 - 17
+++ nx_=4
+++ err_=
+++ i_=1
+++ :
++++ rand_bytes_ 4
++++ n_=4
++++ chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
++++ dev_rand_=/dev/urandom
++++ test -r /dev/urandom
++++ dd ibs=4 count=1 if=/dev/urandom
++++ LC_ALL=C
++++ tr -c abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
01234567abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
++++ return
+++ X_=Nubu
+++
candidate_dir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.Nubu
++++ mkdir -m 0700
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.Nubu
+++ err_=
+++ echo
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.Nubu
+++ return
++
test_dir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.Nubu
++ cd
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.Nubu
++ srcdir=../.
++ builddir=..
++ export srcdir builddir
++ gl_init_sh_nl_=
++ IFS=
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
++ saved_IFS=
++ IFS=:
++ new_PATH=
++ sep_=
++ test -d
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13
++ sep_=:
++ test -d /opt/local/bin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin
++ sep_=:
++ test -d /opt/local/sbin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin
++ sep_=:
++ test -d /bin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin
++ sep_=:
++ test -d /sbin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin
++ sep_=:
++ test -d /usr/bin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin
++ sep_=:
++ test -d /usr/sbin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
++ sep_=:
++ IFS=
++
PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
++ export PATH
++ trap remove_tmp_ EXIT
+ path_prepend_ ..
+ test 1 '!=' 0
+ path_dir_=..
+
abs_path_dir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/..
+
PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/..:/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
+ create_exe_shims_
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/..
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ echo a
+ gzip -c
+ test x = x
+ PERL=perl
+ write_to_dangling_pipe cat f.gz f.gz
+ program=cat
+ shift
+ args=
+ args=, 'f.gz'
+ args=, 'f.gz', 'f.gz'
+ perl -e '
use POSIX qw(dup2);
$SIG{PIPE} = "DEFAULT";
pipe my ($read_end, $write_end) or die "pipe: $!\n";
dup2 fileno $write_end, 1 or die "dup2: $!\n";
close $read_end or die "close: $!\n";
exec '\''cat'\'', '\''f.gz'\'', '\''f.gz'\'';
'
cat: f.gz: Bad file descriptor
+ signal_status=1
+ test 128 -lt 1
+ framework_failure_ 'signal handling busted on this host'
+ warn_ 'zgrep-signal: set-up failure: signal handling busted on this host'
+ printf '%s\n' 'zgrep-signal: set-up failure: signal handling busted on this
host'
zgrep-signal: set-up failure: signal handling busted on this host
+ test 9 = 2
+ printf '%s\n' 'zgrep-signal: set-up failure: signal handling busted on this
host'
+ sed 1q
+ Exit 99
+ set +e
+ exit 99
+ exit 99
+ remove_tmp_
+ __st=99
+ cleanup_
+ :
+ test '' = yes
+ cd
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests
+ chmod -R u+rwx
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.Nubu
+ rm -rf
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.Nubu
+ exit 99
ERROR zgrep-signal (exit status: 99)
============================================================================
Testsuite summary for gzip 1.13
============================================================================
# TOTAL: 28
# PASS: 27
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 1
============================================================================
See tests/test-suite.log
Please report to [email protected]
============================================================================
make[4]: *** [test-suite.log] Error 1
make[3]: *** [check-TESTS] Error 2
make[2]: *** [check-am] Error 2
make[1]: *** [check-recursive] Error 1
make: *** [check] Error 2
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
After removing the software I built again from archive file, now automatically
applying all the patches:
patching file lib/error.c
patching file lib/fclose.c
patching file lib/fflush.c
patching file lib/fpurge.c
patching file lib/fseek.c
patching file lib/fseeko.c
patching file lib/fprintf.c
patching file lib/vasnprintf.c
patching file lib/vfprintf.c
The new tests produced:
---> Testing gzip
Executing: cd
"/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13"
&& /usr/bin/make check
if test -d ./.git \
&& git --version >/dev/null 2>&1; then \
cd . && \
git submodule --quiet foreach \
'test "$(git rev-parse "$sha1")" \
= "$(git merge-base origin "$sha1")"' \
|| { echo 'maint.mk: found non-public submodule commit' >&2; \
exit 1; }; \
else \
: ; \
fi
/usr/bin/make check-recursive
Making check in lib
/usr/bin/make check-am
make[3]: Nothing to be done for `check-am'.
Making check in doc
make[2]: Nothing to be done for `check'.
Making check in .
/usr/bin/make check-local
./gzip < ./gzip.doc >gzip.doc.gz-t && mv gzip.doc.gz-t gzip.doc.gz
PATH=.:$PATH; { test '.' != . \
|| zdiff gzip.doc.gz; }
PATH=.:$PATH; zdiff ./gzip.doc ./gzip.doc
PATH=.:$PATH; zdiff ./gzip.doc gzip.doc.gz
PATH=.:$PATH; zdiff - ./gzip.doc <gzip.doc.gz
PATH=.:$PATH; zdiff gzip.doc.gz gzip.doc.gz
PATH=.:$PATH; zgrep -iV >/dev/null
PATH=.:$PATH; \
for opt in --rsyncable '' -1 -9; do \
for file in gunzip gzexe zcat zcmp zdiff zegrep zfgrep zforce zgrep
zless zmore znew ./ChangeLog ./configure ./gzip.c; do \
gzip $opt -c -- "$file" \
| gzip -d | cmp - "$file" || exit 1; \
done; \
done
Making check in tests
/usr/bin/make check-TESTS
PASS: gzip-env
PASS: helin-segv
PASS: help-version
PASS: hufts
PASS: keep
PASS: list
PASS: list-big
PASS: memcpy-abuse
PASS: mixed
PASS: null-suffix-clobber
PASS: pipe-output
PASS: reproducible
PASS: stdin
PASS: timestamp
PASS: two-files
PASS: trailing-nul
PASS: unpack-invalid
PASS: unpack-valid
PASS: upper-suffix
PASS: write-error
PASS: z-suffix
PASS: zdiff
PASS: zgrep-f
PASS: zgrep-abuse
PASS: zgrep-binary
PASS: zgrep-context
zgrep-signal: set-up failure: signal handling busted on this host
ERROR: zgrep-signal
PASS: znew-k
=====================================
gzip 1.13: tests/test-suite.log
=====================================
# TOTAL: 28
# PASS: 27
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 1
.. contents:: :depth: 2
ERROR: zgrep-signal
===================
++
initial_cwd_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests
gt-zgrep-signal.XXXX
+++
destdir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests
+++ template_=gt-zgrep-signal.XXXX
+++ MAX_TRIES_=4
+++
destdir_slash_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/
++++ unset TMPDIR
+++ d=/tmp/-p.5fCj3sjp
gt-zgrep-signal.bFPK
++++ echo gt-zgrep-signal.XXXX
++++ sed 's/XX*$//'
+++ base_template_=gt-zgrep-signal.
++++ echo gt-zgrep-signal.XXXX
++++ wc -c
+++ template_length_= 21
++++ echo gt-zgrep-signal.
++++ wc -c
+++ nx_= 17
++++ expr 21 - 17
+++ nx_=4
+++ err_=
+++ i_=1
+++ :
++++ rand_bytes_ 4
++++ n_=4
++++ chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
++++ dev_rand_=/dev/urandom
++++ test -r /dev/urandom
++++ dd ibs=4 count=1 if=/dev/urandom
++++ LC_ALL=C
++++ tr -c abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
01234567abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
++++ return
+++ X_=8MuU
+++
candidate_dir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.8MuU
++++ mkdir -m 0700
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.8MuU
+++ err_=
+++ echo
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.8MuU
+++ return
++
test_dir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.8MuU
++ cd
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.8MuU
++ srcdir=../.
++ builddir=..
++ export srcdir builddir
++ gl_init_sh_nl_=
++ IFS=
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
++ saved_IFS=
++ IFS=:
++ new_PATH=
++ sep_=
++ test -d
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13
++ sep_=:
++ test -d /opt/local/bin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin
++ sep_=:
++ test -d /opt/local/sbin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin
++ sep_=:
++ test -d /bin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin
++ sep_=:
++ test -d /sbin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin
++ sep_=:
++ test -d /usr/bin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin
++ sep_=:
++ test -d /usr/sbin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
++ sep_=:
++ IFS=
++
PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
++ export PATH
++ trap remove_tmp_ EXIT
+ path_prepend_ ..
+ test 1 '!=' 0
+ path_dir_=..
+
abs_path_dir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/..
+
PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/..:/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
+ create_exe_shims_
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/..
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ echo a
+ gzip -c
+ test x = x
+ PERL=perl
+ write_to_dangling_pipe cat f.gz f.gz
+ program=cat
+ shift
+ args=
+ args=, 'f.gz'
+ args=, 'f.gz', 'f.gz'
+ perl -e '
use POSIX qw(dup2);
$SIG{PIPE} = "DEFAULT";
pipe my ($read_end, $write_end) or die "pipe: $!\n";
dup2 fileno $write_end, 1 or die "dup2: $!\n";
close $read_end or die "close: $!\n";
exec '\''cat'\'', '\''f.gz'\'', '\''f.gz'\'';
'
cat: f.gz: Bad file descriptor
+ signal_status=1
+ test 128 -lt 1
+ framework_failure_ 'signal handling busted on this host'
+ warn_ 'zgrep-signal: set-up failure: signal handling busted on this host'
+ printf '%s\n' 'zgrep-signal: set-up failure: signal handling busted on this
host'
zgrep-signal: set-up failure: signal handling busted on this host
+ test 9 = 2
+ printf '%s\n' 'zgrep-signal: set-up failure: signal handling busted on this
host'
+ sed 1q
+ Exit 99
+ set +e
+ exit 99
+ exit 99
+ remove_tmp_
+ __st=99
+ cleanup_
+ :
+ test '' = yes
+ cd
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests
+ chmod -R u+rwx
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.8MuU
+ rm -rf
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.13/tests/gt-zgrep-signal.8MuU
+ exit 99
ERROR zgrep-signal (exit status: 99)
============================================================================
Testsuite summary for gzip 1.13
============================================================================
# TOTAL: 28
# PASS: 27
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 1
============================================================================
See tests/test-suite.log
Please report to [email protected]
============================================================================
make[4]: *** [test-suite.log] Error 1
make[3]: *** [check-TESTS] Error 2
make[2]: *** [check-am] Error 2
make[1]: *** [check-recursive] Error 1
make: *** [check] Error 2
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Both tests produce the same results. Gzip 1.12, not needing any patches to
build, gives these test results:
---> Testing gzip
Executing: cd
"/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12"
&& /usr/bin/make check
if test -d ./.git \
&& git --version >/dev/null 2>&1; then \
cd . && \
git submodule --quiet foreach \
'test "$(git rev-parse "$sha1")" \
= "$(git merge-base origin "$sha1")"' \
|| { echo 'maint.mk: found non-public submodule commit' >&2; \
exit 1; }; \
else \
: ; \
fi
/usr/bin/make check-recursive
Making check in lib
/usr/bin/make check-am
make[3]: Nothing to be done for `check-am'.
Making check in doc
make[2]: Nothing to be done for `check'.
Making check in .
/usr/bin/make check-local
./gzip < ./gzip.doc >gzip.doc.gz-t && mv gzip.doc.gz-t gzip.doc.gz
PATH=.:$PATH; { test '.' != . \
|| zdiff gzip.doc.gz; }
PATH=.:$PATH; zdiff ./gzip.doc ./gzip.doc
PATH=.:$PATH; zdiff ./gzip.doc gzip.doc.gz
PATH=.:$PATH; zdiff - ./gzip.doc <gzip.doc.gz
PATH=.:$PATH; zdiff gzip.doc.gz gzip.doc.gz
PATH=.:$PATH; zgrep -iV >/dev/null
PATH=.:$PATH; \
for opt in --rsyncable '' -1 -9; do \
for file in gunzip gzexe zcat zcmp zdiff zegrep zfgrep zforce zgrep
zless zmore znew ./ChangeLog ./configure ./gzip.c; do \
gzip $opt -c -- "$file" \
| gzip -d | cmp - "$file" || exit 1; \
done; \
done
Making check in tests
/usr/bin/make check-TESTS
PASS: gzip-env
PASS: helin-segv
PASS: help-version
PASS: hufts
PASS: keep
PASS: list
PASS: list-big
PASS: memcpy-abuse
PASS: mixed
PASS: null-suffix-clobber
PASS: reproducible
PASS: stdin
PASS: timestamp
PASS: two-files
PASS: trailing-nul
PASS: unpack-invalid
PASS: unpack-valid
PASS: upper-suffix
PASS: z-suffix
PASS: zdiff
PASS: zgrep-f
PASS: zgrep-abuse
PASS: zgrep-binary
PASS: zgrep-context
zgrep-signal: set-up failure: signal handling busted on this host
ERROR: zgrep-signal
PASS: znew-k
=====================================
gzip 1.12: tests/test-suite.log
=====================================
# TOTAL: 26
# PASS: 25
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 1
.. contents:: :depth: 2
ERROR: zgrep-signal
===================
++
initial_cwd_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests
gt-zgrep-signal.XXXX
+++
destdir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests
+++ template_=gt-zgrep-signal.XXXX
+++ MAX_TRIES_=4
+++
destdir_slash_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/
++++ unset TMPDIR
+++ d=/tmp/-p.cts5cSrW
gt-zgrep-signal.jhm7
++++ echo gt-zgrep-signal.XXXX
++++ sed 's/XX*$//'
+++ base_template_=gt-zgrep-signal.
++++ echo gt-zgrep-signal.XXXX
++++ wc -c
+++ template_length_= 21
++++ echo gt-zgrep-signal.
++++ wc -c
+++ nx_= 17
++++ expr 21 - 17
+++ nx_=4
+++ err_=
+++ i_=1
+++ :
++++ rand_bytes_ 4
++++ n_=4
++++ chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
++++ dev_rand_=/dev/urandom
++++ test -r /dev/urandom
++++ dd ibs=4 count=1 if=/dev/urandom
++++ LC_ALL=C
++++ tr -c abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
01234567abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
++++ return
+++ X_=IOgc
+++
candidate_dir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/gt-zgrep-signal.IOgc
++++ mkdir -m 0700
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/gt-zgrep-signal.IOgc
+++ err_=
+++ echo
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/gt-zgrep-signal.IOgc
+++ return
++
test_dir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/gt-zgrep-signal.IOgc
++ cd
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/gt-zgrep-signal.IOgc
++ srcdir=../.
++ builddir=..
++ export srcdir builddir
++ gl_init_sh_nl_=
++ IFS=
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
++ saved_IFS=
++ IFS=:
++ new_PATH=
++ sep_=
++ test -d
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12
++ sep_=:
++ test -d /opt/local/bin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12:/opt/local/bin
++ sep_=:
++ test -d /opt/local/sbin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12:/opt/local/bin:/opt/local/sbin
++ sep_=:
++ test -d /bin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12:/opt/local/bin:/opt/local/sbin:/bin
++ sep_=:
++ test -d /sbin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12:/opt/local/bin:/opt/local/sbin:/bin:/sbin
++ sep_=:
++ test -d /usr/bin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin
++ sep_=:
++ test -d /usr/sbin/.
++
new_PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
++ sep_=:
++ IFS=
++
PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
++ export PATH
++ trap remove_tmp_ 0
+ path_prepend_ ..
+ test 1 '!=' 0
+ path_dir_=..
+
abs_path_dir_=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/..
+
PATH=/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/..:/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin
+ create_exe_shims_
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/..
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ echo a
+ gzip -c
+ test x = x
+ PERL=perl
+ write_to_dangling_pipe cat f.gz f.gz
+ program=cat
+ shift
+ args=
+ args=, 'f.gz'
+ args=, 'f.gz', 'f.gz'
+ perl -e '
use POSIX qw(dup2);
$SIG{PIPE} = "DEFAULT";
pipe my ($read_end, $write_end) or die "pipe: $!\n";
dup2 fileno $write_end, 1 or die "dup2: $!\n";
close $read_end or die "close: $!\n";
exec '\''cat'\'', '\''f.gz'\'', '\''f.gz'\'';
'
cat: f.gz: Bad file descriptor
+ signal_status=1
+ test 128 -lt 1
+ framework_failure_ 'signal handling busted on this host'
+ warn_ 'zgrep-signal: set-up failure: signal handling busted on this host'
+ printf '%s\n' 'zgrep-signal: set-up failure: signal handling busted on this
host'
zgrep-signal: set-up failure: signal handling busted on this host
+ test 9 = 2
+ printf '%s\n' 'zgrep-signal: set-up failure: signal handling busted on this
host'
+ sed 1q
+ Exit 99
+ set +e
+ exit 99
+ exit 99
+ remove_tmp_
+ __st=99
+ cleanup_
+ :
+ test '' = yes
+ cd
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests
+ chmod -R u+rwx
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/gt-zgrep-signal.IOgc
+ rm -rf
/opt/local/var/macports/build/nue.de.rsync.macports.org_macports_release_tarballs_ports_archivers_gzip/gzip/work/gzip-1.12/tests/gt-zgrep-signal.IOgc
+ exit 99
ERROR zgrep-signal (exit status: 99)
============================================================================
Testsuite summary for gzip 1.12
============================================================================
# TOTAL: 26
# PASS: 25
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 1
============================================================================
See tests/test-suite.log
Please report to [email protected]
============================================================================
So both releases give similar test results.
Attached is the set of patches I used on Tiger.
--
Greetings
Pete
Perl—the only language that looks the same before and after RSA encryption.
- Keith Bostic
Gzip_Tiger-Patches.diff
Description: Binary data
