sync master to openEuler-20.03-LTS-SP4
This commit is contained in:
parent
3b9a846470
commit
9185511d6f
@ -2502,7 +2502,7 @@ index 535b795fa..c9b9e2676 100644
|
||||
+++ b/src/hotspot/os/windows/os_windows.cpp
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
- * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
+ * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
|
||||
@ -6075,8 +6075,8 @@ index 69ea97ddf..529e2df27 100644
|
||||
--- a/make/autoconf/lib-tests.m4
|
||||
+++ b/make/autoconf/lib-tests.m4
|
||||
@@ -30,6 +30,38 @@
|
||||
# Minimum supported version
|
||||
JTREG_MINIMUM_VERSION=7.3.1
|
||||
GTEST_MINIMUM_VERSION=1.13.0
|
||||
|
||||
+###############################################################################
|
||||
+#
|
||||
|
||||
@ -1,175 +0,0 @@
|
||||
Date: Sat, 27 May 2023 17:40:53 +0800
|
||||
Subject: add
|
||||
8302595-use-after-free-related-to-GraphKit-clone_map.patch
|
||||
|
||||
---
|
||||
src/hotspot/share/opto/compile.hpp | 3 ++-
|
||||
src/hotspot/share/opto/graphKit.cpp | 23 +++++++++++++++++++++
|
||||
src/hotspot/share/opto/graphKit.hpp | 7 ++++++-
|
||||
src/hotspot/share/opto/library_call.cpp | 6 +++---
|
||||
src/hotspot/share/opto/node.hpp | 5 +++++
|
||||
src/hotspot/share/opto/phaseX.hpp | 5 +++++
|
||||
src/hotspot/share/opto/vectorIntrinsics.cpp | 4 ++--
|
||||
7 files changed, 46 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/hotspot/share/opto/compile.hpp b/src/hotspot/share/opto/compile.hpp
|
||||
index 6e5f2ed23..b7c18b337 100644
|
||||
--- a/src/hotspot/share/opto/compile.hpp
|
||||
+++ b/src/hotspot/share/opto/compile.hpp
|
||||
@@ -921,7 +921,8 @@ class Compile : public Phase {
|
||||
// Parsing, optimization
|
||||
PhaseGVN* initial_gvn() { return _initial_gvn; }
|
||||
Unique_Node_List* for_igvn() { return _for_igvn; }
|
||||
- inline void record_for_igvn(Node* n); // Body is after class Unique_Node_List.
|
||||
+ inline void record_for_igvn(Node* n); // Body is after class Unique_Node_List in node.hpp.
|
||||
+ inline void remove_for_igvn(Node* n); // Body is after class Unique_Node_List in node.hpp.
|
||||
void set_initial_gvn(PhaseGVN *gvn) { _initial_gvn = gvn; }
|
||||
void set_for_igvn(Unique_Node_List *for_igvn) { _for_igvn = for_igvn; }
|
||||
|
||||
diff --git a/src/hotspot/share/opto/graphKit.cpp b/src/hotspot/share/opto/graphKit.cpp
|
||||
index a3df43c23..07d1999b2 100644
|
||||
--- a/src/hotspot/share/opto/graphKit.cpp
|
||||
+++ b/src/hotspot/share/opto/graphKit.cpp
|
||||
@@ -738,6 +738,29 @@ SafePointNode* GraphKit::clone_map() {
|
||||
return clonemap;
|
||||
}
|
||||
|
||||
+// -----------------------------destruct_map_clone------------------------------
|
||||
+// Order of destruct is important to increase the likelyhood that memory can be re-used. We need
|
||||
+// to destruct/free/delete in the exact opposite order as clone_map().
|
||||
+void GraphKit::destruct_map_clone(SafePointNode* sfp) {
|
||||
+ if (sfp == nullptr) return;
|
||||
+
|
||||
+ Node* mem = sfp->memory();
|
||||
+ JVMState* jvms = sfp->jvms();
|
||||
+
|
||||
+ if (jvms != nullptr) {
|
||||
+ delete jvms;
|
||||
+ }
|
||||
+
|
||||
+ remove_for_igvn(sfp);
|
||||
+ gvn().clear_type(sfp);
|
||||
+ sfp->destruct(&_gvn);
|
||||
+
|
||||
+ if (mem != nullptr) {
|
||||
+ gvn().clear_type(mem);
|
||||
+ mem->destruct(&_gvn);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
|
||||
//-----------------------------set_map_clone-----------------------------------
|
||||
void GraphKit::set_map_clone(SafePointNode* m) {
|
||||
diff --git a/src/hotspot/share/opto/graphKit.hpp b/src/hotspot/share/opto/graphKit.hpp
|
||||
index d815e2195..22f868442 100644
|
||||
--- a/src/hotspot/share/opto/graphKit.hpp
|
||||
+++ b/src/hotspot/share/opto/graphKit.hpp
|
||||
@@ -94,7 +94,7 @@ class GraphKit : public Phase {
|
||||
void* barrier_set_state() const { return C->barrier_set_state(); }
|
||||
|
||||
void record_for_igvn(Node* n) const { C->record_for_igvn(n); } // delegate to Compile
|
||||
-
|
||||
+ void remove_for_igvn(Node* n) const { C->remove_for_igvn(n); }
|
||||
// Handy well-known nodes:
|
||||
Node* null() const { return zerocon(T_OBJECT); }
|
||||
Node* top() const { return C->top(); }
|
||||
@@ -170,6 +170,11 @@ class GraphKit : public Phase {
|
||||
// Clone the existing map state. (Implements PreserveJVMState.)
|
||||
SafePointNode* clone_map();
|
||||
|
||||
+ // Reverses the work done by clone_map(). Should only be used when the node returned by
|
||||
+ // clone_map() is ultimately not used. Calling Node::destruct directly in the previously
|
||||
+ // mentioned circumstance instead of this method may result in use-after-free.
|
||||
+ void destruct_map_clone(SafePointNode* sfp);
|
||||
+
|
||||
// Set the map to a clone of the given one.
|
||||
void set_map_clone(SafePointNode* m);
|
||||
|
||||
diff --git a/src/hotspot/share/opto/library_call.cpp b/src/hotspot/share/opto/library_call.cpp
|
||||
index b5970545c..2dd246093 100644
|
||||
--- a/src/hotspot/share/opto/library_call.cpp
|
||||
+++ b/src/hotspot/share/opto/library_call.cpp
|
||||
@@ -1563,7 +1563,7 @@ bool LibraryCallKit::inline_string_char_access(bool is_store) {
|
||||
set_sp(old_sp);
|
||||
return false;
|
||||
}
|
||||
- old_map->destruct(&_gvn);
|
||||
+ destruct_map_clone(old_map);
|
||||
if (is_store) {
|
||||
access_store_at(value, adr, TypeAryPtr::BYTES, ch, TypeInt::CHAR, T_CHAR, IN_HEAP | MO_UNORDERED | C2_MISMATCHED);
|
||||
} else {
|
||||
@@ -2346,7 +2346,7 @@ bool LibraryCallKit::inline_unsafe_access(bool is_store, const BasicType type, c
|
||||
mismatched = true; // conservatively mark all "wide" on-heap accesses as mismatched
|
||||
}
|
||||
|
||||
- old_map->destruct(&_gvn);
|
||||
+ destruct_map_clone(old_map);
|
||||
assert(!mismatched || alias_type->adr_type()->is_oopptr(), "off-heap access can't be mismatched");
|
||||
|
||||
if (mismatched) {
|
||||
@@ -2597,7 +2597,7 @@ bool LibraryCallKit::inline_unsafe_load_store(const BasicType type, const LoadSt
|
||||
return false;
|
||||
}
|
||||
|
||||
- old_map->destruct(&_gvn);
|
||||
+ destruct_map_clone(old_map);
|
||||
|
||||
// For CAS, unlike inline_unsafe_access, there seems no point in
|
||||
// trying to refine types. Just use the coarse types here.
|
||||
diff --git a/src/hotspot/share/opto/node.hpp b/src/hotspot/share/opto/node.hpp
|
||||
index 2a78e259d..b79e7673f 100644
|
||||
--- a/src/hotspot/share/opto/node.hpp
|
||||
+++ b/src/hotspot/share/opto/node.hpp
|
||||
@@ -1647,6 +1647,11 @@ inline void Compile::record_for_igvn(Node* n) {
|
||||
_for_igvn->push(n);
|
||||
}
|
||||
|
||||
+// Inline definition of Compile::remove_for_igvn must be deferred to this point.
|
||||
+inline void Compile::remove_for_igvn(Node* n) {
|
||||
+ _for_igvn->remove(n);
|
||||
+}
|
||||
+
|
||||
//------------------------------Node_Stack-------------------------------------
|
||||
class Node_Stack {
|
||||
friend class VMStructs;
|
||||
diff --git a/src/hotspot/share/opto/phaseX.hpp b/src/hotspot/share/opto/phaseX.hpp
|
||||
index 6d0d8ca46..252761161 100644
|
||||
--- a/src/hotspot/share/opto/phaseX.hpp
|
||||
+++ b/src/hotspot/share/opto/phaseX.hpp
|
||||
@@ -238,6 +238,11 @@ public:
|
||||
assert(t != NULL, "type must not be null");
|
||||
_types.map(n->_idx, t);
|
||||
}
|
||||
+ void clear_type(const Node* n) {
|
||||
+ if (n->_idx < _types.Size()) {
|
||||
+ _types.map(n->_idx, NULL);
|
||||
+ }
|
||||
+ }
|
||||
// Record an initial type for a node, the node's bottom type.
|
||||
void set_type_bottom(const Node* n) {
|
||||
// Use this for initialization when bottom_type() (or better) is not handy.
|
||||
diff --git a/src/hotspot/share/opto/vectorIntrinsics.cpp b/src/hotspot/share/opto/vectorIntrinsics.cpp
|
||||
index 06f491419..92f292438 100644
|
||||
--- a/src/hotspot/share/opto/vectorIntrinsics.cpp
|
||||
+++ b/src/hotspot/share/opto/vectorIntrinsics.cpp
|
||||
@@ -868,7 +868,7 @@ bool LibraryCallKit::inline_vector_mem_operation(bool is_store) {
|
||||
set_result(box);
|
||||
}
|
||||
|
||||
- old_map->destruct(&_gvn);
|
||||
+ destruct_map_clone(old_map);
|
||||
|
||||
if (can_access_non_heap) {
|
||||
insert_mem_bar(Op_MemBarCPUOrder);
|
||||
@@ -1006,7 +1006,7 @@ bool LibraryCallKit::inline_vector_gather_scatter(bool is_scatter) {
|
||||
set_result(box);
|
||||
}
|
||||
|
||||
- old_map->destruct(&_gvn);
|
||||
+ destruct_map_clone(old_map);
|
||||
|
||||
C->set_max_vector_size(MAX2(C->max_vector_size(), (uint)(num_elem * type2aelembytes(elem_bt))));
|
||||
return true;
|
||||
--
|
||||
2.22.0
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
Date: Sat, 27 May 2023 17:39:02 +0800
|
||||
Subject: add
|
||||
8303069-Memory-leak-in-CompilerOracle-parse_from_lin.patch
|
||||
|
||||
---
|
||||
src/hotspot/share/compiler/compilerOracle.cpp | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/hotspot/share/compiler/compilerOracle.cpp b/src/hotspot/share/compiler/compilerOracle.cpp
|
||||
index 69a327873..5149121c5 100644
|
||||
--- a/src/hotspot/share/compiler/compilerOracle.cpp
|
||||
+++ b/src/hotspot/share/compiler/compilerOracle.cpp
|
||||
@@ -308,6 +308,8 @@ static void register_command(TypedMethodOptionMatcher* matcher,
|
||||
|
||||
if (option == CompileCommand::Blackhole && !UnlockExperimentalVMOptions) {
|
||||
warning("Blackhole compile option is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions");
|
||||
+ // Delete matcher as we don't keep it
|
||||
+ delete matcher;
|
||||
return;
|
||||
}
|
||||
|
||||
--
|
||||
2.22.0
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
Date: Sat, 27 May 2023 17:40:24 +0800
|
||||
Subject: add
|
||||
8304683-Memory-leak-in-WB_IsMethodCompatible.patch
|
||||
|
||||
---
|
||||
src/hotspot/share/prims/whitebox.cpp | 7 +++----
|
||||
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/hotspot/share/prims/whitebox.cpp b/src/hotspot/share/prims/whitebox.cpp
|
||||
index 296bfe9e4..f6c947f13 100644
|
||||
--- a/src/hotspot/share/prims/whitebox.cpp
|
||||
+++ b/src/hotspot/share/prims/whitebox.cpp
|
||||
@@ -821,10 +821,9 @@ static bool is_excluded_for_compiler(AbstractCompiler* comp, methodHandle& mh) {
|
||||
return true;
|
||||
}
|
||||
DirectiveSet* directive = DirectivesStack::getMatchingDirective(mh, comp);
|
||||
- if (directive->ExcludeOption) {
|
||||
- return true;
|
||||
- }
|
||||
- return false;
|
||||
+ bool exclude = directive->ExcludeOption;
|
||||
+ DirectivesStack::release(directive);
|
||||
+ return exclude;
|
||||
}
|
||||
|
||||
static bool can_be_compiled_at_level(methodHandle& mh, jboolean is_osr, int level) {
|
||||
--
|
||||
2.22.0
|
||||
|
||||
@ -1,260 +0,0 @@
|
||||
Date: Sat, 27 May 2023 17:38:35 +0800
|
||||
Subject: add
|
||||
8305541-C2-Div-Mod-nodes-without-zero-check-could-be.patch
|
||||
|
||||
---
|
||||
src/hotspot/share/opto/loopnode.hpp | 3 +
|
||||
src/hotspot/share/opto/loopopts.cpp | 42 ++++-
|
||||
.../c2/TestSplitDivisionThroughPhi.java | 161 ++++++++++++++++++
|
||||
3 files changed, 205 insertions(+), 1 deletion(-)
|
||||
create mode 100644 test/hotspot/jtreg/compiler/c2/TestSplitDivisionThroughPhi.java
|
||||
|
||||
diff --git a/src/hotspot/share/opto/loopnode.hpp b/src/hotspot/share/opto/loopnode.hpp
|
||||
index ebc3bd1db..0db6d0881 100644
|
||||
--- a/src/hotspot/share/opto/loopnode.hpp
|
||||
+++ b/src/hotspot/share/opto/loopnode.hpp
|
||||
@@ -1506,6 +1506,9 @@ private:
|
||||
void try_move_store_after_loop(Node* n);
|
||||
bool identical_backtoback_ifs(Node *n);
|
||||
bool can_split_if(Node *n_ctrl);
|
||||
+ bool cannot_split_division(const Node* n, const Node* region) const;
|
||||
+ static bool is_divisor_counted_loop_phi(const Node* divisor, const Node* loop);
|
||||
+ bool loop_phi_backedge_type_contains_zero(const Node* phi_divisor, const Type* zero) const;
|
||||
|
||||
// Determine if a method is too big for a/another round of split-if, based on
|
||||
// a magic (approximate) ratio derived from the equally magic constant 35000,
|
||||
diff --git a/src/hotspot/share/opto/loopopts.cpp b/src/hotspot/share/opto/loopopts.cpp
|
||||
index c0804ed67..9e0f1b2d2 100644
|
||||
--- a/src/hotspot/share/opto/loopopts.cpp
|
||||
+++ b/src/hotspot/share/opto/loopopts.cpp
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
+ * Copyright (c) 1999, 2023, 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
|
||||
@@ -61,6 +61,10 @@ Node* PhaseIdealLoop::split_thru_phi(Node* n, Node* region, int policy) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+ if (cannot_split_division(n, region)) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
// Bail out if 'n' is a Div or Mod node whose zero check was removed earlier (i.e. control is NULL) and its divisor is an induction variable
|
||||
// phi p of a trip-counted (integer) loop whose inputs could be zero (include zero in their type range). p could have a more precise type
|
||||
// range that does not necessarily include all values of its inputs. Since each of these inputs will be a divisor of the newly cloned nodes
|
||||
@@ -225,6 +229,42 @@ Node* PhaseIdealLoop::split_thru_phi(Node* n, Node* region, int policy) {
|
||||
return phi;
|
||||
}
|
||||
|
||||
+// Return true if 'n' is a Div or Mod node (without zero check If node which was removed earlier) with a loop phi divisor
|
||||
+// of a trip-counted (integer or long) loop with a backedge input that could be zero (include zero in its type range). In
|
||||
+// this case, we cannot split the division to the backedge as it could freely float above the loop exit check resulting in
|
||||
+// a division by zero. This situation is possible because the type of an increment node of an iv phi (trip-counter) could
|
||||
+// include zero while the iv phi does not (see PhiNode::Value() for trip-counted loops where we improve types of iv phis).
|
||||
+// We also need to check other loop phis as they could have been created in the same split-if pass when applying
|
||||
+// PhaseIdealLoop::split_thru_phi() to split nodes through an iv phi.
|
||||
+bool PhaseIdealLoop::cannot_split_division(const Node* n, const Node* region) const {
|
||||
+ const Type* zero;
|
||||
+ switch (n->Opcode()) {
|
||||
+ case Op_DivI:
|
||||
+ case Op_ModI:
|
||||
+ zero = TypeInt::ZERO;
|
||||
+ break;
|
||||
+ case Op_DivL:
|
||||
+ case Op_ModL:
|
||||
+ zero = TypeLong::ZERO;
|
||||
+ break;
|
||||
+ default:
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ assert(n->in(0) == NULL, "divisions with zero check should already have bailed out earlier in split-if");
|
||||
+ Node* divisor = n->in(2);
|
||||
+ return is_divisor_counted_loop_phi(divisor, region) &&
|
||||
+ loop_phi_backedge_type_contains_zero(divisor, zero);
|
||||
+}
|
||||
+
|
||||
+bool PhaseIdealLoop::is_divisor_counted_loop_phi(const Node* divisor, const Node* loop) {
|
||||
+ return loop->is_BaseCountedLoop() && divisor->is_Phi() && divisor->in(0) == loop;
|
||||
+}
|
||||
+
|
||||
+bool PhaseIdealLoop::loop_phi_backedge_type_contains_zero(const Node* phi_divisor, const Type* zero) const {
|
||||
+ return _igvn.type(phi_divisor->in(LoopNode::LoopBackControl))->filter_speculative(zero) != Type::TOP;
|
||||
+}
|
||||
+
|
||||
//------------------------------dominated_by------------------------------------
|
||||
// Replace the dominated test with an obvious true or false. Place it on the
|
||||
// IGVN worklist for later cleanup. Move control-dependent data Nodes on the
|
||||
diff --git a/test/hotspot/jtreg/compiler/c2/TestSplitDivisionThroughPhi.java b/test/hotspot/jtreg/compiler/c2/TestSplitDivisionThroughPhi.java
|
||||
new file mode 100644
|
||||
index 000000000..5a42e7d36
|
||||
--- /dev/null
|
||||
+++ b/test/hotspot/jtreg/compiler/c2/TestSplitDivisionThroughPhi.java
|
||||
@@ -0,0 +1,161 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
+ * Copyright (c) 2023, Huawei Technologies Co., Ltd. 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.
|
||||
+ */
|
||||
+
|
||||
+/**
|
||||
+* @test
|
||||
+* @key stress randomness
|
||||
+* @bug 8299259
|
||||
+* @requires vm.compiler2.enabled
|
||||
+* @summary Test various cases of divisions/modulo which should not be split through iv phis.
|
||||
+* @run main/othervm -Xbatch -XX:+UnlockDiagnosticVMOptions -XX:LoopUnrollLimit=0 -XX:+StressGCM -XX:StressSeed=884154126
|
||||
+* -XX:CompileCommand=compileonly,compiler.splitif.TestSplitDivisionThroughPhi::*
|
||||
+* compiler.splitif.TestSplitDivisionThroughPhi
|
||||
+*/
|
||||
+
|
||||
+/**
|
||||
+* @test
|
||||
+* @key stress randomness
|
||||
+* @bug 8299259
|
||||
+* @requires vm.compiler2.enabled
|
||||
+* @summary Test various cases of divisions/modulo which should not be split through iv phis.
|
||||
+* @run main/othervm -Xbatch -XX:+UnlockDiagnosticVMOptions -XX:LoopUnrollLimit=0 -XX:+StressGCM
|
||||
+* -XX:CompileCommand=compileonly,compiler.splitif.TestSplitDivisionThroughPhi::*
|
||||
+* compiler.splitif.TestSplitDivisionThroughPhi
|
||||
+*/
|
||||
+
|
||||
+package compiler.splitif;
|
||||
+
|
||||
+public class TestSplitDivisionThroughPhi {
|
||||
+ static int iFld;
|
||||
+ static long lFld;
|
||||
+ static boolean flag;
|
||||
+
|
||||
+
|
||||
+ public static void main(String[] strArr) {
|
||||
+ for (int i = 0; i < 5000; i++) {
|
||||
+ testPushDivIThruPhi();
|
||||
+ testPushDivIThruPhiInChain();
|
||||
+ testPushModIThruPhi();
|
||||
+ testPushModIThruPhiInChain();
|
||||
+ testPushDivLThruPhi();
|
||||
+ testPushDivLThruPhiInChain();
|
||||
+ testPushModLThruPhi();
|
||||
+ testPushModLThruPhiInChain();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Already fixed by JDK-8248552.
|
||||
+ static void testPushDivIThruPhi() {
|
||||
+ for (int i = 10; i > 1; i -= 2) {
|
||||
+ // The Div node is only split in later loop opts phase because the zero divisor check is only removed
|
||||
+ // in IGVN after the first loop opts phase.
|
||||
+ //
|
||||
+ // iv phi i type: [2..10]
|
||||
+ // When splitting the DivI through the iv phi, it ends up on the back edge with the trip count decrement
|
||||
+ // as input which has type [0..8]. We end up executing a division by zero on the last iteration because
|
||||
+ // the DivI it is not pinned to the loop exit test and can freely float above the loop exit check.
|
||||
+ iFld = 10 / i;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Same as above but with an additional Mul node between the iv phi and the Div node. Both nodes are split through
|
||||
+ // the iv phi in one pass of Split If.
|
||||
+ static void testPushDivIThruPhiInChain() {
|
||||
+ for (int i = 10; i > 1; i -= 2) {
|
||||
+ // Empty one iteration loop which is only removed after split if in first loop opts phase. This prevents
|
||||
+ // that the Mul node is already split through the iv phi while the Div node cannot be split yet due to
|
||||
+ // the zero divisor check which can only be removed in the IGVN after the first loop opts pass.
|
||||
+ for (int j = 0; j < 1; j++) {
|
||||
+ }
|
||||
+ iFld = 10 / (i * 100);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Already fixed by JDK-8248552.
|
||||
+ static void testPushModIThruPhi() {
|
||||
+ for (int i = 10; i > 1; i -= 2) {
|
||||
+ iFld = 10 / i;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Same as above but with ModI.
|
||||
+ static void testPushModIThruPhiInChain() {
|
||||
+ for (int i = 10; i > 1; i -= 2) {
|
||||
+ for (int j = 0; j < 1; j++) {
|
||||
+ }
|
||||
+ iFld = 10 / (i * 100);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Long cases only trigger since JDK-8256655.
|
||||
+
|
||||
+ // Same as above but with DivL.
|
||||
+ static void testPushDivLThruPhi() {
|
||||
+ for (long i = 10; i > 1; i -= 2) {
|
||||
+ lFld = 10L / i;
|
||||
+
|
||||
+ // Loop that is not removed such that we do not transform the outer LongCountedLoop (only done if innermost)
|
||||
+ for (int j = 0; j < 10; j++) {
|
||||
+ flag = !flag;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Same as above but with DivL.
|
||||
+ static void testPushDivLThruPhiInChain() {
|
||||
+ for (long i = 10; i > 1; i -= 2) {
|
||||
+ for (int j = 0; j < 1; j++) {
|
||||
+ }
|
||||
+ lFld = 10L / (i * 100L);
|
||||
+
|
||||
+ for (int j = 0; j < 10; j++) {
|
||||
+ flag = !flag;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Same as above but with ModL
|
||||
+ static void testPushModLThruPhi() {
|
||||
+ for (long i = 10; i > 1; i -= 2) {
|
||||
+ lFld = 10L % i;
|
||||
+
|
||||
+ for (int j = 0; j < 10; j++) {
|
||||
+ flag = !flag;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Same as above but with ModL
|
||||
+ static void testPushModLThruPhiInChain() {
|
||||
+ for (long i = 10; i > 1; i -= 2) {
|
||||
+ for (int j = 0; j < 1; j++) {
|
||||
+ }
|
||||
+ lFld = 10L % (i * 100L);
|
||||
+
|
||||
+ for (int j = 0; j < 10; j++) {
|
||||
+ flag = !flag;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.22.0
|
||||
|
||||
22
8335610-DiagnosticFramework-CmdLine-is_executable-co.patch
Normal file
22
8335610-DiagnosticFramework-CmdLine-is_executable-co.patch
Normal file
@ -0,0 +1,22 @@
|
||||
Subject: 8335610: DiagnosticFramework: CmdLine::is_executable() correction
|
||||
|
||||
---
|
||||
src/hotspot/share/services/diagnosticFramework.hpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/hotspot/share/services/diagnosticFramework.hpp b/src/hotspot/share/services/diagnosticFramework.hpp
|
||||
index e182e5440..166384193 100644
|
||||
--- a/src/hotspot/share/services/diagnosticFramework.hpp
|
||||
+++ b/src/hotspot/share/services/diagnosticFramework.hpp
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
const char* cmd_addr() const { return _cmd; }
|
||||
size_t cmd_len() const { return _cmd_len; }
|
||||
bool is_empty() const { return _cmd_len == 0; }
|
||||
- bool is_executable() const { return is_empty() || _cmd[0] != '#'; }
|
||||
+ bool is_executable() const { return !is_empty() && _cmd[0] != '#'; }
|
||||
bool is_stop() const { return !is_empty() && strncmp("stop", _cmd, _cmd_len) == 0; }
|
||||
};
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
||||
40
8337274-Remove-repeated-the-in-StyleSheet.create-Sma.patch
Normal file
40
8337274-Remove-repeated-the-in-StyleSheet.create-Sma.patch
Normal file
@ -0,0 +1,40 @@
|
||||
Subject: 8337274: Remove repeated 'the' in StyleSheet.create{Small,Large}AttributeSet
|
||||
|
||||
---
|
||||
.../share/classes/javax/swing/text/html/StyleSheet.java | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java b/src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java
|
||||
index 958b3a899..25490291a 100644
|
||||
--- a/src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java
|
||||
+++ b/src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java
|
||||
@@ -691,7 +691,7 @@ public class StyleSheet extends StyleContext {
|
||||
* to return an AttributeSet that provides some sort of
|
||||
* attribute conversion.
|
||||
*
|
||||
- * @param a The set of attributes to be represented in the
|
||||
+ * @param a The set of attributes to be represented in
|
||||
* the compact form.
|
||||
*/
|
||||
protected SmallAttributeSet createSmallAttributeSet(AttributeSet a) {
|
||||
@@ -707,7 +707,7 @@ public class StyleSheet extends StyleContext {
|
||||
* to return a MutableAttributeSet that provides some sort of
|
||||
* attribute conversion.
|
||||
*
|
||||
- * @param a The set of attributes to be represented in the
|
||||
+ * @param a The set of attributes to be represented in
|
||||
* the larger form.
|
||||
*/
|
||||
protected MutableAttributeSet createLargeAttributeSet(AttributeSet a) {
|
||||
@@ -2140,7 +2140,7 @@ public class StyleSheet extends StyleContext {
|
||||
/**
|
||||
* Returns a string that represents the value
|
||||
* of the HTML.Attribute.TYPE attribute.
|
||||
- * If this attributes is not defined, then
|
||||
+ * If this attributes is not defined,
|
||||
* then the type defaults to "disc" unless
|
||||
* the tag is on Ordered list. In the case
|
||||
* of the latter, the default type is "decimal".
|
||||
--
|
||||
2.33.0
|
||||
|
||||
21
8337982-Remove-dead-undef-assrt0n.patch
Normal file
21
8337982-Remove-dead-undef-assrt0n.patch
Normal file
@ -0,0 +1,21 @@
|
||||
Subject: 8337982: Remove dead undef assrt0n
|
||||
|
||||
---
|
||||
src/hotspot/share/memory/metaspace/blockTree.cpp | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/src/hotspot/share/memory/metaspace/blockTree.cpp b/src/hotspot/share/memory/metaspace/blockTree.cpp
|
||||
index ed2964534..9c78eef84 100644
|
||||
--- a/src/hotspot/share/memory/metaspace/blockTree.cpp
|
||||
+++ b/src/hotspot/share/memory/metaspace/blockTree.cpp
|
||||
@@ -180,7 +180,6 @@ void BlockTree::verify() const {
|
||||
// as many nodes as are in this tree)
|
||||
_counter.check(counter);
|
||||
|
||||
- #undef assrt0n
|
||||
}
|
||||
|
||||
void BlockTree::zap_range(MetaWord* p, size_t word_size) {
|
||||
--
|
||||
2.33.0
|
||||
|
||||
22
8338785-The-java.awt.datatransfer.SystemFlavorMap-FL.patch
Normal file
22
8338785-The-java.awt.datatransfer.SystemFlavorMap-FL.patch
Normal file
@ -0,0 +1,22 @@
|
||||
Subject: 8338785: The java.awt.datatransfer.SystemFlavorMap#FLAVOR_MAP_KEY field is not used
|
||||
|
||||
---
|
||||
.../share/classes/java/awt/datatransfer/SystemFlavorMap.java | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/src/java.datatransfer/share/classes/java/awt/datatransfer/SystemFlavorMap.java b/src/java.datatransfer/share/classes/java/awt/datatransfer/SystemFlavorMap.java
|
||||
index d48146513..4bde236fc 100644
|
||||
--- a/src/java.datatransfer/share/classes/java/awt/datatransfer/SystemFlavorMap.java
|
||||
+++ b/src/java.datatransfer/share/classes/java/awt/datatransfer/SystemFlavorMap.java
|
||||
@@ -61,8 +61,6 @@ public final class SystemFlavorMap implements FlavorMap, FlavorTable {
|
||||
*/
|
||||
private static String JavaMIME = "JAVA_DATAFLAVOR:";
|
||||
|
||||
- private static final Object FLAVOR_MAP_KEY = new Object();
|
||||
-
|
||||
/**
|
||||
* The list of valid, decoded text flavor representation classes, in order
|
||||
* from best to worst.
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -1263,7 +1263,7 @@ index 8ceca7cd3..0d501e494 100644
|
||||
+++ b/src/hotspot/share/prims/jvm.cpp
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
- * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
+ * Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
|
||||
@ -1584,7 +1584,7 @@ index f8900a13b..356c6ca8b 100644
|
||||
+#endif
|
||||
while (len > 0) {
|
||||
const unsigned int nBytes = len > INT_MAX ? INT_MAX : (unsigned int)len;
|
||||
const ssize_t num_written = (ssize_t)os::write(_fd, buf, nBytes);
|
||||
const bool successful_write = os::write(_fd, buf, nBytes);
|
||||
diff --git a/src/hotspot/share/prims/jni.cpp b/src/hotspot/share/prims/jni.cpp
|
||||
index cd0115248..41e946563 100644
|
||||
--- a/src/hotspot/share/prims/jni.cpp
|
||||
|
||||
@ -141,19 +141,6 @@ index 52e6ab86c..88a9289b9 100644
|
||||
if (j >= 1024) {
|
||||
st->print_cr(UINT64_FORMAT " k", uint64_t(j) / 1024);
|
||||
} else {
|
||||
diff --git a/src/hotspot/os/linux/os_perf_linux.cpp b/src/hotspot/os/linux/os_perf_linux.cpp
|
||||
index 7c42379a0..958848dc8 100644
|
||||
--- a/src/hotspot/os/linux/os_perf_linux.cpp
|
||||
+++ b/src/hotspot/os/linux/os_perf_linux.cpp
|
||||
@@ -847,7 +847,7 @@ SystemProcessInterface::SystemProcesses::ProcessIterator::ProcessIterator() {
|
||||
bool SystemProcessInterface::SystemProcesses::ProcessIterator::initialize() {
|
||||
_dir = os::opendir("/proc");
|
||||
_entry = NULL;
|
||||
- _valid = true;
|
||||
+ _valid = _dir != nullptr; // May be null if /proc is not accessible.
|
||||
next_process();
|
||||
|
||||
return true;
|
||||
diff --git a/src/hotspot/share/c1/c1_globals.hpp b/src/hotspot/share/c1/c1_globals.hpp
|
||||
index 7564b2b8a..41d4607f8 100644
|
||||
--- a/src/hotspot/share/c1/c1_globals.hpp
|
||||
@ -190,7 +177,7 @@ index 98ab42022..56ed8a5dd 100644
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -750,12 +750,14 @@ bool PSScavenge::should_attempt_scavenge() {
|
||||
// changed, decide if that test should also be changed.
|
||||
|
||||
size_t avg_promoted = (size_t) policy->padded_average_promoted_in_bytes();
|
||||
size_t promotion_estimate = MIN2(avg_promoted, young_gen->used_in_bytes());
|
||||
- bool result = promotion_estimate < old_gen->free_in_bytes();
|
||||
@ -206,19 +193,6 @@ index 98ab42022..56ed8a5dd 100644
|
||||
if (young_gen->used_in_bytes() < (size_t) policy->padded_average_promoted_in_bytes()) {
|
||||
log_trace(ergo)(" padded_promoted_average is greater than maximum promotion = " SIZE_FORMAT, young_gen->used_in_bytes());
|
||||
}
|
||||
diff --git a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp
|
||||
index 78d6ab48f..a72c15a49 100644
|
||||
--- a/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp
|
||||
+++ b/src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp
|
||||
@@ -228,7 +228,7 @@ static int write_klass(JfrCheckpointWriter* writer, KlassPtr klass, bool leakp)
|
||||
writer->write(cld != NULL ? cld_id(cld, leakp) : 0);
|
||||
writer->write(mark_symbol(klass, leakp));
|
||||
writer->write(package_id(klass, leakp));
|
||||
- writer->write(get_flags(klass));
|
||||
+ writer->write(klass->modifier_flags());
|
||||
writer->write<bool>(klass->is_hidden());
|
||||
return 1;
|
||||
}
|
||||
diff --git a/src/hotspot/share/opto/c2compiler.cpp b/src/hotspot/share/opto/c2compiler.cpp
|
||||
index 13de7651e..411733814 100644
|
||||
--- a/src/hotspot/share/opto/c2compiler.cpp
|
||||
@ -661,191 +635,6 @@ index 050f27e72..197f3238b 100644
|
||||
return;
|
||||
|
||||
if ( comboBox.isEditable() ) {
|
||||
diff --git a/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java b/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java
|
||||
index 34c53ca91..81972a052 100644
|
||||
--- a/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java
|
||||
+++ b/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java
|
||||
@@ -98,10 +98,13 @@ public class BasicDirectoryModel extends AbstractListModel<Object> implements Pr
|
||||
* This method is used to interrupt file loading thread.
|
||||
*/
|
||||
public void invalidateFileCache() {
|
||||
- if (filesLoader != null) {
|
||||
- filesLoader.loadThread.interrupt();
|
||||
- filesLoader.cancelRunnables();
|
||||
- filesLoader = null;
|
||||
+ synchronized (this) {
|
||||
+ if (filesLoader != null) {
|
||||
+ filesLoader.loadThread.interrupt();
|
||||
+ filesLoader = null;
|
||||
+ // Increment fetch ID to invalidate pending DoChangeContents
|
||||
+ fetchID.incrementAndGet();
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,14 +159,15 @@ public class BasicDirectoryModel extends AbstractListModel<Object> implements Pr
|
||||
if (currentDirectory == null) {
|
||||
return;
|
||||
}
|
||||
- if (filesLoader != null) {
|
||||
- filesLoader.loadThread.interrupt();
|
||||
- filesLoader.cancelRunnables();
|
||||
- }
|
||||
|
||||
- int fid = fetchID.incrementAndGet();
|
||||
- setBusy(true, fid);
|
||||
- filesLoader = new FilesLoader(currentDirectory, fid);
|
||||
+ synchronized (this) {
|
||||
+ if (filesLoader != null) {
|
||||
+ filesLoader.loadThread.interrupt();
|
||||
+ }
|
||||
+ int fid = fetchID.incrementAndGet();
|
||||
+ setBusy(true, fid);
|
||||
+ filesLoader = new FilesLoader(currentDirectory, fid);
|
||||
+ }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -276,7 +280,6 @@ public class BasicDirectoryModel extends AbstractListModel<Object> implements Pr
|
||||
private final boolean fileSelectionEnabled;
|
||||
private final int fid;
|
||||
private final File currentDirectory;
|
||||
- private volatile DoChangeContents runnable;
|
||||
private final Thread loadThread;
|
||||
|
||||
private FilesLoader(File currentDirectory, int fid) {
|
||||
@@ -297,22 +300,20 @@ public class BasicDirectoryModel extends AbstractListModel<Object> implements Pr
|
||||
}
|
||||
|
||||
private void run0() {
|
||||
- FileSystemView fileSystem = fileSystemView;
|
||||
-
|
||||
if (loadThread.isInterrupted()) {
|
||||
return;
|
||||
}
|
||||
|
||||
- File[] list = fileSystem.getFiles(currentDirectory, useFileHiding);
|
||||
+ File[] list = fileSystemView.getFiles(currentDirectory, useFileHiding);
|
||||
|
||||
if (loadThread.isInterrupted()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Vector<File> newFileCache = new Vector<File>();
|
||||
- Vector<File> newFiles = new Vector<File>();
|
||||
+ final Vector<File> newFiles = new Vector<File>();
|
||||
|
||||
- // run through the file list, add directories and selectable files to fileCache
|
||||
+ // Run through the file list, add directories and selectable files to fileCache
|
||||
// Note that this block must be OUTSIDE of Invoker thread because of
|
||||
// deadlock possibility with custom synchronized FileSystemView
|
||||
for (File file : list) {
|
||||
@@ -339,7 +340,7 @@ public class BasicDirectoryModel extends AbstractListModel<Object> implements Pr
|
||||
|
||||
// To avoid loads of synchronizations with Invoker and improve performance we
|
||||
// execute the whole block on the COM thread
|
||||
- runnable = ShellFolder.invoke(new Callable<DoChangeContents>() {
|
||||
+ DoChangeContents runnable = ShellFolder.invoke(new Callable<DoChangeContents>() {
|
||||
public DoChangeContents call() {
|
||||
int newSize = newFileCache.size();
|
||||
int oldSize = fileCache.size();
|
||||
@@ -388,7 +389,7 @@ public class BasicDirectoryModel extends AbstractListModel<Object> implements Pr
|
||||
}
|
||||
if (!fileCache.equals(newFileCache)) {
|
||||
if (loadThread.isInterrupted()) {
|
||||
- cancelRunnables();
|
||||
+ return null;
|
||||
}
|
||||
return new DoChangeContents(newFileCache, 0, fileCache, 0, fid);
|
||||
}
|
||||
@@ -400,12 +401,6 @@ public class BasicDirectoryModel extends AbstractListModel<Object> implements Pr
|
||||
SwingUtilities.invokeLater(runnable);
|
||||
}
|
||||
}
|
||||
-
|
||||
- private void cancelRunnables() {
|
||||
- if (runnable != null) {
|
||||
- runnable.cancel();
|
||||
- }
|
||||
- }
|
||||
}
|
||||
|
||||
|
||||
@@ -514,13 +509,13 @@ public class BasicDirectoryModel extends AbstractListModel<Object> implements Pr
|
||||
private final class DoChangeContents implements Runnable {
|
||||
private final List<File> addFiles;
|
||||
private final List<File> remFiles;
|
||||
- private boolean doFire = true;
|
||||
private final int fid;
|
||||
- private int addStart = 0;
|
||||
- private int remStart = 0;
|
||||
+ private final int addStart;
|
||||
+ private final int remStart;
|
||||
|
||||
- DoChangeContents(List<File> addFiles, int addStart, List<File> remFiles,
|
||||
- int remStart, int fid) {
|
||||
+ private DoChangeContents(List<File> addFiles, int addStart,
|
||||
+ List<File> remFiles, int remStart,
|
||||
+ int fid) {
|
||||
this.addFiles = addFiles;
|
||||
this.addStart = addStart;
|
||||
this.remFiles = remFiles;
|
||||
@@ -528,31 +523,31 @@ public class BasicDirectoryModel extends AbstractListModel<Object> implements Pr
|
||||
this.fid = fid;
|
||||
}
|
||||
|
||||
- synchronized void cancel() {
|
||||
- doFire = false;
|
||||
- }
|
||||
-
|
||||
- public synchronized void run() {
|
||||
- if (fetchID.get() == fid && doFire) {
|
||||
- int remSize = (remFiles == null) ? 0 : remFiles.size();
|
||||
- int addSize = (addFiles == null) ? 0 : addFiles.size();
|
||||
- synchronized(fileCache) {
|
||||
- if (remSize > 0) {
|
||||
- fileCache.removeAll(remFiles);
|
||||
- }
|
||||
- if (addSize > 0) {
|
||||
- fileCache.addAll(addStart, addFiles);
|
||||
- }
|
||||
- files = null;
|
||||
- directories = null;
|
||||
- }
|
||||
- if (remSize > 0 && addSize == 0) {
|
||||
- fireIntervalRemoved(BasicDirectoryModel.this, remStart, remStart + remSize - 1);
|
||||
- } else if (addSize > 0 && remSize == 0 && addStart + addSize <= fileCache.size()) {
|
||||
- fireIntervalAdded(BasicDirectoryModel.this, addStart, addStart + addSize - 1);
|
||||
- } else {
|
||||
- fireContentsChanged();
|
||||
+ @Override
|
||||
+ public void run() {
|
||||
+ if (fetchID.get() != fid) {
|
||||
+ return;
|
||||
+ }
|
||||
+ final int remSize = (remFiles == null) ? 0 : remFiles.size();
|
||||
+ final int addSize = (addFiles == null) ? 0 : addFiles.size();
|
||||
+ final int cacheSize;
|
||||
+ synchronized (fileCache) {
|
||||
+ if (remSize > 0) {
|
||||
+ fileCache.removeAll(remFiles);
|
||||
+ }
|
||||
+ if (addSize > 0) {
|
||||
+ fileCache.addAll(addStart, addFiles);
|
||||
}
|
||||
+ files = null;
|
||||
+ directories = null;
|
||||
+ cacheSize = fileCache.size();
|
||||
+ }
|
||||
+ if (remSize > 0 && addSize == 0) {
|
||||
+ fireIntervalRemoved(BasicDirectoryModel.this, remStart, remStart + remSize - 1);
|
||||
+ } else if (addSize > 0 && remSize == 0 && addStart + addSize <= cacheSize) {
|
||||
+ fireIntervalAdded(BasicDirectoryModel.this, addStart, addStart + addSize - 1);
|
||||
+ } else {
|
||||
+ fireContentsChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/src/java.desktop/share/classes/javax/swing/text/html/CSS.java b/src/java.desktop/share/classes/javax/swing/text/html/CSS.java
|
||||
index c14b5a126..311f172b8 100644
|
||||
--- a/src/java.desktop/share/classes/javax/swing/text/html/CSS.java
|
||||
@ -2020,127 +1809,6 @@ index 000000000..830216f0d
|
||||
+ passFailJFrame.awaitAndCheck();
|
||||
+ }
|
||||
+}
|
||||
diff --git a/test/jdk/jdk/jfr/api/consumer/TestRecordedClass.java b/test/jdk/jdk/jfr/api/consumer/TestRecordedClass.java
|
||||
new file mode 100644
|
||||
index 000000000..19c637049
|
||||
--- /dev/null
|
||||
+++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedClass.java
|
||||
@@ -0,0 +1,115 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2023, 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 jdk.jfr.api.consumer;
|
||||
+
|
||||
+import java.lang.reflect.Modifier;
|
||||
+import java.util.List;
|
||||
+
|
||||
+import jdk.jfr.Event;
|
||||
+import jdk.jfr.Recording;
|
||||
+import jdk.jfr.consumer.RecordedClass;
|
||||
+import jdk.jfr.consumer.RecordedEvent;
|
||||
+import jdk.test.lib.jfr.Events;
|
||||
+
|
||||
+/**
|
||||
+ * @test
|
||||
+ * @summary Verifies methods of RecordedClass
|
||||
+ * @key jfr
|
||||
+ * @requires vm.hasJFR
|
||||
+ * @library /test/lib
|
||||
+ * @run main/othervm jdk.jfr.api.consumer.TestRecordedClass
|
||||
+ */
|
||||
+public class TestRecordedClass {
|
||||
+
|
||||
+ static class TestEvent extends Event {
|
||||
+ Class<?> typeA;
|
||||
+ Class<?> typeB;
|
||||
+ }
|
||||
+
|
||||
+ private static class TypeA {
|
||||
+ }
|
||||
+
|
||||
+ public final static class TypeB {
|
||||
+ }
|
||||
+
|
||||
+ public static void main(String[] args) throws Exception {
|
||||
+ try (Recording recording = new Recording()) {
|
||||
+ recording.start();
|
||||
+ TestEvent event = new TestEvent();
|
||||
+ event.typeA = TypeA.class;
|
||||
+ event.typeB = TypeB.class;
|
||||
+ event.commit();
|
||||
+ recording.stop();
|
||||
+
|
||||
+ List<RecordedEvent> events = Events.fromRecording(recording);
|
||||
+ Events.hasEvents(events);
|
||||
+ for (RecordedEvent recordedEvent : events) {
|
||||
+ RecordedClass typeA = recordedEvent.getClass("typeA");
|
||||
+ RecordedClass typeB = recordedEvent.getClass("typeB");
|
||||
+ assertModifiers(typeA, TypeA.class);
|
||||
+ assertModifiers(typeB, TypeB.class);
|
||||
+ assertName(typeA, TypeA.class);
|
||||
+ assertName(typeB, TypeB.class);
|
||||
+ assertClassLoader(typeA, TypeA.class.getClassLoader());
|
||||
+ assertClassLoader(typeB, TypeB.class.getClassLoader());
|
||||
+ assertId(typeA);
|
||||
+ assertId(typeB);
|
||||
+ if (typeA.getId() == typeB.getId()) {
|
||||
+ throw new Exception("Same ID for different classes");
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void assertId(RecordedClass recordedClass) throws Exception {
|
||||
+ long id = recordedClass.getId();
|
||||
+ if (id < 1 || id >= 1024 * 1024) {
|
||||
+ throw new Exception("Expected class ID to be above 1 and below 1 M");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void assertClassLoader(RecordedClass recordedClass, ClassLoader classLoader) throws Exception {
|
||||
+ String expected = classLoader.getClass().getName();
|
||||
+ String actual = recordedClass.getClassLoader().getType().getName();
|
||||
+ if (!expected.equals(actual)) {
|
||||
+ throw new Exception("Expected class loader to be " + expected + ", was " + actual);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void assertName(RecordedClass recordedClass, Class<?> clazz) throws Exception {
|
||||
+ String className = clazz.getClass().getName();
|
||||
+ if (className.equals(recordedClass.getName())) {
|
||||
+ throw new Exception("Expected class to be named " + className);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void assertModifiers(RecordedClass recordedClass, Class<?> clazz) throws Exception {
|
||||
+ int modifiers = clazz.getModifiers();
|
||||
+ if (modifiers != recordedClass.getModifiers()) {
|
||||
+ String expected = Modifier.toString(modifiers);
|
||||
+ String actual = Modifier.toString(recordedClass.getModifiers());
|
||||
+ throw new Exception("Expected modifier to be '" + expected + "', was '" + actual + "'");
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
diff --git a/test/jdk/sun/jvmstat/monitor/MonitoredVm/ConcurrentGetMonitoredHost.java b/test/jdk/sun/jvmstat/monitor/MonitoredVm/ConcurrentGetMonitoredHost.java
|
||||
new file mode 100644
|
||||
index 000000000..a6049f6a0
|
||||
|
||||
29
Backport-of-8330191-Fix-typo-in-precompiled.hpp.patch
Normal file
29
Backport-of-8330191-Fix-typo-in-precompiled.hpp.patch
Normal file
@ -0,0 +1,29 @@
|
||||
Subject: Backport of 8330191: Fix typo in precompiled.hpp
|
||||
|
||||
---
|
||||
src/hotspot/share/precompiled/precompiled.hpp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/hotspot/share/precompiled/precompiled.hpp b/src/hotspot/share/precompiled/precompiled.hpp
|
||||
index d34304741..54d03ed71 100644
|
||||
--- a/src/hotspot/share/precompiled/precompiled.hpp
|
||||
+++ b/src/hotspot/share/precompiled/precompiled.hpp
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
+ * Copyright (c) 2010, 2024, 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
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
// These header files are included in at least 130 C++ files, as of
|
||||
// measurements made in November 2018. This list excludes files named
|
||||
-// *.include.hpp, since including them decreased build performance.
|
||||
+// *.inline.hpp, since including them decreased build performance.
|
||||
|
||||
#include "classfile/classLoaderData.hpp"
|
||||
#include "classfile/javaClasses.hpp"
|
||||
--
|
||||
2.33.0
|
||||
|
||||
22
Backport-of-8333088-ubsan-shenandoahAdaptiveHeuristi.patch
Normal file
22
Backport-of-8333088-ubsan-shenandoahAdaptiveHeuristi.patch
Normal file
@ -0,0 +1,22 @@
|
||||
Subject: Backport of 8333088: ubsan: shenandoahAdaptiveHeuristics.cpp: runtime error: division by zero
|
||||
|
||||
---
|
||||
.../gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
|
||||
index 819f1e8d7..371e4c90c 100644
|
||||
--- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
|
||||
+++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
|
||||
@@ -243,7 +243,7 @@ bool ShenandoahAdaptiveHeuristics::should_start_gc() {
|
||||
|
||||
double avg_cycle_time = _gc_time_history->davg() + (_margin_of_error_sd * _gc_time_history->dsd());
|
||||
double avg_alloc_rate = _allocation_rate.upper_bound(_margin_of_error_sd);
|
||||
- if (avg_cycle_time > allocation_headroom / avg_alloc_rate) {
|
||||
+ if (avg_cycle_time * avg_alloc_rate > allocation_headroom) {
|
||||
log_info(gc)("Trigger: Average GC time (%.2f ms) is above the time for average allocation rate (%.0f %sB/s) to deplete free headroom (" SIZE_FORMAT "%s) (margin of error = %.2f)",
|
||||
avg_cycle_time * 1000,
|
||||
byte_size_in_proper_unit(avg_alloc_rate), proper_unit_for_byte_size(avg_alloc_rate),
|
||||
--
|
||||
2.33.0
|
||||
|
||||
29
Backport-of-8337712-Wrong-javadoc-in-java.util.Date-.patch
Normal file
29
Backport-of-8337712-Wrong-javadoc-in-java.util.Date-.patch
Normal file
@ -0,0 +1,29 @@
|
||||
Subject: Backport of 8337712: Wrong javadoc in java.util.Date#toString(): 61 and right parenthesis
|
||||
|
||||
---
|
||||
src/java.base/share/classes/java/util/Date.java | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/java.base/share/classes/java/util/Date.java b/src/java.base/share/classes/java/util/Date.java
|
||||
index d0b31a402..9a0552dd3 100644
|
||||
--- a/src/java.base/share/classes/java/util/Date.java
|
||||
+++ b/src/java.base/share/classes/java/util/Date.java
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
+ * Copyright (c) 1994, 2024, 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
|
||||
@@ -1014,7 +1014,7 @@ public class Date
|
||||
* <li>{@code mm} is the minute within the hour ({@code 00} through
|
||||
* {@code 59}), as two decimal digits.
|
||||
* <li>{@code ss} is the second within the minute ({@code 00} through
|
||||
- * {@code 61}, as two decimal digits.
|
||||
+ * {@code 61}), as two decimal digits.
|
||||
* <li>{@code zzz} is the time zone (and may reflect daylight saving
|
||||
* time). Standard time zone abbreviations include those
|
||||
* recognized by the method {@code parse}. If time zone
|
||||
--
|
||||
2.33.0
|
||||
|
||||
21
Backport-of-8339351-Remove-duplicate-line-in-FileMap.patch
Normal file
21
Backport-of-8339351-Remove-duplicate-line-in-FileMap.patch
Normal file
@ -0,0 +1,21 @@
|
||||
Subject: Backport of 8339351: Remove duplicate line in FileMapHeader::print
|
||||
|
||||
---
|
||||
src/hotspot/share/cds/filemap.cpp | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/src/hotspot/share/cds/filemap.cpp b/src/hotspot/share/cds/filemap.cpp
|
||||
index fa981d38c..106c14bfc 100644
|
||||
--- a/src/hotspot/share/cds/filemap.cpp
|
||||
+++ b/src/hotspot/share/cds/filemap.cpp
|
||||
@@ -287,7 +287,6 @@ void FileMapHeader::print(outputStream* st) {
|
||||
st->print_cr("- core_region_alignment: " SIZE_FORMAT, _core_region_alignment);
|
||||
st->print_cr("- obj_alignment: %d", _obj_alignment);
|
||||
st->print_cr("- narrow_oop_base: " INTPTR_FORMAT, p2i(_narrow_oop_base));
|
||||
- st->print_cr("- narrow_oop_base: " INTPTR_FORMAT, p2i(_narrow_oop_base));
|
||||
st->print_cr("- narrow_oop_shift %d", _narrow_oop_shift);
|
||||
st->print_cr("- compact_strings: %d", _compact_strings);
|
||||
st->print_cr("- max_heap_size: " UINTX_FORMAT, _max_heap_size);
|
||||
--
|
||||
2.33.0
|
||||
|
||||
30
Backport-of-JDK-8305680.patch
Normal file
30
Backport-of-JDK-8305680.patch
Normal file
@ -0,0 +1,30 @@
|
||||
Subject: Backport of JDK-8305680
|
||||
|
||||
---
|
||||
src/hotspot/share/services/diagnosticCommand.cpp | 10 ----------
|
||||
1 file changed, 10 deletions(-)
|
||||
|
||||
diff --git a/src/hotspot/share/services/diagnosticCommand.cpp b/src/hotspot/share/services/diagnosticCommand.cpp
|
||||
index 51f47421c..1400e4a3f 100644
|
||||
--- a/src/hotspot/share/services/diagnosticCommand.cpp
|
||||
+++ b/src/hotspot/share/services/diagnosticCommand.cpp
|
||||
@@ -191,16 +191,6 @@ void HelpDCmd::execute(DCmdSource source, TRAPS) {
|
||||
factory->is_enabled() ? "" : " [disabled]");
|
||||
output()->print_cr("%s", factory->description());
|
||||
output()->print_cr("\nImpact: %s", factory->impact());
|
||||
- JavaPermission p = factory->permission();
|
||||
- if(p._class != NULL) {
|
||||
- if(p._action != NULL) {
|
||||
- output()->print_cr("\nPermission: %s(%s, %s)",
|
||||
- p._class, p._name == NULL ? "null" : p._name, p._action);
|
||||
- } else {
|
||||
- output()->print_cr("\nPermission: %s(%s)",
|
||||
- p._class, p._name == NULL ? "null" : p._name);
|
||||
- }
|
||||
- }
|
||||
output()->cr();
|
||||
cmd = factory->create_resource_instance(output());
|
||||
if (cmd != NULL) {
|
||||
--
|
||||
2.33.0
|
||||
|
||||
23
Backport-of-JDK-8305937.patch
Normal file
23
Backport-of-JDK-8305937.patch
Normal file
@ -0,0 +1,23 @@
|
||||
Subject: Backport of JDK-8305937
|
||||
|
||||
Signed-off-by: Qeryu <u201911667@hust.edu.cn>
|
||||
---
|
||||
test/jdk/com/sun/jdi/TestScaffold.java | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/jdk/com/sun/jdi/TestScaffold.java b/test/jdk/com/sun/jdi/TestScaffold.java
|
||||
index 2d4885c90..e46a44eda 100644
|
||||
--- a/test/jdk/com/sun/jdi/TestScaffold.java
|
||||
+++ b/test/jdk/com/sun/jdi/TestScaffold.java
|
||||
@@ -513,7 +513,7 @@ abstract public class TestScaffold extends TargetAdapter {
|
||||
public void connect(String args[]) {
|
||||
ArgInfo argInfo = parseArgs(args);
|
||||
|
||||
- argInfo.targetVMArgs += VMConnection.getDebuggeeVMOptions();
|
||||
+ argInfo.targetVMArgs = VMConnection.getDebuggeeVMOptions() + " " + argInfo.targetVMArgs;
|
||||
connection = new VMConnection(argInfo.connectorSpec,
|
||||
argInfo.traceFlags);
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -1,180 +0,0 @@
|
||||
From 6ae9bfbc94701aa91941169aff53863fe004db49 Mon Sep 17 00:00:00 2001
|
||||
Date: Mon, 24 Apr 2023 19:10:50 +0800
|
||||
Subject: [PATCH] Delete expired certificate
|
||||
|
||||
---
|
||||
make/data/cacerts/geotrustglobalca | 27 ------------
|
||||
make/data/cacerts/luxtrustglobalrootca | 28 -------------
|
||||
make/data/cacerts/quovadisrootca | 41 -------------------
|
||||
.../security/lib/cacerts/VerifyCACerts.java | 16 +-------
|
||||
4 files changed, 2 insertions(+), 110 deletions(-)
|
||||
delete mode 100644 make/data/cacerts/geotrustglobalca
|
||||
delete mode 100644 make/data/cacerts/luxtrustglobalrootca
|
||||
delete mode 100644 make/data/cacerts/quovadisrootca
|
||||
|
||||
diff --git a/make/data/cacerts/geotrustglobalca b/make/data/cacerts/geotrustglobalca
|
||||
deleted file mode 100644
|
||||
index 7f8bf9a66..000000000
|
||||
--- a/make/data/cacerts/geotrustglobalca
|
||||
+++ /dev/null
|
||||
@@ -1,27 +0,0 @@
|
||||
-Owner: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
|
||||
-Issuer: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
|
||||
-Serial number: 23456
|
||||
-Valid from: Tue May 21 04:00:00 GMT 2002 until: Sat May 21 04:00:00 GMT 2022
|
||||
-Signature algorithm name: SHA1withRSA
|
||||
-Subject Public Key Algorithm: 2048-bit RSA key
|
||||
-Version: 3
|
||||
------BEGIN CERTIFICATE-----
|
||||
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
|
||||
-MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
|
||||
-YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
|
||||
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
|
||||
-R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
|
||||
-9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
|
||||
-fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
|
||||
-iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
|
||||
-1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
|
||||
-bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
|
||||
-MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
|
||||
-ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
|
||||
-uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
|
||||
-Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
|
||||
-tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
|
||||
-PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
|
||||
-hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
|
||||
-5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
|
||||
------END CERTIFICATE-----
|
||||
diff --git a/make/data/cacerts/luxtrustglobalrootca b/make/data/cacerts/luxtrustglobalrootca
|
||||
deleted file mode 100644
|
||||
index 7fb3d818f..000000000
|
||||
--- a/make/data/cacerts/luxtrustglobalrootca
|
||||
+++ /dev/null
|
||||
@@ -1,28 +0,0 @@
|
||||
-Owner: CN=LuxTrust Global Root, O=LuxTrust s.a., C=LU
|
||||
-Issuer: CN=LuxTrust Global Root, O=LuxTrust s.a., C=LU
|
||||
-Serial number: bb8
|
||||
-Valid from: Thu Mar 17 09:51:37 GMT 2011 until: Wed Mar 17 09:51:37 GMT 2021
|
||||
-Signature algorithm name: SHA256withRSA
|
||||
-Subject Public Key Algorithm: 2048-bit RSA key
|
||||
-Version: 3
|
||||
------BEGIN CERTIFICATE-----
|
||||
-MIIDZDCCAkygAwIBAgICC7gwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCTFUx
|
||||
-FjAUBgNVBAoTDUx1eFRydXN0IHMuYS4xHTAbBgNVBAMTFEx1eFRydXN0IEdsb2Jh
|
||||
-bCBSb290MB4XDTExMDMxNzA5NTEzN1oXDTIxMDMxNzA5NTEzN1owRDELMAkGA1UE
|
||||
-BhMCTFUxFjAUBgNVBAoTDUx1eFRydXN0IHMuYS4xHTAbBgNVBAMTFEx1eFRydXN0
|
||||
-IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsn+n
|
||||
-QPAiygz267Hxyw6VV0B1r6A/Ps7sqjJX5hmxZ0OYWmt8s7j6eJyqpoSyYBuAQc5j
|
||||
-zR8XCJmk9e8+EsdMsFeaXHhAePxFjdqRZ9w6Ubltc+a3OY52OrQfBfVpVfmTz3iI
|
||||
-Sr6qm9d7R1tGBEyCFqY19vx039a0r9jitScRdFmiwmYsaArhmIiIPIoFdRTjuK7z
|
||||
-CISbasE/MRivJ6VLm6T9eTHemD0OYcqHmMH4ijCc+j4z1aXEAwfh95Z0GAAnOCfR
|
||||
-K6qq4UFFi2/xJcLcopeVx0IUM115hCNq52XAV6DYXaljAeew5Ivo+MVjuOVsdJA9
|
||||
-x3f8K7p56aTGEnin/wIDAQABo2AwXjAMBgNVHRMEBTADAQH/MA4GA1UdDwEB/wQE
|
||||
-AwIBBjAfBgNVHSMEGDAWgBQXFYWJCS8kh28/HRvk8pZ5g0gTzjAdBgNVHQ4EFgQU
|
||||
-FxWFiQkvJIdvPx0b5PKWeYNIE84wDQYJKoZIhvcNAQELBQADggEBAFrwHNDUUM9B
|
||||
-fua4nX3DcNBeNv9ujnov3kgR1TQuPLdFwlQlp+HBHjeDtpSutkVIA+qVvuucarQ3
|
||||
-XB8u02uCgUNbCj8RVWOs+nwIAjegPDkEM/6XMshS5dklTbDG7mgfcKpzzlcD3H0K
|
||||
-DTPy0lrfCmw7zBFRlxqkIaKFNQLXgCLShLL4wKpov9XrqsMLq6F8K/f1O4fhVFfs
|
||||
-BSTveUJO84ton+Ruy4KZycwq3FPCH3CDqyEPVrRI/98HIrOM+R2mBN8tAza53W/+
|
||||
-MYhm/2xtRDSvCHc+JtJy9LtHVpM8mGPhM7uZI5K1g3noHZ9nrWLWidb2/CfeMifL
|
||||
-hNp3hSGhEiE=
|
||||
------END CERTIFICATE-----
|
||||
diff --git a/make/data/cacerts/quovadisrootca b/make/data/cacerts/quovadisrootca
|
||||
deleted file mode 100644
|
||||
index 0c195ff51..000000000
|
||||
--- a/make/data/cacerts/quovadisrootca
|
||||
+++ /dev/null
|
||||
@@ -1,41 +0,0 @@
|
||||
-Owner: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM
|
||||
-Issuer: CN=QuoVadis Root Certification Authority, OU=Root Certification Authority, O=QuoVadis Limited, C=BM
|
||||
-Serial number: 3ab6508b
|
||||
-Valid from: Mon Mar 19 18:33:33 GMT 2001 until: Wed Mar 17 18:33:33 GMT 2021
|
||||
-Signature algorithm name: SHA1withRSA
|
||||
-Subject Public Key Algorithm: 2048-bit RSA key
|
||||
-Version: 3
|
||||
------BEGIN CERTIFICATE-----
|
||||
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC
|
||||
-TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0
|
||||
-aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0
|
||||
-aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz
|
||||
-MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw
|
||||
-IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR
|
||||
-dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG
|
||||
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp
|
||||
-li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D
|
||||
-rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ
|
||||
-WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug
|
||||
-F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU
|
||||
-xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC
|
||||
-Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv
|
||||
-dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
|
||||
-ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl
|
||||
-IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh
|
||||
-c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy
|
||||
-ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
|
||||
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI
|
||||
-KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T
|
||||
-KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq
|
||||
-y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p
|
||||
-dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD
|
||||
-VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL
|
||||
-MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk
|
||||
-fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8
|
||||
-7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R
|
||||
-cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y
|
||||
-mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
|
||||
-xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
|
||||
-SnQ2+Q==
|
||||
------END CERTIFICATE-----
|
||||
diff --git a/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java b/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java
|
||||
index c67aa91dd..9079299fb 100644
|
||||
--- a/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java
|
||||
+++ b/test/jdk/sun/security/lib/cacerts/VerifyCACerts.java
|
||||
@@ -54,12 +54,12 @@ public class VerifyCACerts {
|
||||
+ File.separator + "security" + File.separator + "cacerts";
|
||||
|
||||
// The numbers of certs now.
|
||||
- private static final int COUNT = 90;
|
||||
+ private static final int COUNT = 87;
|
||||
|
||||
// SHA-256 of cacerts, can be generated with
|
||||
// shasum -a 256 cacerts | sed -e 's/../&:/g' | tr '[:lower:]' '[:upper:]' | cut -c1-95
|
||||
private static final String CHECKSUM
|
||||
- = "21:8C:35:29:4C:E2:49:D2:83:30:DF:8B:5E:39:F8:8C:D6:C5:2B:59:05:32:74:E5:79:A5:91:9F:3C:57:B9:E3";
|
||||
+ = "D5:5B:7A:BD:8F:4A:DA:19:75:90:28:61:E7:40:6D:A2:54:F5:64:C0:F0:30:29:16:FB:46:9B:57:D5:F7:04:D7";
|
||||
|
||||
// Hex formatter to upper case with ":" delimiter
|
||||
private static final HexFormat HEX = HexFormat.ofDelimiter(":").withUpperCase();
|
||||
@@ -120,8 +120,6 @@ public class VerifyCACerts {
|
||||
"7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2");
|
||||
put("digicerthighassuranceevrootca [jdk]",
|
||||
"74:31:E5:F4:C3:C1:CE:46:90:77:4F:0B:61:E0:54:40:88:3B:A9:A0:1E:D0:0B:A6:AB:D7:80:6E:D3:B1:18:CF");
|
||||
- put("geotrustglobalca [jdk]",
|
||||
- "FF:85:6A:2D:25:1D:CD:88:D3:66:56:F4:50:12:67:98:CF:AB:AA:DE:40:79:9C:72:2D:E4:D2:B5:DB:36:A7:3A");
|
||||
put("geotrustprimaryca [jdk]",
|
||||
"37:D5:10:06:C5:12:EA:AB:62:64:21:F1:EC:8C:92:01:3F:C5:F8:2A:E9:8E:E5:33:EB:46:19:B8:DE:B4:D0:6C");
|
||||
put("geotrustprimarycag2 [jdk]",
|
||||
@@ -154,10 +152,6 @@ public class VerifyCACerts {
|
||||
"5D:56:49:9B:E4:D2:E0:8B:CF:CA:D0:8A:3E:38:72:3D:50:50:3B:DE:70:69:48:E4:2F:55:60:30:19:E5:28:AE");
|
||||
put("letsencryptisrgx1 [jdk]",
|
||||
"96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6");
|
||||
- put("luxtrustglobalrootca [jdk]",
|
||||
- "A1:B2:DB:EB:64:E7:06:C6:16:9E:3C:41:18:B2:3B:AA:09:01:8A:84:27:66:6D:8B:F0:E2:88:91:EC:05:19:50");
|
||||
- put("quovadisrootca [jdk]",
|
||||
- "A4:5E:DE:3B:BB:F0:9C:8A:E1:5C:72:EF:C0:72:68:D6:93:A2:1C:99:6F:D5:1E:67:CA:07:94:60:FD:6D:88:73");
|
||||
put("quovadisrootca1g3 [jdk]",
|
||||
"8A:86:6F:D1:B2:76:B5:7E:57:8E:92:1C:65:82:8A:2B:ED:58:E9:F2:F2:88:05:41:34:B7:F1:F4:BF:C9:CC:74");
|
||||
put("quovadisrootca2 [jdk]",
|
||||
@@ -262,12 +256,6 @@ public class VerifyCACerts {
|
||||
add("addtrustexternalca [jdk]");
|
||||
// Valid until: Sat May 30 10:44:50 GMT 2020
|
||||
add("addtrustqualifiedca [jdk]");
|
||||
- // Valid until: Wed Mar 17 02:51:37 PDT 2021
|
||||
- add("luxtrustglobalrootca [jdk]");
|
||||
- // Valid until: Wed Mar 17 11:33:33 PDT 2021
|
||||
- add("quovadisrootca [jdk]");
|
||||
- // Valid until: Sat May 21 04:00:00 GMT 2022
|
||||
- add("geotrustglobalca [jdk]");
|
||||
}
|
||||
};
|
||||
|
||||
@ -0,0 +1,84 @@
|
||||
From bc5f9fe895849d80d69ef273703e17d2e3ffc968 Mon Sep 17 00:00:00 2001
|
||||
Subject: Fix JBooster file issue caused by os::write change
|
||||
|
||||
---
|
||||
.../share/jbooster/net/serializationWrappers.cpp | 15 +++++++++------
|
||||
.../share/jbooster/net/serializationWrappers.hpp | 2 +-
|
||||
test/hotspot/gtest/jbooster/test_net.cpp | 6 +-----
|
||||
test/hotspot/gtest/jbooster/test_util.cpp | 4 ++--
|
||||
4 files changed, 13 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/src/hotspot/share/jbooster/net/serializationWrappers.cpp b/src/hotspot/share/jbooster/net/serializationWrappers.cpp
|
||||
index 13db948f6..58310e976 100644
|
||||
--- a/src/hotspot/share/jbooster/net/serializationWrappers.cpp
|
||||
+++ b/src/hotspot/share/jbooster/net/serializationWrappers.cpp
|
||||
@@ -385,12 +385,15 @@ int FileWrapper::deserialize(MessageBuffer& buf) {
|
||||
JB_RETURN(buf.deserialize_ref_no_meta(size_to_recv));
|
||||
|
||||
// content (use low-level APIs to save a memcpy)
|
||||
- uint32_t left = size_to_recv;
|
||||
- do {
|
||||
- uint32_t write_size = (uint32_t) os::write(_fd, buf.cur_buf_ptr(), left);
|
||||
- buf.skip_cur_offset(write_size);
|
||||
- left -= write_size;
|
||||
- } while (left > 0);
|
||||
+ if (!os::write(_fd, buf.cur_buf_ptr(), size_to_recv)) {
|
||||
+ int e = errno;
|
||||
+ errno = 0;
|
||||
+ guarantee(e != 0, "sanity");
|
||||
+ log_warning(jbooster, serialization)("Fail to write file \"%s\": errno=%s(\"%s\") .",
|
||||
+ _file_path, os::errno_name(e), os::strerror(e));
|
||||
+ JB_RETURN(e);
|
||||
+ }
|
||||
+ buf.skip_cur_offset(size_to_recv);
|
||||
|
||||
// update status
|
||||
_handled_file_size += size_to_recv;
|
||||
diff --git a/src/hotspot/share/jbooster/net/serializationWrappers.hpp b/src/hotspot/share/jbooster/net/serializationWrappers.hpp
|
||||
index cc7f96c15..02816fcc5 100644
|
||||
--- a/src/hotspot/share/jbooster/net/serializationWrappers.hpp
|
||||
+++ b/src/hotspot/share/jbooster/net/serializationWrappers.hpp
|
||||
@@ -253,7 +253,7 @@ public:
|
||||
|
||||
bool is_null() const { return _file_size == MessageConst::NULL_PTR; }
|
||||
bool is_file_all_handled() const {
|
||||
- assert(_file_size >= _handled_file_size, "sanity");
|
||||
+ guarantee(_file_size >= _handled_file_size, "sanity");
|
||||
return _handled_once && _file_size == _handled_file_size;
|
||||
}
|
||||
|
||||
diff --git a/test/hotspot/gtest/jbooster/test_net.cpp b/test/hotspot/gtest/jbooster/test_net.cpp
|
||||
index a2c45be5e..9eb29fc3a 100644
|
||||
--- a/test/hotspot/gtest/jbooster/test_net.cpp
|
||||
+++ b/test/hotspot/gtest/jbooster/test_net.cpp
|
||||
@@ -348,11 +348,7 @@ static void create_test_file_for_file_wrapper(const char* file_name) {
|
||||
int fd = os::open(file_name, O_BINARY | O_WRONLY | O_CREAT | O_EXCL | O_TRUNC, 0666);
|
||||
ASSERT_TRUE(fd >= 0);
|
||||
ASSERT_EQ(errno, 0);
|
||||
- uint32_t left = mem_size;
|
||||
- do {
|
||||
- uint32_t write_size = (uint32_t) os::write(fd, mem + mem_size - left, left);
|
||||
- left -= write_size;
|
||||
- } while (left > 0);
|
||||
+ ASSERT_TRUE(os::write(fd, mem, mem_size));
|
||||
os::close(fd);
|
||||
FREE_C_HEAP_ARRAY(char, mem);
|
||||
}
|
||||
diff --git a/test/hotspot/gtest/jbooster/test_util.cpp b/test/hotspot/gtest/jbooster/test_util.cpp
|
||||
index ab7fd9b39..cd65804be 100644
|
||||
--- a/test/hotspot/gtest/jbooster/test_util.cpp
|
||||
+++ b/test/hotspot/gtest/jbooster/test_util.cpp
|
||||
@@ -46,8 +46,8 @@ static const char* get_type_name(T t) {
|
||||
}
|
||||
|
||||
static void write_file(const char* file_path, const char* content) {
|
||||
- int fd = os::open(file_path, O_BINARY | O_WRONLY | O_CREAT, 0666);;
|
||||
- os::write(fd, content, strlen(content) + 1);
|
||||
+ int fd = os::open(file_path, O_BINARY | O_WRONLY | O_CREAT, 0666);
|
||||
+ ASSERT_TRUE(os::write(fd, content, strlen(content) + 1));
|
||||
os::close(fd);
|
||||
}
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
||||
@ -87,7 +87,7 @@ index bb09d8cf8..8b03ea56e 100644
|
||||
|
||||
ifeq ($(LIBZIP_CAN_USE_MMAP), true)
|
||||
@@ -139,10 +169,11 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBZIP, \
|
||||
DISABLED_WARNINGS_clang := format-nonliteral, \
|
||||
DISABLED_WARNINGS_clang := format-nonliteral deprecated-non-prototype, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
- LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ index 000000000..b717bafbe
|
||||
--- /dev/null
|
||||
+++ b/version.txt
|
||||
@@ -0,0 +1 @@
|
||||
+17.0.12.0.13
|
||||
+17.0.13.0.13
|
||||
--
|
||||
2.19.0
|
||||
|
||||
|
||||
28
downgrade-fcntl64-to-fcntl-on-linux.patch
Normal file
28
downgrade-fcntl64-to-fcntl-on-linux.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From d01d6f1d2c4baeb238a850ccedc8b2ab1a926eb0 Mon Sep 17 00:00:00 2001
|
||||
Date: Thu, 31 Oct 2024 17:06:06 +0800
|
||||
Subject: downgrade fcntl64 to fcntl on linux
|
||||
|
||||
---
|
||||
src/hotspot/os/linux/os_linux.cpp | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp
|
||||
index e59af5504..96b92344f 100644
|
||||
--- a/src/hotspot/os/linux/os_linux.cpp
|
||||
+++ b/src/hotspot/os/linux/os_linux.cpp
|
||||
@@ -122,6 +122,12 @@
|
||||
#include <sched.h>
|
||||
#endif
|
||||
|
||||
+#if defined(AARCH64)
|
||||
+ __asm__(".symver fcntl64,fcntl@GLIBC_2.17");
|
||||
+#elif defined(AMD64)
|
||||
+ __asm__(".symver fcntl64,fcntl@GLIBC_2.2.5");
|
||||
+#endif
|
||||
+
|
||||
// if RUSAGE_THREAD for getrusage() has not been defined, do it here. The code calling
|
||||
// getrusage() is prepared to handle the associated failure.
|
||||
#ifndef RUSAGE_THREAD
|
||||
--
|
||||
2.22.0
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -161,7 +161,7 @@
|
||||
# Used via new version scheme. JDK 17 was
|
||||
# GA'ed in March 2021 => 21.9
|
||||
%global vendor_version_string 21.9
|
||||
%global securityver 12
|
||||
%global securityver 13
|
||||
# buildjdkver is usually same as %%{majorver},
|
||||
# but in time of bootstrap of next jdk, it is majorver-1,
|
||||
# and this it is better to change it here, on single place
|
||||
@ -187,7 +187,7 @@
|
||||
%global origin_nice OpenJDK
|
||||
%global top_level_dir_name %{origin}
|
||||
%global minorver 0
|
||||
%global buildver 7
|
||||
%global buildver 11
|
||||
# priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
|
||||
%if %is_system_jdk
|
||||
%global priority %( printf '%02d%02d%02d%02d' %{majorver} %{minorver} %{securityver} %{buildver} )
|
||||
@ -903,7 +903,7 @@ Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
|
||||
|
||||
Name: java-%{javaver}-%{origin}
|
||||
Version: %{newjavaver}.%{buildver}
|
||||
Release: 3
|
||||
Release: 2
|
||||
|
||||
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
|
||||
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
|
||||
@ -1026,7 +1026,20 @@ Patch53: Add-JBooster-options-check.patch
|
||||
Patch54: KAE-zip-Features.patch
|
||||
Patch55: heap-dump-redact-support.patch
|
||||
Patch56: Backport-Important-Fixed-Issues.patch
|
||||
Patch57: Backport-of-JDK-8305680.patch
|
||||
Patch58: Backport-of-JDK-8305937.patch
|
||||
Patch59: 8338785-The-java.awt.datatransfer.SystemFlavorMap-FL.patch
|
||||
Patch60: 8337982-Remove-dead-undef-assrt0n.patch
|
||||
Patch61: 8337274-Remove-repeated-the-in-StyleSheet.create-Sma.patch
|
||||
Patch62: 8335610-DiagnosticFramework-CmdLine-is_executable-co.patch
|
||||
Patch63: Backport-of-8333088-ubsan-shenandoahAdaptiveHeuristi.patch
|
||||
Patch64: Backport-of-8339351-Remove-duplicate-line-in-FileMap.patch
|
||||
Patch65: Backport-of-8330191-Fix-typo-in-precompiled.hpp.patch
|
||||
Patch66: Backport-of-8337712-Wrong-javadoc-in-java.util.Date-.patch
|
||||
|
||||
#17.0.13
|
||||
Patch67: Huawei-Fix-JBooster-file-issue-caused-by-os-write-change.patch
|
||||
Patch68: downgrade-fcntl64-to-fcntl-on-linux.patch
|
||||
############################################
|
||||
#
|
||||
# LoongArch64 specific patches
|
||||
@ -1283,6 +1296,7 @@ pushd %{top_level_dir_name}
|
||||
%patch41 -p1
|
||||
%patch42 -p1
|
||||
%patch43 -p1
|
||||
%ifnarch riscv64
|
||||
%patch44 -p1
|
||||
%patch45 -p1
|
||||
%patch46 -p1
|
||||
@ -1296,7 +1310,19 @@ pushd %{top_level_dir_name}
|
||||
%patch54 -p1
|
||||
%patch55 -p1
|
||||
%patch56 -p1
|
||||
|
||||
%endif
|
||||
%patch57 -p1
|
||||
%patch58 -p1
|
||||
%patch59 -p1
|
||||
%patch60 -p1
|
||||
%patch61 -p1
|
||||
%patch62 -p1
|
||||
%patch63 -p1
|
||||
%patch64 -p1
|
||||
%patch65 -p1
|
||||
%patch66 -p1
|
||||
%patch67 -p1
|
||||
%patch68 -p1
|
||||
popd # openjdk
|
||||
%endif
|
||||
|
||||
@ -1858,6 +1884,38 @@ cjc.mainProgram(args) -- the returns from copy_jdk_configs.lua should not affect
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Nov 6 2024 Pan Xuefeng <panxuefeng@loongson.cn> - 1:17.0.13.11-2
|
||||
- upgrade LoongArch64 port to 17.0.13
|
||||
|
||||
* Thu Oct 31 2024 neu-mobi <liuyulong35@huawei.com> - 1:17.0.13.11-1
|
||||
- add downgrade-fcntl64-to-fcntl-on-linux.patch
|
||||
|
||||
* Wed Oct 16 2024 Benshuai5D <zhangyunbo7@huawei.com> - 1:17.0.13.11-0
|
||||
- modify 8264805-Backport-Ahead-of-Time-Compiler.patch
|
||||
- modify 8264806-Backport-Graal-Compiler.patch
|
||||
- modify Add-JBooster-Lazy-AOT-module.patch
|
||||
- modify Apply-TBI-to-ZGC-of-JDK17.patch
|
||||
- modify Backport-Important-Fixed-Issues.patch
|
||||
- modify KAE-zip-Features.patch
|
||||
- modify add-version-txt.patch
|
||||
- add Huawei-Fix-JBooster-file-issue-caused-by-os-write-change.patch
|
||||
- update to 17.0.13+11(ga)
|
||||
|
||||
* Mon Oct 14 2024 Autistic_boyya <wangzhongyi7@huawei.com> - 1:17.0.12.7-5
|
||||
- Add Backport-of-JDK-8305680.patch
|
||||
- Add Backport-of-JDK-8305937.patch
|
||||
- Add 8338785-The-java.awt.datatransfer.SystemFlavorMap-FL.patch
|
||||
- Add 8337982-Remove-dead-undef-assrt0n.patch
|
||||
- Add 8337274-Remove-repeated-the-in-StyleSheet.create-Sma.patch
|
||||
- Add 8335610-DiagnosticFramework-CmdLine-is_executable-co.patch
|
||||
- Add Backport-of-8333088-ubsan-shenandoahAdaptiveHeuristi.patch
|
||||
- Add Backport-of-8339351-Remove-duplicate-line-in-FileMap.patch
|
||||
- Add Backport-of-8330191-Fix-typo-in-precompiled.hpp.patch
|
||||
- Add Backport-of-8337712-Wrong-javadoc-in-java.util.Date-.patch
|
||||
|
||||
* Mon Sep 23 2024 Dingli Zhang <dingli@iscas.ac.cn> - 1:17.0.12.7-4
|
||||
- Remove the KAE patch for riscv64 to fix build errors
|
||||
|
||||
* Fri Aug 30 2024 neu-mob <liuyulong35@huawei.com> - 1:17.0.12.7-3
|
||||
- Add some features: JBooster/KAE zip
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user