From c3573b783690233260403647d3340a96316bb141 Mon Sep 17 00:00:00 2001 From: Andrej Pecimuth Date: Tue, 15 Jul 2025 14:37:00 +0200 Subject: [PATCH 01/10] Adapt JDK-8358619: Fix interval recomputation in CPU Time Profiler. --- .../svm/core/jfr/Target_jdk_jfr_internal_JVM.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/Target_jdk_jfr_internal_JVM.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/Target_jdk_jfr_internal_JVM.java index 3b4d065267f9..2f66a5ed11f1 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/Target_jdk_jfr_internal_JVM.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/Target_jdk_jfr_internal_JVM.java @@ -296,9 +296,15 @@ public static void setMethodSamplingPeriod(long type, long intervalMillis) { SubstrateJVM.get().setMethodSamplingInterval(type, intervalMillis); } - /** See {@code JVM#setCPUThrottle}. */ + /** See {@code JVM#setCPURate}. */ @Substitute - public static void setCPUThrottle(double rate, boolean autoAdapt) { + public static void setCPURate(double rate) { + // JFR CPUTimeSample is not supported. + } + + /** See {@code JVM#setCPUPeriod}. */ + @Substitute + public static void setCPUPeriod(long periodNanos) { // JFR CPUTimeSample is not supported. } From 0c1ccbdfc99b734b3a3a49e27e9f065fd5f666c4 Mon Sep 17 00:00:00 2001 From: Andrej Pecimuth Date: Tue, 15 Jul 2025 14:39:37 +0200 Subject: [PATCH 02/10] Update galahad jdk. --- common.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.json b/common.json index 0240fd5379cf..e2e6c9a09648 100644 --- a/common.json +++ b/common.json @@ -8,7 +8,7 @@ "COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet", "jdks": { - "galahad-jdk": {"name": "jpg-jdk", "version": "25", "build_id": "jdk-26+6-570", "platformspecific": true, "extrabundles": ["static-libs"]}, + "galahad-jdk": {"name": "jpg-jdk", "version": "26", "build_id": "jdk-26+7-655", "platformspecific": true, "extrabundles": ["static-libs"]}, "oraclejdk17": {"name": "jpg-jdk", "version": "17.0.7", "build_id": "jdk-17.0.7+8", "platformspecific": true, "extrabundles": ["static-libs"]}, "labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17.0.7+4-jvmci-23.1-b02", "platformspecific": true }, From 504abfbe7e7afdf68b0b24ce137f839e945e1659 Mon Sep 17 00:00:00 2001 From: Yudi Zheng Date: Tue, 15 Jul 2025 16:05:59 +0200 Subject: [PATCH 03/10] Tiers gates should be ignored in galahad gates (GR-67618) --- ci/ci_common/galahad-common.libsonnet | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/ci_common/galahad-common.libsonnet b/ci/ci_common/galahad-common.libsonnet index 200913fca05d..3b89df1fcd77 100644 --- a/ci/ci_common/galahad-common.libsonnet +++ b/ci/ci_common/galahad-common.libsonnet @@ -11,9 +11,9 @@ local utils = import "common-utils.libsonnet"; , # Return true if this is a gate job. local is_gate(b) = - std.find("gate", b.targets) != [] + std.setInter(["gate", "tier1", "tier2", "tier3"], b.targets) != [] , - local gate_or_postmerge_targets = ["gate", "post-merge", "deploy"], + local gate_or_postmerge_targets = ["gate", "tier1", "tier2", "tier3", "post-merge", "deploy"], # Return true if this is a gate or post-merge/deployment job. local is_gate_or_postmerge(b) = std.setInter(gate_or_postmerge_targets, b.targets) != [] From 760022e18d08163c4c39af9ae69cd6c6be434a9b Mon Sep 17 00:00:00 2001 From: ol-automation_ww Date: Thu, 17 Jul 2025 21:36:17 +0000 Subject: [PATCH 04/10] update JVMCI to 26+7-jvmci-b01 --- common.json | 14 +++++++------- .../graal/compiler/hotspot/JVMCIVersionCheck.java | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/common.json b/common.json index 5b3c75de133f..4e1de094fb88 100644 --- a/common.json +++ b/common.json @@ -53,13 +53,13 @@ "labsjdk-ee-25Debug": {"name": "labsjdk", "version": "ee-25+26-jvmci-b01-debug", "platformspecific": true }, "labsjdk-ee-25-llvm": {"name": "labsjdk", "version": "ee-25+26-jvmci-b01-sulong", "platformspecific": true }, - "oraclejdk-latest": {"name": "jpg-jdk", "version": "26", "build_id": "jdk-26+6", "platformspecific": true, "extrabundles": ["static-libs"]}, - "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-26+6-jvmci-b01", "platformspecific": true }, - "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-26+6-jvmci-b01-debug", "platformspecific": true }, - "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-26+5-jvmci-b01-sulong", "platformspecific": true }, - "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-26+6-jvmci-b01", "platformspecific": true }, - "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-26+6-jvmci-b01-debug", "platformspecific": true }, - "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-26+5-jvmci-b01-sulong", "platformspecific": true } + "oraclejdk-latest": {"name": "jpg-jdk", "version": "26", "build_id": "jdk-26+7", "platformspecific": true, "extrabundles": ["static-libs"]}, + "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-26+7-jvmci-b01-20250717162806-f8acb456c1", "platformspecific": true }, + "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-26+7-jvmci-b01-20250717162806-f8acb456c1-debug", "platformspecific": true }, + "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-26+7-jvmci-b01-20250717162806-f8acb456c1", "platformspecific": true }, + "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-26+7-jvmci-b01-20250717162806-f8acb456c1+84a0ad3ee5", "platformspecific": true }, + "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-26+7-jvmci-b01-20250717162806-f8acb456c1+84a0ad3ee5-debug", "platformspecific": true }, + "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-26+7-jvmci-b01-20250717162806-f8acb456c1+84a0ad3ee5", "platformspecific": true } }, "eclipse": { diff --git a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java index 764f6195654c..5667f980e925 100644 --- a/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java +++ b/compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java @@ -57,8 +57,8 @@ public final class JVMCIVersionCheck { // Checkstyle: stop stable iteration order check private static final Map> JVMCI_MIN_VERSIONS = Map.of( "26", Map.of( - "Oracle Corporation", createLabsJDKVersion("26+6", 1), - DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("26+6", 1))); + "Oracle Corporation", createLabsJDKVersion("26+7", 1), + DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("26+7", 1))); // Checkstyle: resume stable iteration order check private static final int NA = 0; From 4db96bcd4ad3a636d592fac28ab262d08a4793b9 Mon Sep 17 00:00:00 2001 From: jovsteva Date: Fri, 18 Jul 2025 08:30:46 +0200 Subject: [PATCH 05/10] Update BasedOnJDKFile annotation. --- .../src/com/oracle/svm/core/jvmti/headers/JvmtiDirectives.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jvmti/headers/JvmtiDirectives.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jvmti/headers/JvmtiDirectives.java index f494545fc624..0a05da75a6b8 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jvmti/headers/JvmtiDirectives.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jvmti/headers/JvmtiDirectives.java @@ -35,7 +35,7 @@ import com.oracle.svm.core.SubstrateOptions; import com.oracle.svm.core.util.BasedOnJDKFile; -@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-26+2/src/hotspot/share/prims/jvmti.xml") +@BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-26+7/src/hotspot/share/prims/jvmti.xml") @BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+11/src/hotspot/share/prims/jvmtiH.xsl") class JvmtiDirectives implements CContext.Directives { private final Path jdkIncludeDir = Paths.get(System.getProperty("java.home")).resolve("include"); From bb67ea6f5baa29fcdf21d19a37881c608c8f4a7b Mon Sep 17 00:00:00 2001 From: jovsteva Date: Fri, 18 Jul 2025 10:02:07 +0200 Subject: [PATCH 06/10] Adapt 8361959: [GCC static analyzer] java_props_md.c leak of 'temp' variable is reported. --- .../src/com/oracle/svm/core/c/locale/LocaleCHelper.java | 2 +- substratevm/src/com.oracle.svm.native.libchelper/src/locale.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/c/locale/LocaleCHelper.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/c/locale/LocaleCHelper.java index 5832b2e9bc73..380121402099 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/c/locale/LocaleCHelper.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/c/locale/LocaleCHelper.java @@ -59,7 +59,7 @@ class LocaleCHelper { * {@link #SVM_LOCALE_INITIALIZATION_OUT_OF_MEMORY}. */ @CFunction(value = "svm_initialize_locale", transition = NO_TRANSITION) - @BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+17/src/java.base/unix/native/libjava/java_props_md.c#L71-L357") + @BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-26+7/src/java.base/unix/native/libjava/java_props_md.c#L71-L359") @BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-24+17/src/java.base/unix/native/libjava/java_props_md.c#L436-L460") @BasedOnJDKFile("https://github.com/openjdk/jdk/blob/jdk-25+21/src/java.base/windows/native/libjava/java_props_md.c#L263-L721") static native int initializeLocale(); diff --git a/substratevm/src/com.oracle.svm.native.libchelper/src/locale.c b/substratevm/src/com.oracle.svm.native.libchelper/src/locale.c index 25889390f680..bda9b7185476 100644 --- a/substratevm/src/com.oracle.svm.native.libchelper/src/locale.c +++ b/substratevm/src/com.oracle.svm.native.libchelper/src/locale.c @@ -206,6 +206,7 @@ static int ParseLocale(int cat, char ** std_language, char ** std_script, if (language != NULL && mapLookup(language_names, language, std_language) == 0) { *std_language = malloc(strlen(language)+1); if (*std_language == NULL) { + free(temp); free(encoding_variant); return SVM_LOCALE_INITIALIZATION_OUT_OF_MEMORY; } @@ -218,6 +219,7 @@ static int ParseLocale(int cat, char ** std_language, char ** std_script, if (mapLookup(country_names, country, std_country) == 0) { *std_country = malloc(strlen(country)+1); if (*std_country == NULL) { + free(temp); free(encoding_variant); return SVM_LOCALE_INITIALIZATION_OUT_OF_MEMORY; } From 8d4c5c7d84f72f706ff7649ddc8b2880db6b6beb Mon Sep 17 00:00:00 2001 From: Marouane El Hallaoui Date: Fri, 18 Jul 2025 10:03:05 +0100 Subject: [PATCH 07/10] deploy labsjdk --- common.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/common.json b/common.json index d9e5d59d4afb..1a76054eead3 100644 --- a/common.json +++ b/common.json @@ -54,12 +54,12 @@ "labsjdk-ee-25-llvm": {"name": "labsjdk", "version": "ee-25+26-jvmci-b01-sulong", "platformspecific": true }, "oraclejdk-latest": {"name": "jpg-jdk", "version": "26", "build_id": "jdk-26+7", "platformspecific": true, "extrabundles": ["static-libs"]}, - "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-26+7-jvmci-b01-20250717162806-f8acb456c1", "platformspecific": true }, - "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-26+7-jvmci-b01-20250717162806-f8acb456c1-debug", "platformspecific": true }, - "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-26+7-jvmci-b01-20250717162806-f8acb456c1", "platformspecific": true }, - "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-26+7-jvmci-b01-20250717162806-f8acb456c1+84a0ad3ee5", "platformspecific": true }, - "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-26+7-jvmci-b01-20250717162806-f8acb456c1+84a0ad3ee5-debug", "platformspecific": true }, - "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-26+7-jvmci-b01-20250717162806-f8acb456c1+84a0ad3ee5", "platformspecific": true } + "labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-26+7-jvmci-b01", "platformspecific": true }, + "labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-26+7-jvmci-b01-debug", "platformspecific": true }, + "labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-26+7-jvmci-b01-sulong", "platformspecific": true }, + "labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-26+7-jvmci-b01", "platformspecific": true }, + "labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-26+7-jvmci-b01-debug", "platformspecific": true }, + "labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-26+7-jvmci-b01-sulong", "platformspecific": true } }, "eclipse": { From ecee6f1c06ee350022716708ff5f216736ada539 Mon Sep 17 00:00:00 2001 From: Marouane El Hallaoui Date: Fri, 18 Jul 2025 10:08:03 +0100 Subject: [PATCH 08/10] Revert "[GR-67676] The `-llvm` artifacts are currently not up to date due to a JDK build system problem JDK-8361844." This reverts commit f668accd3d36cfba0233b44557a0c94df4bd295c. --- compiler/mx.compiler/mx_compiler.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/compiler/mx.compiler/mx_compiler.py b/compiler/mx.compiler/mx_compiler.py index c8076f517870..6047b0e56565 100644 --- a/compiler/mx.compiler/mx_compiler.py +++ b/compiler/mx.compiler/mx_compiler.py @@ -1264,9 +1264,6 @@ def get_latest_jvmci_version(): mx.abort(msg) if version_check_setting == 'strict' and not success: - # [GR-67676] The `-llvm` artifacts are currently not up to date due to a JDK build system problem JDK-8361844. - if latest.endswith('-llvm'): - return if latest == 'not found': msg = f'No JVMCI JDK found in {common_path} that matches {_jdk_jvmci_version}.' msg += os.linesep + f'Check that {latest} matches the versions of the other JVMCI JDKs.' From fb70dce44bae81f55e43a5b3ff6768d7cc91f041 Mon Sep 17 00:00:00 2001 From: Gilles Duboscq Date: Fri, 18 Jul 2025 17:50:01 +0200 Subject: [PATCH 09/10] [GR-67780] invokeinterface ICCE is fixed on JDK 26+ --- .../src/com/oracle/truffle/espresso/impl/Method.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/impl/Method.java b/espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/impl/Method.java index f3d83786d8c8..2e809465f04f 100644 --- a/espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/impl/Method.java +++ b/espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/impl/Method.java @@ -1961,10 +1961,10 @@ private EspressoException unsatisfiedLinkError() { private void checkPoisonPill(Meta meta) { if (poisonPill) { // Conflicting Maximally-specific non-abstract interface methods. - if (getJavaVersion().java9OrLater() && getSpecComplianceMode() == EspressoOptions.SpecComplianceMode.HOTSPOT) { + if (getJavaVersion().inRange(9, 25) && getSpecComplianceMode() == EspressoOptions.SpecComplianceMode.HOTSPOT) { /* * Supposed to be IncompatibleClassChangeError (see jvms-6.5.invokeinterface), - * but HotSpot throws AbstractMethodError. + * but HotSpot throws AbstractMethodError. See JDK-8356942. */ throw meta.throwExceptionWithMessage(meta.java_lang_AbstractMethodError, "Conflicting default methods: " + getName()); } From 622e487a68af09dc5e79bba07cc6598155ea10cf Mon Sep 17 00:00:00 2001 From: jovsteva Date: Mon, 21 Jul 2025 09:06:49 +0200 Subject: [PATCH 10/10] Remove java.applet.Applet from truffle TCK privileged methods. --- .../truffle/tck/resources/jdk_privileged_methods.json | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/substratevm/src/com.oracle.svm.truffle.tck/src/com/oracle/svm/truffle/tck/resources/jdk_privileged_methods.json b/substratevm/src/com.oracle.svm.truffle.tck/src/com/oracle/svm/truffle/tck/resources/jdk_privileged_methods.json index dd990fc9e451..38290834d06b 100644 --- a/substratevm/src/com.oracle.svm.truffle.tck/src/com/oracle/svm/truffle/tck/resources/jdk_privileged_methods.json +++ b/substratevm/src/com.oracle.svm.truffle.tck/src/com/oracle/svm/truffle/tck/resources/jdk_privileged_methods.json @@ -2839,17 +2839,6 @@ } ] }, - { - "name": "java.applet.Applet", - "methods": [ - { - "name": "setStub", - "parameterTypes": [ - "java.applet.AppletStub" - ] - } - ] - }, { "name": "java.awt.Button", "methods": [