On s390x, the flag -m31 is needed to enable this mode. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- lib.c | 3 +++ machine.h | 4 +++- target.c | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib.c b/lib.c index 2a517b447..58c12c77b 100644 --- a/lib.c +++ b/lib.c @@ -456,6 +456,8 @@ static char **handle_switch_m(char *arg, char **next) arch_m64 = ARCH_LP64; } else if (!strcmp(arg, "m32") || !strcmp(arg, "m16")) { arch_m64 = ARCH_LP32; + } else if (!strcmp(arg, "m31")) { + arch_m64 = ARCH_LP32; } else if (!strcmp(arg, "mx32")) { arch_m64 = ARCH_X32; } else if (!strcmp(arg, "msize-llp64")) { @@ -1356,6 +1358,7 @@ static void predefined_macros(void) case MACH_S390X: predefine("__zarch__", 1, "1"); predefine("__s390x__", 1, "1"); + case MACH_S390: predefine("__s390__", 1, "1"); break; case MACH_SPARC64: diff --git a/machine.h b/machine.h index f7567efed..e24822a7f 100644 --- a/machine.h +++ b/machine.h @@ -31,8 +31,8 @@ enum machine { MACH_PPC32, MACH_PPC64, MACH_RISCV32, MACH_RISCV64, MACH_SPARC32, MACH_SPARC64, + MACH_S390, MACH_S390X, MACH_M68K, - MACH_S390X, MACH_UNKNOWN }; @@ -64,6 +64,8 @@ enum machine { #define MACH_NATIVE MACH_M68K #elif defined(__s390x__) || defined(__zarch__) #define MACH_NATIVE MACH_S390X +#elif defined(__s390__) +#define MACH_NATIVE MACH_S390 #else #define MACH_NATIVE MACH_UNKNOWN #endif diff --git a/target.c b/target.c index c2ab55490..7829e8f9a 100644 --- a/target.c +++ b/target.c @@ -97,6 +97,7 @@ void init_target(void) switch (arch_mach) { case MACH_ARM: case MACH_MIPS32: + case MACH_S390: case MACH_S390X: case MACH_SPARC32: bits_in_longdouble = 64; -- 2.23.0