On 2025-04-11 09:14, Paul Eggert wrote:
Why is this needed? What happens if you omit "#include <errno.h>".
Sure no problem. Without this patch, on (our) s390x build (only): [ 443s] gcc -DHAVE_CONFIG_H -I. -I./lib -I./lib -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -fomit-frame-pointer -Dalignas=_Alignas -W -Wall -Wno-unused-parameter -Wstrict-prototypes -Wpointer-arith -fPIE -DDFLTCC_LEVEL_MASK=0x7e -fprofile-generate -c -o dfltcc.o dfltcc.c [ 443s] dfltcc.c: In function 'dfltcc_inflate': [ 443s] dfltcc.c:441:15: error: 'errno' undeclared (first use in this function) [ 443s] 441 | errno = 0; [ 443s] | ^~~~~ [ 443s] dfltcc.c:28:1: note: 'errno' is defined in header '<errno.h>'; this is probably fixable by adding '#include <errno.h>' [ 443s] 27 | #include "gzip.h" [ 443s] +++ |+#include <errno.h> [ 443s] 28 | [ 443s] dfltcc.c:441:15: note: each undeclared identifier is reported only once for each function it appears in [ 443s] 441 | errno = 0; [ 443s] | ^~~~~ [ 443s] make[2]: *** [Makefile:2050: dfltcc.o] Error 1 I did not dive into the why because the fix seems obvious. Looks like this fixes: 23ddd95 <https://github.com/andreasstieger/gzip/commit/23ddd95f3e152423fe0dfc96ff31d4130a65e8cf> "gzip: better fix for s390 buffer flushes" Full log and config at: https://build.opensuse.org/package/show/home:AndreasStieger/gzip-broken https://build.opensuse.org/package/live_build_log/home:AndreasStieger/gzip-broken/openSUSE_Tumbleweed/s390x
The line numbers don't seem to match the current gzip source code; could you please try the latest gzip?
Hmm, this is literally off your master at a6924a2a2, v.1.14 + 1. I put 60f9518 into the errno branch at https://github.com/andreasstieger/gzip/compare/master...errno Andreas