Skip to content

Commit 0288e37

Browse files
authored
Merge pull request quarkusio#50420 from zakkak/2025-10-06-drop-mandrel-23_0
Drop Mandrel/GraalVM 23.0 support
2 parents bffeba3 + 21def86 commit 0288e37

File tree

3 files changed

+7
-55
lines changed

3 files changed

+7
-55
lines changed

core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/GraalVM.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,6 @@ public static final class Version extends io.quarkus.runtime.graal.GraalVM.Versi
172172
// Get access to GRAAL_MAPPING without making it public
173173
private static final Map<String, String> GRAAL_MAPPING = io.quarkus.runtime.graal.GraalVM.Version.GRAAL_MAPPING;
174174

175-
public static final Version VERSION_23_0_0 = new Version("GraalVM 23.0.0", "23.0.0", "17", Distribution.GRAALVM);
176175
public static final Version VERSION_23_1_0 = new Version("GraalVM 23.1.0", "23.1.0", "21", Distribution.GRAALVM);
177176
public static final Version VERSION_24_0_0 = new Version("GraalVM 24.0.0", "24.0.0", "22", Distribution.GRAALVM);
178177
public static final Version VERSION_24_0_999 = new Version("GraalVM 24.0.999", "24.0.999", "22", Distribution.GRAALVM);
@@ -187,7 +186,7 @@ public static final class Version extends io.quarkus.runtime.graal.GraalVM.Versi
187186
* @deprecated Use {@link io.quarkus.runtime.graal.GraalVM.Version.MINIMUM} instead.
188187
*/
189188
@Deprecated
190-
public static final Version MINIMUM = VERSION_23_0_0;
189+
public static final Version MINIMUM = VERSION_23_1_0;
191190
/**
192191
* The current version of GraalVM supported by Quarkus.
193192
* This version is the one actively being tested and is expected to give the best experience.

core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/NativeImageBuildStep.java

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -823,12 +823,9 @@ public NativeImageInvokerInfo build() {
823823
// Generate a file with the list of built artifacts
824824
addExperimentalVMOption(nativeImageArgs, "-H:+GenerateBuildArtifactsFile");
825825

826-
// only available in GraalVM 23.1.0+
827-
if (graalVMVersion.compareTo(GraalVM.Version.VERSION_23_1_0) >= 0) {
828-
if (graalVMVersion.compareTo(GraalVM.Version.VERSION_24_0_0) < 0) {
829-
// Enabled by default in GraalVM 24.0.0.
830-
nativeImageArgs.add("--strict-image-heap");
831-
}
826+
if (graalVMVersion.compareTo(GraalVM.Version.VERSION_24_0_0) < 0) {
827+
// Enabled by default in GraalVM 24.0.0.
828+
nativeImageArgs.add("--strict-image-heap");
832829
}
833830

834831
/*
@@ -993,21 +990,9 @@ public NativeImageInvokerInfo build() {
993990

994991
if (nativeConfig.autoServiceLoaderRegistration()) {
995992
addExperimentalVMOption(nativeImageArgs, "-H:+UseServiceLoaderFeature");
996-
if (graalVMVersion.compareTo(GraalVM.Version.VERSION_23_1_0) < 0) {
997-
// When enabling, at least print what exactly is being added. Only possible in <23.1.0
998-
nativeImageArgs.add("-H:+TraceServiceLoaderFeature");
999-
}
1000993
} else {
1001994
addExperimentalVMOption(nativeImageArgs, "-H:-UseServiceLoaderFeature");
1002995
}
1003-
// This option has no effect on GraalVM 23.1+
1004-
if (graalVMVersion.compareTo(GraalVM.Version.VERSION_23_1_0) < 0) {
1005-
if (nativeConfig.fullStackTraces()) {
1006-
nativeImageArgs.add("-H:+StackTrace");
1007-
} else {
1008-
nativeImageArgs.add("-H:-StackTrace");
1009-
}
1010-
}
1011996

1012997
if (nativeConfig.enableDashboardDump()) {
1013998
addExperimentalVMOption(nativeImageArgs,
@@ -1113,13 +1098,9 @@ private void handleAdditionalProperties(List<String> command) {
11131098
}
11141099

11151100
private void addExperimentalVMOption(List<String> nativeImageArgs, String option) {
1116-
if (graalVMVersion.compareTo(GraalVM.Version.VERSION_23_1_0) >= 0) {
1117-
nativeImageArgs.add("-H:+UnlockExperimentalVMOptions");
1118-
}
1101+
nativeImageArgs.add("-H:+UnlockExperimentalVMOptions");
11191102
nativeImageArgs.add(option);
1120-
if (graalVMVersion.compareTo(GraalVM.Version.VERSION_23_1_0) >= 0) {
1121-
nativeImageArgs.add("-H:-UnlockExperimentalVMOptions");
1122-
}
1103+
nativeImageArgs.add("-H:-UnlockExperimentalVMOptions");
11231104
}
11241105
}
11251106
}

core/deployment/src/main/java/io/quarkus/deployment/steps/NativeImageFeatureStep.java

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem;
2121
import io.quarkus.deployment.builditem.nativeimage.UnsafeAccessedFieldBuildItem;
2222
import io.quarkus.deployment.pkg.NativeConfig;
23-
import io.quarkus.gizmo.AssignableResultHandle;
2423
import io.quarkus.gizmo.BranchResult;
2524
import io.quarkus.gizmo.BytecodeCreator;
2625
import io.quarkus.gizmo.CatchBlockCreator;
@@ -51,11 +50,6 @@ public class NativeImageFeatureStep {
5150
"initializeAtRunTime", void.class, Class[].class);
5251
private static final MethodDescriptor INITIALIZE_PACKAGES_AT_RUN_TIME = ofMethod(RuntimeClassInitialization.class,
5352
"initializeAtRunTime", void.class, String[].class);
54-
public static final String RUNTIME_CLASS_INITIALIZATION_SUPPORT = "org.graalvm.nativeimage.impl.RuntimeClassInitializationSupport";
55-
private static final MethodDescriptor RERUN_INITIALIZATION = ofMethod(
56-
RUNTIME_CLASS_INITIALIZATION_SUPPORT,
57-
"rerunInitialization", void.class, Class.class, String.class);
58-
5953
static final String BEFORE_ANALYSIS_ACCESS = Feature.BeforeAnalysisAccess.class.getName();
6054

6155
@BuildStep
@@ -198,29 +192,7 @@ public void write(String s, byte[] bytes) {
198192
runtimeReinitializedClasses.returnValue(classesArray);
199193

200194
ResultHandle classes = overallCatch.invokeStaticMethod(runtimeReinitializedClasses.getMethodDescriptor());
201-
202-
ResultHandle graalVMVersion = overallCatch.invokeStaticMethod(GRAALVM_VERSION_GET_CURRENT);
203-
BranchResult graalVm23_1Test = overallCatch
204-
.ifGreaterEqualZero(overallCatch.invokeVirtualMethod(GRAALVM_VERSION_COMPARE_TO, graalVMVersion,
205-
overallCatch.marshalAsArray(int.class, overallCatch.load(23), overallCatch.load(1))));
206-
/* GraalVM >= 23.1 */
207-
try (BytecodeCreator greaterEqual23_1 = graalVm23_1Test.trueBranch()) {
208-
greaterEqual23_1.invokeStaticMethod(INITIALIZE_CLASSES_AT_RUN_TIME, classes);
209-
}
210-
/* GraalVM < 23.1 */
211-
try (BytecodeCreator less23_1 = graalVm23_1Test.falseBranch()) {
212-
ResultHandle quarkus = less23_1.load("Quarkus");
213-
ResultHandle imageSingleton = less23_1.invokeStaticMethod(IMAGE_SINGLETONS_LOOKUP,
214-
less23_1.loadClassFromTCCL(RUNTIME_CLASS_INITIALIZATION_SUPPORT));
215-
ResultHandle arraySize = less23_1.arrayLength(classes);
216-
AssignableResultHandle index = less23_1.createVariable(int.class);
217-
less23_1.assign(index, less23_1.load(0));
218-
try (BytecodeCreator loop = less23_1.whileLoop(c -> c.ifIntegerLessThan(index, arraySize)).block()) {
219-
loop.invokeInterfaceMethod(RERUN_INITIALIZATION, imageSingleton, loop.readArrayValue(classes, index),
220-
quarkus);
221-
loop.assign(index, loop.increment(index));
222-
}
223-
}
195+
overallCatch.invokeStaticMethod(INITIALIZE_CLASSES_AT_RUN_TIME, classes);
224196
}
225197

226198
// Ensure registration of fields being accessed through unsafe is done last to ensure that the class

0 commit comments

Comments
 (0)