class com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation extends com.oracle.svm.hosted.image.CCLinkerInvocation
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation
super_class: com.oracle.svm.hosted.image.CCLinkerInvocation
{
private final boolean staticExecWithDynamicallyLinkLibC;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.String> libCLibaries;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
final com.oracle.svm.hosted.image.NativeBootImageViaCC this$0;
descriptor: Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$com$oracle$svm$hosted$image$AbstractBootImage$NativeImageKind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
void <init>(com.oracle.svm.hosted.image.NativeBootImageViaCC);
descriptor: (Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;)V
flags: (0x0000)
Code:
stack=7, locals=5, args_size=2
start local 0 0: aload 0
aload 1
putfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.this$0:Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;
aload 0
invokespecial com.oracle.svm.hosted.image.CCLinkerInvocation.<init>:()V
1: aload 0
getstatic com.oracle.svm.core.SubstrateOptions.StaticExecutableWithDynamicLibC: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
putfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.staticExecWithDynamicallyLinkLibC:Z
2: aload 0
new java.util.HashSet
dup
iconst_4
anewarray java.lang.String
dup
iconst_0
ldc "pthread"
aastore
dup
iconst_1
ldc "dl"
aastore
dup
iconst_2
ldc "rt"
aastore
dup
iconst_3
ldc "m"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.libCLibaries:Ljava/util/Set;
3: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.additionalPreOptions:Ljava/util/List;
ldc "-z"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.additionalPreOptions:Ljava/util/List;
ldc "noexecstack"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
5: 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 8
6: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.additionalPreOptions:Ljava/util/List;
ldc "-fuse-ld=gold"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.additionalPreOptions:Ljava/util/List;
ldc "-Wl,--rosegment"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation com.oracle.svm.hosted.image.NativeBootImageViaCC
StackMap stack:
invokestatic com.oracle.svm.hosted.image.NativeBootImageViaCC.removeUnusedSymbols:()Z
ifeq 10
9: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.additionalPreOptions:Ljava/util/List;
ldc "-Wl,--gc-sections"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.SubstrateOptions.StaticExecutable: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
ifne 26
11: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 12: aload 2
ldc "{\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: aload 0
iconst_1
invokevirtual com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.getImageSymbols:(Z)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 16
StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation com.oracle.svm.hosted.image.NativeBootImageViaCC java.lang.StringBuilder top java.util.Iterator
StackMap stack:
14: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 15: aload 2
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\";\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 16: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
17: aload 2
ldc "};"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 1
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC.nativeLibs:Lcom/oracle/svm/hosted/c/NativeLibraries;
getfield com.oracle.svm.hosted.c.NativeLibraries.tempDirectory:Ljava/nio/file/Path;
ldc "exported_symbols.list"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 3
start local 3 19: aload 3
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.write:(Ljava/nio/file/Path;Ljava/lang/Iterable;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path;
pop
20: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.additionalPreOptions:Ljava/util/List;
ldc "-Wl,--dynamic-list"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
21: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.additionalPreOptions:Ljava/util/List;
new java.lang.StringBuilder
dup
ldc "-Wl,"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
22: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.additionalPreOptions:Ljava/util/List;
ldc "-Wl,--exclude-libs,ALL"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 end local 2 23: goto 26
StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation com.oracle.svm.hosted.image.NativeBootImageViaCC
StackMap stack: java.io.IOException
24: pop
25: invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
pop
26: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.SubstrateOptions.DeleteLocalSymbols: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 28
27: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.additionalPreOptions:Ljava/util/List;
ldc "-Wl,-x"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
28: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lcom/oracle/svm/hosted/image/NativeBootImageViaCC$BinutilsCCLinkerInvocation;
12 23 2 exportedSymbols Ljava/lang/StringBuilder;
15 16 3 symbol Ljava/lang/String;
19 23 3 exportedSymbolsPath Ljava/nio/file/Path;
Exception table:
from to target type
11 23 24 Class java.io.IOException
MethodParameters:
Name Flags
this$0 final
public java.util.List<java.lang.String> getImageSymbols(boolean);
descriptor: (Z)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.this$0:Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC.codeCache:Lcom/oracle/svm/hosted/image/NativeImageCodeCache;
aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.this$0:Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;
invokevirtual com.oracle.svm.hosted.image.NativeBootImageViaCC.getOrCreateDebugObjectFile:()Lcom/oracle/objectfile/ObjectFile;
iload 1
invokevirtual com.oracle.svm.hosted.image.NativeImageCodeCache.getSymbols:(Lcom/oracle/objectfile/ObjectFile;Z)Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
1: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
com/oracle/objectfile/ObjectFile$Symbol.getName()Ljava/lang/String; (9 itf)
(Lcom/oracle/objectfile/ObjectFile$Symbol;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: 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.List
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/image/NativeBootImageViaCC$BinutilsCCLinkerInvocation;
0 4 1 onlyGlobal Z
Signature: (Z)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
onlyGlobal
protected void setOutputKind(java.util.List<java.lang.String>);
descriptor: (Ljava/util/List;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.$SWITCH_TABLE$com$oracle$svm$hosted$image$AbstractBootImage$NativeImageKind:()[I
aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.this$0:Lcom/oracle/svm/hosted/image/NativeBootImageViaCC;
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC.kind:Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
invokevirtual com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 5
2: 1
3: 2
default: 7
}
1: StackMap locals:
StackMap stack:
goto 8
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.staticExecWithDynamicallyLinkLibC:Z
ifne 8
3: aload 1
ldc "-static"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: goto 8
5: StackMap locals:
StackMap stack:
aload 1
ldc "-shared"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: goto 8
7: StackMap locals:
StackMap stack:
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
pop
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/hosted/image/NativeBootImageViaCC$BinutilsCCLinkerInvocation;
0 9 1 cmd Ljava/util/List<Ljava/lang/String;>;
Signature: (Ljava/util/List<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
cmd
protected java.util.List<java.lang.String> getLibrariesCommand();
descriptor: ()Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, 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
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.libs:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation java.util.List top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 3: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.staticExecWithDynamicallyLinkLibC:Z
ifeq 9
4: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.libCLibaries:Ljava/util/Set;
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 6
5: ldc "dynamic"
goto 7
6: StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation java.util.List java.lang.String java.util.Iterator
StackMap stack:
ldc "static"
7: StackMap locals:
StackMap stack: java.lang.String
astore 4
start local 4 8: aload 1
new java.lang.StringBuilder
dup
ldc "-Wl,-B"
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;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 9: StackMap locals:
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
ldc "-l"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
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
end local 2 10: StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation java.util.List top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
11: aload 0
getfield com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.staticExecWithDynamicallyLinkLibC:Z
ifeq 13
12: aload 1
ldc "-static-libgcc"
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: StackMap locals: com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation java.util.List
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/svm/hosted/image/NativeBootImageViaCC$BinutilsCCLinkerInvocation;
1 14 1 cmd Ljava/util/List<Ljava/lang/String;>;
3 10 2 lib Ljava/lang/String;
8 9 4 linkingMode Ljava/lang/String;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
static int[] $SWITCH_TABLE$com$oracle$svm$hosted$image$AbstractBootImage$NativeImageKind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.svm.hosted.image.NativeBootImageViaCC$BinutilsCCLinkerInvocation.$SWITCH_TABLE$com$oracle$svm$hosted$image$AbstractBootImage$NativeImageKind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind.values:()[Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind.EXECUTABLE:Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
invokevirtual com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind.SHARED_LIBRARY:Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
invokevirtual com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind.STATIC_EXECUTABLE:Lcom/oracle/svm/hosted/image/AbstractBootImage$NativeImageKind;
invokevirtual com.oracle.svm.hosted.image.AbstractBootImage$NativeImageKind.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$BinutilsCCLinkerInvocation.$SWITCH_TABLE$com$oracle$svm$hosted$image$AbstractBootImage$NativeImageKind:[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
}
SourceFile: "NativeBootImageViaCC.java"
NestHost: com.oracle.svm.hosted.image.NativeBootImageViaCC
InnerClasses:
public abstract Symbol = com.oracle.objectfile.ObjectFile$Symbol of com.oracle.objectfile.ObjectFile
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
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles