-diff -durN jdk8u-jdk8u66-b02.orig/common/autoconf/platform.m4 jdk8u-jdk8u66-b02/common/autoconf/platform.m4
---- jdk8u-jdk8u66-b02.orig/common/autoconf/platform.m4 2015-07-17 09:35:23.000000000 +0200
-+++ jdk8u-jdk8u66-b02/common/autoconf/platform.m4 2015-09-21 13:18:18.439165925 +0200
-@@ -31,10 +31,20 @@
+# DP: Add support for x32
+
+--- a/common/autoconf/platform.m4
++++ b/common/autoconf/platform.m4
+@@ -31,10 +31,17 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU
# First argument is the cpu name from the trip/quad
case "$1" in
x86_64)
- VAR_CPU_ARCH=x86
- VAR_CPU_BITS=64
- VAR_CPU_ENDIAN=little
-+ case "$target_os" in
-+ *x32)
-+ VAR_CPU=x32
-+ VAR_CPU_ARCH=x86
-+ VAR_CPU_BITS=32
-+ VAR_CPU_ENDIAN=little
-+ ;;
-+ *)
-+ VAR_CPU=x86_64
-+ VAR_CPU_ARCH=x86
-+ VAR_CPU_BITS=64
-+ VAR_CPU_ENDIAN=little
-+ ;;
-+ esac
++ if test "`dpkg-architecture -qDEB_HOST_ARCH`" = x32 ; then
++ VAR_CPU=x32
++ VAR_CPU_ARCH=x86
++ VAR_CPU_BITS=32
++ VAR_CPU_ENDIAN=little
++ else
++ VAR_CPU=x86_64
++ VAR_CPU_ARCH=x86
++ VAR_CPU_BITS=64
++ VAR_CPU_ENDIAN=little
++ fi
;;
i?86)
VAR_CPU=x86
-@@ -375,7 +385,16 @@
+@@ -451,7 +458,13 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS],
ppc64) ZERO_ARCHDEF=PPC64 ;;
s390*) ZERO_ARCHDEF=S390 ;;
sparc*) ZERO_ARCHDEF=SPARC ;;
- x86_64*) ZERO_ARCHDEF=AMD64 ;;
+ x86_64*)
-+ case "$target_os" in
-+ *x32)
-+ ZERO_ARCHDEF=X32
-+ ;;
-+ *)
-+ ZERO_ARCHDEF=AMD64
-+ ;;
-+ esac
++ if test "`dpkg-architecture -qDEB_HOST_ARCH`" = x32 ; then
++ ZERO_ARCHDEF=X32
++ else
++ ZERO_ARCHDEF=AMD64
++ fi
+ ;;
x86) ZERO_ARCHDEF=IA32 ;;
*) ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z)
esac
-diff -durN jdk8u-jdk8u66-b02.orig/hotspot/src/os/linux/vm/os_linux.cpp jdk8u-jdk8u66-b02/hotspot/src/os/linux/vm/os_linux.cpp
---- jdk8u-jdk8u66-b02.orig/hotspot/src/os/linux/vm/os_linux.cpp 2015-09-21 13:05:51.883678088 +0200
-+++ jdk8u-jdk8u66-b02/hotspot/src/os/linux/vm/os_linux.cpp 2015-09-21 13:12:58.665870862 +0200
-@@ -1902,7 +1902,7 @@
+--- a/hotspot/src/os/linux/vm/os_linux.cpp
++++ b/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -1980,7 +1980,7 @@ void * os::dll_load(const char *filename
#if (defined IA32)
static Elf32_Half running_arch_code=EM_386;
static Elf32_Half running_arch_code=EM_X86_64;
#elif (defined IA64)
static Elf32_Half running_arch_code=EM_IA_64;
-diff -durN jdk8u-jdk8u66-b02.orig/jdk/make/gensrc/GensrcX11Wrappers.gmk jdk8u-jdk8u66-b02/jdk/make/gensrc/GensrcX11Wrappers.gmk
---- jdk8u-jdk8u66-b02.orig/jdk/make/gensrc/GensrcX11Wrappers.gmk 2015-07-23 16:17:35.000000000 +0200
-+++ jdk8u-jdk8u66-b02/jdk/make/gensrc/GensrcX11Wrappers.gmk 2015-09-21 13:13:00.339291213 +0200
-@@ -87,9 +87,11 @@
+--- a/jdk/make/gensrc/GensrcX11Wrappers.gmk
++++ b/jdk/make/gensrc/GensrcX11Wrappers.gmk
+@@ -91,9 +91,11 @@ ifneq ($(COMPILE_TYPE), cross)
$(TOOL_WRAPPERGENERATOR) $(@D) $(GENSRC_SIZER_DIR)/xlibtypes.txt "sizer" $*
# use -m32/-m64 only if the compiler supports it
# Compile the C code into an executable.
$(GENSRC_X11WRAPPERS_TMP)/sizer.%.exe: $(GENSRC_X11WRAPPERS_TMP)/sizer.%.c
-diff -durN jdk8u-jdk8u66-b02.orig/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c jdk8u-jdk8u66-b02/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
---- jdk8u-jdk8u66-b02.orig/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2015-07-23 16:17:35.000000000 +0200
-+++ jdk8u-jdk8u66-b02/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2015-09-21 13:13:00.335957707 +0200
-@@ -35,7 +35,6 @@
- #endif
- #ifdef __linux__
- #include <unistd.h>
--#include <sys/sysctl.h>
- #include <sys/utsname.h>
- #include <netinet/ip.h>
-
-diff -durN jdk8u-jdk8u66-b02.orig/jdk/src/solaris/native/java/net/PlainSocketImpl.c jdk8u-jdk8u66-b02/jdk/src/solaris/native/java/net/PlainSocketImpl.c
---- jdk8u-jdk8u66-b02.orig/jdk/src/solaris/native/java/net/PlainSocketImpl.c 2015-07-23 16:17:35.000000000 +0200
-+++ jdk8u-jdk8u66-b02/jdk/src/solaris/native/java/net/PlainSocketImpl.c 2015-09-21 13:13:00.335957707 +0200
-@@ -43,7 +43,6 @@
- #endif
- #ifdef __linux__
- #include <unistd.h>
--#include <sys/sysctl.h>
- #endif
-
- #include "jvm.h"
-
---- jdk8u-jdk8u66-b02.orig/common/autoconf/toolchain.m4 2015-07-17 09:35:23.000000000 +0200
-+++ jdk8u-jdk8u66-b02/common/autoconf/toolchain.m4 2015-09-21 16:00:30.328673989 +0200
-@@ -361,6 +361,7 @@
- # Option used to tell the compiler whether to create 32- or 64-bit executables
- # Notice that CC contains the full compiler path at this point.
- case $CC in
-+ *x32-*) COMPILER_TARGET_BITS_FLAG="-mx";;
- *xlc_r) COMPILER_TARGET_BITS_FLAG="-q";;
- *) COMPILER_TARGET_BITS_FLAG="-m";;
- esac
-
-
---- jdk8u-jdk8u92-b31/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp.orig 2016-07-29 15:08:03.457784497 +0200
-+++ jdk8u-jdk8u92-b31/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp 2016-07-29 15:10:09.380999329 +0200
-@@ -34,7 +34,7 @@
- * _LP64 can be explicitly set (used on Linux).
- * Solaris compilers will define __sparcv9 or __x86_64 on 64bit compilations.
- */
--#if defined(_LP64) || defined(__sparcv9) || defined(__x86_64)
-+#if defined(_LP64) || defined(__sparcv9) || (defined(__x86_64) && !defined(__ILP32__))
- #define LONG_LONG_FORMAT "%ld"
- #define LONG_LONG_HEX_FORMAT "%lx"
- #else