Skip to content

Commit 1998fc9

Browse files
committed
jdk-17.0.16-ga
1 parent 649eecd commit 1998fc9

File tree

47 files changed

+10135
-10773
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+10135
-10773
lines changed

jdk-17.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ CONFIGURE_OPTIONS+=" CXX=$GXX"
2020

2121
git clone ${JDK_GITHUB_REPO}/$SRC_DIR "$BUILD_DIR"/$SRC_DIR
2222
cd "$BUILD_DIR"/$SRC_DIR
23-
git checkout jdk-17.0.11-ga
23+
git checkout jdk-17.0.16-ga
2424

2525
apply_patch_series
2626

patches-17/0001-8264868-Reduce-inclusion-of-registerMap.hpp-and-regi.patch

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -597,13 +597,6 @@ diff --git a/src/hotspot/share/runtime/vframeArray.hpp b/src/hotspot/share/runti
597597
index 25ed7fd5ed8..fa2ab054186 100644
598598
--- a/src/hotspot/share/runtime/vframeArray.hpp
599599
+++ b/src/hotspot/share/runtime/vframeArray.hpp
600-
@@ -1,5 +1,5 @@
601-
/*
602-
- * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
603-
+ * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
604-
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
605-
*
606-
* This code is free software; you can redistribute it and/or modify it
607600
@@ -30,6 +30,7 @@
608601
#include "runtime/deoptimization.hpp"
609602
#include "runtime/frame.hpp"

patches-17/0001-8268702-JFR-diagnostic-commands-lack-argument-descri.patch

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ index f821de98a51..d5d1aca378e 100644
3232
#include "memory/resourceArea.hpp"
3333
#include "oops/objArrayOop.inline.hpp"
3434
#include "oops/oop.inline.hpp"
35-
@@ -219,7 +220,6 @@ void JfrDCmd::invoke(JfrJavaArguments& method, TRAPS) const {
35+
@@ -236,7 +237,6 @@ void JfrDCmd::invoke(JfrJavaArguments& method, TRAPS) const {
3636
JfrJavaArguments constructor_args(&constructor_result);
3737
constructor_args.set_klass(javaClass(), CHECK);
3838

3939
- ResourceMark rm(THREAD);
4040
HandleMark hm(THREAD);
4141
JNIHandleBlockManager jni_handle_management(THREAD);
4242

43-
@@ -241,12 +241,10 @@ void JfrDCmd::parse(CmdLine* line, char delim, TRAPS) {
43+
@@ -258,12 +258,10 @@ void JfrDCmd::parse(CmdLine* line, char delim, TRAPS) {
4444
}
4545

4646
void JfrDCmd::execute(DCmdSource source, TRAPS) {
@@ -54,7 +54,7 @@ index f821de98a51..d5d1aca378e 100644
5454
JavaValue result(T_OBJECT);
5555
JfrJavaArguments execute(&result, javaClass(), "execute", signature, CHECK);
5656
jstring argument = JfrJavaSupport::new_string(_args, CHECK);
57-
@@ -271,13 +269,92 @@ void JfrDCmd::print_help(const char* name) const {
57+
@@ -288,13 +286,92 @@ void JfrDCmd::print_help(const char* name) const {
5858
static const char signature[] = "()[Ljava/lang/String;";
5959
JavaThread* thread = JavaThread::current();
6060
JavaValue result(T_OBJECT);
@@ -150,7 +150,7 @@ index f821de98a51..d5d1aca378e 100644
150150
}
151151

152152
GrowableArray<const char*>* JfrDCmd::argument_name_array() const {
153-
@@ -387,7 +464,6 @@ void JfrConfigureFlightRecorderDCmd::execute(DCmdSource source, TRAPS) {
153+
@@ -404,7 +481,6 @@ void JfrConfigureFlightRecorderDCmd::execute(DCmdSource source, TRAPS) {
154154
return;
155155
}
156156

patches-17/0001-8270491-SEGV-at-read_string_field-oopDesc-char-const.patch

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ diff --git a/src/hotspot/share/jfr/dcmd/jfrDcmds.cpp b/src/hotspot/share/jfr/dcm
1414
index d5d1aca378e..875e7f8e475 100644
1515
--- a/src/hotspot/share/jfr/dcmd/jfrDcmds.cpp
1616
+++ b/src/hotspot/share/jfr/dcmd/jfrDcmds.cpp
17-
@@ -154,19 +154,19 @@ static void print_message(outputStream* output, oop content, TRAPS) {
17+
@@ -171,19 +171,19 @@ static void print_message(outputStream* output, oop content, TRAPS) {
1818
}
1919

2020
static void log(oop content, TRAPS) {
@@ -46,7 +46,7 @@ index d5d1aca378e..875e7f8e475 100644
4646
}
4747

4848
static void handle_dcmd_result(outputStream* output,
49-
@@ -215,6 +215,8 @@ static oop construct_dcmd_instance(JfrJavaArguments* args, TRAPS) {
49+
@@ -232,6 +232,8 @@ static oop construct_dcmd_instance(JfrJavaArguments* args, TRAPS) {
5050
return args->result()->get_oop();
5151
}
5252

@@ -55,7 +55,7 @@ index d5d1aca378e..875e7f8e475 100644
5555
void JfrDCmd::invoke(JfrJavaArguments& method, TRAPS) const {
5656
JavaValue constructor_result(T_OBJECT);
5757
JfrJavaArguments constructor_args(&constructor_result);
58-
@@ -274,6 +276,20 @@ void JfrDCmd::print_help(const char* name) const {
58+
@@ -291,6 +293,20 @@ void JfrDCmd::print_help(const char* name) const {
5959
handle_dcmd_result(output(), result.get_oop(), DCmd_Source_MBean, thread);
6060
}
6161

@@ -76,7 +76,7 @@ index d5d1aca378e..875e7f8e475 100644
7676
// Since the DcmdFramework does not support dynamically allocated strings,
7777
// we keep them in a thread local arena. The arena is reset between invocations.
7878
static THREAD_LOCAL Arena* dcmd_arena = NULL;
79-
@@ -340,16 +356,29 @@ static DCmdArgumentInfo* create_info(oop argument, TRAPS) {
79+
@@ -357,16 +373,29 @@ static DCmdArgumentInfo* create_info(oop argument, TRAPS) {
8080
GrowableArray<DCmdArgumentInfo*>* JfrDCmd::argument_info_array() const {
8181
static const char signature[] = "()[Ljdk/jfr/internal/dcmd/Argument;";
8282
JavaThread* thread = JavaThread::current();

patches-17/0001-8282477-x86-aarch64-vmassert-_last_Java_pc-NULL-alre.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ diff --git a/src/hotspot/share/runtime/java.cpp b/src/hotspot/share/runtime/java
260260
index 820bb5c3505..996bb7dbca1 100644
261261
--- a/src/hotspot/share/runtime/java.cpp
262262
+++ b/src/hotspot/share/runtime/java.cpp
263-
@@ -614,7 +614,7 @@ void vm_perform_shutdown_actions() {
263+
@@ -617,7 +617,7 @@ void vm_perform_shutdown_actions() {
264264
JavaThread* jt = thread->as_Java_thread();
265265
// Must always be walkable or have no last_Java_frame when in
266266
// thread_in_native
@@ -286,7 +286,7 @@ diff --git a/src/hotspot/share/runtime/thread.cpp b/src/hotspot/share/runtime/th
286286
index 8aed9a450b6..50ecc4d4688 100644
287287
--- a/src/hotspot/share/runtime/thread.cpp
288288
+++ b/src/hotspot/share/runtime/thread.cpp
289-
@@ -1711,7 +1711,7 @@ void JavaThread::check_and_handle_async_exceptions() {
289+
@@ -1677,7 +1677,7 @@ void JavaThread::check_and_handle_async_exceptions() {
290290
void JavaThread::handle_special_runtime_exit_condition(bool check_asyncs) {
291291

292292
if (is_obj_deopt_suspend()) {
@@ -299,7 +299,7 @@ diff --git a/src/hotspot/share/runtime/thread.hpp b/src/hotspot/share/runtime/th
299299
index 9700d6be2a5..9a3fe0efe6e 100644
300300
--- a/src/hotspot/share/runtime/thread.hpp
301301
+++ b/src/hotspot/share/runtime/thread.hpp
302-
@@ -1440,7 +1440,7 @@ class JavaThread: public Thread {
302+
@@ -1429,7 +1429,7 @@ class JavaThread: public Thread {
303303
public:
304304
// Accessing frames
305305
frame last_frame() {

patches-17/0001-8283520-JFR-Memory-leak-in-dcmd_arena.patch

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ index 875e7f8e475..a21a4fa7d48 100644
2222
#include "logging/log.hpp"
2323
#include "logging/logConfiguration.hpp"
2424
#include "logging/logMessage.hpp"
25-
@@ -294,12 +295,10 @@ static void initialize_dummy_descriptors(GrowableArray<DCmdArgumentInfo*>* array
25+
@@ -311,12 +312,10 @@ static void initialize_dummy_descriptors(GrowableArray<DCmdArgumentInfo*>* array
2626
// we keep them in a thread local arena. The arena is reset between invocations.
2727
static THREAD_LOCAL Arena* dcmd_arena = NULL;
2828

@@ -39,7 +39,7 @@ index 875e7f8e475..a21a4fa7d48 100644
3939
}
4040

4141
static char* dcmd_arena_allocate(size_t size) {
42-
@@ -307,7 +306,7 @@ static char* dcmd_arena_allocate(size_t size) {
42+
@@ -324,7 +323,7 @@ static char* dcmd_arena_allocate(size_t size) {
4343
return (char*)dcmd_arena->Amalloc(size);
4444
}
4545

@@ -48,7 +48,7 @@ index 875e7f8e475..a21a4fa7d48 100644
4848
char* str = NULL;
4949
const typeArrayOop value = java_lang_String::value(string);
5050
if (value != NULL) {
51-
@@ -328,7 +327,7 @@ static const char* read_string_field(oop argument, const char* field_name, TRAPS
51+
@@ -345,7 +344,7 @@ static const char* read_string_field(oop argument, const char* field_name, TRAPS
5252
args.set_receiver(argument);
5353
JfrJavaSupport::get_field(&args, THREAD);
5454
const oop string_oop = result.get_oop();
@@ -57,7 +57,7 @@ index 875e7f8e475..a21a4fa7d48 100644
5757
}
5858

5959
static bool read_boolean_field(oop argument, const char* field_name, TRAPS) {
60-
@@ -377,7 +376,7 @@ GrowableArray<DCmdArgumentInfo*>* JfrDCmd::argument_info_array() const {
60+
@@ -394,7 +393,7 @@ GrowableArray<DCmdArgumentInfo*>* JfrDCmd::argument_info_array() const {
6161
assert(arguments->is_array(), "must be array");
6262
const int num_arguments = arguments->length();
6363
assert(num_arguments == _num_arguments, "invariant");

patches-17/0048-8256205-Simplify-compiler-calling-convention-handlin.patch

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ diff --git a/src/hotspot/cpu/ppc/ppc.ad b/src/hotspot/cpu/ppc/ppc.ad
244244
index 27dad6cff94..8bbbc3d4aa3 100644
245245
--- a/src/hotspot/cpu/ppc/ppc.ad
246246
+++ b/src/hotspot/cpu/ppc/ppc.ad
247-
@@ -3764,8 +3764,6 @@ frame %{
247+
@@ -3775,8 +3775,6 @@ frame %{
248248

249249
stack_alignment(frame::alignment_in_bytes);
250250

@@ -253,7 +253,7 @@ index 27dad6cff94..8bbbc3d4aa3 100644
253253
// Number of outgoing stack slots killed above the
254254
// out_preserve_stack_slots for calls to C. Supports the var-args
255255
// backing area for register parms.
256-
@@ -3790,40 +3788,6 @@ frame %{
256+
@@ -3801,40 +3799,6 @@ frame %{
257257
// 4 what apparently works and saves us some spills.
258258
return_addr(STACK 4);
259259

@@ -323,7 +323,7 @@ diff --git a/src/hotspot/cpu/s390/s390.ad b/src/hotspot/cpu/s390/s390.ad
323323
index 98194c73047..9a574ac0854 100644
324324
--- a/src/hotspot/cpu/s390/s390.ad
325325
+++ b/src/hotspot/cpu/s390/s390.ad
326-
@@ -2366,8 +2366,6 @@ frame %{
326+
@@ -2368,8 +2368,6 @@ frame %{
327327
// Use alignment_in_bytes instead of log_2_of_alignment_in_bits.
328328
stack_alignment(frame::alignment_in_bytes);
329329

@@ -332,7 +332,7 @@ index 98194c73047..9a574ac0854 100644
332332
// A `slot' is assumed 4 bytes here!
333333
// out_preserve_stack_slots(frame::jit_out_preserve_size_in_4_byte_units);
334334

335-
@@ -2382,38 +2380,6 @@ frame %{
335+
@@ -2384,38 +2382,6 @@ frame %{
336336
// stack slot.
337337
return_addr(REG Z_R14);
338338

@@ -589,7 +589,7 @@ diff --git a/src/hotspot/share/adlc/adlparse.cpp b/src/hotspot/share/adlc/adlpar
589589
index 7d62f861686..ecb722c56b2 100644
590590
--- a/src/hotspot/share/adlc/adlparse.cpp
591591
+++ b/src/hotspot/share/adlc/adlparse.cpp
592-
@@ -1019,7 +1019,8 @@ void ADLParser::frame_parse(void) {
592+
@@ -1020,7 +1020,8 @@ void ADLParser::frame_parse(void) {
593593
return_addr_parse(frame, false);
594594
}
595595
if (strcmp(token,"in_preserve_stack_slots")==0) {
@@ -599,7 +599,7 @@ index 7d62f861686..ecb722c56b2 100644
599599
}
600600
if (strcmp(token,"out_preserve_stack_slots")==0) {
601601
parse_err(WARN, "Using obsolete token, out_preserve_stack_slots");
602-
@@ -1029,7 +1030,8 @@ void ADLParser::frame_parse(void) {
602+
@@ -1030,7 +1031,8 @@ void ADLParser::frame_parse(void) {
603603
frame->_varargs_C_out_slots_killed = parse_one_arg("varargs C out slots killed");
604604
}
605605
if (strcmp(token,"calling_convention")==0) {
@@ -609,7 +609,7 @@ index 7d62f861686..ecb722c56b2 100644
609609
}
610610
if (strcmp(token,"return_value")==0) {
611611
frame->_return_value = return_value_parse();
612-
@@ -1041,7 +1043,8 @@ void ADLParser::frame_parse(void) {
612+
@@ -1042,7 +1044,8 @@ void ADLParser::frame_parse(void) {
613613
return_addr_parse(frame, true);
614614
}
615615
if (strcmp(token,"c_calling_convention")==0) {
@@ -619,7 +619,7 @@ index 7d62f861686..ecb722c56b2 100644
619619
}
620620
if (strcmp(token,"c_return_value")==0) {
621621
frame->_c_return_value = return_value_parse();
622-
@@ -1072,18 +1075,10 @@ void ADLParser::frame_parse(void) {
622+
@@ -1073,18 +1076,10 @@ void ADLParser::frame_parse(void) {
623623
parse_err(SYNERR, "missing return address location in frame section.\n");
624624
return;
625625
}
@@ -638,7 +638,7 @@ index 7d62f861686..ecb722c56b2 100644
638638
if(frame->_return_value == NULL) {
639639
parse_err(SYNERR, "missing return value definition in frame section.\n");
640640
return;
641-
@@ -1096,9 +1091,6 @@ void ADLParser::frame_parse(void) {
641+
@@ -1097,9 +1092,6 @@ void ADLParser::frame_parse(void) {
642642
frame->_c_return_addr = frame->_return_addr;
643643
frame->_c_return_addr_loc = frame->_return_addr_loc;
644644
}
@@ -648,7 +648,7 @@ index 7d62f861686..ecb722c56b2 100644
648648
if(frame->_c_return_value == NULL) {
649649
frame->_c_return_value = frame->_return_value;
650650
}
651-
@@ -1221,37 +1213,9 @@ void ADLParser::return_addr_parse(FrameForm *frame, bool native) {
651+
@@ -1222,37 +1214,9 @@ void ADLParser::return_addr_parse(FrameForm *frame, bool native) {
652652
}
653653
}
654654

@@ -734,7 +734,7 @@ diff --git a/src/hotspot/share/adlc/output_c.cpp b/src/hotspot/share/adlc/output
734734
index c6083533b58..a044ceab00b 100644
735735
--- a/src/hotspot/share/adlc/output_c.cpp
736736
+++ b/src/hotspot/share/adlc/output_c.cpp
737-
@@ -4160,29 +4160,15 @@ void ArchDesc::buildFrameMethods(FILE *fp_cpp) {
737+
@@ -4175,29 +4175,15 @@ void ArchDesc::buildFrameMethods(FILE *fp_cpp) {
738738
fprintf(fp_cpp," return OptoReg::stack2reg(%s); }\n\n",
739739
_frame->_return_addr);
740740
}

patches-17/README-zero.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
"Zero is a port of OpenJDK that uses no assembler and therefore can
2+
trivially be built on any system."
3+
4+
https://openjdk.org/projects/zero/
5+
6+
The idea here is to potentially have an illumos port of zero. It's not
7+
so interesting on x86, for which we have a proper port anyway, but if
8+
we can get zero to work on x86 then it should be possible to get it to
9+
work on sparc too.
10+
11+
It still needs the basic solaris patchset. It's designed more to support
12+
new hardware architectures (hence the zero assembler) than as a way to
13+
do an OS port.
14+
15+
There are 2 patches:
16+
17+
illumos-zero-1.patch
18+
Fixes src/hotspot/cpu/zero/stubGenerator_zero.cpp
19+
20+
illumos-zero-2.patch
21+
Adds the src/hotspot/os_cpu/solaris_zero directory and contents
22+
23+
These are current and tested for jdk17u 17.0.9. They don't provide a
24+
proper zero port, as they still have assembler that needs to be
25+
removed.
26+
27+
The two patches above are now applied by default, so we at least catch
28+
any source incompatibilities early.
29+
30+
Configure:
31+
32+
env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin bash ./configure \
33+
--enable-unlimited-crypto --with-boot-jdk=/usr/jdk/instances/jdk16 \
34+
--with-native-debug-symbols=none \
35+
--with-toolchain-type=gcc \
36+
--disable-dtrace \
37+
--disable-warnings-as-errors \
38+
--enable-deprecated-ports=yes \
39+
--enable-jvm-feature-zero --with-jvm-variants=zero \
40+
--with-jobs=3
41+
42+
build:
43+
44+
env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin gmake all CONF=solaris-x86_64-zero-release

patches-17/README-zgc.txt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
The marketing blurb:
2+
3+
The Z Garbage Collector (ZGC) is a scalable low latency garbage
4+
collector. ZGC performs all expensive work concurrently, without
5+
stopping the execution of application threads for more than a
6+
millisecond. It is suitable for applications which require low
7+
latency. Pause times are independent of the heap size that is being
8+
used. ZGC works well with heap sizes from a few hundred megabytes to
9+
16TB.
10+
11+
It's not available on Solaris/illumos by default, but there's an
12+
experimental patch here that will enable it. To do that, go to the
13+
root of the source tree after unpacking and applying all the other
14+
patches, and apply with
15+
16+
gpatch -p1 < .../illumos-zgc.patch
17+
18+
This patch does 2 things:
19+
20+
1. Patches make/autoconf/jvm-features.m4 to add solaris (just x86) to
21+
the platforms that zgc will be built on.
22+
23+
2. Adds a basic implementation of support for zgc under the
24+
src/hotspot/os/solaris/gc directory.
25+
26+
The support files are a mishmash of the bsd and linux
27+
implementations. Mostly the simple bsd skeleton, with mmap() instead
28+
of the bsd mremap(), using MAP_ANONYMOUS to simply get an anonymous
29+
mapping.
30+
31+
It can be enabled via the flag
32+
33+
java -XX:+UseZGC ...
34+
35+
Initial testing indicates that it does work, although some crashes
36+
have been seen.

0 commit comments

Comments
 (0)