Skip to content

Commit 4008c98

Browse files
authored
Merge pull request #2108 from SAP/pr-jdk-26+25
Merge to tag jdk-26+25
2 parents 5f70028 + 29588d4 commit 4008c98

File tree

488 files changed

+20604
-9285
lines changed

Some content is hidden

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

488 files changed

+20604
-9285
lines changed

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,8 @@ NashornProfile.txt
2626
*.rej
2727
*.orig
2828
test/benchmarks/**/target
29+
/src/hotspot/CMakeLists.txt
30+
/src/hotspot/compile_commands.json
31+
/src/hotspot/cmake-build-debug/
32+
/src/hotspot/.cache/
33+
/src/hotspot/.idea/

doc/building.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,7 @@ <h3 id="microsoft-visual-studio">Microsoft Visual Studio</h3>
668668
(Note that this version is often presented as "MSVC 14.28", and reported
669669
by cl.exe as 19.28.) Older versions will not be accepted by
670670
<code>configure</code> and will not work. The maximum accepted version
671-
of Visual Studio is 2022.</p>
671+
of Visual Studio is 2026.</p>
672672
<p>If you have multiple versions of Visual Studio installed,
673673
<code>configure</code> will by default pick the latest. You can request
674674
a specific version to be used by setting

doc/building.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ available for this update.
468468
The minimum accepted version is Visual Studio 2019 version 16.8. (Note that
469469
this version is often presented as "MSVC 14.28", and reported by cl.exe as
470470
19.28.) Older versions will not be accepted by `configure` and will not work.
471-
The maximum accepted version of Visual Studio is 2022.
471+
The maximum accepted version of Visual Studio is 2026.
472472

473473
If you have multiple versions of Visual Studio installed, `configure` will by
474474
default pick the latest. You can request a specific version to be used by

doc/hotspot-unit-tests.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -305,11 +305,11 @@ <h3 id="file-location">File location</h3>
305305
the product.</p>
306306
<ul>
307307
<li><p>All unit tests for a class from <code>foo/bar/baz.cpp</code>
308-
should be placed <code>foo/bar/test_baz.cpp</code> in
309-
<code>hotspot/test/native/</code> directory. Having all tests for a
310-
class in one file is a common practice for unit tests, it helps to see
311-
all existing tests at once, share functions and/or resources without
312-
losing encapsulation.</p></li>
308+
should be placed <code>foo/bar/test_baz.cpp</code> in the
309+
<code>test/hotspot/gtest/</code> directory. Having all tests for a class
310+
in one file is a common practice for unit tests, it helps to see all
311+
existing tests at once, share functions and/or resources without losing
312+
encapsulation.</p></li>
313313
<li><p>For tests which test more than one class, directory hierarchy
314314
should be the same as product hierarchy, and file name should reflect
315315
the name of the tested subsystem/functionality. For example, if a
@@ -319,7 +319,7 @@ <h3 id="file-location">File location</h3>
319319
<p>Please note that framework prepends directory name to a test group
320320
name. For example, if <code>TEST(foo, check_this)</code> and
321321
<code>TEST(bar, check_that)</code> are defined in
322-
<code>hotspot/test/native/gc/shared/test_foo.cpp</code> file, they will
322+
<code>test/hotspot/gtest/gc/shared/test_foo.cpp</code> file, they will
323323
be reported as <code>gc/shared/foo::check_this</code> and
324324
<code>gc/shared/bar::check_that</code>.</p>
325325
<h3 id="test-names">Test names</h3>

doc/hotspot-unit-tests.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ recognize your tests.
241241
Test file location should reflect a location of the tested part of the product.
242242

243243
* All unit tests for a class from `foo/bar/baz.cpp` should be placed
244-
`foo/bar/test_baz.cpp` in `hotspot/test/native/` directory. Having all
244+
`foo/bar/test_baz.cpp` in the `test/hotspot/gtest/` directory. Having all
245245
tests for a class in one file is a common practice for unit tests, it
246246
helps to see all existing tests at once, share functions and/or
247247
resources without losing encapsulation.
@@ -254,7 +254,7 @@ sub-system under tests belongs to `gc/g1`, tests should be placed in
254254

255255
Please note that framework prepends directory name to a test group
256256
name. For example, if `TEST(foo, check_this)` and `TEST(bar, check_that)`
257-
are defined in `hotspot/test/native/gc/shared/test_foo.cpp` file, they
257+
are defined in `test/hotspot/gtest/gc/shared/test_foo.cpp` file, they
258258
will be reported as `gc/shared/foo::check_this` and
259259
`gc/shared/bar::check_that`.
260260

make/autoconf/toolchain_microsoft.m4

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
################################################################################
2727
# The order of these defines the priority by which we try to find them.
28-
VALID_VS_VERSIONS="2022 2019"
28+
VALID_VS_VERSIONS="2022 2019 2026"
2929

3030
VS_DESCRIPTION_2019="Microsoft Visual Studio 2019"
3131
VS_VERSION_INTERNAL_2019=142
@@ -57,6 +57,21 @@ VS_SDK_PLATFORM_NAME_2022=
5757
VS_SUPPORTED_2022=true
5858
VS_TOOLSET_SUPPORTED_2022=true
5959

60+
VS_DESCRIPTION_2026="Microsoft Visual Studio 2026"
61+
VS_VERSION_INTERNAL_2026=145
62+
VS_MSVCR_2026=vcruntime140.dll
63+
VS_VCRUNTIME_1_2026=vcruntime140_1.dll
64+
VS_MSVCP_2026=msvcp140.dll
65+
VS_ENVVAR_2026="VS180COMNTOOLS"
66+
VS_USE_UCRT_2026="true"
67+
VS_VS_INSTALLDIR_2026="Microsoft Visual Studio/18"
68+
VS_EDITIONS_2026="BuildTools Community Professional Enterprise"
69+
VS_SDK_INSTALLDIR_2026=
70+
VS_VS_PLATFORM_NAME_2026="v145"
71+
VS_SDK_PLATFORM_NAME_2026=
72+
VS_SUPPORTED_2026=true
73+
VS_TOOLSET_SUPPORTED_2026=true
74+
6075
################################################################################
6176

6277
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],

make/hotspot/lib/CompileGtest.gmk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ $(eval $(call SetupJdkLibrary, BUILD_GTEST_LIBJVM, \
9595
EXTRA_OBJECT_FILES := $(BUILD_LIBJVM_ALL_OBJS), \
9696
DEFAULT_CFLAGS := false, \
9797
CFLAGS := $(JVM_CFLAGS) \
98+
-DHOTSPOT_GTEST \
9899
-I$(GTEST_FRAMEWORK_SRC)/googletest/include \
99100
-I$(GTEST_FRAMEWORK_SRC)/googlemock/include \
100101
$(addprefix -I, $(GTEST_TEST_SRC)), \

make/hotspot/lib/CompileJvm.gmk

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,30 @@ TARGETS += $(BUILD_LIBJVM)
337337
# for the associated class. If the class doesn't provide a more specific
338338
# declaration (either directly or by inheriting from a class that provides
339339
# one) then the global definition will be used, triggering this check.
340+
#
341+
342+
# The HotSpot wrapper for <new> declares as deprecated all the allocation and
343+
# deallocation functions that use the global allocator. But that blocking
344+
# isn't a bullet-proof. Some of these functions are implicitly available in
345+
# every translation unit, without the need to include <new>. So even with that
346+
# wrapper we still need this link-time check. The implicitly declared
347+
# functions and their mangled names are - from C++17 6.7.4:
348+
#
349+
# void* operator new(size_t) // _Znwm
350+
# void* operator new(size_t, align_val_t) // _ZnwmSt11align_val_t
351+
#
352+
# void operator delete(void*) noexcept // _ZdlPv
353+
# void operator delete(void*, size_t) noexcept // _ZdlPvm
354+
# void operator delete(void*, align_val_t) noexcept // _ZdlPvSt11align_val_t
355+
# void operator delete(void*, size_t, align_val_t) noexcept // _ZdlPvmSt11align_val_t
356+
#
357+
# void* operator new[](size_t) // _Znam
358+
# void* operator new[](size_t, align_val_t) // _ZnamSt11align_val_t
359+
#
360+
# void operator delete[](void*) noexcept // _ZdaPv
361+
# void operator delete[](void*, size_t) noexcept // _ZdaPvm
362+
# void operator delete[](void*, align_val_t) noexcept // _ZdaPvSt11align_val_t
363+
# void operator delete[](void*, size_t, align_val_t) noexcept // _ZdaPvmSt11align_val_t
340364

341365
ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
342366
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
@@ -347,10 +371,18 @@ ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
347371
# so use mangled names when looking for symbols.
348372
# Save the demangling for when something is actually found.
349373
MANGLED_SYMS := \
350-
_ZdaPv \
374+
_Znwm \
375+
_ZnwmSt11align_val_t \
351376
_ZdlPv \
377+
_ZdlPvm \
378+
_ZdlPvSt11align_val_t \
379+
_ZdlPvmSt11align_val_t \
352380
_Znam \
353-
_Znwm \
381+
_ZnamSt11align_val_t \
382+
_ZdaPv \
383+
_ZdaPvm \
384+
_ZdaPvSt11align_val_t \
385+
_ZdaPvmSt11align_val_t \
354386
#
355387
UNDEF_PATTERN := ' U '
356388

make/jdk/src/classes/build/tools/taglet/SealedGraph.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2022, 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
@@ -219,13 +219,13 @@ public void addNode(TypeElement node) {
219219
// This implies the module is always the same.
220220
private String relativeLink(TypeElement node) {
221221
var util = SealedGraph.this.docletEnvironment.getElementUtils();
222-
var rootPackage = util.getPackageOf(rootNode);
223222
var nodePackage = util.getPackageOf(node);
224-
var backNavigator = rootPackage.getQualifiedName().toString().chars()
223+
// Note: SVG files for nested types use the simple names of containing types as parent directories.
224+
// We therefore need to convert all dots in the qualified name to "../" below.
225+
var backNavigator = rootNode.getQualifiedName().toString().chars()
225226
.filter(c -> c == '.')
226227
.mapToObj(c -> "../")
227-
.collect(joining()) +
228-
"../";
228+
.collect(joining());
229229
var forwardNavigator = nodePackage.getQualifiedName().toString()
230230
.replace(".", "/");
231231

make/langtools/tools/propertiesparser/parser/MessageType.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ public enum SimpleType implements MessageType {
8484
FILE_OBJECT("file object", "JavaFileObject", "javax.tools"),
8585
PATH("path", "Path", "java.nio.file"),
8686
NAME("name", "Name", "com.sun.tools.javac.util"),
87+
LONG("long", "long", null),
8788
NUMBER("number", "int", null),
8889
OPTION_NAME("option name", "Option", "com.sun.tools.javac.main"),
8990
PROFILE("profile", "Profile", "com.sun.tools.javac.jvm"),

0 commit comments

Comments
 (0)