changeset 3279:336dc5eedcea

PR3213: Disable ARM32 JIT by default 2016-12-29 Andrew John Hughes <gnu.andrew@member.fsf.org> PR3213: Disable ARM32 JIT by default * Makefile.am: (ICEDTEA_PATCHES): Add patch. * patches/pr3213-conditional_arm32jit.patch: Backport conditionalisation of ARM32 JIT port from IcedTea 2.x. 2014-02-19 Andrew John Hughes <gnu.andrew@member.fsf.org> PR3213: Disable ARM32 JIT by default * INSTALL: Document ARM32 JIT and --enable-arm32-jit option. * Makefile.am: (ARM32JIT_STATUS): Set based on ENABLE_ARM32JIT. (ICEDTEA_ENV): Pass ARM32JIT to OpenJDK build, using value of ${ARM32JIT_STATUS}. * NEWS: Updated. * acinclude.m4: (IT_ENABLE_ARM32JIT): Allow the ARM32 JIT to be enabled. * configure.ac: Invoke IT_ENABLE_ARM32JIT macro.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Tue, 03 Jan 2017 05:55:47 +0000
parents bfb471488e30
children f327eb39d25c
files ChangeLog INSTALL Makefile.am NEWS acinclude.m4 configure.ac patches/pr3213-conditional_arm32jit.patch
diffstat 7 files changed, 91 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Dec 29 02:50:39 2016 +0000
+++ b/ChangeLog	Tue Jan 03 05:55:47 2017 +0000
@@ -1,3 +1,27 @@
+2016-12-29  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR3213: Disable ARM32 JIT by default
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add patch.
+	* patches/pr3213-conditional_arm32jit.patch:
+	Backport conditionalisation of ARM32 JIT port
+	from IcedTea 2.x.
+
+2014-02-19  Andrew John Hughes  <gnu.andrew@member.fsf.org>
+
+	PR3213: Disable ARM32 JIT by default
+	* INSTALL:
+	Document ARM32 JIT and --enable-arm32-jit option.
+	* Makefile.am:
+	(ARM32JIT_STATUS): Set based on ENABLE_ARM32JIT.
+	(ICEDTEA_ENV): Pass ARM32JIT to OpenJDK build,
+	using value of ${ARM32JIT_STATUS}.
+	* NEWS: Updated.
+	* acinclude.m4:
+	(IT_ENABLE_ARM32JIT): Allow the ARM32 JIT to be
+	enabled.
+	* configure.ac: Invoke IT_ENABLE_ARM32JIT macro.
+
 2016-08-19  Andrew John Hughes  <gnu.andrew@member.fsf.org>
 
 	PR3175: invalid zip timestamp handling leads to
--- a/INSTALL	Thu Dec 29 02:50:39 2016 +0000
+++ b/INSTALL	Tue Jan 03 05:55:47 2017 +0000
@@ -164,6 +164,7 @@
   below.
 * --enable-lcms2: Use LCMS 2 backport from OpenJDK 7 rather than LCMS 1.
 * --enable-non-nss-curves: Define curves beyond the three specified by NSS (NIST P-{256,384,521})
+* --enable-arm32-jit: Build the ARM32 JIT.
 
 Testing
 =======
@@ -276,8 +277,9 @@
 --enable-shark to configure.  Please note that Shark is still in
 development and builds are still likely to fail at present.
 
-On ARM32, there is also a native JIT port built on top of Zero, which
-is built on this platform by default.
+On ARM32, there is also a native JIT port built on top of Zero. This
+currently has issues (see PR3196) and is thus not enabled by
+default. To enable it, pass --enable-arm32-jit to configure.
 
 Support for Different Versions of HotSpot
 =========================================
--- a/Makefile.am	Thu Dec 29 02:50:39 2016 +0000
+++ b/Makefile.am	Tue Jan 03 05:55:47 2017 +0000
@@ -625,7 +625,8 @@
 	patches/openjdk/6961123-pr2975.patch \
 	patches/pr2800-missing_resources.patch \
 	patches/openjdk/8169448-pr3205-pch_failure.patch \
-	patches/openjdk/8078628-pr3152-zero_pch_failure.patch
+	patches/openjdk/8078628-pr3152-zero_pch_failure.patch \
+	patches/pr3213-conditional_arm32jit.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
@@ -787,6 +788,12 @@
 WERROR_STATUS=false
 endif
 
+if ENABLE_ARM32JIT
+ARM32JIT_STATUS=true
+else
+ARM32JIT_STATUS=false
+endif
+
 ICEDTEA_UNSET = \
 	JAVAC= \
 	JAVA_HOME= \
@@ -834,7 +841,8 @@
 	CC=$(CC)$(GCC_SUFFIX) \
 	CXX=$(CXX)$(GCC_SUFFIX) \
 	COMPILER_WARNINGS_FATAL="$(WERROR_STATUS)" \
-	UNLIMITED_CRYPTO="true"
+	UNLIMITED_CRYPTO="true" \
+	ARM32JIT="${ARM32JIT_STATUS}"
 
 if ENABLE_CACAO
 ICEDTEA_ENV += \
--- a/NEWS	Thu Dec 29 02:50:39 2016 +0000
+++ b/NEWS	Tue Jan 03 05:55:47 2017 +0000
@@ -19,6 +19,7 @@
   - PR3174: systemtap: type definition 'symbolOopDesc' not found
   - PR3175: invalid zip timestamp handling leads to error updating JAR files
   - PR3205: Builds fails with pch disabled
+  - PR3213: Disable ARM32 JIT by default
 
 New in release 1.13.12 (2016-08-24):
 
--- a/acinclude.m4	Thu Dec 29 02:50:39 2016 +0000
+++ b/acinclude.m4	Tue Jan 03 05:55:47 2017 +0000
@@ -2179,6 +2179,28 @@
   AM_CONDITIONAL([VM_SUPPORTS_XBOOTCLASSPATH], test x"${it_cv_xbootclasspath_works}" = "xyes")
 ])
 
+AC_DEFUN([IT_ENABLE_ARM32JIT],
+[
+  AC_MSG_CHECKING([whether to enable the ARM32 JIT])
+  AC_ARG_ENABLE([arm32-jit],
+                [AS_HELP_STRING(--enable-arm32-jit,build with the ARM32 JIT [[default=no]])],
+  [
+    case "${enableval}" in
+      yes)
+        enable_arm32jit=yes
+        ;;
+      *)
+        enable_arm32jit=no
+        ;;
+    esac
+  ],
+  [
+    enable_arm32jit=no
+  ])
+  AC_MSG_RESULT([$enable_arm32jit])
+  AM_CONDITIONAL([ENABLE_ARM32JIT], test x"${enable_arm32jit}" = "xyes")
+])
+
 AC_DEFUN_ONCE([IT_HAS_PAX],
 [
   AC_MSG_CHECKING([if a PaX kernel is in use])
--- a/configure.ac	Thu Dec 29 02:50:39 2016 +0000
+++ b/configure.ac	Tue Jan 03 05:55:47 2017 +0000
@@ -296,6 +296,7 @@
 IT_SET_SHARK_BUILD
 IT_ENABLE_ZERO_BUILD
 IT_CHECK_ADDITIONAL_VMS
+IT_ENABLE_ARM32JIT
 IT_ENABLE_NON_NSS_CURVES
 IT_ENABLE_HG
 IT_WITH_HG_REVISION
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pr3213-conditional_arm32jit.patch	Tue Jan 03 05:55:47 2017 +0000
@@ -0,0 +1,29 @@
+# HG changeset patch
+# User chrisphi
+# Date 1392756328 0
+#      Tue Feb 18 20:45:28 2014 +0000
+# Node ID 0a9100ca5a41c8430aa9a51ef2ca5dd4d6f38322
+# Parent  c9da84d02a614d10d2118d7725b58b42b02fbbc3
+ARM32 assembler update for hsx24. Use ARM32JIT to turn it on/off.
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make
+--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
+@@ -26,7 +26,8 @@
+ # Setup common to Zero (non-Shark) and Shark versions of VM
+ 
+ ifeq ($(ZERO_LIBARCH),arm)
+-
++# check to see if we are building the assembler jit or just zero.
++ifeq ($(ARM32JIT),true)
+ Obj_Files += asm_helper.o
+ Obj_Files += cppInterpreter_arm.o
+ Obj_Files += thumb2.o
+@@ -54,6 +55,7 @@
+ 	$(CXX_COMPILE) -DSTATIC_OFFSETS -o $@ $< $(COMPILE_DONE)
+ 
+ endif
++endif
+ 
+ %.o: %.S
+ 	@echo Assembling $<