From 5db8f0e7e3e8b6d959b3f3c4f0f7774554bf5b4b Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Thu, 6 Feb 2025 11:42:54 +0000 Subject: [PATCH 1/5] compiler: JDK_VERSION_CHECK requires at least 25 --- compiler/mx.compiler/mx_compiler.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/mx.compiler/mx_compiler.py b/compiler/mx.compiler/mx_compiler.py index 7d66b610fffe..7bc6633f5d1e 100644 --- a/compiler/mx.compiler/mx_compiler.py +++ b/compiler/mx.compiler/mx_compiler.py @@ -168,8 +168,8 @@ def __str__(self): _jdk_jvmci_version = None _jdk_min_jvmci_version = None -if os.environ.get('JDK_VERSION_CHECK', None) != 'ignore' and jdk.javaCompliance < '21': - mx.abort('Graal requires JDK21 or later, got ' + str(jdk) + +if os.environ.get('JDK_VERSION_CHECK', None) != 'ignore' and jdk.javaCompliance < '25': + mx.abort('Graal requires JDK 25 or later, got ' + str(jdk) + '. This check can be bypassed by setting env var JDK_VERSION_CHECK=ignore') def _check_jvmci_version(jdk): From bbe725a77aaa4cfa3d73fe3281cde41fc51f2575 Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Thu, 6 Feb 2025 11:43:43 +0000 Subject: [PATCH 2/5] compiler: JVMCI_VERSION_CHECK requires JDK 25 --- .../src/jdk/graal/compiler/hotspot/JVMCIVersionCheck.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 fa75f83c0fc1..76439ebd6fd6 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 @@ -54,7 +54,6 @@ public final class JVMCIVersionCheck { * default/fallback entry. */ private static final Map> JVMCI_MIN_VERSIONS = Map.of( - "21", Map.of(DEFAULT_VENDOR_ENTRY, createLegacyVersion(23, 1, 33)), "25", Map.of( "Oracle Corporation", createLabsJDKVersion("25+8", 1), DEFAULT_VENDOR_ENTRY, createLabsJDKVersion("25+8", 1))); @@ -62,7 +61,7 @@ public final class JVMCIVersionCheck { /** * Minimum Java release supported by Graal. */ - private static final int JAVA_MIN_RELEASE = 21; + private static final int JAVA_MIN_RELEASE = 25; /** * Convenience factory for the current version scheme that only uses the JDK version and the From 421d679c73d9f21b9cb9de754b5db65d36672187 Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Wed, 23 Apr 2025 13:57:10 +0200 Subject: [PATCH 3/5] compiler: remove gate-compiler-build-labsjdk-21-linux-amd64 gate --- compiler/ci/ci_common/gate.jsonnet | 8 -------- 1 file changed, 8 deletions(-) diff --git a/compiler/ci/ci_common/gate.jsonnet b/compiler/ci/ci_common/gate.jsonnet index bd49d715716f..89268a19f917 100644 --- a/compiler/ci/ci_common/gate.jsonnet +++ b/compiler/ci/ci_common/gate.jsonnet @@ -232,7 +232,6 @@ # Style jobs need to stay on a JDK compatible with all the style # checking tools (SpotBugs, Checkstyle, Eclipse formatter etc). "gate-compiler-style-labsjdk-latest-linux-amd64": t("45:00"), - "gate-compiler-build-labsjdk-21-linux-amd64": t("25:00"), "gate-compiler-ctw-labsjdk-latest-linux-amd64": {}, "gate-compiler-ctw-labsjdk-latest-windows-amd64": t("1:50:00"), @@ -492,12 +491,6 @@ JVMCI_VERSION_CHECK: "strict", }, }], - local jdk_21_version_check_builds = [self.make_build("21", "linux-amd64", "build", extra_tasks={build:: s.base("build"),}).build + galahad.exclude { - environment+: { - # Run the strict JVMCI version check, i.e., that JVMCIVersionCheck.JVMCI_MIN_VERSION matches the versions in common.json. - JVMCI_VERSION_CHECK: "strict", - }, - }], # Builds run on only on linux-amd64-jdk-latestDebug local linux_amd64_jdk_latestDebug_builds = [self.make_build("LatestDebug", "linux-amd64", task).build @@ -513,7 +506,6 @@ all_zgc_builds + all_serialgc_builds + style_builds + - jdk_21_version_check_builds + linux_amd64_jdk_latest_builds + linux_amd64_jdk_latestDebug_builds, From 97c361125716b856b65b37987de9280a1b1a061d Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Tue, 6 May 2025 10:22:05 +0200 Subject: [PATCH 4/5] compiler: make JVMCIVersionCheckTest future ready --- .../compiler/hotspot/test/JVMCIVersionCheckTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/hotspot/test/JVMCIVersionCheckTest.java b/compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/hotspot/test/JVMCIVersionCheckTest.java index 1ae2ce178322..6c75364fe7b4 100644 --- a/compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/hotspot/test/JVMCIVersionCheckTest.java +++ b/compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/hotspot/test/JVMCIVersionCheckTest.java @@ -48,10 +48,10 @@ public class JVMCIVersionCheckTest extends GraalCompilerTest { private static final String[] JDK_VERSIONS = { null, - "21", - "21+3", - "21.0.1+3", - "21-ea+11-790" + "99", + "99+3", + "99.0.1+3", + "99-ea+11-790" }; static final Map PROPS; @@ -124,7 +124,7 @@ private static Version getVersion(String jdkVersion, int major, int minor, int b public void test01() { String legacyPrefix = version.toString().startsWith("jvmci") ? "prefix-" : ""; String javaVmVersion = legacyPrefix + version.toString() + "Suffix"; - String javaSpecVersion = "21"; + String javaSpecVersion = "99"; var props = createTestProperties(javaSpecVersion, javaVmVersion, null); var jvmciMinVersions = Map.of( javaSpecVersion, Map.of(JVMCIVersionCheck.DEFAULT_VENDOR_ENTRY, minVersion)); From fecc060fb9d255e580f5e639b30b32e2e9396cf6 Mon Sep 17 00:00:00 2001 From: Josef Eisl Date: Mon, 5 May 2025 13:33:04 +0200 Subject: [PATCH 5/5] espresso: move JDK 21 gates to on demand [GR-64739] --- espresso/ci/ci.jsonnet | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/espresso/ci/ci.jsonnet b/espresso/ci/ci.jsonnet index 8e06d3f2f57f..6711aa782108 100644 --- a/espresso/ci/ci.jsonnet +++ b/espresso/ci/ci.jsonnet @@ -9,7 +9,9 @@ vm_guard_includes: [], local espresso_compiler_stub_gate = common.eclipse + common.jdt + common.predicates(true, false, false) + - common.espresso_gate(allow_warnings=false, tags='style,fullbuild', timelimit='35:00', name='gate-espresso-compiler-stub-style-jdk21-linux-amd64') + { + # [GR-64739] move espresso JDK 21 gates to on demand + # common.espresso_gate(allow_warnings=false, tags='style,fullbuild', timelimit='35:00', name='gate-espresso-compiler-stub-style-jdk21-linux-amd64') + { + common.espresso_gate(allow_warnings=false, tags='style,fullbuild', timelimit='35:00', name='ondemand-espresso-compiler-stub-style-jdk21-linux-amd64') + { setup+: [ ['cd', "../espresso-compiler-stub"], ], @@ -21,7 +23,9 @@ }, local _builds = common.builds + [ - common.jdk21_gate_linux_amd64 + espresso_compiler_stub_gate, + # [GR-64739] move espresso JDK 21 gates to on demand + # common.jdk21_gate_linux_amd64 + espresso_compiler_stub_gate, + common.jdk21_on_demand_linux + espresso_compiler_stub_gate, // Benchmarks // AWFY peak perf. benchmarks common.jdk21_weekly_bench_linux + common.espresso_benchmark('jvm-ce-llvm', 'awfy:*' , extra_args=['--vm.Xmx1g', '--vm.Xms1g']) + {name: 'weekly-bench-espresso-jvm-ce-awfy-jdk21-linux-amd64'},