Skip to content
This repository was archived by the owner on May 29, 2024. It is now read-only.

Commit 652e086

Browse files
[GR-44106] Merge in tag jdk-17.0.7+4.
PullRequest: labsjdk-ce-17/101
2 parents 7f4545c + 1953a92 commit 652e086

File tree

68 files changed

+1883
-467
lines changed

Some content is hidden

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

68 files changed

+1883
-467
lines changed

doc/building.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ <h4 id="advanced-make-control-variables">Advanced Make Control Variables</h4>
513513
</ul>
514514
<h2 id="running-tests">Running Tests</h2>
515515
<p>Most of the JDK tests are using the <a href="http://openjdk.java.net/jtreg">JTReg</a> test framework. Make sure that your configuration knows where to find your installation of JTReg. If this is not picked up automatically, use the <code>--with-jtreg=&lt;path to jtreg home&gt;</code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc.</p>
516-
<p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
516+
<p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://ci.adoptium.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
517517
<p>Building of Hotspot Gtest suite requires the source code of Google Test framework. The top directory, which contains both <code>googletest</code> and <code>googlemock</code> directories, should be specified via <code>--with-gtest</code>. The supported version of Google Test is 1.8.1, whose source code can be obtained:</p>
518518
<ul>
519519
<li>by downloading and unpacking the source bundle from <a href="https://github.com/google/googletest/releases/tag/release-1.8.1">here</a></li>

doc/building.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -848,7 +848,7 @@ containing `lib/jtreg.jar` etc.
848848
849849
The [Adoption Group](https://wiki.openjdk.java.net/display/Adoption) provides
850850
recent builds of jtreg [here](
851-
https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/).
851+
https://ci.adoptium.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/).
852852
Download the latest `.tar.gz` file, unpack it, and point `--with-jtreg` to the
853853
`jtreg` directory that you just unpacked.
854854

make/conf/github-actions.conf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ GTEST_VERSION=1.8.1
2929
JTREG_VERSION=6.1+3
3030

3131
LINUX_X64_BOOT_JDK_EXT=tar.gz
32-
LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.2%2B8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.2_8.tar.gz
33-
LINUX_X64_BOOT_JDK_SHA256=288f34e3ba8a4838605636485d0365ce23e57d5f2f68997ac4c2e4c01967cd48
32+
LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_linux_hotspot_17.0.6_10.tar.gz
33+
LINUX_X64_BOOT_JDK_SHA256=a0b1b9dd809d51a438f5fa08918f9aca7b2135721097f0858cf29f77a35d4289
3434

3535
WINDOWS_X64_BOOT_JDK_EXT=zip
36-
WINDOWS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.2%2B8/OpenJDK17U-jdk_x64_windows_hotspot_17.0.2_8.zip
37-
WINDOWS_X64_BOOT_JDK_SHA256=d083479ca927dce2f586f779373d895e8bf668c632505740279390384edf03fa
36+
WINDOWS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_windows_hotspot_17.0.6_10.zip
37+
WINDOWS_X64_BOOT_JDK_SHA256=d544c4f00d414a1484c0a5c1758544f30f308c4df33f9a28bd4a404215d0d444
3838

3939
MACOS_X64_BOOT_JDK_EXT=tar.gz
40-
MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.2%2B8/OpenJDK17U-jdk_x64_mac_hotspot_17.0.2_8.tar.gz
41-
MACOS_X64_BOOT_JDK_SHA256=3630e21a571b7180876bf08f85d0aac0bdbb3267b2ae9bd242f4933b21f9be32
40+
MACOS_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jdk_x64_mac_hotspot_17.0.6_10.tar.gz
41+
MACOS_X64_BOOT_JDK_SHA256=faa2927584cf2bd0a35d2ac727b9f22725e23b2b24abfb3b2ac7140f4d65fbb4

make/data/cacerts/certignaca

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
Owner: CN=Certigna, O=Dhimyotis, C=FR
2+
Issuer: CN=Certigna, O=Dhimyotis, C=FR
3+
Serial number: fedce3010fc948ff
4+
Valid from: Fri Jun 29 15:13:05 GMT 2007 until: Tue Jun 29 15:13:05 GMT 2027
5+
Signature algorithm name: SHA1withRSA
6+
Subject Public Key Algorithm: 2048-bit RSA key
7+
Version: 3
8+
-----BEGIN CERTIFICATE-----
9+
MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
10+
BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
11+
DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
12+
BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
13+
DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
14+
QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
15+
gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
16+
zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
17+
130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
18+
JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
19+
DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
20+
ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
21+
AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
22+
AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
23+
9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
24+
bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
25+
fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
26+
HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
27+
t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
28+
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
29+
-----END CERTIFICATE-----

src/hotspot/cpu/aarch64/vm_version_aarch64.cpp

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
33
* Copyright (c) 2015, 2020, Red Hat Inc. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
@@ -131,7 +131,7 @@ void VM_Version::initialize() {
131131
// Enable vendor specific features
132132

133133
// Ampere eMAG
134-
if (_cpu == CPU_AMCC && (_model == 0) && (_variant == 0x3)) {
134+
if (_cpu == CPU_AMCC && (_model == CPU_MODEL_EMAG) && (_variant == 0x3)) {
135135
if (FLAG_IS_DEFAULT(AvoidUnalignedAccesses)) {
136136
FLAG_SET_DEFAULT(AvoidUnalignedAccesses, true);
137137
}
@@ -143,6 +143,13 @@ void VM_Version::initialize() {
143143
}
144144
}
145145

146+
// Ampere CPUs: Ampere-1 and Ampere-1A
147+
if (_cpu == CPU_AMPERE && ((_model == CPU_MODEL_AMPERE_1) || (_model == CPU_MODEL_AMPERE_1A))) {
148+
if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
149+
FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
150+
}
151+
}
152+
146153
// ThunderX
147154
if (_cpu == CPU_CAVIUM && (_model == 0xA1)) {
148155
guarantee(_variant != 0, "Pre-release hardware no longer supported.");
@@ -481,5 +488,41 @@ void VM_Version::initialize() {
481488

482489
_spin_wait = get_spin_wait_desc();
483490

491+
check_virtualizations();
492+
484493
UNSUPPORTED_OPTION(CriticalJNINatives);
485494
}
495+
496+
void VM_Version::check_virtualizations() {
497+
#if defined(LINUX)
498+
const char* info_file = "/sys/devices/virtual/dmi/id/product_name";
499+
// check for various strings in the dmi data indicating virtualizations
500+
char line[500];
501+
FILE* fp = os::fopen(info_file, "r");
502+
if (fp == nullptr) {
503+
return;
504+
}
505+
while (fgets(line, sizeof(line), fp) != nullptr) {
506+
if (strcasestr(line, "KVM") != 0) {
507+
Abstract_VM_Version::_detected_virtualization = KVM;
508+
break;
509+
}
510+
if (strcasestr(line, "VMware") != 0) {
511+
Abstract_VM_Version::_detected_virtualization = VMWare;
512+
break;
513+
}
514+
}
515+
fclose(fp);
516+
#endif
517+
}
518+
519+
void VM_Version::print_platform_virtualization_info(outputStream* st) {
520+
#if defined(LINUX)
521+
VirtualizationType vrt = VM_Version::get_detected_virtualization();
522+
if (vrt == KVM) {
523+
st->print_cr("KVM virtualization detected");
524+
} else if (vrt == VMWare) {
525+
st->print_cr("VMWare virtualization detected");
526+
}
527+
#endif
528+
}

src/hotspot/cpu/aarch64/vm_version_aarch64.hpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
33
* Copyright (c) 2014, 2020, Red Hat Inc. All rights reserved.
44
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
55
*
@@ -60,6 +60,9 @@ class VM_Version : public Abstract_VM_Version {
6060
public:
6161
// Initialization
6262
static void initialize();
63+
static void check_virtualizations();
64+
65+
static void print_platform_virtualization_info(outputStream*);
6366

6467
// Asserts
6568
static void assert_is_initialized() {
@@ -99,6 +102,14 @@ class VM_Version : public Abstract_VM_Version {
99102
CPU_APPLE = 'a',
100103
};
101104

105+
enum Ampere_CPU_Model {
106+
CPU_MODEL_EMAG = 0x0, /* CPU implementer is CPU_AMCC */
107+
CPU_MODEL_ALTRA = 0xd0c, /* CPU implementer is CPU_ARM, Neoverse N1 */
108+
CPU_MODEL_ALTRAMAX = 0xd0c, /* CPU implementer is CPU_ARM, Neoverse N1 */
109+
CPU_MODEL_AMPERE_1 = 0xac3, /* CPU implementer is CPU_AMPERE */
110+
CPU_MODEL_AMPERE_1A = 0xac4 /* CPU implementer is CPU_AMPERE */
111+
};
112+
102113
enum Feature_Flag {
103114
#define CPU_FEATURE_FLAGS(decl) \
104115
decl(FP, "fp", 0) \

src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,16 @@ class WriteContent : public StackObj {
185185
return (u4) _content.elements();
186186
}
187187

188-
u4 size() const {
189-
return (u4)(end_offset() - start_offset());
188+
u8 size() const {
189+
return (u8)(end_offset() - start_offset());
190190
}
191191

192192
void write_elements(int64_t offset) {
193193
_cw.write_padded_at_offset<u4>(elements(), offset);
194194
}
195195

196196
void write_size() {
197-
_cw.write_padded_at_offset<u4>(size(), start_offset());
197+
_cw.write_padded_at_offset<u8>(size(), start_offset());
198198
}
199199

200200
void set_last_checkpoint() {
@@ -209,7 +209,7 @@ class WriteContent : public StackObj {
209209
static int64_t write_checkpoint_event_prologue(JfrChunkWriter& cw, u8 type_id) {
210210
const int64_t last_cp_offset = cw.last_checkpoint_offset();
211211
const int64_t delta_to_last_checkpoint = 0 == last_cp_offset ? 0 : last_cp_offset - cw.current_offset();
212-
cw.reserve(sizeof(u4));
212+
cw.reserve(sizeof(u8));
213213
cw.write<u8>(EVENT_CHECKPOINT);
214214
cw.write(JfrTicks::now());
215215
cw.write<u8>(0); // duration

src/hotspot/share/memory/arena.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,10 +419,10 @@ void *Arena::Arealloc(void* old_ptr, size_t old_size, size_t new_size, AllocFail
419419

420420
// Determine if pointer belongs to this Arena or not.
421421
bool Arena::contains( const void *ptr ) const {
422+
if (_chunk == NULL) return false;
422423
#ifdef ASSERT
423424
if (UseMallocOnly) {
424425
// really slow, but not easy to make fast
425-
if (_chunk == NULL) return false;
426426
char** bottom = (char**)_chunk->bottom();
427427
for (char** p = (char**)_hwm - 1; p >= bottom; p--) {
428428
if (*p == ptr) return true;

src/hotspot/share/opto/bytecodeInfo.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ InlineTree::InlineTree(Compile* c,
4343
JVMState* caller_jvms, int caller_bci,
4444
int max_inline_level) :
4545
C(c),
46-
_caller_jvms(caller_jvms),
46+
_caller_jvms(NULL),
4747
_method(callee),
4848
_caller_tree((InlineTree*) caller_tree),
4949
_count_inline_bcs(method()->code_size_for_inlining()),
@@ -55,13 +55,13 @@ InlineTree::InlineTree(Compile* c,
5555
_count_inlines = 0;
5656
_forced_inline = false;
5757
#endif
58-
if (_caller_jvms != NULL) {
58+
if (caller_jvms != NULL) {
5959
// Keep a private copy of the caller_jvms:
6060
_caller_jvms = new (C) JVMState(caller_jvms->method(), caller_tree->caller_jvms());
6161
_caller_jvms->set_bci(caller_jvms->bci());
6262
assert(!caller_jvms->should_reexecute(), "there should be no reexecute bytecode with inlining");
63+
assert(_caller_jvms->same_calls_as(caller_jvms), "consistent JVMS");
6364
}
64-
assert(_caller_jvms->same_calls_as(caller_jvms), "consistent JVMS");
6565
assert((caller_tree == NULL ? 0 : caller_tree->stack_depth() + 1) == stack_depth(), "correct (redundant) depth parameter");
6666
assert(caller_bci == this->caller_bci(), "correct (redundant) bci parameter");
6767
// Update hierarchical counts, count_inline_bcs() and count_inlines()

src/hotspot/share/opto/chaitin.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -730,8 +730,8 @@ class PhaseChaitin : public PhaseRegAlloc {
730730
int yank_if_dead_recurse(Node *old, Node *orig_old, Block *current_block,
731731
Node_List *value, Node_List *regnd);
732732
int yank( Node *old, Block *current_block, Node_List *value, Node_List *regnd );
733-
int elide_copy( Node *n, int k, Block *current_block, Node_List &value, Node_List &regnd, bool can_change_regs );
734-
int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List &value, Node_List &regnd );
733+
int elide_copy( Node *n, int k, Block *current_block, Node_List *value, Node_List *regnd, bool can_change_regs );
734+
int use_prior_register( Node *copy, uint idx, Node *def, Block *current_block, Node_List *value, Node_List *regnd );
735735
bool may_be_copy_of_callee( Node *def ) const;
736736

737737
// If nreg already contains the same constant as val then eliminate it

0 commit comments

Comments
 (0)