Skip to content

Commit ac04c3f

Browse files
committed
Refactor layer inclusion policy.
1 parent 04d438d commit ac04c3f

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/NativeImageGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1110,7 +1110,10 @@ protected void setupNativeImage(OptionValues options, Map<Method, CEntryPointDat
11101110
initializeBigBang(bb, options, featureHandler, nativeLibraries, debug, aMetaAccess, aUniverse.getSubstitutions(), loader, true,
11111111
new SubstrateClassInitializationPlugin(hostVM), this.isStubBasedPluginsSupported(), aProviders);
11121112

1113-
loader.classLoaderSupport.getClassesToIncludeUnconditionally().forEach(clazz -> bb.tryRegisterTypeForBaseImage(originalMetaAccess.lookupJavaType(clazz)));
1113+
if (ImageLayerBuildingSupport.buildingSharedLayer()) {
1114+
HostedImageLayerBuildingSupport.singleton().registerBaseLayerTypes(bb, originalMetaAccess, loader.classLoaderSupport);
1115+
}
1116+
11141117
if (loader.classLoaderSupport.isPreserveMode()) {
11151118
PreserveOptionsSupport.registerPreservedClasses(bb, originalMetaAccess, loader.classLoaderSupport);
11161119
}

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/imagelayer/HostedImageLayerBuildingSupport.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import org.graalvm.nativeimage.Platform;
4040
import org.graalvm.nativeimage.Platform.LINUX_AMD64;
4141

42+
import com.oracle.graal.pointsto.BigBang;
4243
import com.oracle.graal.pointsto.api.PointstoOptions;
4344
import com.oracle.graal.pointsto.util.AnalysisError;
4445
import com.oracle.svm.core.SubstrateOptions;
@@ -72,6 +73,7 @@
7273
import jdk.graal.compiler.options.OptionKey;
7374
import jdk.graal.compiler.options.OptionValues;
7475
import jdk.graal.compiler.options.OptionsContainer;
76+
import jdk.vm.ci.meta.MetaAccessProvider;
7577

7678
public final class HostedImageLayerBuildingSupport extends ImageLayerBuildingSupport {
7779

@@ -285,9 +287,9 @@ private static boolean isLayerUseOptionEnabled(OptionValues values) {
285287
return false;
286288
}
287289

290+
/** Currently layered images are only supported on {@link LINUX_AMD64}. */
288291
private static boolean supportedPlatform(Platform platform) {
289-
boolean supported = platform instanceof LINUX_AMD64;
290-
return supported;
292+
return platform instanceof LINUX_AMD64;
291293
}
292294

293295
public static HostedImageLayerBuildingSupport initialize(HostedOptionValues values, ImageClassLoader imageClassLoader, Path builderTempDir) {
@@ -395,4 +397,8 @@ public static void setupSharedLayerLibrary(NativeLibraries nativeLibs) {
395397
HostedDynamicLayerInfo.singleton().registerLibName(libName);
396398
nativeLibs.addDynamicNonJniLibrary(libName);
397399
}
400+
401+
public void registerBaseLayerTypes(BigBang bb, MetaAccessProvider originalMetaAccess, NativeImageClassLoaderSupport classLoaderSupport) {
402+
classLoaderSupport.getClassesToIncludeUnconditionally().forEach(clazz -> bb.tryRegisterTypeForBaseImage(originalMetaAccess.lookupJavaType(clazz)));
403+
}
398404
}

0 commit comments

Comments
 (0)