Skip to content

Commit 50cd10e

Browse files
Merge branch 'master' into JDK-8333664
2 parents 0ebdde9 + b92a443 commit 50cd10e

File tree

429 files changed

+7034
-3018
lines changed

Some content is hidden

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

429 files changed

+7034
-3018
lines changed

doc/hotspot-style.html

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -207,27 +207,34 @@ <h3 id="source-files">Source Files</h3>
207207
<ul>
208208
<li><p>All source files must have a globally unique basename. The build
209209
system depends on this uniqueness.</p></li>
210-
<li><p>Keep the include lines within a section alphabetically sorted.</p></li>
211-
<li><p>Put conditional inclusions (`#if ...`) at the end of the section of HotSpot
212-
include lines. This also applies to macro-expanded includes of platform
213-
dependent files.</p></li>
214-
<li><p>Put system includes in a section after the HotSpot include lines with a blank
215-
line separating the two sections.</p></li>
210+
<li><p>Keep the include lines within a section alphabetically sorted by
211+
their lowercase value. If an include must be out of order for
212+
correctness, suffix with it a comment such as
213+
<code>// do not reorder</code>. Source code processing tools can also
214+
use this hint.</p></li>
215+
<li><p>Put conditional inclusions (<code>#if ...</code>) at the end of
216+
the section of HotSpot include lines. This also applies to
217+
macro-expanded includes of platform dependent files.</p></li>
218+
<li><p>Put system includes in a section after the HotSpot include lines
219+
with a blank line separating the two sections.</p></li>
216220
<li><p>Do not put non-trivial function implementations in .hpp files. If
217-
the implementation depends on other .hpp files, put it in a .cpp or
218-
a .inline.hpp file.</p></li>
221+
the implementation depends on other .hpp files, put it in a .cpp or a
222+
.inline.hpp file.</p></li>
219223
<li><p>.inline.hpp files should only be included in .cpp or .inline.hpp
220224
files.</p></li>
221-
<li><p>All .inline.hpp files should include their corresponding .hpp file as
222-
the first include line with a blank line separating it from the rest of the
223-
include lines. Declarations needed by other files should be put in the .hpp
224-
file, and not in the .inline.hpp file. This rule exists to resolve problems
225-
with circular dependencies between .inline.hpp files.</p></li>
226-
<li><p>Do not include a .hpp file if the corresponding .inline.hpp file is included.</p></li>
227-
<li><p>Use include guards for .hpp and .inline.hpp files. The name of the defined
228-
guard should be derived from the full search path of the file relative to the
229-
hotspot source directory. The guard should be all upper case with all paths
230-
separators and periods replaced by underscores.</p></li>
225+
<li><p>All .inline.hpp files should include their corresponding .hpp
226+
file as the first include line with a blank line separating it from the
227+
rest of the include lines. Declarations needed by other files should be
228+
put in the .hpp file, and not in the .inline.hpp file. This rule exists
229+
to resolve problems with circular dependencies between .inline.hpp
230+
files.</p></li>
231+
<li><p>Do not include a .hpp file if the corresponding .inline.hpp file
232+
is included.</p></li>
233+
<li><p>Use include guards for .hpp and .inline.hpp files. The name of
234+
the defined guard should be derived from the full search path of the
235+
file relative to the hotspot source directory. The guard should be all
236+
upper case with all paths separators and periods replaced by
237+
underscores.</p></li>
231238
<li><p>Some build configurations use precompiled headers to speed up the
232239
build times. The precompiled headers are included in the precompiled.hpp
233240
file. Note that precompiled.hpp is just a build time optimization, so

doc/hotspot-style.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,10 @@ change should be done with a "setter" accessor matched to the simple
138138
* All source files must have a globally unique basename. The build
139139
system depends on this uniqueness.
140140

141-
* Keep the include lines within a section alphabetically sorted.
141+
* Keep the include lines within a section alphabetically sorted by their
142+
lowercase value. If an include must be out of order for correctness,
143+
suffix with it a comment such as `// do not reorder`. Source code
144+
processing tools can also use this hint.
142145

143146
* Put conditional inclusions (`#if ...`) at the end of the section of HotSpot
144147
include lines. This also applies to macro-expanded includes of platform

make/autoconf/flags-cflags.m4

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -924,8 +924,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
924924
# Check whether the compiler supports the Arm C Language Extensions (ACLE)
925925
# for SVE. Set SVE_CFLAGS to -march=armv8-a+sve if it does.
926926
# ACLE and this flag are required to build the aarch64 SVE related functions in
927-
# libvectormath.
928-
if test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
927+
# libvectormath. Apple Silicon does not support SVE; use macOS as a proxy for
928+
# that check.
929+
if test "x$OPENJDK_TARGET_CPU" = "xaarch64" && test "x$OPENJDK_TARGET_CPU" = "xlinux"; then
929930
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
930931
AC_LANG_PUSH(C)
931932
OLD_CFLAGS="$CFLAGS"

make/conf/github-actions.conf

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,21 @@ GTEST_VERSION=1.14.0
2929
JTREG_VERSION=7.5.1+1
3030

3131
LINUX_X64_BOOT_JDK_EXT=tar.gz
32-
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_linux-x64_bin.tar.gz
33-
LINUX_X64_BOOT_JDK_SHA256=08fea92724127c6fa0f2e5ea0b07ff4951ccb1e2f22db3c21eebbd7347152a67
32+
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz
33+
LINUX_X64_BOOT_JDK_SHA256=88b090fa80c6c1d084ec9a755233967458788e2c0777ae2e172230c5c692d7ef
3434

3535
ALPINE_LINUX_X64_BOOT_JDK_EXT=tar.gz
36-
ALPINE_LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin23-binaries/releases/download/jdk-23%2B37/OpenJDK23U-jdk_x64_alpine-linux_hotspot_23_37.tar.gz
37-
ALPINE_LINUX_X64_BOOT_JDK_SHA256=bff4c78f30d8d173e622bf2f40c36113df47337fc6d1ee5105ed2459841165aa
36+
ALPINE_LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin24-binaries/releases/download/jdk-24%2B36/OpenJDK24U-jdk_aarch64_alpine-linux_hotspot_24_36.tar.gz
37+
ALPINE_LINUX_X64_BOOT_JDK_SHA256=4a673456aa6e726b86108a095a21868b7ebcdde050a92b3073d50105ff92f07f
3838

3939
MACOS_AARCH64_BOOT_JDK_EXT=tar.gz
40-
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_macos-aarch64_bin.tar.gz
41-
MACOS_AARCH64_BOOT_JDK_SHA256=9527bf080a74ae6dca51df413aa826f0c011c6048885e4c8ad112172be8815f3
40+
MACOS_AARCH64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz
41+
MACOS_AARCH64_BOOT_JDK_SHA256=f7133238a12714a62c5ad2bd4da6741130be1a82512065da9ca23dee26b2d3d3
4242

4343
MACOS_X64_BOOT_JDK_EXT=tar.gz
44-
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_macos-x64_bin.tar.gz
45-
MACOS_X64_BOOT_JDK_SHA256=5c3a909fd2079d0e376dd43c85c4f7d02d08914866f196480bd47784b2a0121e
44+
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz
45+
MACOS_X64_BOOT_JDK_SHA256=6bbfb1d01741cbe55ab90299cb91464b695de9a3ace85c15131aa2f50292f321
4646

4747
WINDOWS_X64_BOOT_JDK_EXT=zip
48-
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_windows-x64_bin.zip
49-
WINDOWS_X64_BOOT_JDK_SHA256=cba5013874ba50cae543c86fe6423453816c77281e2751a8a9a633d966f1dc04
48+
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip
49+
WINDOWS_X64_BOOT_JDK_SHA256=11d1d9f6ac272d5361c8a0bef01894364081c7fb1a6914c2ad2fc312ae83d63b

make/conf/jib-profiles.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -391,8 +391,8 @@ var getJibProfilesCommon = function (input, data) {
391391
};
392392
};
393393

394-
common.boot_jdk_version = "23";
395-
common.boot_jdk_build_number = "37";
394+
common.boot_jdk_version = "24";
395+
common.boot_jdk_build_number = "36";
396396
common.boot_jdk_home = input.get("boot_jdk", "install_path") + "/jdk-"
397397
+ common.boot_jdk_version
398398
+ (input.build_os == "macosx" ? ".jdk/Contents/Home" : "");

make/conf/version-numbers.conf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -37,6 +37,6 @@ DEFAULT_VERSION_DATE=2025-09-16
3737
DEFAULT_VERSION_CLASSFILE_MAJOR=69 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
3838
DEFAULT_VERSION_CLASSFILE_MINOR=0
3939
DEFAULT_VERSION_DOCS_API_SINCE=11
40-
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="23 24 25"
40+
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="24 25"
4141
DEFAULT_JDK_SOURCE_TARGET_VERSION=25
4242
DEFAULT_PROMOTED_VERSION_PRE=ea

make/modules/jdk.incubator.vector/Lib.gmk

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -27,51 +27,46 @@
2727

2828
include LibCommon.gmk
2929

30-
################################################################################
31-
## Build libjsvml
32-
################################################################################
30+
ifeq ($(INCLUDE_COMPILER2), true)
3331

34-
ifeq ($(call isTargetOs, linux windows)+$(call isTargetCpu, x86_64)+$(INCLUDE_COMPILER2), true+true+true)
35-
$(eval $(call SetupJdkLibrary, BUILD_LIBJSVML, \
36-
NAME := jsvml, \
37-
LDFLAGS_windows := -defaultlib:msvcrt, \
38-
))
32+
##############################################################################
33+
## Build libjsvml
34+
##############################################################################
3935

40-
TARGETS += $(BUILD_LIBJSVML)
41-
endif
36+
ifeq ($(call isTargetOs, linux windows)+$(call isTargetCpu, x86_64), true+true)
37+
$(eval $(call SetupJdkLibrary, BUILD_LIBJSVML, \
38+
NAME := jsvml, \
39+
LDFLAGS_windows := -defaultlib:msvcrt, \
40+
))
4241

43-
################################################################################
44-
## Build libsleef
45-
################################################################################
42+
TARGETS += $(BUILD_LIBJSVML)
43+
endif
4644

47-
ifeq ($(call isTargetOs, linux)+$(call isTargetCpu, riscv64)+$(INCLUDE_COMPILER2), true+true+true)
48-
$(eval $(call SetupJdkLibrary, BUILD_LIBSLEEF, \
49-
NAME := sleef, \
50-
OPTIMIZATION := HIGH, \
51-
SRC := libsleef/lib, \
52-
EXTRA_SRC := libsleef/generated, \
53-
DISABLED_WARNINGS_gcc := unused-function sign-compare tautological-compare ignored-qualifiers, \
54-
DISABLED_WARNINGS_clang := unused-function sign-compare tautological-compare ignored-qualifiers, \
55-
CFLAGS := -march=rv64gcv, \
56-
CFLAGS_FILTER_OUT := -ftrivial-auto-var-init=pattern, \
57-
))
45+
##############################################################################
46+
## Build libsleef
47+
##############################################################################
5848

59-
TARGETS += $(BUILD_LIBSLEEF)
60-
endif
49+
ifeq ($(call isTargetOs, linux macosx)+$(call isTargetCpu, aarch64 riscv64), true+true)
50+
ifeq ($(call isTargetCpu, riscv64), true)
51+
LIBSLEEF_CFLAGS := -march=rv64gcv
52+
endif
53+
54+
$(eval $(call SetupJdkLibrary, BUILD_LIBSLEEF, \
55+
NAME := sleef, \
56+
OPTIMIZATION := HIGH, \
57+
SRC := libsleef/lib, \
58+
EXTRA_SRC := libsleef/generated, \
59+
DISABLED_WARNINGS_gcc := unused-function sign-compare \
60+
tautological-compare ignored-qualifiers, \
61+
DISABLED_WARNINGS_clang := unused-function sign-compare \
62+
tautological-compare ignored-qualifiers, \
63+
CFLAGS := $(LIBSLEEF_CFLAGS), \
64+
vector_math_sve.c_CFLAGS := $(SVE_CFLAGS), \
65+
))
6166

62-
ifeq ($(call isTargetOs, linux)+$(call isTargetCpu, aarch64)+$(INCLUDE_COMPILER2), true+true+true)
63-
$(eval $(call SetupJdkLibrary, BUILD_LIBSLEEF, \
64-
NAME := sleef, \
65-
OPTIMIZATION := HIGH, \
66-
SRC := libsleef/lib, \
67-
EXTRA_SRC := libsleef/generated, \
68-
DISABLED_WARNINGS_gcc := unused-function sign-compare tautological-compare ignored-qualifiers, \
69-
DISABLED_WARNINGS_clang := unused-function sign-compare tautological-compare ignored-qualifiers, \
70-
vector_math_sve.c_CFLAGS := $(SVE_CFLAGS), \
71-
CFLAGS_FILTER_OUT := -ftrivial-auto-var-init=pattern, \
72-
))
67+
TARGETS += $(BUILD_LIBSLEEF)
68+
endif
7369

74-
TARGETS += $(BUILD_LIBSLEEF)
7570
endif
7671

7772
################################################################################

make/modules/jdk.jpackage/Lib.gmk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ $(eval $(call SetupJdkExecutable, BUILD_JPACKAGEAPPLAUNCHER, \
6161
DISABLED_WARNINGS_clang_Log.cpp := unused-const-variable, \
6262
CFLAGS_FILTER_OUT := -MD, \
6363
CXXFLAGS_FILTER_OUT := -MD, \
64-
CFLAGS_macosx := -Wno-format-nonliteral, \
6564
CFLAGS_windows := -MT $(JPACKAGE_CFLAGS_windows), \
6665
CXXFLAGS_windows := -MT $(JPACKAGE_CXXFLAGS_windows), \
6766
LD_SET_ORIGIN := false, \

src/hotspot/cpu/aarch64/immediate_aarch64.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
*
2424
*/
2525

26-
#include <stdlib.h>
27-
#include <stdint.h>
26+
#include <stdlib.h> // do not reorder
27+
#include <stdint.h> // do not reorder
2828

2929
#include "immediate_aarch64.hpp"
3030
#include "metaprogramming/primitiveConversions.hpp"

src/hotspot/cpu/ppc/macroAssembler_ppc.cpp

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1284,13 +1284,7 @@ int MacroAssembler::ic_check(int end_alignment) {
12841284
if (use_trap_based_null_check) {
12851285
trap_null_check(receiver);
12861286
}
1287-
if (UseCompactObjectHeaders) {
1288-
load_narrow_klass_compact(tmp1, receiver);
1289-
} else if (UseCompressedClassPointers) {
1290-
lwz(tmp1, oopDesc::klass_offset_in_bytes(), receiver);
1291-
} else {
1292-
ld(tmp1, oopDesc::klass_offset_in_bytes(), receiver);
1293-
}
1287+
load_klass_no_decode(tmp1, receiver); // 2 instructions with UseCompactObjectHeaders
12941288
ld(tmp2, in_bytes(CompiledICData::speculated_klass_offset()), data);
12951289
trap_ic_miss_check(tmp1, tmp2);
12961290

@@ -1306,11 +1300,7 @@ int MacroAssembler::ic_check(int end_alignment) {
13061300
cmpdi(CR0, receiver, 0);
13071301
beqctr(CR0);
13081302
}
1309-
if (UseCompressedClassPointers) {
1310-
lwz(tmp1, oopDesc::klass_offset_in_bytes(), receiver);
1311-
} else {
1312-
ld(tmp1, oopDesc::klass_offset_in_bytes(), receiver);
1313-
}
1303+
load_klass_no_decode(tmp1, receiver); // 2 instructions with UseCompactObjectHeaders
13141304
ld(tmp2, in_bytes(CompiledICData::speculated_klass_offset()), data);
13151305
cmpd(CR0, tmp1, tmp2);
13161306
bnectr(CR0);
@@ -3536,18 +3526,23 @@ void MacroAssembler::decode_klass_not_null(Register dst, Register src) {
35363526
}
35373527
}
35383528

3539-
void MacroAssembler::load_klass(Register dst, Register src) {
3529+
void MacroAssembler::load_klass_no_decode(Register dst, Register src) {
35403530
if (UseCompactObjectHeaders) {
35413531
load_narrow_klass_compact(dst, src);
3542-
decode_klass_not_null(dst);
35433532
} else if (UseCompressedClassPointers) {
35443533
lwz(dst, oopDesc::klass_offset_in_bytes(), src);
3545-
decode_klass_not_null(dst);
35463534
} else {
35473535
ld(dst, oopDesc::klass_offset_in_bytes(), src);
35483536
}
35493537
}
35503538

3539+
void MacroAssembler::load_klass(Register dst, Register src) {
3540+
load_klass_no_decode(dst, src);
3541+
if (UseCompressedClassPointers) { // also true for UseCompactObjectHeaders
3542+
decode_klass_not_null(dst);
3543+
}
3544+
}
3545+
35513546
// Loads the obj's Klass* into dst.
35523547
// Preserves all registers (incl src, rscratch1 and rscratch2).
35533548
// Input:

0 commit comments

Comments
 (0)