1 --- a/src/hotspot/os/linux/os_linux.cpp
2 +++ b/src/hotspot/os/linux/os_linux.cpp
3 @@ -1847,7 +1847,7 @@ void * os::dll_load(const char *filename
6 static Elf32_Half running_arch_code=EM_386;
8 +#elif (defined AMD64) || defined(X32)
9 static Elf32_Half running_arch_code=EM_X86_64;
11 static Elf32_Half running_arch_code=EM_IA_64;
12 --- a/make/autoconf/platform.m4
13 +++ b/make/autoconf/platform.m4
14 @@ -35,6 +35,10 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
18 + case "$host" in *x32)
25 @@ -455,6 +459,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HEL
26 HOTSPOT_$1_CPU_DEFINE=IA32
27 elif test "x$OPENJDK_$1_CPU" = xx86_64; then
28 HOTSPOT_$1_CPU_DEFINE=AMD64
29 + elif test "x$OPENJDK_$1_CPU" = xx32; then
30 + HOTSPOT_$1_CPU_DEFINE=X32
31 elif test "x$OPENJDK_$1_CPU" = xsparcv9; then
32 HOTSPOT_$1_CPU_DEFINE=SPARC
33 elif test "x$OPENJDK_$1_CPU" = xaarch64; then
34 --- a/make/autoconf/flags.m4
35 +++ b/make/autoconf/flags.m4
36 @@ -254,6 +254,7 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
37 test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then
38 MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
40 + case "$host" in *x32) MACHINE_FLAG=;; esac
43 # FIXME: global flags are not used yet...
44 @@ -328,11 +329,8 @@ AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL]
45 AC_SUBST(COMPILER_COMMAND_FILE_FLAG)
46 AC_SUBST(COMPILER_BINDCMD_FILE_FLAG)
48 - # Check that the compiler supports -mX (or -qX on AIX) flags
49 - # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
50 - FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}],
51 - IF_TRUE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
52 - IF_FALSE: [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
53 + # Don't run the -mX check and set this always to false, or else x32 gets passed -m32
54 + COMPILER_SUPPORTS_TARGET_BITS_FLAG=false
55 AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
57 if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then