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.
gz-stfle.patch
Description: Binary data
