From e7600fac27b475359c1a4b7065084763e69fed7e Mon Sep 17 00:00:00 2001 From: tnn Date: Sat, 21 Feb 2015 10:44:14 +0000 Subject: Sync ARM fixes from lang/openjdk8 --- lang/openjdk7/Makefile | 6 +-- lang/openjdk7/distinfo | 6 ++- lang/openjdk7/options.mk | 31 ++++++++++---- ...hotspot_src_cpu_zero_vm_methodHandles__zero.cpp | 16 ++++++++ ...ch-hotspot_src_cpu_zero_vm_nativeInst__zero.cpp | 14 +++++++ ...__cpu_bsd__zero_vm_atomic__bsd__zero.inline.hpp | 47 ++++++++++++++++++++++ ..._bsd__zero_vm_orderAccess__bsd__zero.inline.hpp | 20 +++++++++ 7 files changed, 128 insertions(+), 12 deletions(-) create mode 100644 lang/openjdk7/patches/patch-hotspot_src_cpu_zero_vm_methodHandles__zero.cpp create mode 100644 lang/openjdk7/patches/patch-hotspot_src_cpu_zero_vm_nativeInst__zero.cpp create mode 100644 lang/openjdk7/patches/patch-hotspot_src_os__cpu_bsd__zero_vm_atomic__bsd__zero.inline.hpp create mode 100644 lang/openjdk7/patches/patch-hotspot_src_os__cpu_bsd__zero_vm_orderAccess__bsd__zero.inline.hpp (limited to 'lang') diff --git a/lang/openjdk7/Makefile b/lang/openjdk7/Makefile index abc68cdc6a9..dcfc248eab7 100644 --- a/lang/openjdk7/Makefile +++ b/lang/openjdk7/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.93 2015/02/12 06:18:17 tnn Exp $ +# $NetBSD: Makefile,v 1.94 2015/02/21 10:44:14 tnn Exp $ DISTNAME= openjdk-1.7.76-20150127 PKGNAME= openjdk7-1.7.76 @@ -60,8 +60,8 @@ MAKE_ENV+= JAVA_HOME= MAKE_ENV+= CLASSPATH= BUILD_OPSYS= ${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/} -BUILD_ARCH= ${MACHINE_ARCH:S/i386/i586/:S/x86_64/amd64/:S/sparc64/sparcv9/} -LIBDIR_ARCH= ${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/} +BUILD_ARCH= ${MACHINE_ARCH:S/i386/i586/:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/} +LIBDIR_ARCH= ${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/} BUILDDIR= ${WRKSRC}/build/${BUILD_OPSYS}-${BUILD_ARCH} LD_LIBRARY_PATH= ${WRKDIR}/bootstrap/jre/lib/${LIBDIR_ARCH}:${WRKDIR}/bootstrap/jre/lib/${LIBDIR_ARCH}/jli:${WRKDIR}/bootstrap/jre/lib/${LIBDIR_ARCH}/server MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH} diff --git a/lang/openjdk7/distinfo b/lang/openjdk7/distinfo index 3ccc525f91b..7fc3017e9e1 100644 --- a/lang/openjdk7/distinfo +++ b/lang/openjdk7/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.74 2015/02/13 10:47:40 tnn Exp $ +$NetBSD: distinfo,v 1.75 2015/02/21 10:44:14 tnn Exp $ SHA1 (openjdk7/apache-ant-1.9.4-bin.tar.bz2) = 99bff3c702dd79076f4e705e3541f7e35bbb4306 RMD160 (openjdk7/apache-ant-1.9.4-bin.tar.bz2) = 7f4263d617bbf40a15eab401369d18a755f8d260 @@ -90,6 +90,10 @@ SHA1 (patch-hotspot_make_solaris_makefiles_optimized.make) = 78d64fe6cb7c3420889 SHA1 (patch-hotspot_make_solaris_makefiles_product.make) = 6105c8e7f8b612e70957bccf7313384488388aa5 SHA1 (patch-hotspot_make_solaris_makefiles_saproc.make) = 8a034088ca3c9f5a625849b772dd51f65fad0b43 SHA1 (patch-hotspot_make_solaris_makefiles_vm.make) = d72c16b90479c5df0dc33f3b30916b0552dcc17a +SHA1 (patch-hotspot_src_cpu_zero_vm_methodHandles__zero.cpp) = 9f7acf1eff3baba430880be9fd0f6148056dd088 +SHA1 (patch-hotspot_src_cpu_zero_vm_nativeInst__zero.cpp) = dcd83b65a7d74e153a3e1c44f8c7980827ec20c7 +SHA1 (patch-hotspot_src_os__cpu_bsd__zero_vm_atomic__bsd__zero.inline.hpp) = e87224f8b67dc78fa411d30beff82ce5ccbb4cc5 +SHA1 (patch-hotspot_src_os__cpu_bsd__zero_vm_orderAccess__bsd__zero.inline.hpp) = 6311d68db9064afc470f1d9fd37e63011899659a SHA1 (patch-hotspot_src_os__cpu_solaris__x86_vm_atomic__solaris__x86.inline.hpp) = 2bf9147643be4ac711d1bf94eb0e6ae4abad20c6 SHA1 (patch-hotspot_src_os__cpu_solaris__x86_vm_orderAccess__solaris__x86.inline.hpp) = 82818bc8d8fee46403b88cf52a7c978b5ea0005c SHA1 (patch-hotspot_src_os__cpu_solaris__x86_vm_os__solaris__x86.cpp) = b2ffc4679a4abe581c6ef3aef630b6570e5cfc41 diff --git a/lang/openjdk7/options.mk b/lang/openjdk7/options.mk index 72a63f7a5c5..d8319cf5d8b 100644 --- a/lang/openjdk7/options.mk +++ b/lang/openjdk7/options.mk @@ -1,9 +1,22 @@ -# $NetBSD: options.mk,v 1.9 2015/02/12 06:18:17 tnn Exp $ +# $NetBSD: options.mk,v 1.10 2015/02/21 10:44:14 tnn Exp $ PKG_OPTIONS_VAR= PKG_OPTIONS.openjdk7 -PKG_SUPPORTED_OPTIONS= debug jre-jce jdk-zero-vm x11 +PKG_OPTIONS_OPTIONAL_GROUPS= variant +PKG_OPTIONS_GROUP.variant= jdk-zero-vm +PKG_SUPPORTED_OPTIONS= debug jre-jce x11 PKG_SUGGESTED_OPTIONS= jre-jce x11 -.if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH} != "x86_64" + +.if !empty(PKGSRC_COMPILER:Mclang) +PKG_OPTIONS_GROUP.variant+= jdk-zeroshark-vm +.endif + +.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" +PKG_OPTIONS_GROUP.variant+= jdk-hotspot-vm +PKG_SUGGESTED_OPTIONS+= jdk-hotspot-vm +#notyet +#.elif !empty(PKGSRC_COMPILER:Mclang) +#PKG_SUGGESTED_OPTIONS+= jdk-zeroshark-vm +.else PKG_SUGGESTED_OPTIONS+= jdk-zero-vm .endif @@ -68,15 +81,17 @@ MAKE_ENV+= FULL_DEBUG_SYMBOLS=0 # Build variant. Zero VM builds a portable JVM without assembly optimization. # PLIST_VARS+= native -.if !empty(PKG_OPTIONS:Mjdk-zero-vm) +.if !empty(PKG_OPTIONS:Mjdk-zero-vm) || !empty(PKG_OPTIONS:Mjdk-zeroshark-vm) MAKE_ENV+= ZERO_BUILD=true - # valid are i386 / amd64 / sparc* / ppc32 / ppc64 -MAKE_ENV+= ZERO_LIBARCH=${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/} - # valid are IA32 / AMD64 / SPARC / PPC32 / PPC64 -MAKE_ENV+= ZERO_ARCHDEF=${MACHINE_ARCH:S/i386/IA32/:S/x86_64/AMD64/:S/sparc64/SPARC/} +MAKE_ENV+= ZERO_LIBARCH=${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/} +MAKE_ENV+= ZERO_ARCHDEF=${MACHINE_ARCH:S/i386/IA32/:S/x86_64/AMD64/:S/sparc64/SPARC/:C/^e?arm.*$/ARM/} .include "../../mk/endian.mk" MAKE_ENV+= ZERO_ENDIANNESS=${MACHINE_ENDIAN} .include "../../devel/libffi/buildlink3.mk" .else PLIST.native= yes .endif +.if !empty(PKG_OPTIONS:Mjdk-zeroshark-vm) +MAKE_ENV+= SHARK_BUILD=true +.include "../../lang/clang/buildlink3.mk" +.endif diff --git a/lang/openjdk7/patches/patch-hotspot_src_cpu_zero_vm_methodHandles__zero.cpp b/lang/openjdk7/patches/patch-hotspot_src_cpu_zero_vm_methodHandles__zero.cpp new file mode 100644 index 00000000000..d9ccb6ce6fa --- /dev/null +++ b/lang/openjdk7/patches/patch-hotspot_src_cpu_zero_vm_methodHandles__zero.cpp @@ -0,0 +1,16 @@ +$NetBSD: patch-hotspot_src_cpu_zero_vm_methodHandles__zero.cpp,v 1.1 2015/02/21 10:44:14 tnn Exp $ + +Fix zero build w/ debug enabled + +--- hotspot/src/cpu/zero/vm/methodHandles_zero.cpp.orig 2015-02-02 15:32:37.000000000 +0000 ++++ hotspot/src/cpu/zero/vm/methodHandles_zero.cpp +@@ -24,8 +24,8 @@ + */ + + #include "precompiled.hpp" +-#include "interpreter/interpreterGenerator.hpp" + #include "interpreter/interpreter.hpp" ++#include "interpreter/interpreterGenerator.hpp" + #include "memory/allocation.inline.hpp" + #include "prims/methodHandles.hpp" + diff --git a/lang/openjdk7/patches/patch-hotspot_src_cpu_zero_vm_nativeInst__zero.cpp b/lang/openjdk7/patches/patch-hotspot_src_cpu_zero_vm_nativeInst__zero.cpp new file mode 100644 index 00000000000..181702ad4e4 --- /dev/null +++ b/lang/openjdk7/patches/patch-hotspot_src_cpu_zero_vm_nativeInst__zero.cpp @@ -0,0 +1,14 @@ +$NetBSD: patch-hotspot_src_cpu_zero_vm_nativeInst__zero.cpp,v 1.1 2015/02/21 10:44:14 tnn Exp $ + +Fix zero build w/ debug enabled + +--- hotspot/src/cpu/zero/vm/nativeInst_zero.cpp.orig 2015-02-02 15:32:37.000000000 +0000 ++++ hotspot/src/cpu/zero/vm/nativeInst_zero.cpp +@@ -24,6 +24,7 @@ + */ + + #include "precompiled.hpp" ++#include "interpreter/interpreter.hpp" + #include "assembler_zero.inline.hpp" + #include "memory/resourceArea.hpp" + #include "nativeInst_zero.hpp" diff --git a/lang/openjdk7/patches/patch-hotspot_src_os__cpu_bsd__zero_vm_atomic__bsd__zero.inline.hpp b/lang/openjdk7/patches/patch-hotspot_src_os__cpu_bsd__zero_vm_atomic__bsd__zero.inline.hpp new file mode 100644 index 00000000000..0a9a1d01966 --- /dev/null +++ b/lang/openjdk7/patches/patch-hotspot_src_os__cpu_bsd__zero_vm_atomic__bsd__zero.inline.hpp @@ -0,0 +1,47 @@ +$NetBSD: patch-hotspot_src_os__cpu_bsd__zero_vm_atomic__bsd__zero.inline.hpp,v 1.1 2015/02/21 10:44:14 tnn Exp $ + +ARM: Substitute Linux atomic ops with NetBSD atomic ops + +--- hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp.orig 2015-02-02 15:32:37.000000000 +0000 ++++ hotspot/src/os_cpu/bsd_zero/vm/atomic_bsd_zero.inline.hpp +@@ -112,8 +112,13 @@ static inline int m68k_lock_test_and_set + * + */ + ++#ifdef __NetBSD__ ++#include ++#define __kernel_cmpxchg(oldval, newval, ptr) ((unsigned int)(oldval) != atomic_cas_uint((volatile unsigned int*)(ptr), (unsigned int)(oldval), (unsigned int)(newval))) ++#else + typedef int (__kernel_cmpxchg_t)(int oldval, int newval, volatile int *ptr); + #define __kernel_cmpxchg (*(__kernel_cmpxchg_t *) 0xffff0fc0) ++#endif + + + +@@ -189,7 +194,7 @@ + + inline intptr_t Atomic::add_ptr(intptr_t add_value, volatile intptr_t* dest) { + #ifdef ARM +- return arm_add_and_fetch(dest, add_value); ++ return arm_add_and_fetch((volatile int*)dest, add_value); + #else + #ifdef M68K + return m68k_add_and_fetch(dest, add_value); +@@ -246,7 +251,7 @@ + inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value, + volatile intptr_t* dest) { + #ifdef ARM +- return arm_lock_test_and_set(dest, exchange_value); ++ return arm_lock_test_and_set((volatile int*)dest, exchange_value); + #else + #ifdef M68K + return m68k_lock_test_and_set(dest, exchange_value); +@@ -286,7 +291,7 @@ + volatile intptr_t* dest, + intptr_t compare_value) { + #ifdef ARM +- return arm_compare_and_swap(dest, compare_value, exchange_value); ++ return arm_compare_and_swap((volatile int*)dest, compare_value, exchange_value); + #else + #ifdef M68K + return m68k_compare_and_swap(dest, compare_value, exchange_value); diff --git a/lang/openjdk7/patches/patch-hotspot_src_os__cpu_bsd__zero_vm_orderAccess__bsd__zero.inline.hpp b/lang/openjdk7/patches/patch-hotspot_src_os__cpu_bsd__zero_vm_orderAccess__bsd__zero.inline.hpp new file mode 100644 index 00000000000..ee83c92c60c --- /dev/null +++ b/lang/openjdk7/patches/patch-hotspot_src_os__cpu_bsd__zero_vm_orderAccess__bsd__zero.inline.hpp @@ -0,0 +1,20 @@ +$NetBSD: patch-hotspot_src_os__cpu_bsd__zero_vm_orderAccess__bsd__zero.inline.hpp,v 1.1 2015/02/21 10:44:14 tnn Exp $ + +ARM: Substitute Linux atomic ops with NetBSD atomic ops + +--- hotspot/src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp.orig 2015-02-02 15:32:37.000000000 +0000 ++++ hotspot/src/os_cpu/bsd_zero/vm/orderAccess_bsd_zero.inline.hpp +@@ -37,8 +37,13 @@ + * and gcc __sync_synchronize(); implementation does not use the kernel + * helper for all gcc versions so it is unreliable to use as well. + */ ++#ifdef __NetBSD__ ++#include ++#define __kernel_dmb membar_sync ++#else + typedef void (__kernel_dmb_t) (void); + #define __kernel_dmb (*(__kernel_dmb_t *) 0xffff0fa0) ++#endif + + #define FULL_MEM_BARRIER __kernel_dmb() + #define READ_MEM_BARRIER __kernel_dmb() -- cgit v1.2.3