Patch to enable build on s390x

Andreas Krebbel krebbel at
Fri Sep 16 09:06:35 CEST 2011

Hi Torbjorn,

I would like to rework the patch to get it integrated.  I haven't been subscribed to the
mailing list until now so I missed most of the questions.

Regarding the questions from the mailthread:

> Do these systems support a 32-bit ABI?  If they do, the compiler
> should have an option controlling ABI.  Please try it, using something
> trivial like hello.c.

Yes. The toolchain for System z supports 2 differents ABIs:
-m31 for 32 bit GPRs, 31 bit addressing - s390 <-- machine id (uname -r)
-m64 for 64 bit GPRs, 64 bit addressing - s390x

> What 64-bit multiply support do these system provide?  The 32-bit s390
> systems have a signed 32x32->64 bit multiply.  GMP really needs a
> 64x64->128 bit multiply, preferably unsigned, to support the s390x
> well.

s390x has unsigned 64x64 -> 128 integer multiplication in a reg, reg and a reg, mem
variant. The instructions are mlgr and mlg.

> Which compiler predefines are defined in 64-bit mode?  If there is an
> 32-bit ABI, what symbols are predefined when that ABI is chosen?

With -m31 the __s390__ is defined by the compiler. For 64 bit __s390__ AND __s390x__ is


More information about the gmp-bugs mailing list