--- jdk8u-jdk8u302-ga.orig/common/autoconf/platform.m4 2021-06-28 20:48:48.000000000 +0200 +++ jdk8u-jdk8u302-ga/common/autoconf/platform.m4 2021-08-02 11:32:31.464394497 +0200 @@ -36,6 +36,12 @@ VAR_CPU_BITS=64 VAR_CPU_ENDIAN=little ;; + x32) + VAR_CPU=x32 + VAR_CPU_ARCH=x86 + VAR_CPU_BITS=32 + VAR_CPU_ENDIAN=little + ;; i?86) VAR_CPU=x86 VAR_CPU_ARCH=x86 @@ -168,7 +174,14 @@ # Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables. PLATFORM_EXTRACT_VARS_FROM_OS($build_os) - PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu) + case "$build" in + *x32) + PLATFORM_EXTRACT_VARS_FROM_CPU(x32) + ;; + *) + PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu) + ;; + esac # ..and setup our own variables. (Do this explicitely to facilitate searching) OPENJDK_BUILD_OS="$VAR_OS" OPENJDK_BUILD_OS_API="$VAR_OS_API" @@ -190,7 +203,14 @@ # Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables. PLATFORM_EXTRACT_VARS_FROM_OS($host_os) - PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu) + case "$host" in + *x32) + PLATFORM_EXTRACT_VARS_FROM_CPU(x32) + ;; + *) + PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu) + ;; + esac # ... and setup our own variables. (Do this explicitely to facilitate searching) OPENJDK_TARGET_OS="$VAR_OS" OPENJDK_TARGET_OS_API="$VAR_OS_API" @@ -380,6 +400,7 @@ s390*) ZERO_ARCHDEF=S390 ;; sparc*) ZERO_ARCHDEF=SPARC ;; x86_64*) ZERO_ARCHDEF=AMD64 ;; + x32*) ZERO_ARCHDEF=X32 ;; x86) ZERO_ARCHDEF=IA32 ;; *) ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z) esac --- jdk8u-jdk8u302-ga.orig/hotspot/src/os/linux/vm/os_linux.cpp 2021-08-02 11:19:04.106583145 +0200 +++ jdk8u-jdk8u302-ga/hotspot/src/os/linux/vm/os_linux.cpp 2021-08-02 11:20:22.825758333 +0200 @@ -1980,7 +1980,7 @@ #if (defined IA32) static Elf32_Half running_arch_code=EM_386; - #elif (defined AMD64) + #elif (defined AMD64) || (defined X32) static Elf32_Half running_arch_code=EM_X86_64; #elif (defined IA64) static Elf32_Half running_arch_code=EM_IA_64; --- jdk8u-jdk8u302-ga.orig/jdk/make/gensrc/GensrcX11Wrappers.gmk 2021-03-31 19:24:20.000000000 +0200 +++ jdk8u-jdk8u302-ga/jdk/make/gensrc/GensrcX11Wrappers.gmk 2021-08-02 11:20:22.832424943 +0200 @@ -87,9 +87,11 @@ $(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $* # use -m32/-m64 only if the compiler supports it + ifneq ($(OPENJDK_TARGET_CPU),x32) ifeq ($(COMPILER_SUPPORTS_TARGET_BITS_FLAG), true) MEMORY_MODEL_FLAG="$(COMPILER_TARGET_BITS_FLAG)$*" endif + endif # Compile the C code into an executable. $(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c --- jdk8u-jdk8u302-ga/common/autoconf/flags.m4.orig 2021-06-28 20:48:48.000000000 +0200 +++ jdk8u-jdk8u302-ga/common/autoconf/flags.m4 2021-08-02 13:10:55.178538598 +0200 @@ -905,6 +905,9 @@ s390) ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}31" ;; + x32) + ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}x32" + ;; *) ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}" esac