--- a/src/hotspot/os/linux/os_linux.cpp +++ b/src/hotspot/os/linux/os_linux.cpp @@ -1847,7 +1847,7 @@ void * os::dll_load(const char *filename #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; --- a/make/autoconf/platform.m4 +++ b/make/autoconf/platform.m4 @@ -35,6 +35,10 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU VAR_CPU_ARCH=x86 VAR_CPU_BITS=64 VAR_CPU_ENDIAN=little + case "$host" in *x32) + VAR_CPU=x32 + VAR_CPU_BITS=32 + esac ;; i?86) VAR_CPU=x86 @@ -455,6 +459,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HEL HOTSPOT_$1_CPU_DEFINE=IA32 elif test "x$OPENJDK_$1_CPU" = xx86_64; then HOTSPOT_$1_CPU_DEFINE=AMD64 + elif test "x$OPENJDK_$1_CPU" = xx32; then + HOTSPOT_$1_CPU_DEFINE=X32 elif test "x$OPENJDK_$1_CPU" = xsparcv9; then HOTSPOT_$1_CPU_DEFINE=SPARC elif test "x$OPENJDK_$1_CPU" = xaarch64; then --- a/make/autoconf/flags.m4 +++ b/make/autoconf/flags.m4 @@ -254,6 +254,7 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN], test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}" fi + case "$host" in *x32) MACHINE_FLAG=;; esac fi # FIXME: global flags are not used yet... @@ -328,11 +329,8 @@ AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL] AC_SUBST(COMPILER_COMMAND_FILE_FLAG) AC_SUBST(COMPILER_BINDCMD_FILE_FLAG) - # Check that the compiler supports -mX (or -qX on AIX) flags - # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does - FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}], - IF_TRUE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true], - IF_FALSE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false]) + # Don't run the -mX check and set this always to false, or else x32 gets passed -m32 + COMPILER_SUPPORTS_TARGET_BITS_FLAG=false AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG) if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then