public abstract class com.oracle.svm.hosted.image.NativeBootImageViaCC extends com.oracle.svm.hosted.image.NativeBootImage
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.oracle.svm.hosted.image.NativeBootImageViaCC
super_class: com.oracle.svm.hosted.image.NativeBootImage
{
private static volatile int[] $SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
public void <init>(com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind, com.oracle.svm.hosted.meta.HostedUniverse, com.oracle.svm.hosted.meta.HostedMetaAccess, com.oracle.svm.hosted.c.NativeLibraries, com.oracle.svm.hosted.image.NativeImageHeap, com.oracle.svm.hosted.image.NativeImageCodeCache, java.util.List<com.oracle.svm.hosted.meta.HostedMethod>, java.lang.ClassLoader);
descriptor: (Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;Lcom/oracle/svm/hosted/meta/HostedUniverse;Lcom/oracle/svm/hosted/meta/HostedMetaAccess;Lcom/oracle/svm/hosted/c/NativeLibraries;Lcom/oracle/svm/hosted/image/NativeImageHeap;Lcom/oracle/svm/hosted/image/NativeImageCodeCache;Ljava/util/List;Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=9, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
aload 6
aload 7
aload 8
invokespecial com.oracle.svm.hosted.image.NativeBootImage.<init>:(Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;Lcom/oracle/svm/hosted/meta/HostedUniverse;Lcom/oracle/svm/hosted/meta/HostedMetaAccess;Lcom/oracle/svm/hosted/c/NativeLibraries;Lcom/oracle/svm/hosted/image/NativeImageHeap;Lcom/oracle/svm/hosted/image/NativeImageCodeCache;Ljava/util/List;Ljava/lang/ClassLoader;)V
1: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;
0 2 1 k Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
0 2 2 universe Lcom/oracle/svm/hosted/meta/HostedUniverse;
0 2 3 metaAccess Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
0 2 4 nativeLibs Lcom/oracle/svm/hosted/c/NativeLibraries;
0 2 5 heap Lcom/oracle/svm/hosted/image/NativeImageHeap;
0 2 6 codeCache Lcom/oracle/svm/hosted/image/NativeImageCodeCache;
0 2 7 entryPoints Ljava/util/List<Lcom/oracle/svm/hosted/meta/HostedMethod;>;
0 2 8 imageClassLoader Ljava/lang/ClassLoader;
Signature: (Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;Lcom/oracle/svm/hosted/meta/HostedUniverse;Lcom/oracle/svm/hosted/meta/HostedMetaAccess;Lcom/oracle/svm/hosted/c/NativeLibraries;Lcom/oracle/svm/hosted/image/NativeImageHeap;Lcom/oracle/svm/hosted/image/NativeImageCodeCache;Ljava/util/List<Lcom/oracle/svm/hosted/meta/HostedMethod;>;Ljava/lang/ClassLoader;)V
MethodParameters:
Name Flags
k
universe
metaAccess
nativeLibs
heap
codeCache
entryPoints
imageClassLoader
public com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind getOutputKind();
descriptor: ()Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC.kind:Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;
private static boolean removeUnusedSymbols();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.oracle.svm.core.SubstrateOptions.RemoveUnusedSymbols:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.hasBeenSet:()Z
ifeq 2
1: getstatic com.oracle.svm.core.SubstrateOptions.RemoveUnusedSymbols:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
2: StackMap locals:
StackMap stack:
ldc Lorg/graalvm/nativeimage/Platform$LINUX;
invokestatic org.graalvm.nativeimage.Platform.includedIn:(Ljava/lang/Class;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
com.oracle.svm.core.LinkerInvocation getLinkerInvocation(java.nio.file.Path, java.nio.file.Path, java.lang.String);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/lang/String;)Lcom/oracle/svm/core/LinkerInvocation;
flags: (0x0000)
Code:
stack=6, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic com.oracle.svm.hosted.image.NativeBootImageViaCC.$SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format:()[I
invokestatic com.oracle.objectfile.ObjectFile.getNativeFormat:()Lcom/oracle/objectfile/ObjectFile$Format;
invokevirtual com.oracle.objectfile.ObjectFile$Format.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 5
2: 1
3: 3
default: 5
}
1: StackMap locals:
StackMap stack:
new com.oracle.svm.hosted.image.NativeBootImageViaCC$DarwinCCLinkerInvocation
dup
aload 0
invokespecial com.oracle.svm.hosted.image.NativeBootImageViaCC$DarwinCCLinkerInvocation.<init>:(Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;)V
astore 4
start local 4 2: goto 6
end local 4 3: StackMap locals:
StackMap stack:
new com.oracle.svm.hosted.image.NativeBootImageViaCC$WindowsCCLinkerInvocation
dup
aload 0
invokespecial com.oracle.svm.hosted.image.NativeBootImageViaCC$WindowsCCLinkerInvocation.<init>:(Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;)V
astore 4
start local 4 4: goto 6
end local 4 5: StackMap locals:
StackMap stack:
new com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation
dup
aload 0
invokespecial com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.<init>:(Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;)V
astore 4
start local 4 6: StackMap locals: com.oracle.svm.hosted.image.CCLinkerInvocation
StackMap stack:
getstatic com.oracle.svm.core.SubstrateOptions.AdditionalLinkerOptions:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.hasBeenSet:()Z
ifeq 8
7: aload 4
getfield com.oracle.svm.hosted.image.CCLinkerInvocation.additionalPreOptions:Ljava/util/List;
getstatic com.oracle.svm.core.SubstrateOptions.AdditionalLinkerOptions:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: StackMap locals:
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual com.oracle.svm.hosted.image.NativeBootImageViaCC.getBootImageKind:()Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
invokevirtual com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind.getFilenameSuffix:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 5
start local 5 9: aload 5
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifeq 10
iconst_0
goto 11
StackMap locals: java.nio.file.Path
StackMap stack:
10: iconst_1
StackMap locals:
StackMap stack: int
11: ldc "Cannot write image to %s. Path exists as directory. (Use -H:Name=<image name>)"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
12: aload 4
aload 5
invokevirtual com.oracle.svm.hosted.image.CCLinkerInvocation.setOutputFile:(Ljava/nio/file/Path;)V
13: aload 4
aload 0
invokevirtual com.oracle.svm.hosted.image.NativeBootImageViaCC.getOutputKind:()Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
invokevirtual com.oracle.svm.hosted.image.CCLinkerInvocation.setOutputKind:(Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;)V
14: aload 4
aload 2
invokevirtual com.oracle.svm.hosted.image.CCLinkerInvocation.setTempDirectory:(Ljava/nio/file/Path;)V
15: aload 4
aload 2
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
invokevirtual com.oracle.svm.hosted.image.CCLinkerInvocation.addLibPath:(Ljava/lang/String;)V
16: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC.nativeLibs:Lcom/oracle/svm/hosted/c/NativeLibraries;
invokevirtual com.oracle.svm.hosted.c.NativeLibraries.getLibraryPaths:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 19
StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.image.CCLinkerInvocation java.nio.file.Path top java.util.Iterator
StackMap stack:
17: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 18: aload 4
aload 6
invokevirtual com.oracle.svm.hosted.image.CCLinkerInvocation.addLibPath:(Ljava/lang/String;)V
end local 6 19: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
20: ldc ","
getstatic com.oracle.svm.core.SubstrateOptions.LinkerRPath:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String[]
invokestatic com.oracle.svm.core.option.OptionUtils.flatten:(Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 23
StackMap locals:
StackMap stack:
21: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 22: aload 4
aload 6
invokevirtual com.oracle.svm.hosted.image.CCLinkerInvocation.addRPath:(Ljava/lang/String;)V
end local 6 23: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
24: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC.nativeLibs:Lcom/oracle/svm/hosted/c/NativeLibraries;
invokevirtual com.oracle.svm.hosted.c.NativeLibraries.getLibraries:()Ljava/util/Collection;
astore 6
start local 6 25: ldc Lorg/graalvm/nativeimage/Platform$LINUX;
invokestatic org.graalvm.nativeimage.Platform.includedIn:(Ljava/lang/Class;)Z
ifeq 27
ldc Lcom/oracle/svm/core/c/libc/LibCBase;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.core.c.libc.LibCBase
invokeinterface com.oracle.svm.core.c.libc.LibCBase.getName:()Ljava/lang/String;
ldc "bionic"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 27
26: aload 6
invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
com/oracle/svm/hosted/image/NativeBootImageViaCC.lambda$0(Ljava/lang/String;)Z (6)
(Ljava/lang/String;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Collection
astore 6
27: StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.image.CCLinkerInvocation java.nio.file.Path java.util.Collection
StackMap stack:
aload 6
aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic accept(Lcom/oracle/svm/hosted/image/CCLinkerInvocation;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
com/oracle/svm/hosted/image/CCLinkerInvocation.addLinkedLibrary(Ljava/lang/String;)V (5)
(Ljava/lang/String;)V
invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
28: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC.codeCache:Lcom/oracle/svm/hosted/image/NativeImageCodeCache;
aload 2
aload 3
invokevirtual com.oracle.svm.hosted.image.NativeImageCodeCache.getCCInputFiles:(Ljava/nio/file/Path;Ljava/lang/String;)[Ljava/nio/file/Path;
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 32
StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.image.CCLinkerInvocation java.nio.file.Path java.util.Collection top top int int java.nio.file.Path[]
StackMap stack:
29: aload 11
iload 9
aaload
astore 8
start local 8 30: aload 4
aload 8
invokevirtual com.oracle.svm.hosted.image.CCLinkerInvocation.addInputFile:(Ljava/nio/file/Path;)V
end local 8 31: iinc 9 1
StackMap locals:
StackMap stack:
32: iload 9
iload 10
if_icmplt 29
33: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC.nativeLibs:Lcom/oracle/svm/hosted/c/NativeLibraries;
invokevirtual com.oracle.svm.hosted.c.NativeLibraries.getStaticLibraries:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 9
goto 36
StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.image.CCLinkerInvocation java.nio.file.Path java.util.Collection top top java.util.Iterator
StackMap stack:
34: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 8
start local 8 35: aload 4
aload 8
invokevirtual com.oracle.svm.hosted.image.CCLinkerInvocation.addInputFile:(Ljava/nio/file/Path;)V
end local 8 36: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 34
37: aload 4
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;
0 38 1 outputDirectory Ljava/nio/file/Path;
0 38 2 tempDirectory Ljava/nio/file/Path;
0 38 3 imageName Ljava/lang/String;
2 3 4 inv Lcom/oracle/svm/hosted/image/CCLinkerInvocation;
4 5 4 inv Lcom/oracle/svm/hosted/image/CCLinkerInvocation;
6 38 4 inv Lcom/oracle/svm/hosted/image/CCLinkerInvocation;
9 38 5 outputFile Ljava/nio/file/Path;
18 19 6 libraryPath Ljava/lang/String;
22 23 6 rPath Ljava/lang/String;
25 38 6 libraries Ljava/util/Collection<Ljava/lang/String;>;
30 31 8 filename Ljava/nio/file/Path;
35 36 8 staticLibraryPath Ljava/nio/file/Path;
MethodParameters:
Name Flags
outputDirectory
tempDirectory
imageName
private static java.util.List<java.lang.String> diagnoseLinkerFailure(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
ldc "access beyond end of merged section"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 3
2: aload 1
ldc "Native Image is using a linker that appears to be incompatible with the tool chain used to build the JDK static libraries. The latter is typically shown in the output of `java -Xinternalversion`."
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals: java.util.List
StackMap stack:
getstatic com.oracle.svm.core.SubstrateOptions.ForceNoROSectionRelocations:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 6
aload 0
ldc "fatal error: cannot find "
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 5
4: aload 0
ldc "error: invalid linker name in argument"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 6
5: StackMap locals:
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
getstatic com.oracle.svm.core.SubstrateOptions.ForceNoROSectionRelocations:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " option cannot be used if ld.gold linker is missing from the host system"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: StackMap locals:
StackMap stack:
ldc ".*cannot find -l([^\\s]+)\\s.*"
bipush 32
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
astore 2
start local 2 7: aload 2
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 3
start local 3 8: aload 3
invokevirtual java.util.regex.Matcher.matches:()Z
ifeq 17
9: invokestatic com.oracle.svm.core.OS.getCurrent:()Lcom/oracle/svm/core/OS;
astore 4
start local 4 10: aload 4
getstatic com.oracle.svm.core.OS.WINDOWS:Lcom/oracle/svm/core/OS;
if_acmpne 11
ldc ""
goto 12
StackMap locals: java.util.regex.Pattern java.util.regex.Matcher com.oracle.svm.core.OS
StackMap stack:
11: ldc "lib"
StackMap locals:
StackMap stack: java.lang.String
12: astore 5
start local 5 13: aload 4
getstatic com.oracle.svm.core.OS.WINDOWS:Lcom/oracle/svm/core/OS;
if_acmpne 14
ldc ".lib"
goto 15
StackMap locals: java.lang.String
StackMap stack:
14: ldc ".a"
StackMap locals:
StackMap stack: java.lang.String
15: astore 6
start local 6 16: aload 1
ldc "It appears as though %s%s%s is missing. Please install it."
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
dup
iconst_1
aload 3
iconst_1
invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
aastore
dup
iconst_2
aload 6
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 5 end local 4 17: StackMap locals:
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 linkerOutput Ljava/lang/String;
1 18 1 potentialCauses Ljava/util/List<Ljava/lang/String;>;
7 18 2 p Ljava/util/regex/Pattern;
8 18 3 m Ljava/util/regex/Matcher;
10 17 4 os Lcom/oracle/svm/core/OS;
13 17 5 libPrefix Ljava/lang/String;
16 17 6 libSuffix Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
linkerOutput
public com.oracle.svm.core.LinkerInvocation write(org.graalvm.compiler.debug.DebugContext, java.nio.file.Path, java.nio.file.Path, java.lang.String, com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl);
descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/lang/String;Lcom/oracle/svm/hosted/FeatureImpl$BeforeImageWriteAccessImpl;)Lcom/oracle/svm/core/LinkerInvocation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=19, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aconst_null
astore 6
aconst_null
astore 7
1: aload 1
ldc "Writing native image"
invokevirtual org.graalvm.compiler.debug.DebugContext.logAndIndent:(Ljava/lang/String;)Lorg/graalvm/compiler/debug/Indent;
astore 8
start local 8 2: aload 0
aload 1
aload 3
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic com.oracle.objectfile.ObjectFile.getFilenameSuffix:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
invokevirtual com.oracle.svm.hosted.image.NativeBootImageViaCC.write:(Lorg/graalvm/compiler/debug/DebugContext;Ljava/nio/file/Path;)V
3: getstatic com.oracle.svm.hosted.NativeImageOptions.ExitAfterRelocatableImageWrite:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 6
4: aload 8
ifnull 5
aload 8
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
5: StackMap locals: java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack:
aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
aload 4
invokevirtual com.oracle.svm.hosted.image.NativeBootImageViaCC.getLinkerInvocation:(Ljava/nio/file/Path;Ljava/nio/file/Path;Ljava/lang/String;)Lcom/oracle/svm/core/LinkerInvocation;
astore 9
start local 9 7: aload 5
invokevirtual com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl.getLinkerInvocationTransformers:()Ljava/lang/Iterable;
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 11
goto 10
StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC org.graalvm.compiler.debug.DebugContext java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent com.oracle.svm.core.LinkerInvocation top java.util.Iterator
StackMap stack:
8: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.function.Function
astore 10
start local 10 9: aload 10
aload 9
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.core.LinkerInvocation
astore 9
end local 10 10: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: aload 9
invokeinterface com.oracle.svm.core.LinkerInvocation.getCommand:()Ljava/util/List;
astore 10
start local 10 12: aload 10
iconst_0
invokestatic com.oracle.svm.core.SubstrateUtil.getShellCommandString:(Ljava/util/List;Z)Ljava/lang/String;
astore 11
start local 11 13: aconst_null
astore 12
start local 12 14: aload 10
aload 9
invokeinterface com.oracle.svm.core.LinkerInvocation.getTempDirectory:()Ljava/nio/file/Path;
invokestatic com.oracle.svm.hosted.c.util.FileUtils.prepareCommand:(Ljava/util/List;Ljava/nio/file/Path;)Ljava/lang/ProcessBuilder;
astore 13
start local 13 15: aload 13
iconst_1
invokevirtual java.lang.ProcessBuilder.redirectErrorStream:(Z)Ljava/lang/ProcessBuilder;
pop
16: aload 13
invokestatic com.oracle.svm.hosted.c.util.FileUtils.traceCommand:(Ljava/lang/ProcessBuilder;)V
17: aload 13
invokevirtual java.lang.ProcessBuilder.start:()Ljava/lang/Process;
astore 12
18: aconst_null
astore 15
aconst_null
astore 16
19: aload 12
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
astore 17
start local 17 20: aload 17
invokestatic com.oracle.svm.hosted.c.util.FileUtils.readAllLines:(Ljava/io/InputStream;)Ljava/util/List;
astore 14
start local 14 21: aload 14
invokestatic com.oracle.svm.hosted.c.util.FileUtils.traceCommandOutput:(Ljava/util/List;)V
22: aload 17
ifnull 28
aload 17
invokevirtual java.io.InputStream.close:()V
goto 28
end local 14 StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC org.graalvm.compiler.debug.DebugContext java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent com.oracle.svm.core.LinkerInvocation java.util.List java.lang.String java.lang.Process java.lang.ProcessBuilder top java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
23: astore 15
aload 17
ifnull 24
aload 17
invokevirtual java.io.InputStream.close:()V
end local 17 StackMap locals:
StackMap stack:
24: aload 15
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
25: astore 16
aload 15
ifnonnull 26
aload 16
astore 15
goto 27
StackMap locals:
StackMap stack:
26: aload 15
aload 16
if_acmpeq 27
aload 15
aload 16
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
27: aload 15
athrow
start local 14 28: StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC org.graalvm.compiler.debug.DebugContext java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent com.oracle.svm.core.LinkerInvocation java.util.List java.lang.String java.lang.Process java.lang.ProcessBuilder java.util.List
StackMap stack:
aload 12
invokevirtual java.lang.Process.waitFor:()I
istore 15
start local 15 29: iload 15
ifeq 40
30: invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
aload 14
invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
astore 16
start local 16 31: new java.lang.StringBuilder
dup
ldc "Linker command exited with "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 15
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 11
aload 16
invokestatic com.oracle.svm.hosted.image.NativeBootImageViaCC.handleLinkerFailure:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 16 end local 15 end local 14 end local 13 32: StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC org.graalvm.compiler.debug.DebugContext java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent com.oracle.svm.core.LinkerInvocation java.util.List java.lang.String java.lang.Process
StackMap stack: java.io.IOException
astore 13
start local 13 33: aload 13
invokevirtual java.io.IOException.toString:()Ljava/lang/String;
aload 11
aconst_null
invokestatic com.oracle.svm.hosted.image.NativeBootImageViaCC.handleLinkerFailure:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 13 34: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
35: new com.oracle.svm.core.util.InterruptImageBuilding
dup
new java.lang.StringBuilder
dup
ldc "Interrupted during native-image linking step for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.oracle.svm.core.util.InterruptImageBuilding.<init>:(Ljava/lang/String;)V
athrow
36: StackMap locals:
StackMap stack: java.lang.Throwable
astore 18
37: aload 12
ifnull 39
38: aload 12
invokevirtual java.lang.Process.destroy:()V
39: StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC org.graalvm.compiler.debug.DebugContext java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent com.oracle.svm.core.LinkerInvocation java.util.List java.lang.String java.lang.Process top top top top top java.lang.Throwable
StackMap stack:
aload 18
athrow
40: StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC org.graalvm.compiler.debug.DebugContext java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent com.oracle.svm.core.LinkerInvocation java.util.List java.lang.String java.lang.Process
StackMap stack:
aload 12
ifnull 42
41: aload 12
invokevirtual java.lang.Process.destroy:()V
42: StackMap locals:
StackMap stack:
aload 9
43: aload 8
ifnull 44
aload 8
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
44: StackMap locals:
StackMap stack: com.oracle.svm.core.LinkerInvocation
areturn
end local 12 end local 11 end local 10 end local 9 StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC org.graalvm.compiler.debug.DebugContext java.nio.file.Path java.nio.file.Path java.lang.String com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.Indent
StackMap stack: java.lang.Throwable
45: astore 6
46: aload 8
ifnull 47
aload 8
invokeinterface org.graalvm.compiler.debug.Indent.close:()V
end local 8 StackMap locals:
StackMap stack:
47: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
48: astore 7
aload 6
ifnonnull 49
aload 7
astore 6
goto 50
StackMap locals:
StackMap stack:
49: aload 6
aload 7
if_acmpeq 50
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
50: aload 6
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;
0 51 1 debug Lorg/graalvm/compiler/debug/DebugContext;
0 51 2 outputDirectory Ljava/nio/file/Path;
0 51 3 tempDirectory Ljava/nio/file/Path;
0 51 4 imageName Ljava/lang/String;
0 51 5 config Lcom/oracle/svm/hosted/FeatureImpl$BeforeImageWriteAccessImpl;
2 47 8 indent Lorg/graalvm/compiler/debug/Indent;
7 45 9 inv Lcom/oracle/svm/core/LinkerInvocation;
9 10 10 fn Ljava/util/function/Function<Lcom/oracle/svm/core/LinkerInvocation;Lcom/oracle/svm/core/LinkerInvocation;>;
12 45 10 cmd Ljava/util/List<Ljava/lang/String;>;
13 45 11 commandLine Ljava/lang/String;
14 45 12 linkerProcess Ljava/lang/Process;
15 32 13 linkerCommand Ljava/lang/ProcessBuilder;
21 23 14 lines Ljava/util/List<Ljava/lang/String;>;
28 32 14 lines Ljava/util/List<Ljava/lang/String;>;
20 24 17 inputStream Ljava/io/InputStream;
29 32 15 status I
31 32 16 output Ljava/lang/String;
33 34 13 e Ljava/io/IOException;
Exception table:
from to target type
20 22 23 any
19 25 25 any
14 32 32 Class java.io.IOException
14 32 34 Class java.lang.InterruptedException
14 36 36 any
2 4 45 any
6 43 45 any
1 5 48 any
6 44 48 any
45 48 48 any
MethodParameters:
Name Flags
debug
outputDirectory
tempDirectory
imageName
config
private static java.lang.RuntimeException handleLinkerFailure(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/RuntimeException;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new java.util.Formatter
dup
invokespecial java.util.Formatter.<init>:()V
astore 3
start local 3 1: aload 3
ldc "There was an error linking the native image: %s%n%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
2: aload 2
ifnonnull 3
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
goto 4
StackMap locals: java.util.Formatter
StackMap stack:
3: aload 2
invokestatic com.oracle.svm.hosted.image.NativeBootImageViaCC.diagnoseLinkerFailure:(Ljava/lang/String;)Ljava/util/List;
StackMap locals:
StackMap stack: java.util.List
4: astore 4
start local 4 5: aload 4
invokeinterface java.util.List.isEmpty:()Z
ifne 14
6: iconst_1
istore 5
start local 5 7: aload 3
ldc "Based on the linker command output, possible reasons for this include:%n"
iconst_0
anewarray java.lang.Object
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
8: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 12
StackMap locals: java.lang.String java.lang.String java.lang.String java.util.Formatter java.util.List int top java.util.Iterator
StackMap stack:
9: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 10: aload 3
ldc "%d. %s%n"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 6
aastore
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
11: iinc 5 1
end local 6 12: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
13: aload 3
ldc "%n"
iconst_0
anewarray java.lang.Object
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
end local 5 14: StackMap locals: java.lang.String java.lang.String java.lang.String java.util.Formatter java.util.List
StackMap stack:
aload 3
ldc "Linker command executed:%n%s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
15: aload 2
ifnull 17
16: aload 3
ldc "%n%nLinker command output:%n%s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual java.util.Formatter.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
pop
17: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
aload 3
invokevirtual java.util.Formatter.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 message Ljava/lang/String;
0 18 1 commandLine Ljava/lang/String;
0 18 2 output Ljava/lang/String;
1 18 3 buf Ljava/util/Formatter;
5 18 4 potentialCauses Ljava/util/List<Ljava/lang/String;>;
7 14 5 causeNum I
10 12 6 cause Ljava/lang/String;
MethodParameters:
Name Flags
message
commandLine
output
static int[] $SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.svm.hosted.image.NativeBootImageViaCC.$SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.oracle.objectfile.ObjectFile$Format.values:()[Lcom/oracle/objectfile/ObjectFile$Format;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.oracle.objectfile.ObjectFile$Format.ELF:Lcom/oracle/objectfile/ObjectFile$Format;
invokevirtual com.oracle.objectfile.ObjectFile$Format.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.oracle.objectfile.ObjectFile$Format.MACH_O:Lcom/oracle/objectfile/ObjectFile$Format;
invokevirtual com.oracle.objectfile.ObjectFile$Format.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.oracle.objectfile.ObjectFile$Format.PECOFF:Lcom/oracle/objectfile/ObjectFile$Format;
invokevirtual com.oracle.objectfile.ObjectFile$Format.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic com.oracle.svm.hosted.image.NativeBootImageViaCC.$SWITCH_TABLE$com$oracle$objectfile$ObjectFile$Format:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
private static boolean lambda$0(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "pthread"
aastore
dup
iconst_1
ldc "rt"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
aload 0
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 library Ljava/lang/String;
}
SourceFile: "NativeBootImageViaCC.java"
NestMembers:
com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation com.oracle.svm.hosted.image.NativeBootImageViaCC$DarwinCCLinkerInvocation com.oracle.svm.hosted.image.NativeBootImageViaCC$WindowsCCLinkerInvocation
InnerClasses:
public final Format = com.oracle.objectfile.ObjectFile$Format of com.oracle.objectfile.ObjectFile
public BeforeImageWriteAccessImpl = com.oracle.svm.hosted.FeatureImpl$BeforeImageWriteAccessImpl of com.oracle.svm.hosted.FeatureImpl
public NativeImageKind = com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind of com.oracle.svm.hosted.image.AbstractBootImage
BinutilsCCLinkerInvocation = com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation of com.oracle.svm.hosted.image.NativeBootImageViaCC
DarwinCCLinkerInvocation = com.oracle.svm.hosted.image.NativeBootImageViaCC$DarwinCCLinkerInvocation of com.oracle.svm.hosted.image.NativeBootImageViaCC
WindowsCCLinkerInvocation = com.oracle.svm.hosted.image.NativeBootImageViaCC$WindowsCCLinkerInvocation of com.oracle.svm.hosted.image.NativeBootImageViaCC
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract LINUX = org.graalvm.nativeimage.Platform$LINUX of org.graalvm.nativeimage.Platform