From 3cefd0145202169f1fe5e0dc384597cf832fdb53efcf1277e5cf8755e14a3853 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Fri, 9 Jan 2015 09:47:29 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=53 --- aarch64-b12tob20.patch | 21 +++++++++++++++++++++ cplusplus-interpreter.patch | 15 +++++++++++++++ java-1_8_0-openjdk.spec | 4 ++++ 3 files changed, 40 insertions(+) create mode 100644 cplusplus-interpreter.patch diff --git a/aarch64-b12tob20.patch b/aarch64-b12tob20.patch index 6441ace..f63afb4 100644 --- a/aarch64-b12tob20.patch +++ b/aarch64-b12tob20.patch @@ -2299,6 +2299,27 @@ static bool is_invoke (Code code) { return (_invokevirtual <= code && code <= _invokedynamic); } static bool has_receiver (Code code) { assert(is_invoke(code), ""); return code == _invokevirtual || code == _invokespecial || +--- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Thu Oct 23 15:32:14 2014 -0700 ++++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Wed Dec 17 10:43:38 2014 -0800 +@@ -398,6 +398,18 @@ + int handler_bci; + int current_bci = bci(thread); + ++ if (thread->frames_to_pop_failed_realloc() > 0) { ++ // Allocation of scalar replaced object used in this frame ++ // failed. Unconditionally pop the frame. ++ thread->dec_frames_to_pop_failed_realloc(); ++ thread->set_vm_result(h_exception()); ++ // If the method is synchronized we already unlocked the monitor ++ // during deoptimization so the interpreter needs to skip it when ++ // the frame is popped. ++ thread->set_do_not_unlock_if_synchronized(true); ++ return Interpreter::remove_activation_entry(); ++ } ++ + // Need to do this check first since when _do_not_unlock_if_synchronized + // is set, we don't want to trigger any classloading which may make calls + // into java, or surprisingly find a matching exception handler for bci 0 --- jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-06 16:57:27.000000000 +0100 +++ jdk8/hotspot/src/share/vm/memory/collectorPolicy.cpp 2015-01-08 21:23:31.164148528 +0100 @@ -183,13 +183,9 @@ diff --git a/cplusplus-interpreter.patch b/cplusplus-interpreter.patch new file mode 100644 index 0000000..4fba05f --- /dev/null +++ b/cplusplus-interpreter.patch @@ -0,0 +1,15 @@ +--- jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Sat Dec 13 01:24:10 2014 +0300 ++++ jdk8/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Mon Dec 15 09:36:46 2014 +0100 +@@ -394,7 +394,11 @@ + // during deoptimization so the interpreter needs to skip it when + // the frame is popped. + thread->set_do_not_unlock_if_synchronized(true); ++#ifdef CC_INTERP ++ return (address) -1; ++#else + return Interpreter::remove_activation_entry(); ++#endif + } + + // Need to do this check first since when _do_not_unlock_if_synchronized + diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index edca67e..7aff5fd 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -223,6 +223,8 @@ Patch12: adlc-parser.patch Patch13: implicit-pointer-decl.patch # Avoid triggering inactivity timeout while generating javadoc in zero VM Patch14: zero-javadoc-verbose.patch +# Fix to build the C++ interpreter that does not have Interpreter::remove_activation_entry +Patch15: cplusplus-interpreter.patch # # OpenJDK specific patches # @@ -517,6 +519,8 @@ rm -rvf jdk/src/share/native/sun/java2d/cmm/lcms/lcms2* %patch14 -p1 %endif +%patch15 -p1 + %patch99 -p1 # s390 build fixes