changeset 2972:02a65b9914d5

OPENJDK6-4: Backport the new version of copyMemory from OpenJDK 7 to allow Snappy to build Move jvmtiEnv patch to bundled HotSpot build only.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Fri, 22 Mar 2013 14:18:47 +0000
parents 18b6e9eaf3e8
children 241d297ff5e3
files ChangeLog Makefile.am NEWS patches/copy_memory.patch patches/hotspot/original/jvmtiEnv.patch patches/jvmtiEnv.patch
diffstat 6 files changed, 67 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Mar 18 21:34:40 2013 +0000
+++ b/ChangeLog	Fri Mar 22 14:18:47 2013 +0000
@@ -1,3 +1,15 @@
+2013-03-22  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add new patch.  Move
+	jvmtiEnv.patch to bundled HotSpot build only.
+	* NEWS: Update with new patch, add OpenJDK 6
+	JIRA URLs.
+	* patches/copy_memory.patch: New patch to
+	add sun.misc.Unsafe.copyMemory method from 7.
+	* patches/jvmtiEnv.patch: Moved to...
+	* patches/hotspot/original/jvmtiEnv.patch: here.
+	
 2013-03-18  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	* Makefile.am:
--- a/Makefile.am	Mon Mar 18 21:34:40 2013 +0000
+++ b/Makefile.am	Fri Mar 22 14:18:47 2013 +0000
@@ -317,7 +317,6 @@
 	patches/headers.patch \
 	patches/gcc-suffix.patch \
 	patches/libraries.patch \
-	patches/jvmtiEnv.patch \
 	patches/lcms.patch \
 	patches/uname.patch \
 	patches/freetypeversion.patch \
@@ -478,7 +477,8 @@
 	patches/openjdk/8004341-jck_dialog_failure.patch \
 	patches/pr1319-support_giflib_5.patch \
 	patches/openjdk/8007393.patch \
-	patches/openjdk/8007611.patch
+	patches/openjdk/8007611.patch \
+	patches/copy_memory.patch
 
 if WITH_ALT_HSBUILD
 ICEDTEA_PATCHES += \
@@ -527,7 +527,8 @@
 	patches/arm-debug.patch \
 	patches/openjdk/7010849-modernise_sa.patch \
 	patches/hotspot/original/7197906-handle_32_bit_shifts.patch \
-	patches/hotspot/original/fix_get_stack_bounds_leak.patch
+	patches/hotspot/original/fix_get_stack_bounds_leak.patch \
+	patches/hotspot/original/jvmtiEnv.patch
 endif
 
 if WITH_RHINO
--- a/NEWS	Mon Mar 18 21:34:40 2013 +0000
+++ b/NEWS	Fri Mar 22 14:18:47 2013 +0000
@@ -7,6 +7,7 @@
 GX  - http://bugs.gentoo.org/show_bug.cgi?id=X
 CAX - http://server.complang.tuwien.ac.at/cgi-bin/bugzilla/show_bug.cgi?id=X
 LPX - https://bugs.launchpad.net/bugs/X 
+OJX - http://java.net/jira/browse/OPENJDK6-X
 
 CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
 
@@ -17,10 +18,11 @@
 * Backports
   - S8009641: OpenJDK 6 build broken via 8007675 fix
   - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts (bundled HotSpot only)
+  - OJ3: Fix get_stack_bounds memory leak (alternate fix for S7197906, bundled HotSpot only)
+  - OJ4: Backport the new version of copyMemory from OpenJDK 7 to allow Snappy to build
 * Bug fixes
   - PR1318: Fix automatic enabling of the Zero build on non-JIT architectures which don't use CACAO or JamVM.
   - RH902004: very bad performance with E-Porto Add-In für OpenOffice Writer installed (hs23 only)
-  - Fix get_stack_bounds memory leak (alternate fix for S7197906, bundled HotSpot only)
 
 New in release 1.12.4 (2013-03-04):
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/copy_memory.patch	Fri Mar 22 14:18:47 2013 +0000
@@ -0,0 +1,36 @@
+diff --git a/src/share/classes/sun/misc/Unsafe.java b/src/share/classes/sun/misc/Unsafe.java
+--- openjdk/jdk/src/share/classes/sun/misc/Unsafe.java
++++ openjdk/jdk/src/share/classes/sun/misc/Unsafe.java
+@@ -504,9 +504,31 @@
+     /**
+      * Sets all bytes in a given block of memory to a copy of another
+      * block.
++     *
++     * <p>This method determines each block's base address by means of two parameters,
++     * and so it provides (in effect) a <em>double-register</em> addressing mode,
++     * as discussed in {@link #getInt(Object,long)}.  When the object reference is null,
++     * the offset supplies an absolute base address.
++     *
++     * <p>The transfers are in coherent (atomic) units of a size determined
++     * by the address and length parameters.  If the effective addresses and
++     * length are all even modulo 8, the transfer takes place in 'long' units.
++     * If the effective addresses and length are (resp.) even modulo 4 or 2,
++     * the transfer takes place in units of 'int' or 'short'.
+      */
+-    public native void copyMemory(long srcAddress, long destAddress,
++    public native void copyMemory(Object srcBase, long srcOffset,
++                                  Object destBase, long destOffset,
+                                   long bytes);
++    /**
++     * Sets all bytes in a given block of memory to a copy of another
++     * block.  This provides a <em>single-register</em> addressing mode,
++     * as discussed in {@link #getInt(Object,long)}.
++     *
++     * Equivalent to <code>copyMemory(null, srcAddress, null, destAddress, bytes)</code>.
++     */
++    public void copyMemory(long srcAddress, long destAddress, long bytes) {
++        copyMemory(null, srcAddress, null, destAddress, bytes);
++    }
+ 
+     /**
+      * Disposes of a block of native memory, as obtained from {@link
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/hotspot/original/jvmtiEnv.patch	Fri Mar 22 14:18:47 2013 +0000
@@ -0,0 +1,12 @@
+--- openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp.old	2009-02-26 17:18:35.000000000 +0000
++++ openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp	2009-02-26 17:16:59.000000000 +0000
+@@ -2702,6 +2702,9 @@
+   (*entry_count_ptr) = num_entries;
+   (*table_ptr) = jvmti_table;
+ 
++  if (num_entries == 0)
++    return JVMTI_ERROR_ABSENT_INFORMATION;
++
+   return JVMTI_ERROR_NONE;
+ } /* end GetLineNumberTable */
+ 
--- a/patches/jvmtiEnv.patch	Mon Mar 18 21:34:40 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
---- openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp.old	2009-02-26 17:18:35.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp	2009-02-26 17:16:59.000000000 +0000
-@@ -2702,6 +2702,9 @@
-   (*entry_count_ptr) = num_entries;
-   (*table_ptr) = jvmti_table;
- 
-+  if (num_entries == 0)
-+    return JVMTI_ERROR_ABSENT_INFORMATION;
-+
-   return JVMTI_ERROR_NONE;
- } /* end GetLineNumberTable */
-