Skip to content

Commit 05bd82e

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

File tree

69 files changed

+242
-828
lines changed

Some content is hidden

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

69 files changed

+242
-828
lines changed

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
}
Lines changed: 10 additions & 10 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.jdk15;
25+
package com.oracle.svm.core.jdk17;
2626

2727
import java.io.File;
2828
import java.util.Deque;
@@ -32,15 +32,15 @@
3232
import com.oracle.svm.core.annotate.Delete;
3333
import com.oracle.svm.core.annotate.Substitute;
3434
import com.oracle.svm.core.annotate.TargetClass;
35-
import com.oracle.svm.core.jdk.JDK15OrLater;
35+
import com.oracle.svm.core.jdk.JDK17OrLater;
3636
import com.oracle.svm.core.jdk.NativeLibrarySupport;
3737

3838
import jdk.internal.loader.NativeLibraries;
3939
import jdk.internal.loader.NativeLibrary;
4040

41-
@TargetClass(value = ClassLoader.class, onlyWith = JDK15OrLater.class)
41+
@TargetClass(value = ClassLoader.class, onlyWith = JDK17OrLater.class)
4242
@SuppressWarnings({"static-method", "unused"})
43-
final class Target_java_lang_ClassLoader_JDK15OrLater {
43+
final class Target_java_lang_ClassLoader_JDK17OrLater {
4444

4545
@Substitute
4646
static NativeLibrary loadLibrary(Class<?> fromClass, String name) {
@@ -57,8 +57,8 @@ static NativeLibrary loadLibrary(Class<?> fromClass, File file) {
5757
}
5858
}
5959

60-
@TargetClass(value = jdk.internal.loader.NativeLibraries.class, onlyWith = JDK15OrLater.class)
61-
final class Target_jdk_internal_loader_NativeLibraries_JDK15OrLater {
60+
@TargetClass(value = jdk.internal.loader.NativeLibraries.class, onlyWith = JDK17OrLater.class)
61+
final class Target_jdk_internal_loader_NativeLibraries_JDK17OrLater {
6262

6363
/**
6464
* The NativeLibraries is only used by the `loadLibrary` methods that are substituted, so we do
@@ -88,7 +88,7 @@ public static NativeLibraries jniNativeLibraries(ClassLoader loader) {
8888
*/
8989

9090
@Delete
91-
private static native boolean load(Target_jdk_internal_loader_NativeLibraries_NativeLibraryImpl_JDK15OrLater impl, String name, boolean isBuiltin, boolean isJNI);
91+
private static native boolean load(Target_jdk_internal_loader_NativeLibraries_NativeLibraryImpl_JDK17OrLater impl, String name, boolean isBuiltin, boolean isJNI);
9292

9393
@Delete
9494
private static native void unload(String name, boolean isBuiltin, boolean isJNI, long handle);
@@ -97,9 +97,9 @@ public static NativeLibraries jniNativeLibraries(ClassLoader loader) {
9797
private static native String findBuiltinLib(String name);
9898

9999
@Delete
100-
private static native long findEntry0(Target_jdk_internal_loader_NativeLibraries_NativeLibraryImpl_JDK15OrLater lib, String name);
100+
private static native long findEntry0(Target_jdk_internal_loader_NativeLibraries_NativeLibraryImpl_JDK17OrLater lib, String name);
101101
}
102102

103-
@TargetClass(value = jdk.internal.loader.NativeLibraries.class, innerClass = "NativeLibraryImpl", onlyWith = JDK15OrLater.class)
104-
final class Target_jdk_internal_loader_NativeLibraries_NativeLibraryImpl_JDK15OrLater {
103+
@TargetClass(value = jdk.internal.loader.NativeLibraries.class, innerClass = "NativeLibraryImpl", onlyWith = JDK17OrLater.class)
104+
final class Target_jdk_internal_loader_NativeLibraries_NativeLibraryImpl_JDK17OrLater {
105105
}

0 commit comments

Comments
 (0)