On Tue, Sep 1, 2026 at 12:15 PM Bruno Haible via GNU gzip discussion and
bug reports. <[email protected]> wrote:

> On Linux/s390x (Debian 8) in 32-bit mode (CC="gcc -m31"),
> with configure option --enable-dfltcc, there is a build failure:
>
>   CC       dfltcc.o
> ../dfltcc.c: Assembler messages:
> ../dfltcc.c:163: Error: Unrecognized opcode: `stfle'
> Makefile:1640: recipe for target 'dfltcc.o' failed
> make[2]: *** [dfltcc.o] Error 1
>
> Or, with V=1:
>
> depbase=`echo dfltcc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
> gcc -m31 -std=gnu11 -DHAVE_CONFIG_H -I. -I.. -I./lib  -I../lib
> -I/home/bruno/prefix32/include -Wall   -g -O2 -MT dfltcc.o -MD -MP -MF
> $depbase.Tpo -c -o dfltcc.o ../dfltcc.c &&\
> mv -f $depbase.Tpo $depbase.Po
> ../dfltcc.c: Assembler messages:
> ../dfltcc.c:163: Error: Unrecognized opcode: `stfle'
> Makefile:1640: recipe for target 'dfltcc.o' failed
> make[2]: *** [dfltcc.o] Error 1
>
> In the source code there is a comment that attempts to explain why this
> code is good for 32-bit mode:
>
>   /* STFLE is supported since z9-109 and only in z/Architecture mode.  When
>    * compiling with -m31, gcc defaults to ESA mode, however, since the
> kernel
>    * is 64-bit, it's always z/Architecture mode at runtime.  */
>
> But apparently it assumes that the assembler will grok the 'stfle'
> instruction.
> Which is not the case here (in 32-bit mode).


Thank you for all the testing, Bruno!
I've just pushed the attached, which should fix it.

Attachment: gz-stfle.patch
Description: Binary data

Reply via email to