Skip to content

Commit 92ef19a

Browse files
committed
Label part of ImageSingletons as LayeredImageSingleton
1 parent ac1398c commit 92ef19a

File tree

57 files changed

+416
-114
lines changed

Some content is hidden

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

57 files changed

+416
-114
lines changed

substratevm/src/com.oracle.svm.core.genscavenge/src/com/oracle/svm/core/genscavenge/HeapImpl.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,13 @@ public HeapImpl() {
130130
this.oldGeneration = SerialGCOptions.useCompactingOldGen() ? new CompactingOldGeneration("OldGeneration")
131131
: new CopyingOldGeneration("OldGeneration");
132132
HeapParameters.initialize();
133-
DiagnosticThunkRegistry.singleton().add(new DumpHeapSettingsAndStatistics());
134-
DiagnosticThunkRegistry.singleton().add(new DumpHeapUsage());
135-
DiagnosticThunkRegistry.singleton().add(new DumpGCPolicy());
136-
DiagnosticThunkRegistry.singleton().add(new DumpImageHeapInfo());
137-
DiagnosticThunkRegistry.singleton().add(new DumpChunkInfo());
133+
if (ImageLayerBuildingSupport.firstImageBuild()) {
134+
DiagnosticThunkRegistry.singleton().add(new DumpHeapSettingsAndStatistics());
135+
DiagnosticThunkRegistry.singleton().add(new DumpHeapUsage());
136+
DiagnosticThunkRegistry.singleton().add(new DumpGCPolicy());
137+
DiagnosticThunkRegistry.singleton().add(new DumpImageHeapInfo());
138+
DiagnosticThunkRegistry.singleton().add(new DumpChunkInfo());
139+
}
138140
}
139141

140142
@Fold

substratevm/src/com.oracle.svm.core.genscavenge/src/com/oracle/svm/core/genscavenge/JfrGCEventSupport.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.oracle.svm.core.feature.AutomaticallyRegisteredFeature;
3535
import com.oracle.svm.core.feature.InternalFeature;
3636
import com.oracle.svm.core.heap.GCCause;
37+
import com.oracle.svm.core.imagelayer.ImageLayerBuildingSupport;
3738
import com.oracle.svm.core.jfr.HasJfrSupport;
3839
import com.oracle.svm.core.jfr.JfrEvent;
3940
import com.oracle.svm.core.jfr.JfrGCName;
@@ -42,6 +43,7 @@
4243
import com.oracle.svm.core.jfr.JfrNativeEventWriterData;
4344
import com.oracle.svm.core.jfr.JfrNativeEventWriterDataAccess;
4445
import com.oracle.svm.core.jfr.JfrTicks;
46+
import com.oracle.svm.core.layeredimagesingleton.UnsupportedLayeredSingleton;
4547
import com.oracle.svm.core.util.VMError;
4648

4749
class JfrGCEventSupport {
@@ -139,10 +141,10 @@ private int popPhase() {
139141
}
140142

141143
@AutomaticallyRegisteredFeature
142-
class JfrGCEventFeature implements InternalFeature {
144+
class JfrGCEventFeature implements InternalFeature, UnsupportedLayeredSingleton {
143145
@Override
144146
public boolean isInConfiguration(IsInConfigurationAccess access) {
145-
return SubstrateOptions.useSerialGC();
147+
return SubstrateOptions.useSerialGC() && !ImageLayerBuildingSupport.buildingImageLayer();
146148
}
147149

148150
@Override

substratevm/src/com.oracle.svm.core.graal.amd64/src/com/oracle/svm/core/graal/amd64/SubstrateAMD64Feature.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import com.oracle.svm.core.graal.code.SubstrateVectorArchitectureFactory;
4242
import com.oracle.svm.core.graal.meta.SubstrateRegisterConfig.ConfigKind;
4343
import com.oracle.svm.core.heap.ReferenceAccess;
44+
import com.oracle.svm.core.layeredimagesingleton.FeatureSingleton;
4445

4546
import jdk.graal.compiler.core.common.spi.ForeignCallsProvider;
4647
import jdk.graal.compiler.core.common.spi.MetaAccessExtensionProvider;
@@ -58,7 +59,7 @@
5859

5960
@AutomaticallyRegisteredFeature
6061
@Platforms(Platform.AMD64.class)
61-
class SubstrateAMD64Feature implements InternalFeature {
62+
class SubstrateAMD64Feature implements InternalFeature, FeatureSingleton {
6263

6364
@Override
6465
public void afterRegistration(AfterRegistrationAccess access) {

substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/PosixLibMSupport.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@
2727
import com.oracle.svm.core.Uninterruptible;
2828
import com.oracle.svm.core.feature.AutomaticallyRegisteredImageSingleton;
2929
import com.oracle.svm.core.headers.LibMSupport;
30+
import com.oracle.svm.core.imagelayer.BuildingMonolithicImage;
3031
import com.oracle.svm.core.posix.headers.PosixLibM;
3132

32-
@AutomaticallyRegisteredImageSingleton(LibMSupport.class)
33+
@AutomaticallyRegisteredImageSingleton(value = LibMSupport.class, onlyWith = BuildingMonolithicImage.class)
3334
public class PosixLibMSupport implements LibMSupport {
3435
@Override
3536
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)

substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/PosixLogHandler.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,24 @@
2727
import java.io.FileDescriptor;
2828
import java.util.EnumSet;
2929

30-
import com.oracle.svm.core.imagelayer.ImageLayerBuildingSupport;
3130
import org.graalvm.nativeimage.LogHandler;
3231
import org.graalvm.nativeimage.c.type.CCharPointer;
3332
import org.graalvm.word.UnsignedWord;
3433

3534
import com.oracle.svm.core.SubstrateDiagnostics;
3635
import com.oracle.svm.core.feature.AutomaticallyRegisteredFeature;
37-
import com.oracle.svm.core.feature.InternalFeature;
3836
import com.oracle.svm.core.headers.LibC;
37+
import com.oracle.svm.core.layeredimagesingleton.InitialLayerInternalFeature;
3938
import com.oracle.svm.core.layeredimagesingleton.InitialLayerOnlyImageSingleton;
4039
import com.oracle.svm.core.layeredimagesingleton.LayeredImageSingletonBuilderFlags;
4140
import com.oracle.svm.core.log.Log;
4241
import com.oracle.svm.core.thread.VMThreads;
4342

4443
@AutomaticallyRegisteredFeature
45-
class PosixLogHandlerFeature implements InternalFeature {
44+
class PosixLogHandlerFeature implements InitialLayerInternalFeature {
4645
@Override
4746
public void beforeAnalysis(BeforeAnalysisAccess access) {
48-
if (ImageLayerBuildingSupport.firstImageBuild()) {
49-
Log.finalizeDefaultLogHandler(new PosixLogHandler());
50-
}
47+
Log.finalizeDefaultLogHandler(new PosixLogHandler());
5148
}
5249
}
5350

substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/PosixVirtualMemoryProvider.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import static com.oracle.svm.core.posix.headers.Mman.NoTransitions.munmap;
4040
import static jdk.graal.compiler.word.Word.nullPointer;
4141

42-
import jdk.graal.compiler.word.Word;
4342
import org.graalvm.nativeimage.ImageSingletons;
4443
import org.graalvm.nativeimage.Platform;
4544
import org.graalvm.nativeimage.c.type.WordPointer;
@@ -52,14 +51,16 @@
5251
import com.oracle.svm.core.c.CGlobalData;
5352
import com.oracle.svm.core.c.CGlobalDataFactory;
5453
import com.oracle.svm.core.feature.AutomaticallyRegisteredFeature;
55-
import com.oracle.svm.core.feature.InternalFeature;
54+
import com.oracle.svm.core.layeredimagesingleton.InitialLayerInternalFeature;
5655
import com.oracle.svm.core.os.VirtualMemoryProvider;
5756
import com.oracle.svm.core.posix.headers.Unistd;
5857
import com.oracle.svm.core.util.PointerUtils;
5958
import com.oracle.svm.core.util.UnsignedUtils;
6059

60+
import jdk.graal.compiler.word.Word;
61+
6162
@AutomaticallyRegisteredFeature
62-
class PosixVirtualMemoryProviderFeature implements InternalFeature {
63+
class PosixVirtualMemoryProviderFeature implements InitialLayerInternalFeature {
6364
@Override
6465
public void beforeAnalysis(BeforeAnalysisAccess access) {
6566
if (!ImageSingletons.contains(VirtualMemoryProvider.class)) {

substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/darwin/DarwinImageSingletonsFeature.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626

2727
import org.graalvm.nativeimage.ImageSingletons;
2828

29-
import com.oracle.svm.core.feature.InternalFeature;
30-
import com.oracle.svm.core.os.ImageHeapProvider;
3129
import com.oracle.svm.core.feature.AutomaticallyRegisteredFeature;
30+
import com.oracle.svm.core.layeredimagesingleton.InitialLayerInternalFeature;
31+
import com.oracle.svm.core.os.ImageHeapProvider;
3232

3333
@AutomaticallyRegisteredFeature
34-
class DarwinImageSingletonsFeature implements InternalFeature {
34+
class DarwinImageSingletonsFeature implements InitialLayerInternalFeature {
3535
@Override
3636
public void duringSetup(DuringSetupAccess access) {
3737
if (!ImageSingletons.contains(ImageHeapProvider.class)) {

substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/linux/DumpLinuxOSInfo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
import com.oracle.svm.core.c.CGlobalData;
3636
import com.oracle.svm.core.c.CGlobalDataFactory;
3737
import com.oracle.svm.core.feature.AutomaticallyRegisteredFeature;
38-
import com.oracle.svm.core.feature.InternalFeature;
3938
import com.oracle.svm.core.heap.RestrictHeapAccess;
39+
import com.oracle.svm.core.layeredimagesingleton.InitialLayerInternalFeature;
4040
import com.oracle.svm.core.log.Log;
4141
import com.oracle.svm.core.os.RawFileOperationSupport;
4242

@@ -103,7 +103,7 @@ private static int countLineBytes(CCharPointer buffer, int len) {
103103
}
104104

105105
@AutomaticallyRegisteredFeature
106-
class DumpLinuxOSInfoFeature implements InternalFeature {
106+
class DumpLinuxOSInfoFeature implements InitialLayerInternalFeature {
107107
@Override
108108
public void afterRegistration(AfterRegistrationAccess access) {
109109
if (!SubstrateOptions.AsyncSignalSafeDiagnostics.getValue()) {

substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/linux/LinuxImageSingletonsFeature.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@
2929
import com.oracle.svm.core.c.libc.BionicLibC;
3030
import com.oracle.svm.core.c.libc.LibCBase;
3131
import com.oracle.svm.core.feature.AutomaticallyRegisteredFeature;
32-
import com.oracle.svm.core.feature.InternalFeature;
3332
import com.oracle.svm.core.headers.LibCSupport;
33+
import com.oracle.svm.core.layeredimagesingleton.InitialLayerInternalFeature;
3434
import com.oracle.svm.core.os.ImageHeapProvider;
3535

3636
@AutomaticallyRegisteredFeature
37-
class LinuxImageSingletonsFeature implements InternalFeature {
37+
class LinuxImageSingletonsFeature implements InitialLayerInternalFeature {
3838
@Override
3939
public void duringSetup(DuringSetupAccess access) {
4040
if (LibCBase.singleton() instanceof BionicLibC) {

substratevm/src/com.oracle.svm.core.windows/src/com/oracle/svm/core/windows/WindowsFeature.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@
2626

2727
import org.graalvm.nativeimage.ImageSingletons;
2828

29-
import com.oracle.svm.core.feature.InternalFeature;
29+
import com.oracle.svm.core.feature.AutomaticallyRegisteredFeature;
30+
import com.oracle.svm.core.layeredimagesingleton.InitialLayerInternalFeature;
3031
import com.oracle.svm.core.log.Log;
3132
import com.oracle.svm.core.os.ImageHeapProvider;
32-
import com.oracle.svm.core.feature.AutomaticallyRegisteredFeature;
3333

3434
@AutomaticallyRegisteredFeature
35-
class WindowsFeature implements InternalFeature {
35+
class WindowsFeature implements InitialLayerInternalFeature {
3636

3737
@Override
3838
public void duringSetup(DuringSetupAccess access) {

0 commit comments

Comments
 (0)