[oe] [meta-java 2/5] icedtea6-native-1.7.10: backport S7103224

Steffen Sledz sledz at dresearch-fe.de
Fri Oct 5 19:46:02 UTC 2012


Backport the fix for 7103224.

This fix allows icedtea6 to be built with (very) new glibc versions.
It was originally suggested by Omair Majid from RedHat.

For details see:
<http://permalink.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/16103>
<http://mail.openjdk.java.net/pipermail/hotspot-dev/2011-October/004589.html>

Signed-off-by: Steffen Sledz <sledz at dresearch-fe.de>
---
 .../glibc_name_collision.patch                     |  523 ++++++++++++++++++++
 recipes-core/icedtea/icedtea6-native_1.7.10.bb     |    3 +-
 2 files changed, 525 insertions(+), 1 deletion(-)
 create mode 100644 recipes-core/icedtea/icedtea6-native-1.7.10/glibc_name_collision.patch

diff --git a/recipes-core/icedtea/icedtea6-native-1.7.10/glibc_name_collision.patch b/recipes-core/icedtea/icedtea6-native-1.7.10/glibc_name_collision.patch
new file mode 100644
index 0000000..0702b77
--- /dev/null
+++ b/recipes-core/icedtea/icedtea6-native-1.7.10/glibc_name_collision.patch
@@ -0,0 +1,523 @@
+icedtea6-native-1.7.10: backport S7103224 
+
+Backport the fix for 7103224.
+
+This fix allows icedtea6 to be built with (very) new glibc versions.
+It was originally suggested by Omair Majid from RedHat.
+
+For details see:
+<http://permalink.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/16103>
+<http://mail.openjdk.java.net/pipermail/hotspot-dev/2011-October/004589.html>
+
+Upstream-Status: Pending
+
+Signed-off-by: Steffen Sledz <sledz at dresearch-fe.de>
+
+diff -Nurd icedtea6-1.7.10.orig/Makefile.am icedtea6-1.7.10/Makefile.am
+--- icedtea6-1.7.10.orig/Makefile.am	2012-05-03 14:59:31.596076283 +0200
++++ icedtea6-1.7.10/Makefile.am	2012-05-03 15:03:43.787566714 +0200
+@@ -393,7 +393,8 @@
+ 	patches/openjdk/6541476-png-iTXt-chunk.patch \
+ 	patches/openjdk/6782079-png_metadata_oom.patch \
+ 	patches/rh676659-gcc-export-dynamic.patch \
+-	patches/latent_jaxp_bug.patch
++	patches/latent_jaxp_bug.patch \
++	patches/openjdk/7103224-glibc_name_collision.patch
+ 
+ if WITH_ALT_HSBUILD
+ ICEDTEA_PATCHES += patches/hotspot/$(HSBUILD)/openjdk-6886353-ignore_deoptimizealot.patch \
+diff -Nurd icedtea6-1.7.10.orig/patches/openjdk/7103224-glibc_name_collision.patch icedtea6-1.7.10/patches/openjdk/7103224-glibc_name_collision.patch
+--- icedtea6-1.7.10.orig/patches/openjdk/7103224-glibc_name_collision.patch	1970-01-01 01:00:00.000000000 +0100
++++ icedtea6-1.7.10/patches/openjdk/7103224-glibc_name_collision.patch	2012-05-03 15:01:27.817684671 +0200
+@@ -0,0 +1,491 @@
++# HG changeset patch
++# User never
++# Date 1319555835 25200
++# Node ID a6eef545f1a2ceca6aeadf688a965df600ffef28
++# Parent  2ec638646e86e455978c31a9d47fc0ec271ed926
++7103224: collision between __LEAF define in interfaceSupport.hpp and /usr/include/sys/cdefs.h with gcc
++Reviewed-by: never
++Contributed-by: Omair Majid <omajid at ...>
++
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/opto/addnode.cpp
++--- openjdk/hotspot/src/share/vm/opto/addnode.cpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/opto/addnode.cpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -34,8 +34,6 @@
++ 
++ // Portions of code courtesy of Clifford Click
++ 
++-#define MAXFLOAT        ((float)3.40282346638528860e+38)
++-
++ // Classic Add functionality.  This covers all the usual 'add' behaviors for
++ // an algebraic ring.  Add-integer, add-float, add-double, and binary-or are
++ // all inherited from this class.  The various identity values are supplied
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jniCheck.cpp
++--- openjdk/hotspot/src/share/vm/prims/jniCheck.cpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/prims/jniCheck.cpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -107,7 +107,7 @@
++     if (env != xenv) {                                                   \
++       NativeReportJNIFatalError(thr, warn_wrong_jnienv);                 \
++     }                                                                    \
++-    __ENTRY(result_type, header, thr)
+++    VM_ENTRY_BASE(result_type, header, thr)
++ 
++ 
++ #define UNCHECKED() (unchecked_jni_NativeInterface)
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jvmtiEnter.xsl
++--- openjdk/hotspot/src/share/vm/prims/jvmtiEnter.xsl	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/prims/jvmtiEnter.xsl	Tue Oct 25 08:17:15 2011 -0700
++@@ -426,7 +426,7 @@
++     <xsl:value-of select="$space"/>
++     <xsl:text>ThreadInVMfromNative __tiv(current_thread);</xsl:text>
++     <xsl:value-of select="$space"/>
++-    <xsl:text>__ENTRY(jvmtiError, </xsl:text>
+++    <xsl:text>VM_ENTRY_BASE(jvmtiError, </xsl:text>
++     <xsl:apply-templates select="." mode="functionid"/>
++     <xsl:text> , current_thread)</xsl:text>
++     <xsl:value-of select="$space"/>
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jvmtiEnv.cpp
++--- openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -173,7 +173,7 @@
++     // from native so as to resolve the jthread.
++ 
++     ThreadInVMfromNative __tiv(current_thread);
++-    __ENTRY(jvmtiError, JvmtiEnv::GetThreadLocalStorage , current_thread)
+++    VM_ENTRY_BASE(jvmtiError, JvmtiEnv::GetThreadLocalStorage , current_thread)
++     debug_only(VMNativeEntryWrapper __vew;)
++ 
++     oop thread_oop = JNIHandles::resolve_external_guard(thread);
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jvmtiExport.cpp
++--- openjdk/hotspot/src/share/vm/prims/jvmtiExport.cpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/prims/jvmtiExport.cpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -373,7 +373,7 @@
++     JavaThread* current_thread = (JavaThread*) ThreadLocalStorage::thread();
++     // transition code: native to VM
++     ThreadInVMfromNative __tiv(current_thread);
++-    __ENTRY(jvmtiEnv*, JvmtiExport::get_jvmti_interface, current_thread)
+++    VM_ENTRY_BASE(jvmtiEnv*, JvmtiExport::get_jvmti_interface, current_thread)
++     debug_only(VMNativeEntryWrapper __vew;)
++ 
++     JvmtiEnv *jvmti_env = JvmtiEnv::create_a_jvmti(version);
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/runtime/interfaceSupport.hpp
++--- openjdk/hotspot/src/share/vm/runtime/interfaceSupport.hpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/runtime/interfaceSupport.hpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -72,9 +72,9 @@
++   }
++ };
++ 
++-// InterfaceSupport provides functionality used by the __LEAF and __ENTRY
++-// macros. These macros are used to guard entry points into the VM and
++-// perform checks upon leave of the VM.
+++// InterfaceSupport provides functionality used by the VM_LEAF_BASE and
+++// VM_ENTRY_BASE macros. These macros are used to guard entry points into
+++// the VM and perform checks upon leave of the VM.
++ 
++ 
++ class InterfaceSupport: AllStatic {
++@@ -433,7 +433,7 @@
++ 
++ // LEAF routines do not lock, GC or throw exceptions
++ 
++-#define __LEAF(result_type, header)                                  \
+++#define VM_LEAF_BASE(result_type, header)                            \
++   TRACE_CALL(result_type, header)                                    \
++   debug_only(NoHandleMark __hm;)                                     \
++   /* begin of body */
++@@ -441,7 +441,7 @@
++ 
++ // ENTRY routines may lock, GC and throw exceptions
++ 
++-#define __ENTRY(result_type, header, thread)                         \
+++#define VM_ENTRY_BASE(result_type, header, thread)                   \
++   TRACE_CALL(result_type, header)                                    \
++   HandleMarkCleaner __hm(thread);                                    \
++   Thread* THREAD = thread;                                           \
++@@ -450,7 +450,7 @@
++ 
++ // QUICK_ENTRY routines behave like ENTRY but without a handle mark
++ 
++-#define __QUICK_ENTRY(result_type, header, thread)                   \
+++#define VM_QUICK_ENTRY_BASE(result_type, header, thread)             \
++   TRACE_CALL(result_type, header)                                    \
++   debug_only(NoHandleMark __hm;)                                     \
++   Thread* THREAD = thread;                                           \
++@@ -463,20 +463,20 @@
++ #define IRT_ENTRY(result_type, header)                               \
++   result_type header {                                               \
++     ThreadInVMfromJava __tiv(thread);                                \
++-    __ENTRY(result_type, header, thread)                             \
+++    VM_ENTRY_BASE(result_type, header, thread)                       \
++     debug_only(VMEntryWrapper __vew;)
++ 
++ 
++ #define IRT_LEAF(result_type, header)                                \
++   result_type header {                                               \
++-    __LEAF(result_type, header)                                      \
+++    VM_LEAF_BASE(result_type, header)                                \
++     debug_only(No_Safepoint_Verifier __nspv(true);)
++ 
++ 
++ #define IRT_ENTRY_NO_ASYNC(result_type, header)                      \
++   result_type header {                                               \
++     ThreadInVMfromJavaNoAsyncException __tiv(thread);                \
++-    __ENTRY(result_type, header, thread)                             \
+++    VM_ENTRY_BASE(result_type, header, thread)                       \
++     debug_only(VMEntryWrapper __vew;)
++ 
++ // Another special case for nmethod_entry_point so the nmethod that the
++@@ -487,7 +487,7 @@
++   result_type header {                                               \
++     nmethodLocker _nmlock(nm);                                       \
++     ThreadInVMfromJavaNoAsyncException __tiv(thread);                                \
++-    __ENTRY(result_type, header, thread)
+++    VM_ENTRY_BASE(result_type, header, thread)
++ 
++ #define IRT_END }
++ 
++@@ -497,20 +497,20 @@
++ #define JRT_ENTRY(result_type, header)                               \
++   result_type header {                                               \
++     ThreadInVMfromJava __tiv(thread);                                \
++-    __ENTRY(result_type, header, thread)                             \
+++    VM_ENTRY_BASE(result_type, header, thread)                       \
++     debug_only(VMEntryWrapper __vew;)
++ 
++ 
++ #define JRT_LEAF(result_type, header)                                \
++   result_type header {                                               \
++-  __LEAF(result_type, header)                                        \
+++  VM_LEAF_BASE(result_type, header)                                  \
++   debug_only(JRT_Leaf_Verifier __jlv;)
++ 
++ 
++ #define JRT_ENTRY_NO_ASYNC(result_type, header)                      \
++   result_type header {                                               \
++     ThreadInVMfromJavaNoAsyncException __tiv(thread);                \
++-    __ENTRY(result_type, header, thread)                             \
+++    VM_ENTRY_BASE(result_type, header, thread)                       \
++     debug_only(VMEntryWrapper __vew;)
++ 
++ // Same as JRT Entry but allows for return value after the safepoint
++@@ -543,11 +543,11 @@
++     assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __ENTRY(result_type, header, thread)
+++    VM_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ // Ensure that the VMNativeEntryWrapper constructor, which can cause
++-// a GC, is called outside the NoHandleMark (set via __QUICK_ENTRY).
+++// a GC, is called outside the NoHandleMark (set via VM_QUICK_ENTRY_BASE).
++ #define JNI_QUICK_ENTRY(result_type, header)                         \
++ extern "C" {                                                         \
++   result_type JNICALL header {                                \
++@@ -555,7 +555,7 @@
++     assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __QUICK_ENTRY(result_type, header, thread)
+++    VM_QUICK_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ #define JNI_LEAF(result_type, header)                                \
++@@ -563,7 +563,7 @@
++   result_type JNICALL header {                                \
++     JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
++     assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
++-    __LEAF(result_type, header)
+++    VM_LEAF_BASE(result_type, header)
++ 
++ 
++ // Close the routine and the extern "C"
++@@ -579,7 +579,7 @@
++     JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __ENTRY(result_type, header, thread)
+++    VM_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ #define JVM_ENTRY_NO_ENV(result_type, header)                        \
++@@ -588,7 +588,7 @@
++     JavaThread* thread = (JavaThread*)ThreadLocalStorage::thread();  \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __ENTRY(result_type, header, thread)
+++    VM_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ #define JVM_QUICK_ENTRY(result_type, header)                         \
++@@ -597,14 +597,14 @@
++     JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __QUICK_ENTRY(result_type, header, thread)
+++    VM_QUICK_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ #define JVM_LEAF(result_type, header)                                \
++ extern "C" {                                                         \
++   result_type JNICALL header {                                       \
++     VM_Exit::block_if_vm_exited();                                   \
++-    __LEAF(result_type, header)
+++    VM_LEAF_BASE(result_type, header)
++ 
++ 
++ #define JVM_END } }
++
++iff --git a/Makefile.am b/Makefile.am
++-- a/Makefile.am
++++ b/Makefile.am
++@ -362,7 +362,8 @@
++	patches/openjdk/7036148-npe-null-jmenu-name.patch \
++	patches/jtreg-bug7036148-test.patch \
++	patches/support_linux_3.patch \
++	patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch
++	patches/openjdk/6826104-npe_on_app_and_toolkit_modal_dialog_click.patch \
++	patches/openjdk/7103224-glibc_name_collision.patch
++
++if WITH_ALT_HSBUILD
++ICEDTEA_PATCHES += \
++iff --git a/patches/openjdk/7103224-glibc_name_collision.patch b/patches/openjdk/7103224-glibc_name_collision.patch
++ew file mode 100644
++-- /dev/null
++++ b/patches/openjdk/7103224-glibc_name_collision.patch
++@ -0,0 +1,236 @@
++# HG changeset patch
++# User never
++# Date 1319555835 25200
++# Node ID a6eef545f1a2ceca6aeadf688a965df600ffef28
++# Parent  2ec638646e86e455978c31a9d47fc0ec271ed926
++7103224: collision between __LEAF define in interfaceSupport.hpp and /usr/include/sys/cdefs.h with gcc
++Reviewed-by: never
++Contributed-by: Omair Majid <omajid at ...>
++
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/opto/addnode.cpp
++--- openjdk/hotspot/src/share/vm/opto/addnode.cpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/opto/addnode.cpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -34,8 +34,6 @@
++ 
++ // Portions of code courtesy of Clifford Click
++ 
++-#define MAXFLOAT        ((float)3.40282346638528860e+38)
++-
++ // Classic Add functionality.  This covers all the usual 'add' behaviors for
++ // an algebraic ring.  Add-integer, add-float, add-double, and binary-or are
++ // all inherited from this class.  The various identity values are supplied
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jniCheck.cpp
++--- openjdk/hotspot/src/share/vm/prims/jniCheck.cpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/prims/jniCheck.cpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -107,7 +107,7 @@
++     if (env != xenv) {                                                   \
++       NativeReportJNIFatalError(thr, warn_wrong_jnienv);                 \
++     }                                                                    \
++-    __ENTRY(result_type, header, thr)
+++    VM_ENTRY_BASE(result_type, header, thr)
++ 
++ 
++ #define UNCHECKED() (unchecked_jni_NativeInterface)
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jvmtiEnter.xsl
++--- openjdk/hotspot/src/share/vm/prims/jvmtiEnter.xsl	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/prims/jvmtiEnter.xsl	Tue Oct 25 08:17:15 2011 -0700
++@@ -426,7 +426,7 @@
++     <xsl:value-of select="$space"/>
++     <xsl:text>ThreadInVMfromNative __tiv(current_thread);</xsl:text>
++     <xsl:value-of select="$space"/>
++-    <xsl:text>__ENTRY(jvmtiError, </xsl:text>
+++    <xsl:text>VM_ENTRY_BASE(jvmtiError, </xsl:text>
++     <xsl:apply-templates select="." mode="functionid"/>
++     <xsl:text> , current_thread)</xsl:text>
++     <xsl:value-of select="$space"/>
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jvmtiEnv.cpp
++--- openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/prims/jvmtiEnv.cpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -173,7 +173,7 @@
++     // from native so as to resolve the jthread.
++ 
++     ThreadInVMfromNative __tiv(current_thread);
++-    __ENTRY(jvmtiError, JvmtiEnv::GetThreadLocalStorage , current_thread)
+++    VM_ENTRY_BASE(jvmtiError, JvmtiEnv::GetThreadLocalStorage , current_thread)
++     debug_only(VMNativeEntryWrapper __vew;)
++ 
++     oop thread_oop = JNIHandles::resolve_external_guard(thread);
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/prims/jvmtiExport.cpp
++--- openjdk/hotspot/src/share/vm/prims/jvmtiExport.cpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/prims/jvmtiExport.cpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -373,7 +373,7 @@
++     JavaThread* current_thread = (JavaThread*) ThreadLocalStorage::thread();
++     // transition code: native to VM
++     ThreadInVMfromNative __tiv(current_thread);
++-    __ENTRY(jvmtiEnv*, JvmtiExport::get_jvmti_interface, current_thread)
+++    VM_ENTRY_BASE(jvmtiEnv*, JvmtiExport::get_jvmti_interface, current_thread)
++     debug_only(VMNativeEntryWrapper __vew;)
++ 
++     JvmtiEnv *jvmti_env = JvmtiEnv::create_a_jvmti(version);
++diff -r 2ec638646e86 -r a6eef545f1a2 src/share/vm/runtime/interfaceSupport.hpp
++--- openjdk/hotspot/src/share/vm/runtime/interfaceSupport.hpp	Tue Oct 25 04:07:20 2011 -0700
+++++ openjdk/hotspot/src/share/vm/runtime/interfaceSupport.hpp	Tue Oct 25 08:17:15 2011 -0700
++@@ -72,9 +72,9 @@
++   }
++ };
++ 
++-// InterfaceSupport provides functionality used by the __LEAF and __ENTRY
++-// macros. These macros are used to guard entry points into the VM and
++-// perform checks upon leave of the VM.
+++// InterfaceSupport provides functionality used by the VM_LEAF_BASE and
+++// VM_ENTRY_BASE macros. These macros are used to guard entry points into
+++// the VM and perform checks upon leave of the VM.
++ 
++ 
++ class InterfaceSupport: AllStatic {
++@@ -433,7 +433,7 @@
++ 
++ // LEAF routines do not lock, GC or throw exceptions
++ 
++-#define __LEAF(result_type, header)                                  \
+++#define VM_LEAF_BASE(result_type, header)                            \
++   TRACE_CALL(result_type, header)                                    \
++   debug_only(NoHandleMark __hm;)                                     \
++   /* begin of body */
++@@ -441,7 +441,7 @@
++ 
++ // ENTRY routines may lock, GC and throw exceptions
++ 
++-#define __ENTRY(result_type, header, thread)                         \
+++#define VM_ENTRY_BASE(result_type, header, thread)                   \
++   TRACE_CALL(result_type, header)                                    \
++   HandleMarkCleaner __hm(thread);                                    \
++   Thread* THREAD = thread;                                           \
++@@ -450,7 +450,7 @@
++ 
++ // QUICK_ENTRY routines behave like ENTRY but without a handle mark
++ 
++-#define __QUICK_ENTRY(result_type, header, thread)                   \
+++#define VM_QUICK_ENTRY_BASE(result_type, header, thread)             \
++   TRACE_CALL(result_type, header)                                    \
++   debug_only(NoHandleMark __hm;)                                     \
++   Thread* THREAD = thread;                                           \
++@@ -463,20 +463,20 @@
++ #define IRT_ENTRY(result_type, header)                               \
++   result_type header {                                               \
++     ThreadInVMfromJava __tiv(thread);                                \
++-    __ENTRY(result_type, header, thread)                             \
+++    VM_ENTRY_BASE(result_type, header, thread)                       \
++     debug_only(VMEntryWrapper __vew;)
++ 
++ 
++ #define IRT_LEAF(result_type, header)                                \
++   result_type header {                                               \
++-    __LEAF(result_type, header)                                      \
+++    VM_LEAF_BASE(result_type, header)                                \
++     debug_only(No_Safepoint_Verifier __nspv(true);)
++ 
++ 
++ #define IRT_ENTRY_NO_ASYNC(result_type, header)                      \
++   result_type header {                                               \
++     ThreadInVMfromJavaNoAsyncException __tiv(thread);                \
++-    __ENTRY(result_type, header, thread)                             \
+++    VM_ENTRY_BASE(result_type, header, thread)                       \
++     debug_only(VMEntryWrapper __vew;)
++ 
++ // Another special case for nmethod_entry_point so the nmethod that the
++@@ -487,7 +487,7 @@
++   result_type header {                                               \
++     nmethodLocker _nmlock(nm);                                       \
++     ThreadInVMfromJavaNoAsyncException __tiv(thread);                                \
++-    __ENTRY(result_type, header, thread)
+++    VM_ENTRY_BASE(result_type, header, thread)
++ 
++ #define IRT_END }
++ 
++@@ -497,20 +497,20 @@
++ #define JRT_ENTRY(result_type, header)                               \
++   result_type header {                                               \
++     ThreadInVMfromJava __tiv(thread);                                \
++-    __ENTRY(result_type, header, thread)                             \
+++    VM_ENTRY_BASE(result_type, header, thread)                       \
++     debug_only(VMEntryWrapper __vew;)
++ 
++ 
++ #define JRT_LEAF(result_type, header)                                \
++   result_type header {                                               \
++-  __LEAF(result_type, header)                                        \
+++  VM_LEAF_BASE(result_type, header)                                  \
++   debug_only(JRT_Leaf_Verifier __jlv;)
++ 
++ 
++ #define JRT_ENTRY_NO_ASYNC(result_type, header)                      \
++   result_type header {                                               \
++     ThreadInVMfromJavaNoAsyncException __tiv(thread);                \
++-    __ENTRY(result_type, header, thread)                             \
+++    VM_ENTRY_BASE(result_type, header, thread)                       \
++     debug_only(VMEntryWrapper __vew;)
++ 
++ // Same as JRT Entry but allows for return value after the safepoint
++@@ -543,11 +543,11 @@
++     assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __ENTRY(result_type, header, thread)
+++    VM_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ // Ensure that the VMNativeEntryWrapper constructor, which can cause
++-// a GC, is called outside the NoHandleMark (set via __QUICK_ENTRY).
+++// a GC, is called outside the NoHandleMark (set via VM_QUICK_ENTRY_BASE).
++ #define JNI_QUICK_ENTRY(result_type, header)                         \
++ extern "C" {                                                         \
++   result_type JNICALL header {                                \
++@@ -555,7 +555,7 @@
++     assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __QUICK_ENTRY(result_type, header, thread)
+++    VM_QUICK_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ #define JNI_LEAF(result_type, header)                                \
++@@ -563,7 +563,7 @@
++   result_type JNICALL header {                                \
++     JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
++     assert( !VerifyJNIEnvThread || (thread == Thread::current()), "JNIEnv is only valid in same thread"); \
++-    __LEAF(result_type, header)
+++    VM_LEAF_BASE(result_type, header)
++ 
++ 
++ // Close the routine and the extern "C"
++@@ -579,7 +579,7 @@
++     JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __ENTRY(result_type, header, thread)
+++    VM_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ #define JVM_ENTRY_NO_ENV(result_type, header)                        \
++@@ -588,7 +588,7 @@
++     JavaThread* thread = (JavaThread*)ThreadLocalStorage::thread();  \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __ENTRY(result_type, header, thread)
+++    VM_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ #define JVM_QUICK_ENTRY(result_type, header)                         \
++@@ -597,14 +597,14 @@
++     JavaThread* thread=JavaThread::thread_from_jni_environment(env); \
++     ThreadInVMfromNative __tiv(thread);                              \
++     debug_only(VMNativeEntryWrapper __vew;)                          \
++-    __QUICK_ENTRY(result_type, header, thread)
+++    VM_QUICK_ENTRY_BASE(result_type, header, thread)
++ 
++ 
++ #define JVM_LEAF(result_type, header)                                \
++ extern "C" {                                                         \
++   result_type JNICALL header {                                       \
++     VM_Exit::block_if_vm_exited();                                   \
++-    __LEAF(result_type, header)
+++    VM_LEAF_BASE(result_type, header)
++ 
++ 
++ #define JVM_END } }
diff --git a/recipes-core/icedtea/icedtea6-native_1.7.10.bb b/recipes-core/icedtea/icedtea6-native_1.7.10.bb
index 54ac87d..a3edb98 100644
--- a/recipes-core/icedtea/icedtea6-native_1.7.10.bb
+++ b/recipes-core/icedtea/icedtea6-native_1.7.10.bb
@@ -2,7 +2,7 @@ require ${PN}.inc
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
 
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
 
 SRC_URI = "\
 	http://icedtea.classpath.org/download/source/icedtea6-${PV}.tar.gz;name=iced \
@@ -12,6 +12,7 @@ SRC_URI = "\
 	file://build-hacks-native.patch \
 	file://icedtea-sane-x86-arch-name.patch \
         file://icedtea-javac-in.patch \
+        file://glibc_name_collision.patch \
 	${ICEDTEA_PATCHES} \
 	"
 SRC_URI[ojdk.md5sum] = "078fe0ab744c98694decc77f2456c560"
-- 
1.7.10.4





More information about the Openembedded-devel mailing list