|
48 | 48 | import com.oracle.svm.graal.hotspot.GetCompilerConfig; |
49 | 49 | import com.oracle.svm.graal.hotspot.GetJNIConfig; |
50 | 50 | import com.oracle.svm.hosted.FeatureImpl; |
51 | | -import com.oracle.svm.hosted.jni.JNIFeature; |
52 | | -import com.oracle.svm.hosted.reflect.ReflectionFeature; |
53 | 51 | import jdk.graal.compiler.options.OptionDescriptor; |
54 | 52 | import jdk.graal.compiler.options.OptionKey; |
55 | 53 | import jdk.graal.compiler.serviceprovider.LibGraalService; |
@@ -128,27 +126,8 @@ public boolean getAsBoolean() { |
128 | 126 | } |
129 | 127 | } |
130 | 128 |
|
131 | | - private GuestGraalFeature() { |
132 | | - // GuestGraalFieldsOffsetsFeature implements InternalFeature which is in |
133 | | - // the non-public package com.oracle.svm.core.feature |
134 | | - accessModulesToClass(ModuleSupport.Access.EXPORT, GuestGraalFeature.class, "org.graalvm.nativeimage.builder"); |
135 | | - |
136 | | - // GuestGraalFeature accesses a few Graal classes (see import statements above) |
137 | | - accessModulesToClass(ModuleSupport.Access.EXPORT, GuestGraalFeature.class, "jdk.graal.compiler"); |
138 | | - } |
139 | | - |
140 | 129 | @Override |
141 | 130 | public List<Class<? extends Feature>> getRequiredFeatures() { |
142 | | - /* |
143 | | - * LibGraal needs JNIFeature for the upcalls from HotSpot and ReflectionFeature to construct |
144 | | - * exceptions in jdk.internal.vm.TranslatedException.create(). However, both of these |
145 | | - * features are automatically registered (i.e. annotated by @AutomaticallyRegisteredFeature) |
146 | | - * so no need to explicitly add them here. Simply trying to look them up ensures that they |
147 | | - * are available. |
148 | | - */ |
149 | | - ImageSingletons.lookup(ReflectionFeature.class); |
150 | | - ImageSingletons.lookup(JNIFeature.class); |
151 | | - |
152 | 131 | return List.of(GuestGraalFieldsOffsetsFeature.class); |
153 | 132 | } |
154 | 133 |
|
@@ -196,6 +175,13 @@ public GuestGraalClassLoader getLoader() { |
196 | 175 | */ |
197 | 176 | @Override |
198 | 177 | public void afterRegistration(AfterRegistrationAccess access) { |
| 178 | + // GuestGraal uses a number of classes in org.graalvm.nativeimage.builder |
| 179 | + accessModulesToClass(ModuleSupport.Access.EXPORT, GuestGraalFeature.class, |
| 180 | + "org.graalvm.nativeimage.builder"); |
| 181 | + |
| 182 | + // GuestGraalFeature accesses a few Graal classes (see import statements above) |
| 183 | + accessModulesToClass(ModuleSupport.Access.EXPORT, GuestGraalFeature.class, "jdk.graal.compiler"); |
| 184 | + |
199 | 185 | ImageSingletons.add(NativeBridgeSupport.class, new GuestGraalNativeBridgeSupport()); |
200 | 186 | // Target_jdk_graal_compiler_serviceprovider_VMSupport.getIsolateID needs access to |
201 | 187 | // org.graalvm.nativeimage.impl.IsolateSupport |
|
0 commit comments