Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
7a53240
8385508: Bump update version for OpenJDK: jdk-21.0.13
GoeLin Jun 3, 2026
dd18556
8361950: Update to use jtreg 8
GoeLin Jun 3, 2026
a94686b
8375125: assert(false) failed: "Attempting to acquire lock NativeHeap…
GoeLin Jun 8, 2026
49ab260
Merge
GoeLin Jun 10, 2026
f3e1681
8364106: Include java.runtime.version in thread dump output
Jun 10, 2026
d2dd75a
8372546: UnixMultiResolutionSplashTest.java fails intermittently on U…
Jun 10, 2026
ff61218
8375294: (fs) Files.copy can fail with EOPNOTSUPP when copy_file_rang…
Jun 15, 2026
bb41a13
8386345: Remove redundant @requires from TestGarbageCollectionEventWi…
GoeLin Jun 15, 2026
156040c
8381937: Make exceptions in Java_sun_security_mscapi_CKeyPairGenerato…
MBaesken Jun 15, 2026
3e894c2
8384163: (so) SocketChannel.connect and finishConnect() exception mes…
MBaesken Jun 15, 2026
fb01c29
8343698: Linux x86_64 lto build gives a lot of warnings and fails lto…
mrserb Jun 15, 2026
87837d9
8386551: Windows build broken because of MSys2/Make update
GoeLin Jun 16, 2026
3e5ea4e
8385584: CAInterop.java#buypassclass3ca fails with Intermediate Root …
Jun 16, 2026
104ca21
8374886: CAInterop.java#microsoftrsa2017 test fails as EE certificate…
Jun 16, 2026
95a26a1
8381771: Add a check for DNS label not to end with a hyphen
Jun 16, 2026
2f72ca1
8333867: SHA3 performance can be improved
GoeLin Jun 17, 2026
548d07d
8378180: Compiling OpenJDK with C23 C-Compiler gives warning: initial…
fthevenet Jun 17, 2026
e16bd2a
8383611: assert(count == os::processor_count() + 1) failed: invalid e…
raneashay Jun 17, 2026
a3ac8a6
8369488: Update to use jtreg 8.1
GoeLin Jun 19, 2026
71aecda
8376355: Update to use jtreg 8.2.1
GoeLin Jun 19, 2026
1bf953e
8338587: Internal XOF Methods for SHAKE128 and SHAKE256
GoeLin Jun 20, 2026
297fffa
8343739: Test java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCode…
Jun 22, 2026
1d95d46
8310331: JitTester: Exclude java.lang.Math.random
Jun 22, 2026
fa77515
Merge
GoeLin Jun 24, 2026
0cda7c9
8247690: RunTest does not support running of JTREG manual tests
jerboaa Jun 24, 2026
4598c35
8341527: AVX-512 intrinsic for SHA3
GoeLin Jun 26, 2026
0dceebb
8372615: Many container tests fail when running rootless on cgroup v1
GoeLin Jun 29, 2026
5f1331a
8371893: [macOS] use dead_strip linker option to reduce binary size
MBaesken Jul 1, 2026
44ea82d
8342003: ProblemList sun/security/tools/keytool/GenKeyPairSigner.java
GoeLin Jul 1, 2026
ae16209
8380993: [REDO] Incorrect Interpretation of POSIX TZ Environment Vari…
srutjay Jul 2, 2026
5ad58c2
8382063: Jtreg test javax/swing/SwingWorker/TestDoneBeforeDoInBackgro…
ArnoZeller Jul 6, 2026
d7b88f8
8365426: [macos26] Graphics2D tests fail on new macOS 26
Jul 6, 2026
c07b635
8384804: JMX remote bootstrap tests fail on Windows
raneashay Jul 8, 2026
30b1b4b
8372757: MacOS, Accessibility: Crash in [MenuAccessibility accessibil…
MBaesken Jul 9, 2026
219451e
8334502: gtest/GTestWrapper.java fails on armhf due to LogDecorations…
Jul 9, 2026
caaba8f
8352565: Add native method implementation of Reference.get()
chmielewskiandreas Jul 15, 2026
820ea47
8385454: Provide more NUMA related information in hsinfo/hserr files
MBaesken Jul 16, 2026
aee03ad
8387985: sun/tools/jstat shell tests fail on platforms that do not su…
Jul 16, 2026
88c578b
8388431: [21u] Backport of JDK-8352565 misses previous vm symbol to b…
chmielewskiandreas Jul 17, 2026
98787b8
Merge
GoeLin Jul 22, 2026
b63d651
8387625: Add "dt_socket" to `CheckedFeatures.notImplemented` for Wind…
raneashay Jul 23, 2026
8bd4c90
8365498: jdk/jfr/event/os/TestCPULoad.java fails with Expected at lea…
RealCLanger Jul 24, 2026
a736adb
8306281: function isWsl() returns false on WSL2
GoeLin Jul 29, 2026
03944f3
8377991: TestLimitsUpdating.java fails with runtime exception even af…
GoeLin Jul 29, 2026
3b1afcd
8387593: Using XOR mode to clear the content leaves some traces in metal
GoeLin Jul 29, 2026
d0185ba
8340327: A common framework to support public key algorithms with sta…
GoeLin Jul 29, 2026
f6a7db6
8342002: sun/security/tools/keytool/GenKeyPairSigner.java failed due …
GoeLin Jul 29, 2026
0366732
8342442: Static ACVP sample tests
GoeLin Jul 29, 2026
6de158a
8298390: Implement JEP 496: Quantum-Resistant Module-Lattice-Based Ke…
GoeLin Jul 30, 2026
d999559
8341625: Improve ZipFile validation of the END header
GoeLin Jul 30, 2026
ae88cd9
8298387: Implement JEP 497: Quantum-Resistant Module-Lattice-Based Di…
GoeLin Jul 31, 2026
825e716
8345512: Remove wrapper functions for intrinsics in PQC algorithms
GoeLin Jul 31, 2026
77ca63d
8345533: Switch ML-DSA implementation to FIPS 204 final
GoeLin Jul 31, 2026
fc3a5f5
8345057: ML_KEM NamedParameterSpec constants removed by ML-DSA integr…
GoeLin Aug 3, 2026
a83b07a
8369020: Test compiler/intrinsics/TestLongUnsignedDivMod.java complet…
Aug 3, 2026
80b9139
8348561: Add aarch64 intrinsics for ML-DSA
GoeLin Aug 4, 2026
0e0509f
8349017: Update ML tests to verify against ACVP 1.1.0.38 version
GoeLin Aug 4, 2026
775badf
8350589: Investigate cleaner implementation of AArch64 ML-DSA intrins…
GoeLin Aug 4, 2026
9cc240f
8374343: Fix SIGSEGV when lib/modules is unreadable
Aug 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .jcheck/conf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[general]
project=jdk-updates
jbs=JDK
version=21.0.12
version=21.0.13

[checks]
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists
Expand Down
2 changes: 2 additions & 0 deletions doc/testing.html
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,8 @@ <h4 id="repeat_count">REPEAT_COUNT</h4>
<h4 id="report">REPORT</h4>
<p>Use this report style when reporting test results (sent to JTReg as
<code>-report</code>). Defaults to <code>files</code>.</p>
<h4 id="manual">MANUAL</h4>
<p>Set to <code>true</code> to execute manual tests only.</p>
<h3 id="gtest-keywords">Gtest keywords</h3>
<h4 id="repeat">REPEAT</h4>
<p>The number of times to repeat the tests
Expand Down
4 changes: 4 additions & 0 deletions doc/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,10 @@ Defaults to 0.
Use this report style when reporting test results (sent to JTReg as `-report`).
Defaults to `files`.

#### MANUAL

Set to `true` to execute manual tests only.

### Gtest keywords

#### REPEAT
Expand Down
11 changes: 9 additions & 2 deletions make/RunTests.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,8 @@ $(eval $(call SetTestOpt,REPORT,JTREG))
$(eval $(call ParseKeywordVariable, JTREG, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT \
TEST_MODE ASSERT VERBOSE RETAIN TEST_THREAD_FACTORY MAX_MEM RUN_PROBLEM_LISTS \
RETRY_COUNT REPEAT_COUNT MAX_OUTPUT REPORT $(CUSTOM_JTREG_SINGLE_KEYWORDS), \
RETRY_COUNT REPEAT_COUNT MAX_OUTPUT REPORT MANUAL \
$(CUSTOM_JTREG_SINGLE_KEYWORDS), \
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS \
$(CUSTOM_JTREG_STRING_KEYWORDS), \
Expand Down Expand Up @@ -793,7 +794,13 @@ define SetupRunJtregTestBody
-vmoption:-Dtest.boot.jdk="$$(BOOT_JDK)" \
-vmoption:-Djava.io.tmpdir="$$($1_TEST_TMP_DIR)"

$1_JTREG_BASIC_OPTIONS += -automatic -ignore:quiet
$1_JTREG_BASIC_OPTIONS += -ignore:quiet

ifeq ($$(JTREG_MANUAL), true)
$1_JTREG_BASIC_OPTIONS += -manual
else
$1_JTREG_BASIC_OPTIONS += -automatic
endif

# Make it possible to specify the JIB_DATA_DIR for tests using the
# JIB Artifact resolver
Expand Down
3 changes: 3 additions & 0 deletions make/autoconf/flags-ldflags.m4
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,9 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
# Setup OS-dependent LDFLAGS
if test "x$OPENJDK_TARGET_OS" = xmacosx && test "x$TOOLCHAIN_TYPE" = xclang; then
if test x$DEBUG_LEVEL = xrelease; then
BASIC_LDFLAGS_JDK_ONLY="$BASIC_LDFLAGS_JDK_ONLY -Wl,-dead_strip"
fi
# FIXME: We should really generalize SET_SHARED_LIBRARY_ORIGIN instead.
OS_LDFLAGS_JVM_ONLY="-Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
OS_LDFLAGS="-mmacosx-version-min=$MACOSX_VERSION_MIN"
Expand Down
4 changes: 2 additions & 2 deletions make/autoconf/lib-tests.m4
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2018, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2018, 2026, 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
Expand Down Expand Up @@ -28,7 +28,7 @@
################################################################################

# Minimum supported versions
JTREG_MINIMUM_VERSION=7.5.2
JTREG_MINIMUM_VERSION=8.2.1
GTEST_MINIMUM_VERSION=1.14.0

###############################################################################
Expand Down
4 changes: 2 additions & 2 deletions make/conf/github-actions.conf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2026, 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
Expand All @@ -26,7 +26,7 @@
# Versions and download locations for dependencies used by GitHub Actions (GHA)

GTEST_VERSION=1.14.0
JTREG_VERSION=7.5.2+1
JTREG_VERSION=8.2.1+1

LINUX_X64_BOOT_JDK_EXT=tar.gz
LINUX_X64_BOOT_JDK_URL=https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_x64_linux_hotspot_21.0.11_10.tar.gz
Expand Down
8 changes: 4 additions & 4 deletions make/conf/jib-profiles.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2026, 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
Expand Down Expand Up @@ -1200,9 +1200,9 @@ var getJibProfilesDependencies = function (input, common) {
jtreg: {
server: "jpg",
product: "jtreg",
version: "7.5.2",
version: "8.2.1",
build_number: "1",
file: "bundles/jtreg-7.5.2+1.zip",
file: "bundles/jtreg-8.2.1+1.zip",
environment_name: "JT_HOME",
environment_path: input.get("jtreg", "home_path") + "/bin",
configure_args: "--with-jtreg=" + input.get("jtreg", "home_path"),
Expand Down Expand Up @@ -1532,7 +1532,7 @@ var getVersionNumbers = function () {
var isWsl = function (input) {
return ( input.build_osenv == "wsl"
|| (input.build_os == "linux"
&& java.lang.System.getProperty("os.version").contains("Microsoft")));
&& java.lang.System.getProperty("os.version").toLowerCase().contains("microsoft")));
}

var error = function (s) {
Expand Down
6 changes: 3 additions & 3 deletions make/conf/version-numbers.conf
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@

DEFAULT_VERSION_FEATURE=21
DEFAULT_VERSION_INTERIM=0
DEFAULT_VERSION_UPDATE=12
DEFAULT_VERSION_UPDATE=13
DEFAULT_VERSION_PATCH=0
DEFAULT_VERSION_EXTRA1=0
DEFAULT_VERSION_EXTRA2=0
DEFAULT_VERSION_EXTRA3=0
DEFAULT_VERSION_DATE=2026-07-21
DEFAULT_VERSION_DATE=2026-10-20
DEFAULT_VERSION_CLASSFILE_MAJOR=65 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_VERSION_DOCS_API_SINCE=11
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="20 21"
DEFAULT_JDK_SOURCE_TARGET_VERSION=21
DEFAULT_PROMOTED_VERSION_PRE=
DEFAULT_PROMOTED_VERSION_PRE=ea
1 change: 1 addition & 0 deletions make/data/hotspot-symbols/symbols-unix
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,7 @@ JVM_RawMonitorDestroy
JVM_RawMonitorEnter
JVM_RawMonitorExit
JVM_ReferenceClear
JVM_ReferenceGet
JVM_ReferenceRefersTo
JVM_RegisterContinuationMethods
JVM_RegisterLambdaProxyClassForArchiving
Expand Down
4 changes: 4 additions & 0 deletions make/hotspot/lib/JvmOverrideFiles.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ ifeq ($(TOOLCHAIN_TYPE), gcc)
# Need extra inlining to collapse shared marking code into the hot marking loop
BUILD_LIBJVM_shenandoahMark.cpp_CXXFLAGS := --param inline-unit-growth=1000
endif
# disable lto in g1ParScanThreadState because of special inlining/flattening used there
ifeq ($(call check-jvm-feature, link-time-opt), true)
BUILD_LIBJVM_g1ParScanThreadState.cpp_CXXFLAGS := -fno-lto
endif
endif

LIBJVM_FDLIBM_COPY_OPT_FLAG := $(CXX_O_FLAG_NONE)
Expand Down
10 changes: 9 additions & 1 deletion src/hotspot/cpu/aarch64/assembler_aarch64.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2024, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
Expand Down Expand Up @@ -2571,6 +2571,11 @@ template<typename R, typename... Rx>
ldst_sstr(T, index, a, op1, op2, Vt, Vt2, Vt3, Vt4); \
}

INSN1(ld1, 0b001101010, 0b0000);
INSN2(ld2, 0b001101011, 0b0000);
INSN3(ld3, 0b001101010, 0b0010);
INSN4(ld4, 0b001101011, 0b0010);

INSN1(st1, 0b001101000, 0b0000);
INSN2(st2, 0b001101001, 0b0000);
INSN3(st3, 0b001101000, 0b0010);
Expand Down Expand Up @@ -2605,6 +2610,7 @@ template<typename R, typename... Rx>
void NAME(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn, FloatRegister Vm) { \
guarantee(T != T1Q && T != T1D, "incorrect arrangement"); \
if (!acceptT2D) guarantee(T != T2D, "incorrect arrangement"); \
if (opc2 == 0b101101) guarantee(T != T8B && T != T16B, "incorrect arrangement"); \
starti; \
f(0, 31), f((int)T & 1, 30), f(opc, 29), f(0b01110, 28, 24); \
f((int)T >> 1, 23, 22), f(1, 21), rf(Vm, 16), f(opc2, 15, 10); \
Expand All @@ -2628,6 +2634,8 @@ template<typename R, typename... Rx>
INSN(minv, 0, 0b011011, false); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
INSN(smaxp, 0, 0b101001, false); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
INSN(sminp, 0, 0b101011, false); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
INSN(sqdmulh,0, 0b101101, false); // accepted arrangements: T4H, T8H, T2S, T4S
INSN(shsubv, 0, 0b001001, false); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S

#undef INSN

Expand Down
20 changes: 20 additions & 0 deletions src/hotspot/cpu/aarch64/register_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,23 @@ const char* PRegister::PRegisterImpl::name() const {
};
return is_valid() ? names[encoding()] : "pnoreg";
}

// convenience methods for splitting 8-way vector register sequences
// in half -- needed because vector operations can normally only be
// benefit from 4-way instruction parallelism

VSeq<4> vs_front(const VSeq<8>& v) {
return VSeq<4>(v.base(), v.delta());
}

VSeq<4> vs_back(const VSeq<8>& v) {
return VSeq<4>(v.base() + 4 * v.delta(), v.delta());
}

VSeq<4> vs_even(const VSeq<8>& v) {
return VSeq<4>(v.base(), v.delta() * 2);
}

VSeq<4> vs_odd(const VSeq<8>& v) {
return VSeq<4>(v.base() + 1, v.delta() * 2);
}
68 changes: 68 additions & 0 deletions src/hotspot/cpu/aarch64/register_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -408,4 +408,72 @@ inline Register as_Register(FloatRegister reg) {
return as_Register(reg->encoding());
}

// AArch64 Vector Register Sequence management support
//
// VSeq implements an indexable (by operator[]) vector register
// sequence starting from a fixed base register and with a fixed delta
// (defaulted to 1, but sometimes 0 or 2) e.g. VSeq<4>(16) will return
// registers v16, ... v19 for indices 0, ... 3.
//
// Generator methods may iterate across sets of VSeq<4> to schedule an
// operation 4 times using distinct input and output registers,
// profiting from 4-way instruction parallelism.
//
// A VSeq<2> can be used to specify registers loaded with special
// constants e.g. <v30, v31> --> <MONT_Q, MONT_Q_INV_MOD_R>.
//
// A VSeq with base n and delta 0 can be used to generate code that
// combines values in another VSeq with the constant in register vn.
//
// A VSeq with base n and delta 2 can be used to select an odd or even
// indexed set of registers.
//
// Methods which accept arguments of type VSeq<8>, may split their
// inputs into front and back halves or odd and even halves (see
// convenience methods below).

template<int N> class VSeq {
static_assert(N >= 2, "vector sequence length must be greater than 1");
static_assert(N <= 8, "vector sequence length must not exceed 8");
static_assert((N & (N - 1)) == 0, "vector sequence length must be power of two");
private:
int _base; // index of first register in sequence
int _delta; // increment to derive successive indices
public:
VSeq(FloatRegister base_reg, int delta = 1) : VSeq(base_reg->encoding(), delta) { }
VSeq(int base, int delta = 1) : _base(base), _delta(delta) {
assert (_base >= 0, "invalid base register");
assert (_delta >= 0, "invalid register delta");
assert ((_base + (N - 1) * _delta) < 32, "range exceeded");
}
// indexed access to sequence
FloatRegister operator [](int i) const {
assert (0 <= i && i < N, "index out of bounds");
return as_FloatRegister(_base + i * _delta);
}
int mask() const {
int m = 0;
int bit = 1 << _base;
for (int i = 0; i < N; i++) {
m |= bit << (i * _delta);
}
return m;
}
int base() const { return _base; }
int delta() const { return _delta; }
};

// declare convenience methods for splitting vector register sequences

VSeq<4> vs_front(const VSeq<8>& v);
VSeq<4> vs_back(const VSeq<8>& v);
VSeq<4> vs_even(const VSeq<8>& v);
VSeq<4> vs_odd(const VSeq<8>& v);

// methods for use in asserts to check VSeq inputs and oupts are
// either disjoint or equal

template<int N, int M> bool vs_disjoint(const VSeq<N>& n, const VSeq<M>& m) { return (n.mask() & m.mask()) == 0; }
template<int N> bool vs_same(const VSeq<N>& n, const VSeq<N>& m) { return n.mask() == m.mask(); }

#endif // CPU_AARCH64_REGISTER_AARCH64_HPP
Loading
Loading