Skip to content

Commit 2f3f1b3

Browse files
author
Christian Wimmer
committed
Remove support for outdated JDK versions between 11 and 17
1 parent 94cccb5 commit 2f3f1b3

File tree

70 files changed

+246
-873
lines changed

Some content is hidden

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

70 files changed

+246
-873
lines changed

substratevm/CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Native Image Changelog
22

3-
This changelog summarizes major changes to Native Image, developed under the codename **Substrate VM**.
3+
This changelog summarizes major changes to GraalVM Native Image.
44

55
## Version 22.0.0
66
* (GR-33930) Decouple HostedOptionParser setup from classpath/modulepath scanning (use ServiceLoader for collecting options).
77
* (GR-33504) Implement --add-reads for native-image and fix --add-opens error handling.
88
* (GR-33983) Remove obsolete com.oracle.svm.thirdparty.jline.JLineFeature from substratevm:LIBRARY_SUPPORT.
9+
* (GR-34577) Remove support for outdated JDK versions between 11 and 17. Since JDK versions 12, 13, 14, 15, 16 are no longer supported, there is no need to explicitly check for and allow these versions.
910

10-
## Version 21.3.0


substratevm/mx.substratevm/suite.py

Lines changed: 5 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -230,58 +230,13 @@
230230
"workingSets": "SVM",
231231
},
232232

233-
"com.oracle.svm.core.jdk14": {
234-
"subDir": "src",
235-
"sourceDirs": ["src"],
236-
"dependencies": ["com.oracle.svm.core"],
237-
"requiresConcealed" : {
238-
"java.base" : [
239-
"jdk.internal.access.foreign",
240-
],
241-
},
242-
"javaCompliance": "14+",
243-
"checkstyle": "com.oracle.svm.core",
244-
"workingSets": "SVM",
245-
},
246-
247-
"com.oracle.svm.core.jdk15": {
248-
"subDir": "src",
249-
"sourceDirs": ["src"],
250-
"dependencies": ["com.oracle.svm.core.jdk11"],
251-
"requiresConcealed" : {
252-
"java.base" : [
253-
"jdk.internal.loader",
254-
"jdk.internal.misc",
255-
"sun.invoke.util",
256-
],
257-
},
258-
"javaCompliance": "15+",
259-
"checkstyle": "com.oracle.svm.core",
260-
"workingSets": "SVM",
261-
},
262-
263-
"com.oracle.svm.core.jdk16": {
264-
"subDir": "src",
265-
"sourceDirs": ["src"],
266-
"dependencies": ["com.oracle.svm.core"],
267-
"requiresConcealed" : {
268-
"java.base" : [
269-
"jdk.internal.loader",
270-
"jdk.internal.misc",
271-
"sun.invoke.util",
272-
],
273-
},
274-
"javaCompliance": "16+",
275-
"checkstyle": "com.oracle.svm.core",
276-
"workingSets": "SVM",
277-
},
278-
279233
"com.oracle.svm.core.jdk17": {
280234
"subDir": "src",
281235
"sourceDirs": ["src"],
282-
"dependencies": ["com.oracle.svm.core"],
236+
"dependencies": ["com.oracle.svm.core.jdk11"],
283237
"requiresConcealed" : {
284238
"java.base" : [
239+
"jdk.internal.access.foreign",
285240
"jdk.internal.loader",
286241
"jdk.internal.misc",
287242
"jdk.internal.platform",
@@ -455,7 +410,7 @@
455410
],
456411
"workingSets": "SVM",
457412
},
458-
"com.oracle.svm.hosted.jdk14": {
413+
"com.oracle.svm.hosted.jdk17": {
459414
"subDir": "src",
460415
"sourceDirs": ["src"],
461416
"dependencies": [
@@ -467,7 +422,7 @@
467422
"jdk.internal.vm.ci" :
468423
["jdk.vm.ci.meta"],
469424
},
470-
"javaCompliance": "14+",
425+
"javaCompliance": "17+",
471426
"annotationProcessors": [
472427
"compiler:GRAAL_PROCESSOR",
473428
],
@@ -1079,13 +1034,10 @@
10791034
"com.oracle.svm.hosted",
10801035
"com.oracle.svm.hosted.jdk8",
10811036
"com.oracle.svm.hosted.jdk11",
1082-
"com.oracle.svm.hosted.jdk14",
1037+
"com.oracle.svm.hosted.jdk17",
10831038
"com.oracle.svm.core",
10841039
"com.oracle.svm.core.jdk8",
10851040
"com.oracle.svm.core.jdk11",
1086-
"com.oracle.svm.core.jdk14",
1087-
"com.oracle.svm.core.jdk15",
1088-
"com.oracle.svm.core.jdk16",
10891041
"com.oracle.svm.core.jdk17",
10901042
"com.oracle.svm.core.graal.amd64",
10911043
"com.oracle.svm.core.graal.aarch64",

substratevm/src/com.oracle.svm.core.graal.llvm/src/com/oracle/svm/core/graal/llvm/LLVMGenerator.java

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@
4040
import static org.graalvm.compiler.debug.GraalError.shouldNotReachHere;
4141
import static org.graalvm.compiler.debug.GraalError.unimplemented;
4242

43-
// Checkstyle: allow reflection
44-
import java.lang.reflect.Field;
45-
// Checkstyle: disallow reflection
4643
import java.util.ArrayList;
4744
import java.util.Arrays;
4845
import java.util.HashMap;
@@ -131,6 +128,7 @@
131128
import com.oracle.svm.shadowed.org.bytedeco.llvm.LLVM.LLVMBasicBlockRef;
132129
import com.oracle.svm.shadowed.org.bytedeco.llvm.LLVM.LLVMTypeRef;
133130
import com.oracle.svm.shadowed.org.bytedeco.llvm.LLVM.LLVMValueRef;
131+
import com.oracle.svm.util.ReflectionUtil;
134132

135133
import jdk.vm.ci.code.CallingConvention;
136134
import jdk.vm.ci.code.CodeCacheProvider;
@@ -2015,25 +2013,22 @@ public void emitCacheWritebackSync(boolean isPreSync) {
20152013

20162014
/**
20172015
* Gets the value of {@code jdk.internal.misc.UnsafeConstants.DATA_CACHE_LINE_FLUSH_SIZE} which
2018-
* was introduced in JDK 14 by JEP 352.
2016+
* was introduced after JDK 11 by JEP 352.
20192017
*
2020-
* This method uses reflection to be compatible with JDKs prior to 14.
2018+
* This method uses reflection to be compatible with JDK 11 and earlier.
20212019
*/
20222020
private static int initDataCacheLineFlushSize() {
2023-
if (JavaVersionUtil.JAVA_SPEC >= 14) {
2024-
Class<?> c;
2025-
try {
2026-
// Checkstyle: stop
2027-
c = Class.forName("jdk.internal.misc.UnsafeConstants");
2028-
// Checkstyle: resume
2029-
Field f = c.getDeclaredField("DATA_CACHE_LINE_FLUSH_SIZE");
2030-
f.setAccessible(true);
2031-
return (int) f.get(null);
2032-
} catch (Exception e) {
2033-
throw new GraalError(e, "Expected UnsafeConstants.DATA_CACHE_LINE_FLUSH_SIZE to exist and be readable");
2034-
}
2021+
if (JavaVersionUtil.JAVA_SPEC <= 11) {
2022+
return 0;
2023+
}
2024+
try {
2025+
// Checkstyle: stop
2026+
Class<?> c = Class.forName("jdk.internal.misc.UnsafeConstants");
2027+
// Checkstyle: resume
2028+
return ReflectionUtil.readStaticField(c, "DATA_CACHE_LINE_FLUSH_SIZE");
2029+
} catch (ClassNotFoundException e) {
2030+
throw new GraalError(e, "Expected UnsafeConstants.DATA_CACHE_LINE_FLUSH_SIZE to exist and be readable");
20352031
}
2036-
return 0;
20372032
}
20382033

20392034
private static int getDataCacheLineFlushSize() {

substratevm/src/com.oracle.svm.core.jdk11/src/com/oracle/svm/core/jdk11/Target_java_lang_Module_JDK11OrLater.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,21 @@
2424
*/
2525
package com.oracle.svm.core.jdk11;
2626

27+
import java.io.ByteArrayInputStream;
28+
import java.io.InputStream;
29+
import java.util.Arrays;
30+
import java.util.Objects;
31+
2732
import com.oracle.svm.core.annotate.Alias;
2833
import com.oracle.svm.core.annotate.RecomputeFieldValue;
2934
import com.oracle.svm.core.annotate.Substitute;
3035
import com.oracle.svm.core.annotate.TargetClass;
3136
import com.oracle.svm.core.annotate.TargetElement;
37+
import com.oracle.svm.core.jdk.JDK11OrEarlier;
3238
import com.oracle.svm.core.jdk.JDK11OrLater;
33-
import com.oracle.svm.core.jdk.JDK11To14;
3439
import com.oracle.svm.core.jdk.Resources;
3540
import com.oracle.svm.core.jdk.resources.ResourceStorageEntry;
3641

37-
import java.io.ByteArrayInputStream;
38-
import java.io.InputStream;
39-
import java.util.Arrays;
40-
import java.util.Objects;
41-
4242
@SuppressWarnings("unused")
4343
@TargetClass(value = java.lang.Module.class, onlyWith = JDK11OrLater.class)
4444
public final class Target_java_lang_Module_JDK11OrLater {
@@ -58,7 +58,7 @@ public InputStream getResourceAsStream(String name) {
5858
}
5959

6060
@Substitute //
61-
@TargetElement(onlyWith = JDK11To14.class)
61+
@TargetElement(onlyWith = {JDK11OrLater.class, JDK11OrEarlier.class})
6262
private static void defineModule0(Module module, boolean isOpen, String version, String location, String[] pns) {
6363
ModuleUtil.defineModule(module, isOpen, Arrays.asList(pns));
6464
}

substratevm/src/com.oracle.svm.core.jdk15/src/com/oracle/svm/core/jdk15/HiddenClassSupportImpl.java

Lines changed: 0 additions & 52 deletions
This file was deleted.

substratevm/src/com.oracle.svm.core.jdk16/src/com/oracle/svm/core/jdk16/JDKClassLoadingDeadlockWorkaround.java

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* or visit www.oracle.com if you need additional information or have any
2323
* questions.
2424
*/
25-
package com.oracle.svm.core.jdk16;
25+
package com.oracle.svm.core.jdk17;
2626

2727
// Checkstyle: allow reflection
2828

@@ -39,7 +39,7 @@
3939
import com.oracle.svm.core.jdk.RecordSupport;
4040
import com.oracle.svm.core.util.VMError;
4141

42-
final class RecordSupportJDK16OrLater extends RecordSupport {
42+
final class RecordSupportJDK17OrLater extends RecordSupport {
4343
@Override
4444
public boolean isRecord(Class<?> clazz) {
4545
return clazz.isRecord();
@@ -73,14 +73,14 @@ public Constructor<?> getCanonicalRecordConstructor(Class<?> clazz) {
7373
}
7474

7575
@AutomaticFeature
76-
final class RecordFeatureJDK16OrLater implements Feature {
76+
final class RecordFeatureJDK17OrLater implements Feature {
7777
@Override
7878
public boolean isInConfiguration(IsInConfigurationAccess access) {
79-
return JavaVersionUtil.JAVA_SPEC >= 16;
79+
return JavaVersionUtil.JAVA_SPEC >= 17;
8080
}
8181

8282
@Override
8383
public void afterRegistration(AfterRegistrationAccess access) {
84-
ImageSingletons.add(RecordSupport.class, new RecordSupportJDK16OrLater());
84+
ImageSingletons.add(RecordSupport.class, new RecordSupportJDK17OrLater());
8585
}
8686
}

0 commit comments

Comments
 (0)