/hg/release/icedtea7-2.3: 7 new changesets

andrew at icedtea.classpath.org andrew at icedtea.classpath.org
Fri Mar 28 12:31:21 UTC 2014


changeset c412c251e4c0 in /hg/release/icedtea7-2.3
details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=c412c251e4c0
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Wed Mar 26 14:45:38 2014 +0000

	Prepare for 2.3.14 release cycle.

	2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		* NEWS: Set release date to today.
		* configure.ac: Set to 2.3.14.


changeset 92ea9fe53505 in /hg/release/icedtea7-2.3
details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=92ea9fe53505
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Wed Mar 26 23:23:37 2014 +0000

	Include zero patches directory in tarball and backport post-7023639 ARM32 JIT patch.

	2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		* Makefile.am:
		(ICEDTEA_PATCHES): Add ARM hs24 support patch.
		(EXTRA_DIST): Include zero patches directory.
		* NEWS: Mention PR1626.
		* patches/zero/arm-7023639.patch: Backport of
		most of PR1626, as applicable to hs23 +
		S7023639.


changeset 531847dfec6f in /hg/release/icedtea7-2.3
details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=531847dfec6f
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Thu Mar 27 03:50:20 2014 +0000

	Perform configure checks using ecj.jar if native ecj is enabled.

	2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		Perform configure checks using ecj.jar
		if native ecj is enabled.
		* Makefile.am:
		(native-ecj): Link against gcj explicitly.
		* acinclude.m4:
		(IT_FIND_COMPILER): Run IT_WITH_GCJ
		and set JAVAC to an invocation of the ECJ_JAR
		if native ecj is used. Depend on IT_FIND_JAVA
		and IT_FIND_ECJ_JAR for this.
		(IT_FIND_ECJ_JAR): Define only once.
		(IT_WITH_GCJ): Likewise.
		(IT_DIAMOND_CHECK): Depend on IT_CHECK_JAVA_AND_JAVAC_WORK.
		* configure.ac: Remove invocation of IT_WITH_GCJ.


changeset ed2108ad126a in /hg/release/icedtea7-2.3
details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=ed2108ad126a
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Thu Mar 27 04:19:17 2014 +0000

	Allow JSR292 patches to be turned on or off, independently of Zero.

	2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		* patches/zero/7023639-8000780-jsr292_fast_path.patch,
		* patches/zero/7192406-exact_return_type_info.patch,
		* patches/zero/7196242-loopsandthreads_crashed.patch,
		* patches/zero/7200949-jruby_fail.patch,
		* patches/zero/8029507-jvm_method_processing.patch,
		* patches/zero/arm-7023639.patch: Move patches to...
		* INSTALL: Document --enable-jsr292-update.
		* Makefile.am:
		(ICEDTEA_PATCHES): Fix path to JSR292 patches and
		enable if JSR292 update option is on, rather than tying
		the patches to Zero.
		(EXTRA_DIST): Update path to JSR292 patches.
		* acinclude.m4:
		(IT_ENABLE_ARM32JIT): Fix text regarding default.
		(IT_ENABLE_JSR292_UPDATE): Turn on or off the JSR292 patches.
		They are on by default if building Zero without the ARM32 JIT.
		* configure.ac: Replace invocation of IT_ENABLE_ARM32JIT with
		IT_ENABLE_JSR292_UPDATE (which depends on the former).
		* patches/jsr292/7023639-8000780-jsr292_fast_path.patch,
		* patches/jsr292/7192406-exact_return_type_info.patch,
		* patches/jsr292/7196242-loopsandthreads_crashed.patch,
		* patches/jsr292/7200949-jruby_fail.patch,
		* patches/jsr292/8029507-jvm_method_processing.patch,
		* patches/jsr292/arm-7023639.patch: ... here.


changeset ecb7a4569122 in /hg/release/icedtea7-2.3
details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=ecb7a4569122
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Thu Mar 27 04:21:32 2014 +0000

	Update NEWS with recent changes.

	2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		* NEWS: Update with recent changes.


changeset 0d41c744e17e in /hg/release/icedtea7-2.3
details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=0d41c744e17e
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Fri Mar 28 12:07:01 2014 +0000

	Update release date.

	2014-03-28  Andrew John Hughes  <gnu.andrew at member.fsf.org>

		* NEWS: Update release date.


changeset 8a7b22cf755e in /hg/release/icedtea7-2.3
details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=8a7b22cf755e
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Fri Mar 28 12:31:02 2014 +0000

	Added tag icedtea-2.3.14 for changeset 0d41c744e17e


diffstat:

 .hgtags                                               |      1 +
 ChangeLog                                             |     66 +
 INSTALL                                               |      1 +
 Makefile.am                                           |     16 +-
 NEWS                                                  |     16 +-
 acinclude.m4                                          |     48 +-
 configure.ac                                          |      5 +-
 patches/jsr292/7023639-8000780-jsr292_fast_path.patch |  28468 ++++++++++++++++
 patches/jsr292/7192406-exact_return_type_info.patch   |    660 +
 patches/jsr292/7196242-loopsandthreads_crashed.patch  |    124 +
 patches/jsr292/7200949-jruby_fail.patch               |   1045 +
 patches/jsr292/8029507-jvm_method_processing.patch    |    215 +
 patches/jsr292/arm-7023639.patch                      |    361 +
 patches/zero/7023639-8000780-jsr292_fast_path.patch   |  28468 ----------------
 patches/zero/7192406-exact_return_type_info.patch     |    660 -
 patches/zero/7196242-loopsandthreads_crashed.patch    |    124 -
 patches/zero/7200949-jruby_fail.patch                 |   1045 -
 patches/zero/8029507-jvm_method_processing.patch      |    215 -
 18 files changed, 31006 insertions(+), 30532 deletions(-)

diffs (truncated from 61728 to 500 lines):

diff -r 2413c19a0afe -r 8a7b22cf755e .hgtags
--- a/.hgtags	Tue Mar 25 15:37:38 2014 +0000
+++ b/.hgtags	Fri Mar 28 12:31:02 2014 +0000
@@ -50,3 +50,4 @@
 05dd3f8c99d9f7682f2913105e0dbfca1d54574c icedtea-2.3.11
 15f12a7b52afd256dab7f6eb91050714e33871a9 icedtea-2.3.12
 1ced129674a58a8dec5ce2ceb11d8dd6407aa2af icedtea-2.3.13
+0d41c744e17e10b26e7ef4b2311b2cce531c0271 icedtea-2.3.14
diff -r 2413c19a0afe -r 8a7b22cf755e ChangeLog
--- a/ChangeLog	Tue Mar 25 15:37:38 2014 +0000
+++ b/ChangeLog	Fri Mar 28 12:31:02 2014 +0000
@@ -1,3 +1,69 @@
+2014-03-28  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	* NEWS: Update release date.
+
+2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	* NEWS: Update with recent changes.
+
+2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	* patches/zero/7023639-8000780-jsr292_fast_path.patch,
+	* patches/zero/7192406-exact_return_type_info.patch,
+	* patches/zero/7196242-loopsandthreads_crashed.patch,
+	* patches/zero/7200949-jruby_fail.patch,
+	* patches/zero/8029507-jvm_method_processing.patch,
+	* patches/zero/arm-7023639.patch: Move patches to...
+	* INSTALL: Document --enable-jsr292-update.
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Fix path to JSR292 patches and
+	enable if JSR292 update option is on, rather than tying
+	the patches to Zero.
+	(EXTRA_DIST): Update path to JSR292 patches.
+	* acinclude.m4:
+	(IT_ENABLE_ARM32JIT): Fix text regarding default.
+	(IT_ENABLE_JSR292_UPDATE): Turn on or off the JSR292 patches.
+	They are on by default if building Zero without the ARM32 JIT.
+	* configure.ac: Replace invocation of IT_ENABLE_ARM32JIT with
+	IT_ENABLE_JSR292_UPDATE (which depends on the former).
+	* patches/jsr292/7023639-8000780-jsr292_fast_path.patch,
+	* patches/jsr292/7192406-exact_return_type_info.patch,
+	* patches/jsr292/7196242-loopsandthreads_crashed.patch,
+	* patches/jsr292/7200949-jruby_fail.patch,
+	* patches/jsr292/8029507-jvm_method_processing.patch,
+	* patches/jsr292/arm-7023639.patch: ... here.
+
+2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	Perform configure checks using ecj.jar
+	if native ecj is enabled.
+	* Makefile.am:
+	(native-ecj): Link against gcj explicitly.
+	* acinclude.m4:
+	(IT_FIND_COMPILER): Run IT_WITH_GCJ
+	and set JAVAC to an invocation of the ECJ_JAR
+	if native ecj is used. Depend on IT_FIND_JAVA
+	and IT_FIND_ECJ_JAR for this.
+	(IT_FIND_ECJ_JAR): Define only once.
+	(IT_WITH_GCJ): Likewise.
+	(IT_DIAMOND_CHECK): Depend on IT_CHECK_JAVA_AND_JAVAC_WORK.
+	* configure.ac: Remove invocation of IT_WITH_GCJ.
+
+2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add ARM hs24 support patch.
+	(EXTRA_DIST): Include zero patches directory.
+	* NEWS: Mention PR1626.
+	* patches/zero/arm-7023639.patch: Backport of
+	most of PR1626, as applicable to hs23 +
+	S7023639.
+
+2014-03-26  Andrew John Hughes  <gnu.andrew at member.fsf.org>
+
+	* NEWS: Set release date to today.
+	* configure.ac: Set to 2.3.14.
+
 2014-03-24  Andrew John Hughes  <gnu.andrew at member.fsf.org>
 
 	* NEWS: Updated.
diff -r 2413c19a0afe -r 8a7b22cf755e INSTALL
--- a/INSTALL	Tue Mar 25 15:37:38 2014 +0000
+++ b/INSTALL	Fri Mar 28 12:31:02 2014 +0000
@@ -176,6 +176,7 @@
 * --enable-Werror: Turn gcc & javac warnings into errors.
 * --disable-jar-compression: Don't compress the OpenJDK JAR files.
 * --disable-downloading: Don't download tarballs if not available; fail instead.
+* --enable-jsr292-update: Patch OpenJDK sources with a backport of S7023639 and associated patches.
 
 Other options may be supplied which enable or disable new features.
 These are documented fully in the relevant section below.
diff -r 2413c19a0afe -r 8a7b22cf755e Makefile.am
--- a/Makefile.am	Tue Mar 25 15:37:38 2014 +0000
+++ b/Makefile.am	Fri Mar 28 12:31:02 2014 +0000
@@ -310,13 +310,14 @@
 ICEDTEA_PATCHES += patches/nss-not-enabled-config.patch
 endif
 
-if ZERO_BUILD
+if ENABLE_JSR292
 ICEDTEA_PATCHES += \
-	patches/zero/7023639-8000780-jsr292_fast_path.patch \
-	patches/zero/7196242-loopsandthreads_crashed.patch \
-	patches/zero/7192406-exact_return_type_info.patch \
-	patches/zero/7200949-jruby_fail.patch \
-	patches/zero/8029507-jvm_method_processing.patch
+	patches/jsr292/7023639-8000780-jsr292_fast_path.patch \
+	patches/jsr292/7196242-loopsandthreads_crashed.patch \
+	patches/jsr292/7192406-exact_return_type_info.patch \
+	patches/jsr292/7200949-jruby_fail.patch \
+	patches/jsr292/8029507-jvm_method_processing.patch \
+	patches/jsr292/arm-7023639.patch
 endif
 
 ICEDTEA_PATCHES += $(DISTRIBUTION_PATCHES)
@@ -778,6 +779,7 @@
 	$(top_srcdir)/patches/boot/*.patch \
 	$(top_srcdir)/patches/cacao/*.patch \
 	$(top_srcdir)/patches/jamvm/*.patch \
+	$(top_srcdir)/patches/jsr292/*.patch \
 	tools-copy contrib overlays \
 	javaws.png javaws.desktop \
 	jconsole.desktop policytool.desktop \
@@ -1607,7 +1609,7 @@
 	mkdir -p stamps 
 if BUILD_NATIVE_ECJ
 	${GCJ} $(IT_CFLAGS) -Wl,-Bsymbolic -findirect-dispatch -o native-ecj \
-	    --main=org.eclipse.jdt.internal.compiler.batch.Main ${ECJ_JAR}
+	    --main=org.eclipse.jdt.internal.compiler.batch.Main -lgcj ${ECJ_JAR}
 endif
 	touch $@
 
diff -r 2413c19a0afe -r 8a7b22cf755e NEWS
--- a/NEWS	Tue Mar 25 15:37:38 2014 +0000
+++ b/NEWS	Fri Mar 28 12:31:02 2014 +0000
@@ -10,20 +10,20 @@
 
 CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
 
-New in release 2.3.14 (2014-01-XX):
+New in release 2.3.14 (2014-03-28):
 
 * Security fixes
-  - S7023639, CVE-2013-5838: JSR 292 method handle invocation needs a fast path for compiled code (Zero only)
-  - S8029507, CVE-2013-5893: Enhance JVM method processing (Zero only)
+  - S7023639, CVE-2013-5838: JSR 292 method handle invocation needs a fast path for compiled code (JSR292 update only)
+  - S8029507, CVE-2013-5893: Enhance JVM method processing (JSR292 update only)
 * Backports
   - S7024118: possible hardcoded mnemonic for JFileChooser metal and motif l&f
   - S7032018: The file list in JFileChooser does not have an accessible name
   - S7032436: When running with the Nimbus look and feel, the JFileChooser does not display mnemonics
   - S7151089: PS NUMA: NUMA allocator should not attempt to free pages when using SHM large pages
-  - S7192406: JSR 292: C2 needs exact return type information for invokedynamic and invokehandle call sites (Zero only)
-  - S7196242: vm/mlvm/indy/stress/java/loopsAndThreads crashed (Zero only)
-  - S7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path (Zero only)
-  - S8000780: make Zero build and run with JDK8 (Zero only)
+  - S7192406: JSR 292: C2 needs exact return type information for invokedynamic and invokehandle call sites (JSR292 update only)
+  - S7196242: vm/mlvm/indy/stress/java/loopsAndThreads crashed (JSR292 update only)
+  - S7200949: JSR 292: rubybench/bench/time/bench_base64.rb fails with jruby.jar not on boot class path (JSR292 update only)
+  - S8000780: make Zero build and run with JDK8 (JSR292 update only)
   - S8008764: 7uX l10n resource file translation update
   - S8009062: poor performance of JNI AttachCurrentThread after fix for 7017193
   - S8013057: assert(_needs_gc || SafepointSynchronize::is_at_safepoint()) failed: only read at safepoint
@@ -53,6 +53,7 @@
   - S8035893: JVM_GetVersionInfo fails to zero structure
 * Bug fixes
   - Fix broken bootstrap build by updating ecj-multicatch.patch
+  - PR1626: ARM32 assembler update for hsx24 (JSR292 update only)
   - PR1654: ppc32 needs a larger ThreadStackSize to build
   - PR1677, G498288: Update PaX support to detect running PaX kernel and use newer tools
   - PR1679: Allow OpenJDK to build on PaX-enabled kernels
@@ -60,6 +61,7 @@
   - Re-enable the 'gamma' test at the end of the HotSpot build, but only for HotSpot based bootstrap JDKs.
   - RH1015432: java-1.7.0-openjdk: Fails on PPC with StackOverflowError (revised fix)
   - RH910107: fail to load PC/SC library
+  - Perform configure checks using ecj.jar when --with-gcj (native ecj build) is enabled.
 * New features
   - PR1653: Support ppc64le via Zero
 * ARM port
diff -r 2413c19a0afe -r 8a7b22cf755e acinclude.m4
--- a/acinclude.m4	Tue Mar 25 15:37:38 2014 +0000
+++ b/acinclude.m4	Fri Mar 28 12:31:02 2014 +0000
@@ -119,9 +119,17 @@
 
 AC_DEFUN([IT_FIND_COMPILER],
 [
+  AC_REQUIRE([IT_FIND_JAVA])
+  AC_REQUIRE([IT_FIND_ECJ_JAR])
+
   IT_FIND_JAVAC
   IT_FIND_ECJ
   IT_USING_ECJ
+  IT_WITH_GCJ
+  
+  if test x"${GCJ}" != xno ; then
+    JAVAC="${JAVA} -classpath ${ECJ_JAR} org.eclipse.jdt.internal.compiler.batch.Main"
+  fi
 
   AC_SUBST(ECJ)
   AC_SUBST(JAVAC)
@@ -308,7 +316,7 @@
   AM_CONDITIONAL([SRC_DIR_HARDLINKABLE], test x"${it_cv_hardlink_src}" = "xyes")
 ])
 
-AC_DEFUN([IT_FIND_ECJ_JAR],
+AC_DEFUN_ONCE([IT_FIND_ECJ_JAR],
 [
   AC_MSG_CHECKING([for an ecj JAR file])
   AC_ARG_WITH([ecj-jar],
@@ -904,7 +912,7 @@
   AM_CONDITIONAL([USE_JDK7], test x"${project}" = "xjdk7")
 ])
 
-AC_DEFUN([IT_WITH_GCJ],
+AC_DEFUN_ONCE([IT_WITH_GCJ],
 [
   AC_MSG_CHECKING([whether to compile ecj natively])
   AC_ARG_WITH([gcj],
@@ -1746,6 +1754,7 @@
 ])
 
 AC_DEFUN([IT_DIAMOND_CHECK],[
+  AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK])
   AC_CACHE_CHECK([if javac lacks support for the diamond operator], it_cv_diamond, [
   CLASS=Test.java
   BYTECODE=$(echo $CLASS|sed 's#\.java##')
@@ -2499,7 +2508,7 @@
 [
   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]])],
+                [AS_HELP_STRING(--enable-arm32-jit,build with the ARM32 JIT [[default=yes]])],
   [
     case "${enableval}" in
       yes)
@@ -2516,3 +2525,36 @@
   AC_MSG_RESULT([$enable_arm32jit])
   AM_CONDITIONAL([ENABLE_ARM32JIT], test x"${enable_arm32jit}" = "xyes")
 ])
+
+AC_DEFUN([IT_ENABLE_JSR292_UPDATE],
+[
+  AC_REQUIRE([IT_SET_ARCH_SETTINGS])
+  AC_REQUIRE([IT_ENABLE_ZERO_BUILD])
+  AC_REQUIRE([IT_ENABLE_ARM32JIT])
+  AC_MSG_CHECKING([whether to enable the JSR292 update in 7023639])
+  AC_ARG_ENABLE([jsr292-update],
+                [AS_HELP_STRING(--enable-jsr292-update,build with the JSR292 update [[default=yes for zero]])],
+  [
+    case "${enableval}" in
+      yes)
+        enable_jsr292=yes
+        ;;
+      *)
+        enable_jsr292=no
+        ;;
+    esac
+  ],
+  [
+    if test "x${use_zero}" = xyes; then
+      if test "x${JRE_ARCH_DIR}" = xarm -a "x${enable_arm32jit}" = "xyes"; then
+        enable_jsr292=no;
+      else
+        enable_jsr292=yes;
+      fi
+    else
+      enable_jsr292=no;
+    fi
+  ])
+  AC_MSG_RESULT([$enable_jsr292])
+  AM_CONDITIONAL([ENABLE_JSR292], test x"${enable_jsr292}" = "xyes")
+])
diff -r 2413c19a0afe -r 8a7b22cf755e configure.ac
--- a/configure.ac	Tue Mar 25 15:37:38 2014 +0000
+++ b/configure.ac	Fri Mar 28 12:31:02 2014 +0000
@@ -1,4 +1,4 @@
-AC_INIT([icedtea], [2.3.14pre], [distro-pkg-dev at openjdk.java.net])
+AC_INIT([icedtea], [2.3.14], [distro-pkg-dev at openjdk.java.net])
 AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
 AC_CONFIG_FILES([Makefile])
 
@@ -43,7 +43,6 @@
 IT_CHECK_FOR_MERCURIAL
 IT_OBTAIN_HG_REVISIONS
 AC_PATH_TOOL([LSB_RELEASE],[lsb_release])
-IT_WITH_GCJ
 IT_WITH_HOTSPOT_BUILD
 AC_PATH_TOOL([LINUX32],[linux32])
 IT_CHECK_GCC_VERSION
@@ -181,7 +180,7 @@
 IT_ENABLE_JAR_COMPRESSION
 IT_SET_SHARK_BUILD
 IT_CHECK_ADDITIONAL_VMS
-IT_ENABLE_ARM32JIT
+IT_ENABLE_JSR292_UPDATE
 
 IT_WITH_VERSION_SUFFIX
 IT_WITH_PROJECT
diff -r 2413c19a0afe -r 8a7b22cf755e patches/jsr292/7023639-8000780-jsr292_fast_path.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/jsr292/7023639-8000780-jsr292_fast_path.patch	Fri Mar 28 12:31:02 2014 +0000
@@ -0,0 +1,28468 @@
+# HG changeset patch
+# User andrew
+# Date 1391696693 0
+#      Thu Feb 06 14:24:53 2014 +0000
+# Node ID 19ac51ce4be77e6895816f9823bce63a72392e89
+# Parent  3442eb7ef2d216d6bf655d537929a2d31a76a321
+7023639: JSR 292 method handle invocation needs a fast path for compiled code
+6984705: JSR 292 method handle creation should not go through JNI
+Summary: remove assembly code for JDK 7 chained method handles
+Reviewed-by: jrose, twisti, kvn, mhaupt
+Contributed-by: John Rose <john.r.rose at oracle.com>, Christian Thalinger <christian.thalinger at oracle.com>, Michael Haupt <michael.haupt at oracle.com>
+
+8000780: [Backport from jdk8] Fix zero fail to build in icedtea7-head.
+Summary: Update Zero in icedtea7 to use the hsx24 b25+ java level MLVM
+         hooks (MLVM Lazy) now in jdk8 and jdk7u-dev head.
+Reviewed-by: rkennke ( Roman Kenbke )
+
+diff -r 3442eb7ef2d2 -r 19ac51ce4be7 agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java	Tue Jan 14 20:24:44 2014 -0500
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java	Thu Feb 06 14:24:53 2014 +0000
+@@ -93,7 +93,6 @@
+   public boolean isUncommonTrapStub()   { return false; }
+   public boolean isExceptionStub()      { return false; }
+   public boolean isSafepointStub()      { return false; }
+-  public boolean isRicochetBlob()       { return false; }
+   public boolean isAdapterBlob()        { return false; }
+ 
+   // Fine grain nmethod support: isNmethod() == isJavaMethod() || isNativeMethod() || isOSRMethod()
+diff -r 3442eb7ef2d2 -r 19ac51ce4be7 agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java	Tue Jan 14 20:24:44 2014 -0500
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/CodeCache.java	Thu Feb 06 14:24:53 2014 +0000
+@@ -57,7 +57,6 @@
+     virtualConstructor.addMapping("BufferBlob", BufferBlob.class);
+     virtualConstructor.addMapping("nmethod", NMethod.class);
+     virtualConstructor.addMapping("RuntimeStub", RuntimeStub.class);
+-    virtualConstructor.addMapping("RicochetBlob", RicochetBlob.class);
+     virtualConstructor.addMapping("AdapterBlob", AdapterBlob.class);
+     virtualConstructor.addMapping("MethodHandlesAdapterBlob", MethodHandlesAdapterBlob.class);
+     virtualConstructor.addMapping("SafepointBlob", SafepointBlob.class);
+@@ -127,10 +126,6 @@
+       Assert.that(result.blobContains(start) || result.blobContains(start.addOffsetTo(8)),
+                                                                     "found wrong CodeBlob");
+     }
+-    if (result.isRicochetBlob()) {
+-      // This should probably be done for other SingletonBlobs
+-      return VM.getVM().ricochetBlob();
+-    }
+     return result;
+   }
+ 
+diff -r 3442eb7ef2d2 -r 19ac51ce4be7 agent/src/share/classes/sun/jvm/hotspot/code/RicochetBlob.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/code/RicochetBlob.java	Tue Jan 14 20:24:44 2014 -0500
++++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
+@@ -1,70 +0,0 @@
+-/*
+- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- *
+- */
+-
+-package sun.jvm.hotspot.code;
+-
+-import java.util.*;
+-import sun.jvm.hotspot.debugger.*;
+-import sun.jvm.hotspot.runtime.*;
+-import sun.jvm.hotspot.types.*;
+-
+-/** RicochetBlob (currently only used by Compiler 2) */
+-
+-public class RicochetBlob extends SingletonBlob {
+-  static {
+-    VM.registerVMInitializedObserver(new Observer() {
+-        public void update(Observable o, Object data) {
+-          initialize(VM.getVM().getTypeDataBase());
+-        }
+-      });
+-  }
+-
+-  private static void initialize(TypeDataBase db) {
+-    Type type = db.lookupType("RicochetBlob");
+-
+-    bounceOffsetField                = type.getCIntegerField("_bounce_offset");
+-    exceptionOffsetField             = type.getCIntegerField("_exception_offset");
+-  }
+-
+-  private static CIntegerField bounceOffsetField;
+-  private static CIntegerField exceptionOffsetField;
+-
+-  public RicochetBlob(Address addr) {
+-    super(addr);
+-  }
+-
+-  public boolean isRicochetBlob() {
+-    return true;
+-  }
+-
+-  public Address bounceAddr() {
+-    return codeBegin().addOffsetTo(bounceOffsetField.getValue(addr));
+-  }
+-
+-  public boolean returnsToBounceAddr(Address pc) {
+-    Address bouncePc = bounceAddr();
+-    return (pc.equals(bouncePc) || pc.addOffsetTo(Frame.pcReturnOffset()).equals(bouncePc));
+-  }
+-
+-}
+diff -r 3442eb7ef2d2 -r 19ac51ce4be7 agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java	Tue Jan 14 20:24:44 2014 -0500
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java	Thu Feb 06 14:24:53 2014 +0000
+@@ -147,12 +147,6 @@
+     }
+   }
+ 
+-  public boolean isRicochetFrame() {
+-    CodeBlob cb = VM.getVM().getCodeCache().findBlob(getPC());
+-    RicochetBlob rcb = VM.getVM().ricochetBlob();
+-    return (cb == rcb && rcb != null && rcb.returnsToBounceAddr(getPC()));
+-  }
+-
+   public boolean isCompiledFrame() {
+     if (Assert.ASSERTS_ENABLED) {
+       Assert.that(!VM.getVM().isCore(), "noncore builds only");
+@@ -216,8 +210,7 @@
+   public Frame realSender(RegisterMap map) {
+     if (!VM.getVM().isCore()) {
+       Frame result = sender(map);
+-      while (result.isRuntimeFrame() ||
+-             result.isRicochetFrame()) {
++      while (result.isRuntimeFrame()) {
+         result = result.sender(map);
+       }
+       return result;
+@@ -631,9 +624,6 @@
+     if (Assert.ASSERTS_ENABLED) {
+       Assert.that(cb != null, "sanity check");
+     }
+-    if (cb == VM.getVM().ricochetBlob()) {
+-      oopsRicochetDo(oopVisitor, regMap);
+-    }
+     if (cb.getOopMaps() != null) {
+       OopMapSet.oopsDo(this, cb, regMap, oopVisitor, VM.getVM().isDebugging());
+ 
+@@ -650,10 +640,6 @@
+     //    }
+   }
+ 
+-  private void oopsRicochetDo      (AddressVisitor oopVisitor, RegisterMap regMap) {
+-    // XXX Empty for now
+-  }
+-
+   // FIXME: implement the above routines, plus add
+   // oops_interpreted_arguments_do and oops_compiled_arguments_do
+ }
+diff -r 3442eb7ef2d2 -r 19ac51ce4be7 agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
+--- openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java	Tue Jan 14 20:24:44 2014 -0500
++++ openjdk/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java	Thu Feb 06 14:24:53 2014 +0000
+@@ -87,8 +87,6 @@
+   private StubRoutines stubRoutines;
+   private Bytes        bytes;
+ 
+-  private RicochetBlob ricochetBlob;
+-
+   /** Flags indicating whether we are attached to a core, C1, or C2 build */
+   private boolean      usingClientCompiler;
+   private boolean      usingServerCompiler;
+@@ -628,18 +626,6 @@
+     return stubRoutines;
+   }
+ 
+-  public RicochetBlob ricochetBlob() {
+-    if (ricochetBlob == null) {
+-      Type ricochetType  = db.lookupType("SharedRuntime");
+-      AddressField ricochetBlobAddress = ricochetType.getAddressField("_ricochet_blob");
+-      Address addr = ricochetBlobAddress.getValue();
+-      if (addr != null) {
+-        ricochetBlob = new RicochetBlob(addr);
+-      }
+-    }
+-    return ricochetBlob;


More information about the distro-pkg-dev mailing list