# HG changeset patch # User Andrew John Hughes # Date 1483422947 0 # Node ID 336dc5eedceaa8cf5d07eb6f5022ec673cc98f70 # Parent bfb471488e308ff22ec778c843eaf3bbe90e9243 PR3213: Disable ARM32 JIT by default 2016-12-29 Andrew John Hughes 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 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. diff -r bfb471488e30 -r 336dc5eedcea ChangeLog --- 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 + + 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 + + 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 PR3175: invalid zip timestamp handling leads to diff -r bfb471488e30 -r 336dc5eedcea INSTALL --- 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 ========================================= diff -r bfb471488e30 -r 336dc5eedcea Makefile.am --- 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 += \ diff -r bfb471488e30 -r 336dc5eedcea NEWS --- 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): diff -r bfb471488e30 -r 336dc5eedcea acinclude.m4 --- 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]) diff -r bfb471488e30 -r 336dc5eedcea configure.ac --- 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 diff -r bfb471488e30 -r 336dc5eedcea patches/pr3213-conditional_arm32jit.patch --- /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 $<