diff --git a/llvm/test/tools/llvm-readobj/COFF/hex-dump.test b/llvm/test/tools/llvm-readobj/COFF/hex-dump.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/hex-dump.test @@ -0,0 +1,8 @@ +## Test that --hex-dump/-x can be used to display the contents +## of the indicated section as hexadecimal bytes. + +# RUN: llvm-readobj --hex-dump 1 %p/Inputs/trivial.obj.coff-x86-64 | FileCheck %s +# RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.coff-x86-64 | FileCheck %s + +# CHECK: 0x00000000 4883ec28 488d0d00 000000e8 00000000 H..(H........... +# CHECK: 0x00000010 e8000000 0031c048 83c428c3 .....1.H..(. diff --git a/llvm/test/tools/llvm-readobj/COFF/relocations.test b/llvm/test/tools/llvm-readobj/COFF/relocations.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/relocations.test @@ -0,0 +1,22 @@ +## Check how we print relocations. + +# RUN: llvm-readobj -r %p/Inputs/trivial.obj.coff-i386 \ +# RUN: | FileCheck %s --check-prefix COFF +# RUN: llvm-readobj -r %p/Inputs/bad-relocs.obj.coff-i386 \ +# RUN: | FileCheck %s --check-prefix BAD-COFF-RELOCS +# RUN: llvm-readobj -r %p/Inputs/relocs-no-symtab.obj.coff-i386 \ +# RUN: | FileCheck %s --check-prefix BAD-COFF-RELOCS + +# COFF: Relocations [ +# COFF-NEXT: Section (1) .text { +# COFF-NEXT: 0x4 IMAGE_REL_I386_DIR32 .data (4) +# COFF-NEXT: 0x9 IMAGE_REL_I386_REL32 _puts (7) +# COFF-NEXT: 0xE IMAGE_REL_I386_REL32 _SomeOtherFunction (8) +# COFF-NEXT: } +# COFF-NEXT: ] + +# BAD-COFF-RELOCS: Relocations [ +# BAD-COFF-RELOCS-NEXT: Section (1) sec { +# BAD-COFF-RELOCS-NEXT: 0xDEADBEEF IMAGE_REL_I386_ABSOLUTE - +# BAD-COFF-RELOCS-NEXT: } +# BAD-COFF-RELOCS-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/COFF/sections-ext.test b/llvm/test/tools/llvm-readobj/COFF/sections-ext.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/sections-ext.test @@ -0,0 +1,63 @@ +## This is a test case for --section-symbols, --section-relocations +## and --section-data command line options and their aliases. + +# RUN: llvm-readobj -S --st --sr --sd %p/Inputs/trivial.obj.coff-i386 | FileCheck %s +# RUN: llvm-readobj -S --section-symbols --section-relocations --section-data \ +# RUN: %p/Inputs/trivial.obj.coff-i386 | FileCheck %s + +# CHECK: Sections [ +# CHECK-NEXT: Section { +# CHECK-NEXT: Number: 1 +# CHECK-NEXT: Name: .text (2E 74 65 78 74 00 00 00) +# CHECK-NEXT: VirtualSize: 0x0 +# CHECK-NEXT: VirtualAddress: 0x0 +# CHECK-NEXT: RawDataSize: 22 +# CHECK-NEXT: PointerToRawData: 0x64 +# CHECK-NEXT: PointerToRelocations: 0x7A +# CHECK-NEXT: PointerToLineNumbers: 0x0 +# CHECK-NEXT: RelocationCount: 3 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Characteristics [ (0x60500020) +# CHECK-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000) +# CHECK-NEXT: IMAGE_SCN_CNT_CODE (0x20) +# CHECK-NEXT: IMAGE_SCN_MEM_EXECUTE (0x20000000) +# CHECK-NEXT: IMAGE_SCN_MEM_READ (0x40000000) +# CHECK-NEXT: ] +# CHECK-NEXT: Relocations [ +# CHECK-NEXT: 0x4 IMAGE_REL_I386_DIR32 .data +# CHECK-NEXT: 0x9 IMAGE_REL_I386_REL32 _puts +# CHECK-NEXT: 0xE IMAGE_REL_I386_REL32 _SomeOtherFunction +# CHECK-NEXT: ] +# CHECK-NEXT: Symbols [ +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: .text +# CHECK-NEXT: Value: 0 +# CHECK-NEXT: Section: .text (1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Null (0x0) +# CHECK-NEXT: StorageClass: Static (0x3) +# CHECK-NEXT: AuxSymbolCount: 1 +# CHECK-NEXT: AuxSectionDef { +# CHECK-NEXT: Length: 22 +# CHECK-NEXT: RelocationCount: 3 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Checksum: 0x0 +# CHECK-NEXT: Number: 1 +# CHECK-NEXT: Selection: 0x0 +# CHECK-NEXT: } +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: _main +# CHECK-NEXT: Value: 0 +# CHECK-NEXT: Section: .text (1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Function (0x2) +# CHECK-NEXT: StorageClass: External (0x2) +# CHECK-NEXT: AuxSymbolCount: 0 +# CHECK-NEXT: } +# CHECK-NEXT: ] +# CHECK-NEXT: SectionData ( +# CHECK-NEXT: 0000: 50C70424 00000000 E8000000 00E80000 |P..$............| +# CHECK-NEXT: 0010: 000031C0 5AC3 |..1.Z.| +# CHECK-NEXT: ) +# CHECK-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/COFF/sections.test b/llvm/test/tools/llvm-readobj/COFF/sections.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/sections.test @@ -0,0 +1,42 @@ +## Check how we print sections. + +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.coff-i386 | FileCheck %s + +# CHECK: Sections [ +# CHECK-NEXT: Section { +# CHECK-NEXT: Number: 1 +# CHECK-NEXT: Name: .text (2E 74 65 78 74 00 00 00) +# CHECK-NEXT: VirtualSize: 0x0 +# CHECK-NEXT: VirtualAddress: 0x0 +# CHECK-NEXT: RawDataSize: 22 +# CHECK-NEXT: PointerToRawData: 0x64 +# CHECK-NEXT: PointerToRelocations: 0x7A +# CHECK-NEXT: PointerToLineNumbers: 0x0 +# CHECK-NEXT: RelocationCount: 3 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Characteristics [ (0x60500020) +# CHECK-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000) +# CHECK-NEXT: IMAGE_SCN_CNT_CODE (0x20) +# CHECK-NEXT: IMAGE_SCN_MEM_EXECUTE (0x20000000) +# CHECK-NEXT: IMAGE_SCN_MEM_READ (0x40000000) +# CHECK-NEXT: ] +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Number: 2 +# CHECK-NEXT: Name: .data (2E 64 61 74 61 00 00 00) +# CHECK-NEXT: VirtualSize: 0x0 +# CHECK-NEXT: VirtualAddress: 0x0 +# CHECK-NEXT: RawDataSize: 13 +# CHECK-NEXT: PointerToRawData: 0x98 +# CHECK-NEXT: PointerToRelocations: 0x0 +# CHECK-NEXT: PointerToLineNumbers: 0x0 +# CHECK-NEXT: RelocationCount: 0 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Characteristics [ (0xC0300040) +# CHECK-NEXT: IMAGE_SCN_ALIGN_4BYTES (0x300000) +# CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40) +# CHECK-NEXT: IMAGE_SCN_MEM_READ (0x40000000) +# CHECK-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000) +# CHECK-NEXT: ] +# CHECK-NEXT: } +# CHECK-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/COFF/symbols.test b/llvm/test/tools/llvm-readobj/COFF/symbols.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/COFF/symbols.test @@ -0,0 +1,40 @@ +## Test how we print symbols. + +# RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.coff-i386 | FileCheck %s + +# CHECK: Symbols [ +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: @comp.id +# CHECK-NEXT: Value: 14766605 +# CHECK-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Null (0x0) +# CHECK-NEXT: StorageClass: Static (0x3) +# CHECK-NEXT: AuxSymbolCount: 0 +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: @feat.00 +# CHECK-NEXT: Value: 2147484049 +# CHECK-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Null (0x0) +# CHECK-NEXT: StorageClass: Static (0x3) +# CHECK-NEXT: AuxSymbolCount: 0 +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: .text +# CHECK-NEXT: Value: 0 +# CHECK-NEXT: Section: .text (1) +# CHECK-NEXT: BaseType: Null (0x0) +# CHECK-NEXT: ComplexType: Null (0x0) +# CHECK-NEXT: StorageClass: Static (0x3) +# CHECK-NEXT: AuxSymbolCount: 1 +# CHECK-NEXT: AuxSectionDef { +# CHECK-NEXT: Length: 22 +# CHECK-NEXT: RelocationCount: 3 +# CHECK-NEXT: LineNumberCount: 0 +# CHECK-NEXT: Checksum: 0x0 +# CHECK-NEXT: Number: 1 +# CHECK-NEXT: Selection: 0x0 +# CHECK-NEXT: } +# CHECK-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/ELF/basic.test b/llvm/test/tools/llvm-readobj/ELF/basic.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/ELF/basic.test @@ -0,0 +1,19 @@ +## Test the case where no switches are specified. + +# RUN: yaml2obj %s -o %t.trivial.obj.elf-x86-64 +# RUN: llvm-readobj %t.trivial.obj.elf-x86-64 | FileCheck --check-prefix=HEADER %s +# RUN: llvm-readelf %t.trivial.obj.elf-x86-64 | FileCheck --check-prefix=NO-OUTPUT --allow-empty %s + +# HEADER: File: {{.*}}trivial.obj.elf-x86-64 +# HEADER: Format: ELF64-x86-64 +# HEADER: Arch: x86_64 +# HEADER: AddressSize: 64bit + +# NO-OUTPUT-NOT: {{.}} + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 diff --git a/llvm/test/tools/llvm-readobj/ELF/hex-dump.test b/llvm/test/tools/llvm-readobj/ELF/hex-dump.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/ELF/hex-dump.test @@ -0,0 +1,54 @@ +## Test that the -x alias can be used flexibly. Create a baseline and ensure +## all other combinations are identical. +# RUN: llvm-readelf --file-header --hex-dump=.text \ +# RUN: %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.out +# RUN: llvm-readelf -h --hex-dump .text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.1 +# RUN: llvm-readelf -h -x .text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.2 +# RUN: llvm-readelf -h -x=.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.3 +# RUN: llvm-readelf -h -x.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.4 +# RUN: llvm-readelf -hx .text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.5 +# RUN: llvm-readelf -hx=.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.6 +# RUN: llvm-readelf -hx.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.7 + +# RUN: cmp %t.hexdump.out %t.hexdump.1 +# RUN: cmp %t.hexdump.out %t.hexdump.2 +# RUN: cmp %t.hexdump.out %t.hexdump.3 +# RUN: cmp %t.hexdump.out %t.hexdump.4 +# RUN: cmp %t.hexdump.out %t.hexdump.5 +# RUN: cmp %t.hexdump.out %t.hexdump.6 +# RUN: cmp %t.hexdump.out %t.hexdump.7 + +# RUN: llvm-readelf -S %p/Inputs/trivial.obj.elf-x86-64 | FileCheck %s --check-prefix=ELF-SEC + +## Both 9 and .strtab refer to .strtab. Test we dump the section only once. +# RUN: llvm-readobj -x 9 -x 9 -x .strtab -x .strtab %p/Inputs/trivial.obj.elf-x86-64 2>&1 | \ +# RUN: FileCheck %s --check-prefix=ELF +# RUN: llvm-readobj -x 9 -x .strtab -x 10 -x not_exist \ +# RUN: %p/Inputs/trivial.obj.elf-x86-64 2>&1 | FileCheck %s -DFILE=%p/Inputs/trivial.obj.elf-x86-64 --check-prefixes=ELF-WARN,ELF + +# ELF-SEC: [ 9] .strtab + +# ELF-WARN: warning: '[[FILE]]': could not find section 'not_exist' +# ELF-WARN: warning: '[[FILE]]': could not find section 10 +# ELF: Hex dump of section '.strtab': +# ELF-NEXT: 0x00000000 00747269 7669616c 2e6c6c00 6d61696e .trivial.ll.main +# ELF-NEXT: 0x00000010 002e4c2e 73747200 70757473 00536f6d ..L.str.puts.Som +# ELF-NEXT: 0x00000020 654f7468 65724675 6e637469 6f6e005f eOtherFunction._ +# ELF-NEXT: 0x00000030 474c4f42 414c5f4f 46465345 545f5441 GLOBAL_OFFSET_TA +# ELF-NEXT: 0x00000040 424c455f 00 BLE_. +# ELF-NOT: {{.}} + +## This test shows that we include the tool name in an error/warning message. + +# RUN: yaml2obj %s -o %t +# RUN: llvm-readelf -x 10 %t 2>&1 | FileCheck --check-prefix=WARN %s -DTOOL=readelf +# RUN: llvm-readobj -x 10 %t 2>&1 | FileCheck --check-prefix=WARN %s -DTOOL=readobj + +# WARN: llvm-[[TOOL]]{{(\.exe)?}}: warning: '{{.*}}': could not find section 10 + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_DYN + Machine: EM_RISCV diff --git a/llvm/test/tools/llvm-readobj/elf-relocations.test b/llvm/test/tools/llvm-readobj/ELF/relocations.test rename from llvm/test/tools/llvm-readobj/elf-relocations.test rename to llvm/test/tools/llvm-readobj/ELF/relocations.test diff --git a/llvm/test/tools/llvm-readobj/ELF/sections-ext.test b/llvm/test/tools/llvm-readobj/ELF/sections-ext.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/ELF/sections-ext.test @@ -0,0 +1,110 @@ +## This is a test case for --section-symbols, --section-relocations and +## --section-data command line flags and their aliases. + +# RUN: llvm-readobj -S --st --sr --sd %p/Inputs/trivial.obj.elf-i386 + +## Check the two-letter aliases above (--st, --sr, --sd) are equivalent to their +## full flag names. + +# RUN: llvm-readobj -S --st %p/Inputs/trivial.obj.elf-i386 > %t.readobj-st-alias +# RUN: llvm-readobj -S --section-symbols %p/Inputs/trivial.obj.elf-i386 > %t.readobj-st-no-alias +# RUN: diff %t.readobj-st-alias %t.readobj-st-no-alias + +# RUN: llvm-readobj -S --sr %p/Inputs/trivial.obj.elf-i386 > %t.readobj-sr-alias +# RUN: llvm-readobj -S --section-relocations %p/Inputs/trivial.obj.elf-i386 > %t.readobj-sr-no-alias +# RUN: diff %t.readobj-sr-alias %t.readobj-sr-no-alias + +# RUN: llvm-readobj -S --sd %p/Inputs/trivial.obj.elf-i386 > %t.readobj-sd-alias +# RUN: llvm-readobj -S --section-data %p/Inputs/trivial.obj.elf-i386 > %t.readobj-sd-no-alias +# RUN: diff %t.readobj-sd-alias %t.readobj-sd-no-alias + +# CHECK: Sections [ +# CHECK-NEXT: Section { +# CHECK-NEXT: Index: 0 +# CHECK-NEXT: Name: (0) +# CHECK-NEXT: Type: SHT_NULL (0x0) +# CHECK-NEXT: Flags [ (0x0) +# CHECK-NEXT: ] +# CHECK-NEXT: Address: 0x0 +# CHECK-NEXT: Offset: 0x0 +# CHECK-NEXT: Size: 0 +# CHECK-NEXT: Link: 0 +# CHECK-NEXT: Info: 0 +# CHECK-NEXT: AddressAlignment: 0 +# CHECK-NEXT: EntrySize: 0 +# CHECK-NEXT: Relocations [ +# CHECK-NEXT: ] +# CHECK-NEXT: Symbols [ +# CHECK-NEXT: ] +# CHECK-NEXT: SectionData ( +# CHECK-NEXT: ) +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Index: 1 +# CHECK-NEXT: Name: .text (5) +# CHECK-NEXT: Type: SHT_PROGBITS (0x1) +# CHECK-NEXT: Flags [ (0x6) +# CHECK-NEXT: SHF_ALLOC (0x2) +# CHECK-NEXT: SHF_EXECINSTR (0x4) +# CHECK-NEXT: ] +# CHECK-NEXT: Address: 0x0 +# CHECK-NEXT: Offset: 0x40 +# CHECK-NEXT: Size: 42 +# CHECK-NEXT: Link: 0 +# CHECK-NEXT: Info: 0 +# CHECK-NEXT: AddressAlignment: 16 +# CHECK-NEXT: EntrySize: 0 +# CHECK-NEXT: Relocations [ +# CHECK-NEXT: ] +# CHECK-NEXT: Symbols [ +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: .text (0) +# CHECK-NEXT: Value: 0x0 +# CHECK-NEXT: Size: 0 +# CHECK-NEXT: Binding: Local (0x0) +# CHECK-NEXT: Type: Section (0x3) +# CHECK-NEXT: Other: 0 +# CHECK-NEXT: Section: .text (0x1) +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: main (12) +# CHECK-NEXT: Value: 0x0 +# CHECK-NEXT: Size: 42 +# CHECK-NEXT: Binding: Global (0x1) +# CHECK-NEXT: Type: Function (0x2) +# CHECK-NEXT: Other: 0 +# CHECK-NEXT: Section: .text (0x1) +# CHECK-NEXT: } +# CHECK-NEXT: ] +# CHECK-NEXT: SectionData ( +# CHECK-NEXT: 0000: 5383EC08 E8000000 005B81C3 03000000 |S........[......| +# CHECK-NEXT: 0010: 8D830000 00008904 24E8FCFF FFFFE8FC |........$.......| +# CHECK-NEXT: 0020: FFFFFF31 C083C408 5BC3 |...1....[.| +# CHECK-NEXT: ) +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Index: 2 +# CHECK-NEXT: Name: .rel.text (1) +# CHECK-NEXT: Type: SHT_REL (0x9) +# CHECK-NEXT: Flags [ (0x0) +# CHECK-NEXT: ] +# CHECK-NEXT: Address: 0x0 +# CHECK-NEXT: Offset: 0x360 +# CHECK-NEXT: Size: 32 +# CHECK-NEXT: Link: 8 +# CHECK-NEXT: Info: 1 +# CHECK-NEXT: AddressAlignment: 4 +# CHECK-NEXT: EntrySize: 8 +# CHECK-NEXT: Relocations [ +# CHECK-NEXT: 0xC R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0 +# CHECK-NEXT: 0x12 R_386_GOTOFF .L.str 0x0 +# CHECK-NEXT: 0x1A R_386_PLT32 puts 0x0 +# CHECK-NEXT: 0x1F R_386_PLT32 SomeOtherFunction 0x0 +# CHECK-NEXT: ] +# CHECK-NEXT: Symbols [ +# CHECK-NEXT: ] +# CHECK-NEXT: SectionData ( +# CHECK-NEXT: 0000: 0C000000 0A0A0000 12000000 09020000 |................| +# CHECK-NEXT: 0010: 1A000000 040B0000 1F000000 04090000 |................| +# CHECK-NEXT: ) +# CHECK-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/ELF/sections.test b/llvm/test/tools/llvm-readobj/ELF/sections.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/ELF/sections.test @@ -0,0 +1,76 @@ +## Check how we print sections. + +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.elf-i386 \ +# RUN: | FileCheck %s --check-prefix ELF +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.elf-mipsel \ +# RUN: | FileCheck %s --check-prefix ELF-MIPSEL + +## Check flag aliases produce identical output. +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.elf-i386 > %t.sections +# RUN: llvm-readobj -S %p/Inputs/trivial.obj.elf-i386 > %t.uppers +# RUN: cmp %t.sections %t.uppers +# RUN: llvm-readobj -S %p/Inputs/trivial.obj.elf-i386 > %t.lowers +# RUN: cmp %t.sections %t.lowers + +# ELF: Sections [ +# ELF-NEXT: Section { +# ELF-NEXT: Index: 0 +# ELF-NEXT: Name: (0) +# ELF-NEXT: Type: SHT_NULL (0x0) +# ELF-NEXT: Flags [ (0x0) +# ELF-NEXT: ] +# ELF-NEXT: Address: 0x0 +# ELF-NEXT: Offset: 0x0 +# ELF-NEXT: Size: 0 +# ELF-NEXT: Link: 0 +# ELF-NEXT: Info: 0 +# ELF-NEXT: AddressAlignment: 0 +# ELF-NEXT: EntrySize: 0 +# ELF-NEXT: } +# ELF-NEXT: Section { +# ELF-NEXT: Index: 1 +# ELF-NEXT: Name: .text (5) +# ELF-NEXT: Type: SHT_PROGBITS (0x1) +# ELF-NEXT: Flags [ (0x6) +# ELF-NEXT: SHF_ALLOC (0x2) +# ELF-NEXT: SHF_EXECINSTR (0x4) +# ELF-NEXT: ] +# ELF-NEXT: Address: 0x0 +# ELF-NEXT: Offset: 0x40 +# ELF-NEXT: Size: 42 +# ELF-NEXT: Link: 0 +# ELF-NEXT: Info: 0 +# ELF-NEXT: AddressAlignment: 16 +# ELF-NEXT: EntrySize: 0 +# ELF-NEXT: } + +# ELF-MIPSEL: Section { +# ELF-MIPSEL: Index: 4 +# ELF-MIPSEL-NEXT: Name: .reginfo (27) +# ELF-MIPSEL-NEXT: Type: SHT_MIPS_REGINFO (0x70000006) +# ELF-MIPSEL-NEXT: Flags [ (0x2) +# ELF-MIPSEL-NEXT: SHF_ALLOC (0x2) +# ELF-MIPSEL-NEXT: ] +# ELF-MIPSEL-NEXT: Address: 0x0 +# ELF-MIPSEL-NEXT: Offset: 0x34 +# ELF-MIPSEL-NEXT: Size: 24 +# ELF-MIPSEL-NEXT: Link: 0 +# ELF-MIPSEL-NEXT: Info: 0 +# ELF-MIPSEL-NEXT: AddressAlignment: 1 +# ELF-MIPSEL-NEXT: EntrySize: 0 +# ELF-MIPSEL-NEXT: } +# ELF-MIPSEL-NEXT: Section { +# ELF-MIPSEL-NEXT: Index: 5 +# ELF-MIPSEL-NEXT: Name: .MIPS.abiflags (12) +# ELF-MIPSEL-NEXT: Type: SHT_MIPS_ABIFLAGS (0x7000002A) +# ELF-MIPSEL-NEXT: Flags [ (0x2) +# ELF-MIPSEL-NEXT: SHF_ALLOC (0x2) +# ELF-MIPSEL-NEXT: ] +# ELF-MIPSEL-NEXT: Address: 0x0 +# ELF-MIPSEL-NEXT: Offset: 0x50 +# ELF-MIPSEL-NEXT: Size: 24 +# ELF-MIPSEL-NEXT: Link: 0 +# ELF-MIPSEL-NEXT: Info: 0 +# ELF-MIPSEL-NEXT: AddressAlignment: 8 +# ELF-MIPSEL-NEXT: EntrySize: 0 +# ELF-MIPSEL-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/ELF/symbols.test b/llvm/test/tools/llvm-readobj/ELF/symbols.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/ELF/symbols.test @@ -0,0 +1,42 @@ +## This is a general test for --symbols option and its aliases. +## There are also other symbols* tests that check specific things. + +# RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.elf-i386 | FileCheck %s + +## Check flag aliases produce identical output. +# RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.elf-i386 > %t.symbols +# RUN: llvm-readobj --syms %p/Inputs/trivial.obj.elf-i386 > %t.syms +# RUN: cmp %t.symbols %t.syms +# RUN: llvm-readobj -t %p/Inputs/trivial.obj.elf-i386 > %t.t +# RUN: cmp %t.symbols %t.t +# RUN: llvm-readelf -s --elf-output-style LLVM %p/Inputs/trivial.obj.elf-i386 > %t.lowers +# RUN: cmp %t.symbols %t.lowers + +# CHECK: Symbols [ +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: (0) +# CHECK-NEXT: Value: 0x0 +# CHECK-NEXT: Size: 0 +# CHECK-NEXT: Binding: Local (0x0) +# CHECK-NEXT: Type: None (0x0) +# CHECK-NEXT: Other: 0 +# CHECK-NEXT: Section: Undefined (0x0) +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: trivial.ll (1) +# CHECK-NEXT: Value: 0x0 +# CHECK-NEXT: Size: 0 +# CHECK-NEXT: Binding: Local (0x0) +# CHECK-NEXT: Type: File (0x4) +# CHECK-NEXT: Other: 0 +# CHECK-NEXT: Section: Absolute (0xFFF1) +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: .L.str (39) +# CHECK-NEXT: Value: 0x0 +# CHECK-NEXT: Size: 13 +# CHECK-NEXT: Binding: Local (0x0) +# CHECK-NEXT: Type: Object (0x1) +# CHECK-NEXT: Other: 0 +# CHECK-NEXT: Section: .rodata.str1.1 (0x5) +# CHECK-NEXT: } diff --git a/llvm/test/tools/llvm-readobj/MachO/hex-dump.test b/llvm/test/tools/llvm-readobj/MachO/hex-dump.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/MachO/hex-dump.test @@ -0,0 +1,8 @@ +## Test that --hex-dump/-x can be used to display the contents +## of the indicated section as hexadecimal bytes. + +# RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.macho-x86-64 | FileCheck %s +# RUN: llvm-readobj --hex-dump 1 %p/Inputs/trivial.obj.macho-x86-64 | FileCheck %s + +# CHECK: 0x00000000 50488d3d 00000000 e8000000 00e80000 PH.=............ +# CHECK: 0x00000010 000031c0 5ac3 ..1.Z. diff --git a/llvm/test/tools/llvm-readobj/MachO/relocations.test b/llvm/test/tools/llvm-readobj/MachO/relocations.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/MachO/relocations.test @@ -0,0 +1,255 @@ +## Check how we print relocations. + +# RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-i386 \ +# RUN: | FileCheck %s --check-prefix MACHO-I386 +# RUN: llvm-readobj -r %p/Inputs/trivial.obj.macho-x86-64 \ +# RUN: | FileCheck %s --check-prefix MACHO-X86-64 +# RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc \ +# RUN: | FileCheck %s --check-prefix MACHO-PPC +# RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-ppc64 \ +# RUN: | FileCheck %s --check-prefix MACHO-PPC64 +# RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.macho-arm \ +# RUN: | FileCheck %s --check-prefix MACHO-ARM + +# MACHO-I386: Relocations [ +# MACHO-I386-NEXT: Section __text { +# MACHO-I386-NEXT: 0x18 1 2 1 GENERIC_RELOC_VANILLA 0 _SomeOtherFunction +# MACHO-I386-NEXT: 0x13 1 2 1 GENERIC_RELOC_VANILLA 0 _puts +# MACHO-I386-NEXT: 0xB 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x22 +# MACHO-I386-NEXT: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x8 +# MACHO-I386-NEXT: } +# MACHO-I386-NEXT: ] + +# MACHO-X86-64: Relocations [ +# MACHO-X86-64-NEXT: Section __text { +# MACHO-X86-64-NEXT: 0xE 1 2 1 X86_64_RELOC_BRANCH 0 _SomeOtherFunction +# MACHO-X86-64-NEXT: 0x9 1 2 1 X86_64_RELOC_BRANCH 0 _puts +# MACHO-X86-64-NEXT: 0x4 1 2 1 X86_64_RELOC_SIGNED 0 L_.str +# MACHO-X86-64-NEXT: } +# MACHO-X86-64-NEXT:] + +# MACHO-PPC: Relocations [ +# MACHO-PPC-NEXT: Section __text { +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x24 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) +# MACHO-PPC-NEXT: Value: 0x64 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x0 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) +# MACHO-PPC-NEXT: Value: 0xC +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x1C +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) +# MACHO-PPC-NEXT: Value: 0x64 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x58 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) +# MACHO-PPC-NEXT: Value: 0xC +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x18 +# MACHO-PPC-NEXT: PCRel: 1 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_BR24 (3) +# MACHO-PPC-NEXT: Section: __picsymbolstub1 (2) +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section __picsymbolstub1 { +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x14 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) +# MACHO-PPC-NEXT: Value: 0x68 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x0 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) +# MACHO-PPC-NEXT: Value: 0x48 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0xC +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) +# MACHO-PPC-NEXT: Value: 0x68 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x20 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) +# MACHO-PPC-NEXT: Value: 0x48 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section __la_symbol_ptr { +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x0 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_VANILLA (0) +# MACHO-PPC-NEXT: Symbol: dyld_stub_binding_helper (5) +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: ] + +# MACHO-PPC64: Relocations [ +# MACHO-PPC64-NEXT: Section __text { +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x24 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (14) +# MACHO-PPC64-NEXT: Value: 0x64 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x0 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (1) +# MACHO-PPC64-NEXT: Value: 0xC +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x1C +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (12) +# MACHO-PPC64-NEXT: Value: 0x64 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x58 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (1) +# MACHO-PPC64-NEXT: Value: 0xC +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x18 +# MACHO-PPC64-NEXT: PCRel: 1 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (3) +# MACHO-PPC64-NEXT: Section: __picsymbolstub1 (2) +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section __picsymbolstub1 { +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x14 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (14) +# MACHO-PPC64-NEXT: Value: 0x6C +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x0 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (1) +# MACHO-PPC64-NEXT: Value: 0x48 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0xC +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (12) +# MACHO-PPC64-NEXT: Value: 0x6C +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x24 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (1) +# MACHO-PPC64-NEXT: Value: 0x48 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section __la_symbol_ptr { +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x0 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 3 +# MACHO-PPC64-NEXT: Type: (0) +# MACHO-PPC64-NEXT: Symbol: dyld_stub_binding_helper (5) +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: ] + +# MACHO-ARM: Relocations [ +# MACHO-ARM-NEXT: Section __text { +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x38 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) +# MACHO-ARM-NEXT: Value: 0x40 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x0 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) +# MACHO-ARM-NEXT: Value: 0x28 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x20 +# MACHO-ARM-NEXT: PCRel: 1 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_BR24 (5) +# MACHO-ARM-NEXT: Symbol: _g +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x1C +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 1 +# MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) +# MACHO-ARM-NEXT: Symbol: _g +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x0 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 1 +# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) +# MACHO-ARM-NEXT: Section: - +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x18 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 0 +# MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) +# MACHO-ARM-NEXT: Symbol: _g +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x0 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 0 +# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) +# MACHO-ARM-NEXT: Section: - +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0xC +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) +# MACHO-ARM-NEXT: Value: 0x44 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x0 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) +# MACHO-ARM-NEXT: Value: 0x4 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/MachO/sections-ext.test b/llvm/test/tools/llvm-readobj/MachO/sections-ext.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/MachO/sections-ext.test @@ -0,0 +1,843 @@ +## This is a test case for --section-symbols, --section-relocations and +## --section-data command line options. + +# RUN: llvm-readobj -S --section-symbols --section-relocations --section-data \ +# RUN: %p/Inputs/trivial.obj.macho-i386 | FileCheck %s --check-prefix MACHO-I386 +# RUN: llvm-readobj -S --st --sr --sd %p/Inputs/trivial.obj.macho-i386 \ +# RUN: | FileCheck %s --check-prefix MACHO-I386 + +# RUN: llvm-readobj -S --section-symbols --section-relocations --section-data \ +# RUN: %p/Inputs/trivial.obj.macho-x86-64 | FileCheck %s --check-prefix MACHO-X86-64 +# RUN: llvm-readobj -S --st --sr --sd %p/Inputs/trivial.obj.macho-x86-64 \ +# RUN: | FileCheck %s --check-prefix MACHO-X86-64 + +# RUN: llvm-readobj --expand-relocs -S --section-symbols --section-relocations --section-data \ +# RUN: %p/Inputs/trivial.obj.macho-ppc | FileCheck %s --check-prefix MACHO-PPC +# RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/Inputs/trivial.obj.macho-ppc \ +# RUN: | FileCheck %s --check-prefix MACHO-PPC + +# RUN: llvm-readobj --expand-relocs -S --section-symbols --section-relocations --section-data \ +# RUN: %p/Inputs/trivial.obj.macho-ppc64 | FileCheck %s --check-prefix MACHO-PPC64 +# RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/Inputs/trivial.obj.macho-ppc64 \ +# RUN: | FileCheck %s --check-prefix MACHO-PPC64 + +# RUN: llvm-readobj --expand-relocs -S --section-symbols --section-relocations --section-data \ +# RUN: %p/Inputs/trivial.obj.macho-arm | FileCheck %s --check-prefix MACHO-ARM +# RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/Inputs/trivial.obj.macho-arm \ +# RUN: | FileCheck %s --check-prefix MACHO-ARM + +# MACHO-I386: Sections [ +# MACHO-I386-NEXT: Section { +# MACHO-I386-NEXT: Index: 0 +# MACHO-I386-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-I386-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-I386-NEXT: Address: 0x0 +# MACHO-I386-NEXT: Size: 0x22 +# MACHO-I386-NEXT: Offset: 324 +# MACHO-I386-NEXT: Alignment: 4 +# MACHO-I386-NEXT: RelocationOffset: 0x174 +# MACHO-I386-NEXT: RelocationCount: 4 +# MACHO-I386-NEXT: Type: Regular (0x0) +# MACHO-I386-NEXT: Attributes [ (0x800004) +# MACHO-I386-NEXT: PureInstructions (0x800000) +# MACHO-I386-NEXT: SomeInstructions (0x4) +# MACHO-I386-NEXT: ] +# MACHO-I386-NEXT: Reserved1: 0x0 +# MACHO-I386-NEXT: Reserved2: 0x0 +# MACHO-I386-NEXT: Relocations [ +# MACHO-I386-NEXT: 0x18 1 2 1 GENERIC_RELOC_VANILLA 0 _SomeOtherFunction +# MACHO-I386-NEXT: 0x13 1 2 1 GENERIC_RELOC_VANILLA 0 _puts +# MACHO-I386-NEXT: 0xB 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x22 +# MACHO-I386-NEXT: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x8 +# MACHO-I386-NEXT: ] +# MACHO-I386-NEXT: Symbols [ +# MACHO-I386-NEXT: Symbol { +# MACHO-I386-NEXT: Name: _main (1) +# MACHO-I386-NEXT: Extern +# MACHO-I386-NEXT: Type: Section (0xE) +# MACHO-I386-NEXT: Section: __text (0x1) +# MACHO-I386-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-I386-NEXT: Flags [ (0x0) +# MACHO-I386-NEXT: ] +# MACHO-I386-NEXT: Value: 0x0 +# MACHO-I386-NEXT: } +# MACHO-I386-NEXT: ] +# MACHO-I386-NEXT: SectionData ( +# MACHO-I386-NEXT: 0000: 83EC0CE8 00000000 588D801A 00000089 |........X.......| +# MACHO-I386-NEXT: 0010: 0424E8E9 FFFFFFE8 E4FFFFFF 31C083C4 |.$..........1...| +# MACHO-I386-NEXT: 0020: 0CC3 |..| +# MACHO-I386-NEXT: ) +# MACHO-I386-NEXT: } + +# MACHO-X86-64: Sections [ +# MACHO-X86-64-NEXT: Section { +# MACHO-X86-64-NEXT: Index: 0 +# MACHO-X86-64-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-X86-64-NEXT: Address: 0x0 +# MACHO-X86-64-NEXT: Size: 0x16 +# MACHO-X86-64-NEXT: Offset: 368 +# MACHO-X86-64-NEXT: Alignment: 4 +# MACHO-X86-64-NEXT: RelocationOffset: 0x194 +# MACHO-X86-64-NEXT: RelocationCount: 3 +# MACHO-X86-64-NEXT: Type: Regular (0x0) +# MACHO-X86-64-NEXT: Attributes [ (0x800004) +# MACHO-X86-64-NEXT: PureInstructions (0x800000) +# MACHO-X86-64-NEXT: SomeInstructions (0x4) +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: Reserved1: 0x0 +# MACHO-X86-64-NEXT: Reserved2: 0x0 +# MACHO-X86-64-NEXT: Reserved3: 0x0 +# MACHO-X86-64-NEXT: Relocations [ +# MACHO-X86-64-NEXT: 0xE 1 2 1 X86_64_RELOC_BRANCH 0 _SomeOtherFunction +# MACHO-X86-64-NEXT: 0x9 1 2 1 X86_64_RELOC_BRANCH 0 _puts +# MACHO-X86-64-NEXT: 0x4 1 2 1 X86_64_RELOC_SIGNED 0 L_.str +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: Symbols [ +# MACHO-X86-64-NEXT: Symbol { +# MACHO-X86-64-NEXT: Name: _main (1) +# MACHO-X86-64-NEXT: Extern +# MACHO-X86-64-NEXT: Type: Section (0xE) +# MACHO-X86-64-NEXT: Section: __text (0x1) +# MACHO-X86-64-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-X86-64-NEXT: Flags [ (0x0) +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: Value: 0x0 +# MACHO-X86-64-NEXT: } +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: SectionData ( +# MACHO-X86-64-NEXT: 0000: 50488D3D 00000000 E8000000 00E80000 |PH.=............| +# MACHO-X86-64-NEXT: 0010: 000031C0 5AC3 |..1.Z.| +# MACHO-X86-64-NEXT: ) +# MACHO-X86-64-NEXT: } +# MACHO-X86-64-NEXT: Section { +# MACHO-X86-64-NEXT: Index: 1 +# MACHO-X86-64-NEXT: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) +# MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-X86-64-NEXT: Address: 0x16 +# MACHO-X86-64-NEXT: Size: 0xD +# MACHO-X86-64-NEXT: Offset: 390 +# MACHO-X86-64-NEXT: Alignment: 0 +# MACHO-X86-64-NEXT: RelocationOffset: 0x0 +# MACHO-X86-64-NEXT: RelocationCount: 0 +# MACHO-X86-64-NEXT: Type: CStringLiterals (0x2) +# MACHO-X86-64-NEXT: Attributes [ (0x0) +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: Reserved1: 0x0 +# MACHO-X86-64-NEXT: Reserved2: 0x0 +# MACHO-X86-64-NEXT: Reserved3: 0x0 +# MACHO-X86-64-NEXT: Relocations [ +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: Symbols [ +# MACHO-X86-64-NEXT: Symbol { +# MACHO-X86-64-NEXT: Name: L_.str (32) +# MACHO-X86-64-NEXT: Type: Section (0xE) +# MACHO-X86-64-NEXT: Section: __cstring (0x2) +# MACHO-X86-64-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-X86-64-NEXT: Flags [ (0x0) +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: Value: 0x16 +# MACHO-X86-64-NEXT: } +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: SectionData ( +# MACHO-X86-64-NEXT: 0000: 48656C6C 6F20576F 726C640A 00 |Hello World..| +# MACHO-X86-64-NEXT: ) +# MACHO-X86-64-NEXT: } +# MACHO-X86-64-NEXT:] + +# MACHO-PPC: Sections [ +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 0 +# MACHO-PPC-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x0 +# MACHO-PPC-NEXT: Size: 0x3C +# MACHO-PPC-NEXT: Offset: 528 +# MACHO-PPC-NEXT: Alignment: 2 +# MACHO-PPC-NEXT: RelocationOffset: 0x27C +# MACHO-PPC-NEXT: RelocationCount: 5 +# MACHO-PPC-NEXT: Type: Regular (0x0) +# MACHO-PPC-NEXT: Attributes [ (0x800004) +# MACHO-PPC-NEXT: PureInstructions (0x800000) +# MACHO-PPC-NEXT: SomeInstructions (0x4) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x0 +# MACHO-PPC-NEXT: Reserved2: 0x0 +# MACHO-PPC-NEXT: Relocations [ +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x24 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) +# MACHO-PPC-NEXT: Value: 0x64 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x0 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) +# MACHO-PPC-NEXT: Value: 0xC +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x1C +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) +# MACHO-PPC-NEXT: Value: 0x64 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x58 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) +# MACHO-PPC-NEXT: Value: 0xC +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x18 +# MACHO-PPC-NEXT: PCRel: 1 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_BR24 (3) +# MACHO-PPC-NEXT: Section: __picsymbolstub1 (2) +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Symbols [ +# MACHO-PPC-NEXT: Symbol { +# MACHO-PPC-NEXT: Name: _f (4) +# MACHO-PPC-NEXT: Extern +# MACHO-PPC-NEXT: Type: Section (0xE) +# MACHO-PPC-NEXT: Section: __text (0x1) +# MACHO-PPC-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-PPC-NEXT: Flags [ (0x0) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Value: 0x0 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: SectionData ( +# MACHO-PPC-NEXT: 0000: 7C0802A6 93E1FFFC 429F0005 7FE802A6 ||.......B.......| +# MACHO-PPC-NEXT: 0010: 90010008 9421FFB0 48000029 3C5F0000 |.....!..H..)<_..| +# MACHO-PPC-NEXT: 0020: 38210050 80420058 80010008 83E1FFFC |8!.P.B.X........| +# MACHO-PPC-NEXT: 0030: 7C0803A6 80620000 4E800020 ||....b..N.. | +# MACHO-PPC-NEXT: ) +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 1 +# MACHO-PPC-NEXT: Name: __picsymbolstub1 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 31) +# MACHO-PPC-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x40 +# MACHO-PPC-NEXT: Size: 0x20 +# MACHO-PPC-NEXT: Offset: 592 +# MACHO-PPC-NEXT: Alignment: 5 +# MACHO-PPC-NEXT: RelocationOffset: 0x2A4 +# MACHO-PPC-NEXT: RelocationCount: 4 +# MACHO-PPC-NEXT: Type: SymbolStubs (0x8) +# MACHO-PPC-NEXT: Attributes [ (0x800004) +# MACHO-PPC-NEXT: PureInstructions (0x800000) +# MACHO-PPC-NEXT: SomeInstructions (0x4) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x0 +# MACHO-PPC-NEXT: Reserved2: 0x20 +# MACHO-PPC-NEXT: Relocations [ +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x14 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) +# MACHO-PPC-NEXT: Value: 0x68 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x0 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) +# MACHO-PPC-NEXT: Value: 0x48 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0xC +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) +# MACHO-PPC-NEXT: Value: 0x68 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x20 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) +# MACHO-PPC-NEXT: Value: 0x48 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Symbols [ +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: SectionData ( +# MACHO-PPC-NEXT: 0000: 7C0802A6 429F0005 7D6802A6 3D6B0000 ||...B...}h..=k..| +# MACHO-PPC-NEXT: 0010: 7C0803A6 858B0020 7D8903A6 4E800420 ||...... }...N.. | +# MACHO-PPC-NEXT: ) +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 2 +# MACHO-PPC-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x60 +# MACHO-PPC-NEXT: Size: 0x4 +# MACHO-PPC-NEXT: Offset: 624 +# MACHO-PPC-NEXT: Alignment: 2 +# MACHO-PPC-NEXT: RelocationOffset: 0x0 +# MACHO-PPC-NEXT: RelocationCount: 0 +# MACHO-PPC-NEXT: Type: Regular (0x0) +# MACHO-PPC-NEXT: Attributes [ (0x0) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x0 +# MACHO-PPC-NEXT: Reserved2: 0x0 +# MACHO-PPC-NEXT: Relocations [ +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Symbols [ +# MACHO-PPC-NEXT: Symbol { +# MACHO-PPC-NEXT: Name: _b (1) +# MACHO-PPC-NEXT: Extern +# MACHO-PPC-NEXT: Type: Section (0xE) +# MACHO-PPC-NEXT: Section: __data (0x3) +# MACHO-PPC-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-PPC-NEXT: Flags [ (0x0) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Value: 0x60 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: SectionData ( +# MACHO-PPC-NEXT: 0000: 0000002A |...*| +# MACHO-PPC-NEXT: ) +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 3 +# MACHO-PPC-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x64 +# MACHO-PPC-NEXT: Size: 0x4 +# MACHO-PPC-NEXT: Offset: 628 +# MACHO-PPC-NEXT: Alignment: 2 +# MACHO-PPC-NEXT: RelocationOffset: 0x0 +# MACHO-PPC-NEXT: RelocationCount: 0 +# MACHO-PPC-NEXT: Type: NonLazySymbolPointers (0x6) +# MACHO-PPC-NEXT: Attributes [ (0x0) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x1 +# MACHO-PPC-NEXT: Reserved2: 0x0 +# MACHO-PPC-NEXT: Relocations [ +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Symbols [ +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: SectionData ( +# MACHO-PPC-NEXT: 0000: 00000000 |....| +# MACHO-PPC-NEXT: ) +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 4 +# MACHO-PPC-NEXT: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x68 +# MACHO-PPC-NEXT: Size: 0x4 +# MACHO-PPC-NEXT: Offset: 632 +# MACHO-PPC-NEXT: Alignment: 2 +# MACHO-PPC-NEXT: RelocationOffset: 0x2C4 +# MACHO-PPC-NEXT: RelocationCount: 1 +# MACHO-PPC-NEXT: Type: LazySymbolPointers (0x7) +# MACHO-PPC-NEXT: Attributes [ (0x0) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x2 +# MACHO-PPC-NEXT: Reserved2: 0x0 +# MACHO-PPC-NEXT: Relocations [ +# MACHO-PPC-NEXT: Relocation { +# MACHO-PPC-NEXT: Offset: 0x0 +# MACHO-PPC-NEXT: PCRel: 0 +# MACHO-PPC-NEXT: Length: 2 +# MACHO-PPC-NEXT: Type: PPC_RELOC_VANILLA (0) +# MACHO-PPC-NEXT: Symbol: dyld_stub_binding_helper (5) +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Symbols [ +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: SectionData ( +# MACHO-PPC-NEXT: 0000: 00000000 |....| +# MACHO-PPC-NEXT: ) +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: ] + +# MACHO-PPC64: Sections [ +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 0 +# MACHO-PPC64-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x0 +# MACHO-PPC64-NEXT: Size: 0x3C +# MACHO-PPC64-NEXT: Offset: 608 +# MACHO-PPC64-NEXT: Alignment: 2 +# MACHO-PPC64-NEXT: RelocationOffset: 0x2D4 +# MACHO-PPC64-NEXT: RelocationCount: 5 +# MACHO-PPC64-NEXT: Type: Regular (0x0) +# MACHO-PPC64-NEXT: Attributes [ (0x800004) +# MACHO-PPC64-NEXT: PureInstructions (0x800000) +# MACHO-PPC64-NEXT: SomeInstructions (0x4) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x0 +# MACHO-PPC64-NEXT: Reserved2: 0x0 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: Relocations [ +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x24 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (14) +# MACHO-PPC64-NEXT: Value: 0x64 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x0 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (1) +# MACHO-PPC64-NEXT: Value: 0xC +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x1C +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (12) +# MACHO-PPC64-NEXT: Value: 0x64 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x58 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (1) +# MACHO-PPC64-NEXT: Value: 0xC +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x18 +# MACHO-PPC64-NEXT: PCRel: 1 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (3) +# MACHO-PPC64-NEXT: Section: __picsymbolstub1 (2) +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Symbols [ +# MACHO-PPC64-NEXT: Symbol { +# MACHO-PPC64-NEXT: Name: _f (4) +# MACHO-PPC64-NEXT: Extern +# MACHO-PPC64-NEXT: Type: Section (0xE) +# MACHO-PPC64-NEXT: Section: __text (0x1) +# MACHO-PPC64-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-PPC64-NEXT: Flags [ (0x0) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Value: 0x0 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: SectionData ( +# MACHO-PPC64-NEXT: 0000: 7C0802A6 FBE1FFF8 429F0005 7FE802A6 ||.......B.......| +# MACHO-PPC64-NEXT: 0010: F8010010 F821FF81 48000029 3C5F0000 |.....!..H..)<_..| +# MACHO-PPC64-NEXT: 0020: 38210080 E8420058 E8010010 EBE1FFF8 |8!...B.X........| +# MACHO-PPC64-NEXT: 0030: 7C0803A6 E8620002 4E800020 ||....b..N.. | +# MACHO-PPC64-NEXT: ) +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 1 +# MACHO-PPC64-NEXT: Name: __picsymbolstub1 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 31) +# MACHO-PPC64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x40 +# MACHO-PPC64-NEXT: Size: 0x20 +# MACHO-PPC64-NEXT: Offset: 672 +# MACHO-PPC64-NEXT: Alignment: 5 +# MACHO-PPC64-NEXT: RelocationOffset: 0x2FC +# MACHO-PPC64-NEXT: RelocationCount: 4 +# MACHO-PPC64-NEXT: Type: SymbolStubs (0x8) +# MACHO-PPC64-NEXT: Attributes [ (0x800004) +# MACHO-PPC64-NEXT: PureInstructions (0x800000) +# MACHO-PPC64-NEXT: SomeInstructions (0x4) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x0 +# MACHO-PPC64-NEXT: Reserved2: 0x20 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: Relocations [ +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x14 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (14) +# MACHO-PPC64-NEXT: Value: 0x6C +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x0 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (1) +# MACHO-PPC64-NEXT: Value: 0x48 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0xC +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (12) +# MACHO-PPC64-NEXT: Value: 0x6C +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x24 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 2 +# MACHO-PPC64-NEXT: Type: (1) +# MACHO-PPC64-NEXT: Value: 0x48 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Symbols [ +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: SectionData ( +# MACHO-PPC64-NEXT: 0000: 7C0802A6 429F0005 7D6802A6 3D6B0000 ||...B...}h..=k..| +# MACHO-PPC64-NEXT: 0010: 7C0803A6 E98B0025 7D8903A6 4E800420 ||......%}...N.. | +# MACHO-PPC64-NEXT: ) +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 2 +# MACHO-PPC64-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x60 +# MACHO-PPC64-NEXT: Size: 0x4 +# MACHO-PPC64-NEXT: Offset: 704 +# MACHO-PPC64-NEXT: Alignment: 2 +# MACHO-PPC64-NEXT: RelocationOffset: 0x0 +# MACHO-PPC64-NEXT: RelocationCount: 0 +# MACHO-PPC64-NEXT: Type: Regular (0x0) +# MACHO-PPC64-NEXT: Attributes [ (0x0) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x0 +# MACHO-PPC64-NEXT: Reserved2: 0x0 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: Relocations [ +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Symbols [ +# MACHO-PPC64-NEXT: Symbol { +# MACHO-PPC64-NEXT: Name: _b (1) +# MACHO-PPC64-NEXT: Extern +# MACHO-PPC64-NEXT: Type: Section (0xE) +# MACHO-PPC64-NEXT: Section: __data (0x3) +# MACHO-PPC64-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-PPC64-NEXT: Flags [ (0x0) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Value: 0x60 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: SectionData ( +# MACHO-PPC64-NEXT: 0000: 0000002A |...*| +# MACHO-PPC64-NEXT: ) +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 3 +# MACHO-PPC64-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x64 +# MACHO-PPC64-NEXT: Size: 0x8 +# MACHO-PPC64-NEXT: Offset: 708 +# MACHO-PPC64-NEXT: Alignment: 2 +# MACHO-PPC64-NEXT: RelocationOffset: 0x0 +# MACHO-PPC64-NEXT: RelocationCount: 0 +# MACHO-PPC64-NEXT: Type: NonLazySymbolPointers (0x6) +# MACHO-PPC64-NEXT: Attributes [ (0x0) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x1 +# MACHO-PPC64-NEXT: Reserved2: 0x0 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: Relocations [ +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Symbols [ +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: SectionData ( +# MACHO-PPC64-NEXT: 0000: 00000000 00000000 |........| +# MACHO-PPC64-NEXT: ) +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 4 +# MACHO-PPC64-NEXT: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x6C +# MACHO-PPC64-NEXT: Size: 0x8 +# MACHO-PPC64-NEXT: Offset: 716 +# MACHO-PPC64-NEXT: Alignment: 2 +# MACHO-PPC64-NEXT: RelocationOffset: 0x31C +# MACHO-PPC64-NEXT: RelocationCount: 1 +# MACHO-PPC64-NEXT: Type: LazySymbolPointers (0x7) +# MACHO-PPC64-NEXT: Attributes [ (0x0) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x2 +# MACHO-PPC64-NEXT: Reserved2: 0x0 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: Relocations [ +# MACHO-PPC64-NEXT: Relocation { +# MACHO-PPC64-NEXT: Offset: 0x0 +# MACHO-PPC64-NEXT: PCRel: 0 +# MACHO-PPC64-NEXT: Length: 3 +# MACHO-PPC64-NEXT: Type: (0) +# MACHO-PPC64-NEXT: Symbol: dyld_stub_binding_helper (5) +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Symbols [ +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: SectionData ( +# MACHO-PPC64-NEXT: 0000: 00000000 00000000 |........| +# MACHO-PPC64-NEXT: ) +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: ] + +# MACHO-ARM: Sections [ +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 0 +# MACHO-ARM-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x0 +# MACHO-ARM-NEXT: Size: 0x3C +# MACHO-ARM-NEXT: Offset: 664 +# MACHO-ARM-NEXT: Alignment: 2 +# MACHO-ARM-NEXT: RelocationOffset: 0x2E0 +# MACHO-ARM-NEXT: RelocationCount: 9 +# MACHO-ARM-NEXT: Type: Regular (0x0) +# MACHO-ARM-NEXT: Attributes [ (0x800004) +# MACHO-ARM-NEXT: PureInstructions (0x800000) +# MACHO-ARM-NEXT: SomeInstructions (0x4) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: Relocations [ +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x38 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) +# MACHO-ARM-NEXT: Value: 0x40 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x0 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) +# MACHO-ARM-NEXT: Value: 0x28 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x20 +# MACHO-ARM-NEXT: PCRel: 1 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_BR24 (5) +# MACHO-ARM-NEXT: Symbol: _g +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x1C +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 1 +# MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) +# MACHO-ARM-NEXT: Symbol: _g +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x0 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 1 +# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) +# MACHO-ARM-NEXT: Section: - +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x18 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 0 +# MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) +# MACHO-ARM-NEXT: Symbol: _g +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x0 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 0 +# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) +# MACHO-ARM-NEXT: Section: - +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0xC +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) +# MACHO-ARM-NEXT: Value: 0x44 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Relocation { +# MACHO-ARM-NEXT: Offset: 0x0 +# MACHO-ARM-NEXT: PCRel: 0 +# MACHO-ARM-NEXT: Length: 2 +# MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) +# MACHO-ARM-NEXT: Value: 0x4 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Symbols [ +# MACHO-ARM-NEXT: Symbol { +# MACHO-ARM-NEXT: Name: _f (4) +# MACHO-ARM-NEXT: Extern +# MACHO-ARM-NEXT: Type: Section (0xE) +# MACHO-ARM-NEXT: Section: __text (0x1) +# MACHO-ARM-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-ARM-NEXT: Flags [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Value: 0x10 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Symbol { +# MACHO-ARM-NEXT: Name: _h (1) +# MACHO-ARM-NEXT: Extern +# MACHO-ARM-NEXT: Type: Section (0xE) +# MACHO-ARM-NEXT: Section: __text (0x1) +# MACHO-ARM-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-ARM-NEXT: Flags [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Value: 0x0 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: SectionData ( +# MACHO-ARM-NEXT: 0000: 04009FE5 00009FE7 1EFF2FE1 38000000 |........../.8...| +# MACHO-ARM-NEXT: 0010: 80402DE9 0D70A0E1 000000E3 000040E3 |.@-..p........@.| +# MACHO-ARM-NEXT: 0020: F6FFFFEB 0C009FE5 00009FE7 000090E5 |................| +# MACHO-ARM-NEXT: 0030: 8040BDE8 1EFF2FE1 10000000 |.@..../.....| +# MACHO-ARM-NEXT: ) +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 1 +# MACHO-ARM-NEXT: Name: __textcoal_nt (5F 5F 74 65 78 74 63 6F 61 6C 5F 6E 74 00 00 00) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x0 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 0 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: Coalesced (0xB) +# MACHO-ARM-NEXT: Attributes [ (0x800000) +# MACHO-ARM-NEXT: PureInstructions (0x800000) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: Relocations [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Symbols [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: SectionData ( +# MACHO-ARM-NEXT: ) +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 2 +# MACHO-ARM-NEXT: Name: __const_coal (5F 5F 63 6F 6E 73 74 5F 63 6F 61 6C 00 00 00 00) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x0 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 0 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: Coalesced (0xB) +# MACHO-ARM-NEXT: Attributes [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: Relocations [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Symbols [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: SectionData ( +# MACHO-ARM-NEXT: ) +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 3 +# MACHO-ARM-NEXT: Name: __picsymbolstub4 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 34) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x0 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 0 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: SymbolStubs (0x8) +# MACHO-ARM-NEXT: Attributes [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x10 +# MACHO-ARM-NEXT: Relocations [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Symbols [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: SectionData ( +# MACHO-ARM-NEXT: ) +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 4 +# MACHO-ARM-NEXT: Name: __StaticInit (5F 5F 53 74 61 74 69 63 49 6E 69 74 00 00 00 00) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x0 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 0 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: Regular (0x0) +# MACHO-ARM-NEXT: Attributes [ (0x800000) +# MACHO-ARM-NEXT: PureInstructions (0x800000) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: Relocations [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Symbols [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: SectionData ( +# MACHO-ARM-NEXT: ) +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 5 +# MACHO-ARM-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x4 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 2 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: Regular (0x0) +# MACHO-ARM-NEXT: Attributes [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: Relocations [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Symbols [ +# MACHO-ARM-NEXT: Symbol { +# MACHO-ARM-NEXT: Name: _b (10) +# MACHO-ARM-NEXT: Extern +# MACHO-ARM-NEXT: Type: Section (0xE) +# MACHO-ARM-NEXT: Section: __data (0x6) +# MACHO-ARM-NEXT: RefType: UndefinedNonLazy (0x0) +# MACHO-ARM-NEXT: Flags [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Value: 0x3C +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: SectionData ( +# MACHO-ARM-NEXT: 0000: 2A000000 |*...| +# MACHO-ARM-NEXT: ) +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 6 +# MACHO-ARM-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-ARM-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x40 +# MACHO-ARM-NEXT: Size: 0x8 +# MACHO-ARM-NEXT: Offset: 728 +# MACHO-ARM-NEXT: Alignment: 2 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: NonLazySymbolPointers (0x6) +# MACHO-ARM-NEXT: Attributes [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: Relocations [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Symbols [ +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: SectionData ( +# MACHO-ARM-NEXT: 0000: 00000000 00000000 |........| +# MACHO-ARM-NEXT: ) +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/MachO/sections.test b/llvm/test/tools/llvm-readobj/MachO/sections.test --- a/llvm/test/tools/llvm-readobj/MachO/sections.test +++ b/llvm/test/tools/llvm-readobj/MachO/sections.test @@ -1,6 +1,8 @@ +## Check how we print sections. + ## Show that llvm-readobj prints MachO all section types properly. -# RUN: yaml2obj %s > %t -# RUN: llvm-readobj --sections %t | FileCheck %s +# RUN: yaml2obj --docnum=1 %s > %t1 +# RUN: llvm-readobj --sections %t1 | FileCheck %s # CHECK: Type: Regular (0x0) # CHECK: Type: ZeroFill (0x1) @@ -312,3 +314,389 @@ reserved1: 0x00000000 reserved2: 0x00000000 reserved3: 0x00000000 + +## Check that we can print sections for other targets. + +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-i386 \ +# RUN: | FileCheck %s --check-prefix MACHO-I386 +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-x86-64 \ +# RUN: | FileCheck %s --check-prefix MACHO-X86-64 +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-ppc \ +# RUN: | FileCheck %s --check-prefix MACHO-PPC +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-ppc64 \ +# RUN: | FileCheck %s --check-prefix MACHO-PPC64 +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.macho-arm \ +# RUN: | FileCheck %s --check-prefix MACHO-ARM + +# MACHO-I386: Sections [ +# MACHO-I386-NEXT: Section { +# MACHO-I386-NEXT: Index: 0 +# MACHO-I386-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-I386-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-I386-NEXT: Address: 0x0 +# MACHO-I386-NEXT: Size: 0x22 +# MACHO-I386-NEXT: Offset: 324 +# MACHO-I386-NEXT: Alignment: 4 +# MACHO-I386-NEXT: RelocationOffset: 0x174 +# MACHO-I386-NEXT: RelocationCount: 4 +# MACHO-I386-NEXT: Type: Regular (0x0) +# MACHO-I386-NEXT: Attributes [ (0x800004) +# MACHO-I386-NEXT: PureInstructions (0x800000) +# MACHO-I386-NEXT: SomeInstructions (0x4) +# MACHO-I386-NEXT: ] +# MACHO-I386-NEXT: Reserved1: 0x0 +# MACHO-I386-NEXT: Reserved2: 0x0 +# MACHO-I386-NEXT: } +# MACHO-I386-NEXT: Section { +# MACHO-I386-NEXT: Index: 1 +# MACHO-I386-NEXT: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) +# MACHO-I386-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-I386-NEXT: Address: 0x22 +# MACHO-I386-NEXT: Size: 0xD +# MACHO-I386-NEXT: Offset: 358 +# MACHO-I386-NEXT: Alignment: 0 +# MACHO-I386-NEXT: RelocationOffset: 0x0 +# MACHO-I386-NEXT: RelocationCount: 0 +# MACHO-I386-NEXT: Type: CStringLiterals (0x2) +# MACHO-I386-NEXT: Attributes [ (0x0) +# MACHO-I386-NEXT: ] +# MACHO-I386-NEXT: Reserved1: 0x0 +# MACHO-I386-NEXT: Reserved2: 0x0 +# MACHO-I386-NEXT: } + +# MACHO-X86-64: Sections [ +# MACHO-X86-64-NEXT: Section { +# MACHO-X86-64-NEXT: Index: 0 +# MACHO-X86-64-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-X86-64-NEXT: Address: 0x0 +# MACHO-X86-64-NEXT: Size: 0x16 +# MACHO-X86-64-NEXT: Offset: 368 +# MACHO-X86-64-NEXT: Alignment: 4 +# MACHO-X86-64-NEXT: RelocationOffset: 0x194 +# MACHO-X86-64-NEXT: RelocationCount: 3 +# MACHO-X86-64-NEXT: Type: Regular (0x0) +# MACHO-X86-64-NEXT: Attributes [ (0x800004) +# MACHO-X86-64-NEXT: PureInstructions (0x800000) +# MACHO-X86-64-NEXT: SomeInstructions (0x4) +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: Reserved1: 0x0 +# MACHO-X86-64-NEXT: Reserved2: 0x0 +# MACHO-X86-64-NEXT: Reserved3: 0x0 +# MACHO-X86-64-NEXT: } +# MACHO-X86-64-NEXT: Section { +# MACHO-X86-64-NEXT: Index: 1 +# MACHO-X86-64-NEXT: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) +# MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-X86-64-NEXT: Address: 0x16 +# MACHO-X86-64-NEXT: Size: 0xD +# MACHO-X86-64-NEXT: Offset: 390 +# MACHO-X86-64-NEXT: Alignment: 0 +# MACHO-X86-64-NEXT: RelocationOffset: 0x0 +# MACHO-X86-64-NEXT: RelocationCount: 0 +# MACHO-X86-64-NEXT: Type: CStringLiterals (0x2) +# MACHO-X86-64-NEXT: Attributes [ (0x0) +# MACHO-X86-64-NEXT: ] +# MACHO-X86-64-NEXT: Reserved1: 0x0 +# MACHO-X86-64-NEXT: Reserved2: 0x0 +# MACHO-X86-64-NEXT: Reserved3: 0x0 +# MACHO-X86-64-NEXT: } +# MACHO-X86-64-NEXT:] + +# MACHO-PPC: Sections [ +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 0 +# MACHO-PPC-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x0 +# MACHO-PPC-NEXT: Size: 0x3C +# MACHO-PPC-NEXT: Offset: 528 +# MACHO-PPC-NEXT: Alignment: 2 +# MACHO-PPC-NEXT: RelocationOffset: 0x27C +# MACHO-PPC-NEXT: RelocationCount: 5 +# MACHO-PPC-NEXT: Type: Regular (0x0) +# MACHO-PPC-NEXT: Attributes [ (0x800004) +# MACHO-PPC-NEXT: PureInstructions (0x800000) +# MACHO-PPC-NEXT: SomeInstructions (0x4) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x0 +# MACHO-PPC-NEXT: Reserved2: 0x0 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 1 +# MACHO-PPC-NEXT: Name: __picsymbolstub1 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 31) +# MACHO-PPC-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x40 +# MACHO-PPC-NEXT: Size: 0x20 +# MACHO-PPC-NEXT: Offset: 592 +# MACHO-PPC-NEXT: Alignment: 5 +# MACHO-PPC-NEXT: RelocationOffset: 0x2A4 +# MACHO-PPC-NEXT: RelocationCount: 4 +# MACHO-PPC-NEXT: Type: SymbolStubs (0x8) +# MACHO-PPC-NEXT: Attributes [ (0x800004) +# MACHO-PPC-NEXT: PureInstructions (0x800000) +# MACHO-PPC-NEXT: SomeInstructions (0x4) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x0 +# MACHO-PPC-NEXT: Reserved2: 0x20 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 2 +# MACHO-PPC-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x60 +# MACHO-PPC-NEXT: Size: 0x4 +# MACHO-PPC-NEXT: Offset: 624 +# MACHO-PPC-NEXT: Alignment: 2 +# MACHO-PPC-NEXT: RelocationOffset: 0x0 +# MACHO-PPC-NEXT: RelocationCount: 0 +# MACHO-PPC-NEXT: Type: Regular (0x0) +# MACHO-PPC-NEXT: Attributes [ (0x0) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x0 +# MACHO-PPC-NEXT: Reserved2: 0x0 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 3 +# MACHO-PPC-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x64 +# MACHO-PPC-NEXT: Size: 0x4 +# MACHO-PPC-NEXT: Offset: 628 +# MACHO-PPC-NEXT: Alignment: 2 +# MACHO-PPC-NEXT: RelocationOffset: 0x0 +# MACHO-PPC-NEXT: RelocationCount: 0 +# MACHO-PPC-NEXT: Type: NonLazySymbolPointers (0x6) +# MACHO-PPC-NEXT: Attributes [ (0x0) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x1 +# MACHO-PPC-NEXT: Reserved2: 0x0 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: Section { +# MACHO-PPC-NEXT: Index: 4 +# MACHO-PPC-NEXT: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC-NEXT: Address: 0x68 +# MACHO-PPC-NEXT: Size: 0x4 +# MACHO-PPC-NEXT: Offset: 632 +# MACHO-PPC-NEXT: Alignment: 2 +# MACHO-PPC-NEXT: RelocationOffset: 0x2C4 +# MACHO-PPC-NEXT: RelocationCount: 1 +# MACHO-PPC-NEXT: Type: LazySymbolPointers (0x7) +# MACHO-PPC-NEXT: Attributes [ (0x0) +# MACHO-PPC-NEXT: ] +# MACHO-PPC-NEXT: Reserved1: 0x2 +# MACHO-PPC-NEXT: Reserved2: 0x0 +# MACHO-PPC-NEXT: } +# MACHO-PPC-NEXT: ] + +# MACHO-PPC64: Sections [ +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 0 +# MACHO-PPC64-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x0 +# MACHO-PPC64-NEXT: Size: 0x3C +# MACHO-PPC64-NEXT: Offset: 608 +# MACHO-PPC64-NEXT: Alignment: 2 +# MACHO-PPC64-NEXT: RelocationOffset: 0x2D4 +# MACHO-PPC64-NEXT: RelocationCount: 5 +# MACHO-PPC64-NEXT: Type: Regular (0x0) +# MACHO-PPC64-NEXT: Attributes [ (0x800004) +# MACHO-PPC64-NEXT: PureInstructions (0x800000) +# MACHO-PPC64-NEXT: SomeInstructions (0x4) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x0 +# MACHO-PPC64-NEXT: Reserved2: 0x0 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 1 +# MACHO-PPC64-NEXT: Name: __picsymbolstub1 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 31) +# MACHO-PPC64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x40 +# MACHO-PPC64-NEXT: Size: 0x20 +# MACHO-PPC64-NEXT: Offset: 672 +# MACHO-PPC64-NEXT: Alignment: 5 +# MACHO-PPC64-NEXT: RelocationOffset: 0x2FC +# MACHO-PPC64-NEXT: RelocationCount: 4 +# MACHO-PPC64-NEXT: Type: SymbolStubs (0x8) +# MACHO-PPC64-NEXT: Attributes [ (0x800004) +# MACHO-PPC64-NEXT: PureInstructions (0x800000) +# MACHO-PPC64-NEXT: SomeInstructions (0x4) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x0 +# MACHO-PPC64-NEXT: Reserved2: 0x20 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 2 +# MACHO-PPC64-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x60 +# MACHO-PPC64-NEXT: Size: 0x4 +# MACHO-PPC64-NEXT: Offset: 704 +# MACHO-PPC64-NEXT: Alignment: 2 +# MACHO-PPC64-NEXT: RelocationOffset: 0x0 +# MACHO-PPC64-NEXT: RelocationCount: 0 +# MACHO-PPC64-NEXT: Type: Regular (0x0) +# MACHO-PPC64-NEXT: Attributes [ (0x0) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x0 +# MACHO-PPC64-NEXT: Reserved2: 0x0 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 3 +# MACHO-PPC64-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x64 +# MACHO-PPC64-NEXT: Size: 0x8 +# MACHO-PPC64-NEXT: Offset: 708 +# MACHO-PPC64-NEXT: Alignment: 2 +# MACHO-PPC64-NEXT: RelocationOffset: 0x0 +# MACHO-PPC64-NEXT: RelocationCount: 0 +# MACHO-PPC64-NEXT: Type: NonLazySymbolPointers (0x6) +# MACHO-PPC64-NEXT: Attributes [ (0x0) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x1 +# MACHO-PPC64-NEXT: Reserved2: 0x0 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: Section { +# MACHO-PPC64-NEXT: Index: 4 +# MACHO-PPC64-NEXT: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-PPC64-NEXT: Address: 0x6C +# MACHO-PPC64-NEXT: Size: 0x8 +# MACHO-PPC64-NEXT: Offset: 716 +# MACHO-PPC64-NEXT: Alignment: 2 +# MACHO-PPC64-NEXT: RelocationOffset: 0x31C +# MACHO-PPC64-NEXT: RelocationCount: 1 +# MACHO-PPC64-NEXT: Type: LazySymbolPointers (0x7) +# MACHO-PPC64-NEXT: Attributes [ (0x0) +# MACHO-PPC64-NEXT: ] +# MACHO-PPC64-NEXT: Reserved1: 0x2 +# MACHO-PPC64-NEXT: Reserved2: 0x0 +# MACHO-PPC64-NEXT: Reserved3: 0x0 +# MACHO-PPC64-NEXT: } +# MACHO-PPC64-NEXT: ] + +# MACHO-ARM: Sections [ +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 0 +# MACHO-ARM-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x0 +# MACHO-ARM-NEXT: Size: 0x3C +# MACHO-ARM-NEXT: Offset: 664 +# MACHO-ARM-NEXT: Alignment: 2 +# MACHO-ARM-NEXT: RelocationOffset: 0x2E0 +# MACHO-ARM-NEXT: RelocationCount: 9 +# MACHO-ARM-NEXT: Type: Regular (0x0) +# MACHO-ARM-NEXT: Attributes [ (0x800004) +# MACHO-ARM-NEXT: PureInstructions (0x800000) +# MACHO-ARM-NEXT: SomeInstructions (0x4) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 1 +# MACHO-ARM-NEXT: Name: __textcoal_nt (5F 5F 74 65 78 74 63 6F 61 6C 5F 6E 74 00 00 00) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x0 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 0 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: Coalesced (0xB) +# MACHO-ARM-NEXT: Attributes [ (0x800000) +# MACHO-ARM-NEXT: PureInstructions (0x800000) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 2 +# MACHO-ARM-NEXT: Name: __const_coal (5F 5F 63 6F 6E 73 74 5F 63 6F 61 6C 00 00 00 00) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x0 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 0 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: Coalesced (0xB) +# MACHO-ARM-NEXT: Attributes [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 3 +# MACHO-ARM-NEXT: Name: __picsymbolstub4 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 34) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x0 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 0 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: SymbolStubs (0x8) +# MACHO-ARM-NEXT: Attributes [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x10 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 4 +# MACHO-ARM-NEXT: Name: __StaticInit (5F 5F 53 74 61 74 69 63 49 6E 69 74 00 00 00 00) +# MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x0 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 0 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: Regular (0x0) +# MACHO-ARM-NEXT: Attributes [ (0x800000) +# MACHO-ARM-NEXT: PureInstructions (0x800000) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 5 +# MACHO-ARM-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x3C +# MACHO-ARM-NEXT: Size: 0x4 +# MACHO-ARM-NEXT: Offset: 724 +# MACHO-ARM-NEXT: Alignment: 2 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: Regular (0x0) +# MACHO-ARM-NEXT: Attributes [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: Section { +# MACHO-ARM-NEXT: Index: 6 +# MACHO-ARM-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) +# MACHO-ARM-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +# MACHO-ARM-NEXT: Address: 0x40 +# MACHO-ARM-NEXT: Size: 0x8 +# MACHO-ARM-NEXT: Offset: 728 +# MACHO-ARM-NEXT: Alignment: 2 +# MACHO-ARM-NEXT: RelocationOffset: 0x0 +# MACHO-ARM-NEXT: RelocationCount: 0 +# MACHO-ARM-NEXT: Type: NonLazySymbolPointers (0x6) +# MACHO-ARM-NEXT: Attributes [ (0x0) +# MACHO-ARM-NEXT: ] +# MACHO-ARM-NEXT: Reserved1: 0x0 +# MACHO-ARM-NEXT: Reserved2: 0x0 +# MACHO-ARM-NEXT: } +# MACHO-ARM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/archive.test b/llvm/test/tools/llvm-readobj/archive.test --- a/llvm/test/tools/llvm-readobj/archive.test +++ b/llvm/test/tools/llvm-readobj/archive.test @@ -1,7 +1,13 @@ -# Show that dumping operations apply to all members in an archive. +## Show that dumping operations apply to all members in an archive. # RUN: rm -f %t.a -# RUN: llvm-ar rc %t.a %p/ELF/Inputs/trivial.obj.elf-x86-64 %p/ELF/Inputs/trivial.obj.elf-i386 %p/COFF/Inputs/trivial.obj.coff-arm +# RUN: rm -rf %t.dir +# RUN: mkdir -p %t.dir +# RUN: yaml2obj --docnum=1 %s -o %t.dir/trivial.obj.elf-x86-64 +# RUN: yaml2obj --docnum=2 %s -o %t.dir/trivial.obj.elf-i386 +# RUN: yaml2obj --docnum=3 %s -o %t.dir/trivial.obj.coff-arm + +# RUN: llvm-ar rc %t.a %t.dir/trivial.obj.elf-x86-64 %t.dir/trivial.obj.elf-i386 %t.dir/trivial.obj.coff-arm # RUN: llvm-readobj --all %t.a | FileCheck %s -DARFILE="%t.a" --check-prefixes=HEADER,LLVM,COFF # RUN: llvm-readelf --all %t.a | FileCheck %s -DARFILE="%t.a" --check-prefixes=HEADER,GNU,COFF @@ -23,8 +29,6 @@ # GNU: ELF Header: # GNU: Machine: Advanced Micro Devices X86-64 # GNU: Section Headers: -# GNU: Relocation section '.rela.text' -# GNU: Symbol table '.symtab' # GNU: There are no section groups in this file. # LLVM-EMPTY: @@ -45,8 +49,6 @@ # GNU: ELF Header: # GNU: Machine: Intel 80386 # GNU: Section Headers: -# GNU: Relocation section '.rel.text' -# GNU: Symbol table '.symtab' # GNU: There are no section groups in this file. # LLVM-EMPTY: @@ -59,3 +61,24 @@ # COFF: Sections [ # COFF: Relocations [ # COFF: Symbols [ + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 + +--- !ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_386 + +--- !COFF +header: + Machine: IMAGE_FILE_MACHINE_ARMNT + Characteristics: [ ] +sections: [] +symbols: [] diff --git a/llvm/test/tools/llvm-readobj/basic.test b/llvm/test/tools/llvm-readobj/basic.test --- a/llvm/test/tools/llvm-readobj/basic.test +++ b/llvm/test/tools/llvm-readobj/basic.test @@ -1,6 +1,8 @@ -# Test case where input file does not exit. -RUN: not llvm-readobj %t.blah 2>&1 | FileCheck --check-prefix=ENOENT %s -ENOENT: '{{.*}}.blah': {{[Nn]}}o such file or directory +## Test case where input file does not exit. +RUN: not llvm-readobj %t.blah 2>&1 | FileCheck --check-prefix=ENOENT -DTOOL=readobj %s +RUN: not llvm-readelf %t.blah 2>&1 | FileCheck --check-prefix=ENOENT -DTOOL=readelf %s + +ENOENT: llvm-[[TOOL]]{{(\.exe)?}}: error: '{{.*}}.blah': {{[Nn]}}o such file or directory # Test case where input file is too small to be a recognised object file. RUN: touch %t.empty @@ -13,14 +15,6 @@ RUN: llvm-readobj --all %t.a 2>&1 | FileCheck --check-prefix=NO-OUTPUT --allow-empty %s NO-OUTPUT-NOT: {{.}} -# Test case where no switches are specified. -RUN: llvm-readobj %p/ELF/Inputs/trivial.obj.elf-x86-64 | FileCheck --check-prefix=HEADER %s -RUN: llvm-readelf %p/ELF/Inputs/trivial.obj.elf-x86-64 | FileCheck --check-prefix=NO-OUTPUT --allow-empty %s -HEADER: File: {{.*}}trivial.obj.elf-x86-64 -HEADER: Format: ELF64-x86-64 -HEADER: Arch: x86_64 -HEADER: AddressSize: 64bit - # Test case where switch it not recognised. RUN: not llvm-readobj --unknown-switch 2>&1 | FileCheck --check-prefix=UNKNOWN %s UNKNOWN: Unknown command line argument '--unknown-switch' diff --git a/llvm/test/tools/llvm-readobj/error-format.test b/llvm/test/tools/llvm-readobj/error-format.test deleted file mode 100644 --- a/llvm/test/tools/llvm-readobj/error-format.test +++ /dev/null @@ -1,19 +0,0 @@ -## This test shows that we include the tool name in error/warning messages. - -# RUN: not llvm-readelf %S/non-existent 2>&1 | FileCheck --check-prefix=ERR %s -DTOOL=readelf -# RUN: not llvm-readobj %S/non-existent 2>&1 | FileCheck --check-prefix=ERR %s -DTOOL=readobj - -# ERR: llvm-[[TOOL]]{{(\.exe)?}}: error: '{{.*}}': {{[Nn]}}o such file or directory - -# RUN: yaml2obj %s -o %t -# RUN: llvm-readelf -x 10 %t 2>&1 | FileCheck --check-prefix=WARN %s -DTOOL=readelf -# RUN: llvm-readobj -x 10 %t 2>&1 | FileCheck --check-prefix=WARN %s -DTOOL=readobj - -# WARN: llvm-[[TOOL]]{{(\.exe)?}}: warning: '{{.*}}': could not find section 10 - ---- !ELF -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_DYN - Machine: EM_RISCV diff --git a/llvm/test/tools/llvm-readobj/hex-dump.test b/llvm/test/tools/llvm-readobj/hex-dump.test deleted file mode 100644 --- a/llvm/test/tools/llvm-readobj/hex-dump.test +++ /dev/null @@ -1,59 +0,0 @@ -## Test that the -x alias can be used flexibly. Create a baseline and ensure -## all other combinations are identical. -# RUN: llvm-readelf --file-header --hex-dump=.text \ -# RUN: %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.out -# RUN: llvm-readelf -h --hex-dump .text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.1 -# RUN: llvm-readelf -h -x .text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.2 -# RUN: llvm-readelf -h -x=.text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.3 -# RUN: llvm-readelf -h -x.text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.4 -# RUN: llvm-readelf -hx .text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.5 -# RUN: llvm-readelf -hx=.text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.6 -# RUN: llvm-readelf -hx.text %p/ELF/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.7 - -# RUN: cmp %t.hexdump.out %t.hexdump.1 -# RUN: cmp %t.hexdump.out %t.hexdump.2 -# RUN: cmp %t.hexdump.out %t.hexdump.3 -# RUN: cmp %t.hexdump.out %t.hexdump.4 -# RUN: cmp %t.hexdump.out %t.hexdump.5 -# RUN: cmp %t.hexdump.out %t.hexdump.6 -# RUN: cmp %t.hexdump.out %t.hexdump.7 - -# RUN: llvm-readelf -S %p/ELF/Inputs/trivial.obj.elf-x86-64 | FileCheck %s --check-prefix=ELF-SEC - -## Both 9 and .strtab refer to .strtab. Test we dump the section only once. -# RUN: llvm-readobj -x 9 -x 9 -x .strtab -x .strtab %p/ELF/Inputs/trivial.obj.elf-x86-64 2>&1 | \ -# RUN: FileCheck %s --check-prefix=ELF -# RUN: llvm-readobj -x 9 -x .strtab -x 10 -x not_exist \ -# RUN: %p/ELF/Inputs/trivial.obj.elf-x86-64 2>&1 | FileCheck %s -DFILE=%p/ELF/Inputs/trivial.obj.elf-x86-64 --check-prefixes=ELF-WARN,ELF - -# ELF-SEC: [ 9] .strtab - -# ELF-WARN: warning: '[[FILE]]': could not find section 'not_exist' -# ELF-WARN: warning: '[[FILE]]': could not find section 10 -# ELF: Hex dump of section '.strtab': -# ELF-NEXT: 0x00000000 00747269 7669616c 2e6c6c00 6d61696e .trivial.ll.main -# ELF-NEXT: 0x00000010 002e4c2e 73747200 70757473 00536f6d ..L.str.puts.Som -# ELF-NEXT: 0x00000020 654f7468 65724675 6e637469 6f6e005f eOtherFunction._ -# ELF-NEXT: 0x00000030 474c4f42 414c5f4f 46465345 545f5441 GLOBAL_OFFSET_TA -# ELF-NEXT: 0x00000040 424c455f 00 BLE_. -# ELF-NOT: {{.}} - -## Below we test -x can be used for other binary formats. - -# RUN: llvm-readobj -x 1 %p/COFF/Inputs/trivial.obj.coff-x86-64 \ -# RUN: | FileCheck %s --check-prefix COFF - -# COFF: 0x00000000 4883ec28 488d0d00 000000e8 00000000 H..(H........... -# COFF: 0x00000010 e8000000 0031c048 83c428c3 .....1.H..(. - -# RUN: llvm-readobj -x 1 %p/MachO/Inputs/trivial.obj.macho-x86-64 \ -# RUN: | FileCheck %s --check-prefix MACHO - -# MACHO: 0x00000000 50488d3d 00000000 e8000000 00e80000 PH.=............ -# MACHO: 0x00000010 000031c0 5ac3 ..1.Z. - -# RUN: llvm-readobj -x 1 %p/wasm/Inputs/trivial.obj.wasm \ -# RUN: | FileCheck %s --check-prefix WASM - -# WASM: 0x00000000 04600001 7f60017f 017f6000 0060017f .`...`....`..`.. -# WASM: 0x00000010 00 . diff --git a/llvm/test/tools/llvm-readobj/relocations.test b/llvm/test/tools/llvm-readobj/relocations.test deleted file mode 100644 --- a/llvm/test/tools/llvm-readobj/relocations.test +++ /dev/null @@ -1,302 +0,0 @@ -RUN: llvm-readobj -r %p/COFF/Inputs/trivial.obj.coff-i386 \ -RUN: | FileCheck %s -check-prefix COFF -RUN: llvm-readobj -r %p/COFF/Inputs/bad-relocs.obj.coff-i386 \ -RUN: | FileCheck %s -check-prefix BAD-COFF-RELOCS -RUN: llvm-readobj -r %p/COFF/Inputs/relocs-no-symtab.obj.coff-i386 \ -RUN: | FileCheck %s -check-prefix BAD-COFF-RELOCS -RUN: llvm-readobj -r %p/MachO/Inputs/trivial.obj.macho-i386 \ -RUN: | FileCheck %s -check-prefix MACHO-I386 -RUN: llvm-readobj -r %p/MachO/Inputs/trivial.obj.macho-x86-64 \ -RUN: | FileCheck %s -check-prefix MACHO-X86-64 -RUN: llvm-readobj -r --expand-relocs %p/MachO/Inputs/trivial.obj.macho-ppc \ -RUN: | FileCheck %s -check-prefix MACHO-PPC -RUN: llvm-readobj -r --expand-relocs %p/MachO/Inputs/trivial.obj.macho-ppc64 \ -RUN: | FileCheck %s -check-prefix MACHO-PPC64 -RUN: llvm-readobj -r --expand-relocs %p/MachO/Inputs/trivial.obj.macho-arm \ -RUN: | FileCheck %s -check-prefix MACHO-ARM -RUN: llvm-readobj -r --expand-relocs %p/wasm/Inputs/trivial.obj.wasm \ -RUN: | FileCheck %s -check-prefix WASM - -COFF: Relocations [ -COFF-NEXT: Section (1) .text { -COFF-NEXT: 0x4 IMAGE_REL_I386_DIR32 .data (4) -COFF-NEXT: 0x9 IMAGE_REL_I386_REL32 _puts (7) -COFF-NEXT: 0xE IMAGE_REL_I386_REL32 _SomeOtherFunction (8) -COFF-NEXT: } -COFF-NEXT: ] - -BAD-COFF-RELOCS: Relocations [ -BAD-COFF-RELOCS-NEXT: Section (1) sec { -BAD-COFF-RELOCS-NEXT: 0xDEADBEEF IMAGE_REL_I386_ABSOLUTE - -BAD-COFF-RELOCS-NEXT: } -BAD-COFF-RELOCS-NEXT: ] - -MACHO-I386: Relocations [ -MACHO-I386-NEXT: Section __text { -MACHO-I386-NEXT: 0x18 1 2 1 GENERIC_RELOC_VANILLA 0 _SomeOtherFunction -MACHO-I386-NEXT: 0x13 1 2 1 GENERIC_RELOC_VANILLA 0 _puts -MACHO-I386-NEXT: 0xB 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x22 -MACHO-I386-NEXT: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x8 -MACHO-I386-NEXT: } -MACHO-I386-NEXT: ] - -MACHO-X86-64: Relocations [ -MACHO-X86-64-NEXT: Section __text { -MACHO-X86-64-NEXT: 0xE 1 2 1 X86_64_RELOC_BRANCH 0 _SomeOtherFunction -MACHO-X86-64-NEXT: 0x9 1 2 1 X86_64_RELOC_BRANCH 0 _puts -MACHO-X86-64-NEXT: 0x4 1 2 1 X86_64_RELOC_SIGNED 0 L_.str -MACHO-X86-64-NEXT: } -MACHO-X86-64-NEXT:] - -MACHO-PPC: Relocations [ -MACHO-PPC-NEXT: Section __text { -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x24 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) -MACHO-PPC-NEXT: Value: 0x64 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x0 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) -MACHO-PPC-NEXT: Value: 0xC -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x1C -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) -MACHO-PPC-NEXT: Value: 0x64 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x58 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) -MACHO-PPC-NEXT: Value: 0xC -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x18 -MACHO-PPC-NEXT: PCRel: 1 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_BR24 (3) -MACHO-PPC-NEXT: Section: __picsymbolstub1 (2) -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section __picsymbolstub1 { -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x14 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) -MACHO-PPC-NEXT: Value: 0x68 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x0 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) -MACHO-PPC-NEXT: Value: 0x48 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0xC -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) -MACHO-PPC-NEXT: Value: 0x68 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x20 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) -MACHO-PPC-NEXT: Value: 0x48 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section __la_symbol_ptr { -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x0 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_VANILLA (0) -MACHO-PPC-NEXT: Symbol: dyld_stub_binding_helper (5) -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: ] - -MACHO-PPC64: Relocations [ -MACHO-PPC64-NEXT: Section __text { -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x24 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (14) -MACHO-PPC64-NEXT: Value: 0x64 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x0 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (1) -MACHO-PPC64-NEXT: Value: 0xC -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x1C -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (12) -MACHO-PPC64-NEXT: Value: 0x64 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x58 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (1) -MACHO-PPC64-NEXT: Value: 0xC -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x18 -MACHO-PPC64-NEXT: PCRel: 1 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (3) -MACHO-PPC64-NEXT: Section: __picsymbolstub1 (2) -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section __picsymbolstub1 { -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x14 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (14) -MACHO-PPC64-NEXT: Value: 0x6C -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x0 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (1) -MACHO-PPC64-NEXT: Value: 0x48 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0xC -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (12) -MACHO-PPC64-NEXT: Value: 0x6C -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x24 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (1) -MACHO-PPC64-NEXT: Value: 0x48 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section __la_symbol_ptr { -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x0 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 3 -MACHO-PPC64-NEXT: Type: (0) -MACHO-PPC64-NEXT: Symbol: dyld_stub_binding_helper (5) -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: ] - - -MACHO-ARM: Relocations [ -MACHO-ARM-NEXT: Section __text { -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x38 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) -MACHO-ARM-NEXT: Value: 0x40 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x0 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) -MACHO-ARM-NEXT: Value: 0x28 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x20 -MACHO-ARM-NEXT: PCRel: 1 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_BR24 (5) -MACHO-ARM-NEXT: Symbol: _g -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x1C -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 1 -MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) -MACHO-ARM-NEXT: Symbol: _g -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x0 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 1 -MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) -MACHO-ARM-NEXT: Section: - -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x18 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 0 -MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) -MACHO-ARM-NEXT: Symbol: _g -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x0 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 0 -MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) -MACHO-ARM-NEXT: Section: - -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0xC -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) -MACHO-ARM-NEXT: Value: 0x44 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x0 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) -MACHO-ARM-NEXT: Value: 0x4 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: ] - -WASM: Relocations [ -WASM-NEXT: Section (4) CODE { -WASM-NEXT: Relocation { -WASM-NEXT: Type: R_WASM_MEMORY_ADDR_SLEB (4) -WASM-NEXT: Offset: 0x4 -WASM-NEXT: Symbol: .L.str -WASM-NEXT: Addend: 0 -WASM-NEXT: } -WASM-NEXT: Relocation { -WASM-NEXT: Type: R_WASM_FUNCTION_INDEX_LEB (0) -WASM-NEXT: Offset: 0xA -WASM-NEXT: Symbol: puts -WASM-NEXT: } -WASM-NEXT: Relocation { -WASM-NEXT: Type: R_WASM_FUNCTION_INDEX_LEB (0) -WASM-NEXT: Offset: 0x11 -WASM-NEXT: Symbol: .LSomeOtherFunction_bitcast -WASM-NEXT: } -WASM-NEXT: Relocation { -WASM-NEXT: Type: R_WASM_FUNCTION_INDEX_LEB (0) -WASM-NEXT: Offset: 0x1E -WASM-NEXT: Symbol: SomeOtherFunction -WASM-NEXT: } -WASM-NEXT: } -WASM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/sections-ext.test b/llvm/test/tools/llvm-readobj/sections-ext.test deleted file mode 100644 --- a/llvm/test/tools/llvm-readobj/sections-ext.test +++ /dev/null @@ -1,994 +0,0 @@ -RUN: llvm-readobj -S --st --sr --sd %p/COFF/Inputs/trivial.obj.coff-i386 \ -RUN: | FileCheck %s -check-prefix COFF -RUN: llvm-readobj -S --st --sr --sd %p/ELF/Inputs/trivial.obj.elf-i386 \ -RUN: | FileCheck %s -check-prefix ELF -RUN: llvm-readobj -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-i386 \ -RUN: | FileCheck %s -check-prefix MACHO-I386 -RUN: llvm-readobj -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-x86-64 \ -RUN: | FileCheck %s -check-prefix MACHO-X86-64 -RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-ppc \ -RUN: | FileCheck %s -check-prefix MACHO-PPC -RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-ppc64 \ -RUN: | FileCheck %s -check-prefix MACHO-PPC64 -RUN: llvm-readobj --expand-relocs -S --st --sr --sd %p/MachO/Inputs/trivial.obj.macho-arm \ -RUN: | FileCheck %s -check-prefix MACHO-ARM - -# Check the two-letter aliases above (-st, -sr, -sd) are equivalent to their -# full flag names. -RUN: llvm-readobj -S --st %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-st-alias -RUN: llvm-readobj -S --section-symbols %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-st-no-alias -RUN: diff %t.readobj-st-alias %t.readobj-st-no-alias - -RUN: llvm-readobj -S --sr %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-sr-alias -RUN: llvm-readobj -S --section-relocations %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-sr-no-alias -RUN: diff %t.readobj-sr-alias %t.readobj-sr-no-alias - -RUN: llvm-readobj -S --sd %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-sd-alias -RUN: llvm-readobj -S --section-data %p/ELF/Inputs/trivial.obj.elf-i386 > %t.readobj-sd-no-alias -RUN: diff %t.readobj-sd-alias %t.readobj-sd-no-alias - -COFF: Sections [ -COFF-NEXT: Section { -COFF-NEXT: Number: 1 -COFF-NEXT: Name: .text (2E 74 65 78 74 00 00 00) -COFF-NEXT: VirtualSize: 0x0 -COFF-NEXT: VirtualAddress: 0x0 -COFF-NEXT: RawDataSize: 22 -COFF-NEXT: PointerToRawData: 0x64 -COFF-NEXT: PointerToRelocations: 0x7A -COFF-NEXT: PointerToLineNumbers: 0x0 -COFF-NEXT: RelocationCount: 3 -COFF-NEXT: LineNumberCount: 0 -COFF-NEXT: Characteristics [ (0x60500020) -COFF-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000) -COFF-NEXT: IMAGE_SCN_CNT_CODE (0x20) -COFF-NEXT: IMAGE_SCN_MEM_EXECUTE (0x20000000) -COFF-NEXT: IMAGE_SCN_MEM_READ (0x40000000) -COFF-NEXT: ] -COFF-NEXT: Relocations [ -COFF-NEXT: 0x4 IMAGE_REL_I386_DIR32 .data -COFF-NEXT: 0x9 IMAGE_REL_I386_REL32 _puts -COFF-NEXT: 0xE IMAGE_REL_I386_REL32 _SomeOtherFunction -COFF-NEXT: ] -COFF-NEXT: Symbols [ -COFF-NEXT: Symbol { -COFF-NEXT: Name: .text -COFF-NEXT: Value: 0 -COFF-NEXT: Section: .text (1) -COFF-NEXT: BaseType: Null (0x0) -COFF-NEXT: ComplexType: Null (0x0) -COFF-NEXT: StorageClass: Static (0x3) -COFF-NEXT: AuxSymbolCount: 1 -COFF-NEXT: AuxSectionDef { -COFF-NEXT: Length: 22 -COFF-NEXT: RelocationCount: 3 -COFF-NEXT: LineNumberCount: 0 -COFF-NEXT: Checksum: 0x0 -COFF-NEXT: Number: 1 -COFF-NEXT: Selection: 0x0 -COFF-NEXT: } -COFF-NEXT: } -COFF-NEXT: Symbol { -COFF-NEXT: Name: _main -COFF-NEXT: Value: 0 -COFF-NEXT: Section: .text (1) -COFF-NEXT: BaseType: Null (0x0) -COFF-NEXT: ComplexType: Function (0x2) -COFF-NEXT: StorageClass: External (0x2) -COFF-NEXT: AuxSymbolCount: 0 -COFF-NEXT: } -COFF-NEXT: ] -COFF-NEXT: SectionData ( -COFF-NEXT: 0000: 50C70424 00000000 E8000000 00E80000 |P..$............| -COFF-NEXT: 0010: 000031C0 5AC3 |..1.Z.| -COFF-NEXT: ) -COFF-NEXT: } - -ELF: Sections [ -ELF-NEXT: Section { -ELF-NEXT: Index: 0 -ELF-NEXT: Name: (0) -ELF-NEXT: Type: SHT_NULL (0x0) -ELF-NEXT: Flags [ (0x0) -ELF-NEXT: ] -ELF-NEXT: Address: 0x0 -ELF-NEXT: Offset: 0x0 -ELF-NEXT: Size: 0 -ELF-NEXT: Link: 0 -ELF-NEXT: Info: 0 -ELF-NEXT: AddressAlignment: 0 -ELF-NEXT: EntrySize: 0 -ELF-NEXT: Relocations [ -ELF-NEXT: ] -ELF-NEXT: Symbols [ -ELF-NEXT: ] -ELF-NEXT: SectionData ( -ELF-NEXT: ) -ELF-NEXT: } -ELF-NEXT: Section { -ELF-NEXT: Index: 1 -ELF-NEXT: Name: .text (5) -ELF-NEXT: Type: SHT_PROGBITS (0x1) -ELF-NEXT: Flags [ (0x6) -ELF-NEXT: SHF_ALLOC (0x2) -ELF-NEXT: SHF_EXECINSTR (0x4) -ELF-NEXT: ] -ELF-NEXT: Address: 0x0 -ELF-NEXT: Offset: 0x40 -ELF-NEXT: Size: 42 -ELF-NEXT: Link: 0 -ELF-NEXT: Info: 0 -ELF-NEXT: AddressAlignment: 16 -ELF-NEXT: EntrySize: 0 -ELF-NEXT: Relocations [ -ELF-NEXT: ] -ELF-NEXT: Symbols [ -ELF-NEXT: Symbol { -ELF-NEXT: Name: .text (0) -ELF-NEXT: Value: 0x0 -ELF-NEXT: Size: 0 -ELF-NEXT: Binding: Local (0x0) -ELF-NEXT: Type: Section (0x3) -ELF-NEXT: Other: 0 -ELF-NEXT: Section: .text (0x1) -ELF-NEXT: } -ELF-NEXT: Symbol { -ELF-NEXT: Name: main (12) -ELF-NEXT: Value: 0x0 -ELF-NEXT: Size: 42 -ELF-NEXT: Binding: Global (0x1) -ELF-NEXT: Type: Function (0x2) -ELF-NEXT: Other: 0 -ELF-NEXT: Section: .text (0x1) -ELF-NEXT: } -ELF-NEXT: ] -ELF-NEXT: SectionData ( -ELF-NEXT: 0000: 5383EC08 E8000000 005B81C3 03000000 |S........[......| -ELF-NEXT: 0010: 8D830000 00008904 24E8FCFF FFFFE8FC |........$.......| -ELF-NEXT: 0020: FFFFFF31 C083C408 5BC3 |...1....[.| -ELF-NEXT: ) -ELF-NEXT: } -ELF-NEXT: Section { -ELF-NEXT: Index: 2 -ELF-NEXT: Name: .rel.text (1) -ELF-NEXT: Type: SHT_REL (0x9) -ELF-NEXT: Flags [ (0x0) -ELF-NEXT: ] -ELF-NEXT: Address: 0x0 -ELF-NEXT: Offset: 0x360 -ELF-NEXT: Size: 32 -ELF-NEXT: Link: 8 -ELF-NEXT: Info: 1 -ELF-NEXT: AddressAlignment: 4 -ELF-NEXT: EntrySize: 8 -ELF-NEXT: Relocations [ -ELF-NEXT: 0xC R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0 -ELF-NEXT: 0x12 R_386_GOTOFF .L.str 0x0 -ELF-NEXT: 0x1A R_386_PLT32 puts 0x0 -ELF-NEXT: 0x1F R_386_PLT32 SomeOtherFunction 0x0 -ELF-NEXT: ] -ELF-NEXT: Symbols [ -ELF-NEXT: ] -ELF-NEXT: SectionData ( -ELF-NEXT: 0000: 0C000000 0A0A0000 12000000 09020000 |................| -ELF-NEXT: 0010: 1A000000 040B0000 1F000000 04090000 |................| -ELF-NEXT: ) -ELF-NEXT: } - -MACHO-I386: Sections [ -MACHO-I386-NEXT: Section { -MACHO-I386-NEXT: Index: 0 -MACHO-I386-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-I386-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-I386-NEXT: Address: 0x0 -MACHO-I386-NEXT: Size: 0x22 -MACHO-I386-NEXT: Offset: 324 -MACHO-I386-NEXT: Alignment: 4 -MACHO-I386-NEXT: RelocationOffset: 0x174 -MACHO-I386-NEXT: RelocationCount: 4 -MACHO-I386-NEXT: Type: Regular (0x0) -MACHO-I386-NEXT: Attributes [ (0x800004) -MACHO-I386-NEXT: PureInstructions (0x800000) -MACHO-I386-NEXT: SomeInstructions (0x4) -MACHO-I386-NEXT: ] -MACHO-I386-NEXT: Reserved1: 0x0 -MACHO-I386-NEXT: Reserved2: 0x0 -MACHO-I386-NEXT: Relocations [ -MACHO-I386-NEXT: 0x18 1 2 1 GENERIC_RELOC_VANILLA 0 _SomeOtherFunction -MACHO-I386-NEXT: 0x13 1 2 1 GENERIC_RELOC_VANILLA 0 _puts -MACHO-I386-NEXT: 0xB 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x22 -MACHO-I386-NEXT: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x8 -MACHO-I386-NEXT: ] -MACHO-I386-NEXT: Symbols [ -MACHO-I386-NEXT: Symbol { -MACHO-I386-NEXT: Name: _main (1) -MACHO-I386-NEXT: Extern -MACHO-I386-NEXT: Type: Section (0xE) -MACHO-I386-NEXT: Section: __text (0x1) -MACHO-I386-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-I386-NEXT: Flags [ (0x0) -MACHO-I386-NEXT: ] -MACHO-I386-NEXT: Value: 0x0 -MACHO-I386-NEXT: } -MACHO-I386-NEXT: ] -MACHO-I386-NEXT: SectionData ( -MACHO-I386-NEXT: 0000: 83EC0CE8 00000000 588D801A 00000089 |........X.......| -MACHO-I386-NEXT: 0010: 0424E8E9 FFFFFFE8 E4FFFFFF 31C083C4 |.$..........1...| -MACHO-I386-NEXT: 0020: 0CC3 |..| -MACHO-I386-NEXT: ) -MACHO-I386-NEXT: } - - -MACHO-X86-64: Sections [ -MACHO-X86-64-NEXT: Section { -MACHO-X86-64-NEXT: Index: 0 -MACHO-X86-64-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-X86-64-NEXT: Address: 0x0 -MACHO-X86-64-NEXT: Size: 0x16 -MACHO-X86-64-NEXT: Offset: 368 -MACHO-X86-64-NEXT: Alignment: 4 -MACHO-X86-64-NEXT: RelocationOffset: 0x194 -MACHO-X86-64-NEXT: RelocationCount: 3 -MACHO-X86-64-NEXT: Type: Regular (0x0) -MACHO-X86-64-NEXT: Attributes [ (0x800004) -MACHO-X86-64-NEXT: PureInstructions (0x800000) -MACHO-X86-64-NEXT: SomeInstructions (0x4) -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: Reserved1: 0x0 -MACHO-X86-64-NEXT: Reserved2: 0x0 -MACHO-X86-64-NEXT: Reserved3: 0x0 -MACHO-X86-64-NEXT: Relocations [ -MACHO-X86-64-NEXT: 0xE 1 2 1 X86_64_RELOC_BRANCH 0 _SomeOtherFunction -MACHO-X86-64-NEXT: 0x9 1 2 1 X86_64_RELOC_BRANCH 0 _puts -MACHO-X86-64-NEXT: 0x4 1 2 1 X86_64_RELOC_SIGNED 0 L_.str -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: Symbols [ -MACHO-X86-64-NEXT: Symbol { -MACHO-X86-64-NEXT: Name: _main (1) -MACHO-X86-64-NEXT: Extern -MACHO-X86-64-NEXT: Type: Section (0xE) -MACHO-X86-64-NEXT: Section: __text (0x1) -MACHO-X86-64-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-X86-64-NEXT: Flags [ (0x0) -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: Value: 0x0 -MACHO-X86-64-NEXT: } -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: SectionData ( -MACHO-X86-64-NEXT: 0000: 50488D3D 00000000 E8000000 00E80000 |PH.=............| -MACHO-X86-64-NEXT: 0010: 000031C0 5AC3 |..1.Z.| -MACHO-X86-64-NEXT: ) -MACHO-X86-64-NEXT: } -MACHO-X86-64-NEXT: Section { -MACHO-X86-64-NEXT: Index: 1 -MACHO-X86-64-NEXT: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) -MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-X86-64-NEXT: Address: 0x16 -MACHO-X86-64-NEXT: Size: 0xD -MACHO-X86-64-NEXT: Offset: 390 -MACHO-X86-64-NEXT: Alignment: 0 -MACHO-X86-64-NEXT: RelocationOffset: 0x0 -MACHO-X86-64-NEXT: RelocationCount: 0 -MACHO-X86-64-NEXT: Type: CStringLiterals (0x2) -MACHO-X86-64-NEXT: Attributes [ (0x0) -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: Reserved1: 0x0 -MACHO-X86-64-NEXT: Reserved2: 0x0 -MACHO-X86-64-NEXT: Reserved3: 0x0 -MACHO-X86-64-NEXT: Relocations [ -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: Symbols [ -MACHO-X86-64-NEXT: Symbol { -MACHO-X86-64-NEXT: Name: L_.str (32) -MACHO-X86-64-NEXT: Type: Section (0xE) -MACHO-X86-64-NEXT: Section: __cstring (0x2) -MACHO-X86-64-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-X86-64-NEXT: Flags [ (0x0) -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: Value: 0x16 -MACHO-X86-64-NEXT: } -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: SectionData ( -MACHO-X86-64-NEXT: 0000: 48656C6C 6F20576F 726C640A 00 |Hello World..| -MACHO-X86-64-NEXT: ) -MACHO-X86-64-NEXT: } -MACHO-X86-64-NEXT:] - -MACHO-PPC: Sections [ -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 0 -MACHO-PPC-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x0 -MACHO-PPC-NEXT: Size: 0x3C -MACHO-PPC-NEXT: Offset: 528 -MACHO-PPC-NEXT: Alignment: 2 -MACHO-PPC-NEXT: RelocationOffset: 0x27C -MACHO-PPC-NEXT: RelocationCount: 5 -MACHO-PPC-NEXT: Type: Regular (0x0) -MACHO-PPC-NEXT: Attributes [ (0x800004) -MACHO-PPC-NEXT: PureInstructions (0x800000) -MACHO-PPC-NEXT: SomeInstructions (0x4) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x0 -MACHO-PPC-NEXT: Reserved2: 0x0 -MACHO-PPC-NEXT: Relocations [ -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x24 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) -MACHO-PPC-NEXT: Value: 0x64 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x0 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) -MACHO-PPC-NEXT: Value: 0xC -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x1C -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) -MACHO-PPC-NEXT: Value: 0x64 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x58 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) -MACHO-PPC-NEXT: Value: 0xC -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x18 -MACHO-PPC-NEXT: PCRel: 1 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_BR24 (3) -MACHO-PPC-NEXT: Section: __picsymbolstub1 (2) -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Symbols [ -MACHO-PPC-NEXT: Symbol { -MACHO-PPC-NEXT: Name: _f (4) -MACHO-PPC-NEXT: Extern -MACHO-PPC-NEXT: Type: Section (0xE) -MACHO-PPC-NEXT: Section: __text (0x1) -MACHO-PPC-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-PPC-NEXT: Flags [ (0x0) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Value: 0x0 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: SectionData ( -MACHO-PPC-NEXT: 0000: 7C0802A6 93E1FFFC 429F0005 7FE802A6 ||.......B.......| -MACHO-PPC-NEXT: 0010: 90010008 9421FFB0 48000029 3C5F0000 |.....!..H..)<_..| -MACHO-PPC-NEXT: 0020: 38210050 80420058 80010008 83E1FFFC |8!.P.B.X........| -MACHO-PPC-NEXT: 0030: 7C0803A6 80620000 4E800020 ||....b..N.. | -MACHO-PPC-NEXT: ) -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 1 -MACHO-PPC-NEXT: Name: __picsymbolstub1 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 31) -MACHO-PPC-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x40 -MACHO-PPC-NEXT: Size: 0x20 -MACHO-PPC-NEXT: Offset: 592 -MACHO-PPC-NEXT: Alignment: 5 -MACHO-PPC-NEXT: RelocationOffset: 0x2A4 -MACHO-PPC-NEXT: RelocationCount: 4 -MACHO-PPC-NEXT: Type: SymbolStubs (0x8) -MACHO-PPC-NEXT: Attributes [ (0x800004) -MACHO-PPC-NEXT: PureInstructions (0x800000) -MACHO-PPC-NEXT: SomeInstructions (0x4) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x0 -MACHO-PPC-NEXT: Reserved2: 0x20 -MACHO-PPC-NEXT: Relocations [ -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x14 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_LO16_SECTDIFF (11) -MACHO-PPC-NEXT: Value: 0x68 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x0 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) -MACHO-PPC-NEXT: Value: 0x48 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0xC -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_HA16_SECTDIFF (12) -MACHO-PPC-NEXT: Value: 0x68 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x20 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_PAIR (1) -MACHO-PPC-NEXT: Value: 0x48 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Symbols [ -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: SectionData ( -MACHO-PPC-NEXT: 0000: 7C0802A6 429F0005 7D6802A6 3D6B0000 ||...B...}h..=k..| -MACHO-PPC-NEXT: 0010: 7C0803A6 858B0020 7D8903A6 4E800420 ||...... }...N.. | -MACHO-PPC-NEXT: ) -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 2 -MACHO-PPC-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x60 -MACHO-PPC-NEXT: Size: 0x4 -MACHO-PPC-NEXT: Offset: 624 -MACHO-PPC-NEXT: Alignment: 2 -MACHO-PPC-NEXT: RelocationOffset: 0x0 -MACHO-PPC-NEXT: RelocationCount: 0 -MACHO-PPC-NEXT: Type: Regular (0x0) -MACHO-PPC-NEXT: Attributes [ (0x0) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x0 -MACHO-PPC-NEXT: Reserved2: 0x0 -MACHO-PPC-NEXT: Relocations [ -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Symbols [ -MACHO-PPC-NEXT: Symbol { -MACHO-PPC-NEXT: Name: _b (1) -MACHO-PPC-NEXT: Extern -MACHO-PPC-NEXT: Type: Section (0xE) -MACHO-PPC-NEXT: Section: __data (0x3) -MACHO-PPC-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-PPC-NEXT: Flags [ (0x0) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Value: 0x60 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: SectionData ( -MACHO-PPC-NEXT: 0000: 0000002A |...*| -MACHO-PPC-NEXT: ) -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 3 -MACHO-PPC-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x64 -MACHO-PPC-NEXT: Size: 0x4 -MACHO-PPC-NEXT: Offset: 628 -MACHO-PPC-NEXT: Alignment: 2 -MACHO-PPC-NEXT: RelocationOffset: 0x0 -MACHO-PPC-NEXT: RelocationCount: 0 -MACHO-PPC-NEXT: Type: NonLazySymbolPointers (0x6) -MACHO-PPC-NEXT: Attributes [ (0x0) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x1 -MACHO-PPC-NEXT: Reserved2: 0x0 -MACHO-PPC-NEXT: Relocations [ -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Symbols [ -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: SectionData ( -MACHO-PPC-NEXT: 0000: 00000000 |....| -MACHO-PPC-NEXT: ) -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 4 -MACHO-PPC-NEXT: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x68 -MACHO-PPC-NEXT: Size: 0x4 -MACHO-PPC-NEXT: Offset: 632 -MACHO-PPC-NEXT: Alignment: 2 -MACHO-PPC-NEXT: RelocationOffset: 0x2C4 -MACHO-PPC-NEXT: RelocationCount: 1 -MACHO-PPC-NEXT: Type: LazySymbolPointers (0x7) -MACHO-PPC-NEXT: Attributes [ (0x0) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x2 -MACHO-PPC-NEXT: Reserved2: 0x0 -MACHO-PPC-NEXT: Relocations [ -MACHO-PPC-NEXT: Relocation { -MACHO-PPC-NEXT: Offset: 0x0 -MACHO-PPC-NEXT: PCRel: 0 -MACHO-PPC-NEXT: Length: 2 -MACHO-PPC-NEXT: Type: PPC_RELOC_VANILLA (0) -MACHO-PPC-NEXT: Symbol: dyld_stub_binding_helper (5) -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Symbols [ -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: SectionData ( -MACHO-PPC-NEXT: 0000: 00000000 |....| -MACHO-PPC-NEXT: ) -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: ] - - -MACHO-PPC64: Sections [ -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 0 -MACHO-PPC64-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x0 -MACHO-PPC64-NEXT: Size: 0x3C -MACHO-PPC64-NEXT: Offset: 608 -MACHO-PPC64-NEXT: Alignment: 2 -MACHO-PPC64-NEXT: RelocationOffset: 0x2D4 -MACHO-PPC64-NEXT: RelocationCount: 5 -MACHO-PPC64-NEXT: Type: Regular (0x0) -MACHO-PPC64-NEXT: Attributes [ (0x800004) -MACHO-PPC64-NEXT: PureInstructions (0x800000) -MACHO-PPC64-NEXT: SomeInstructions (0x4) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x0 -MACHO-PPC64-NEXT: Reserved2: 0x0 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: Relocations [ -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x24 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (14) -MACHO-PPC64-NEXT: Value: 0x64 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x0 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (1) -MACHO-PPC64-NEXT: Value: 0xC -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x1C -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (12) -MACHO-PPC64-NEXT: Value: 0x64 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x58 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (1) -MACHO-PPC64-NEXT: Value: 0xC -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x18 -MACHO-PPC64-NEXT: PCRel: 1 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (3) -MACHO-PPC64-NEXT: Section: __picsymbolstub1 (2) -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Symbols [ -MACHO-PPC64-NEXT: Symbol { -MACHO-PPC64-NEXT: Name: _f (4) -MACHO-PPC64-NEXT: Extern -MACHO-PPC64-NEXT: Type: Section (0xE) -MACHO-PPC64-NEXT: Section: __text (0x1) -MACHO-PPC64-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-PPC64-NEXT: Flags [ (0x0) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Value: 0x0 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: SectionData ( -MACHO-PPC64-NEXT: 0000: 7C0802A6 FBE1FFF8 429F0005 7FE802A6 ||.......B.......| -MACHO-PPC64-NEXT: 0010: F8010010 F821FF81 48000029 3C5F0000 |.....!..H..)<_..| -MACHO-PPC64-NEXT: 0020: 38210080 E8420058 E8010010 EBE1FFF8 |8!...B.X........| -MACHO-PPC64-NEXT: 0030: 7C0803A6 E8620002 4E800020 ||....b..N.. | -MACHO-PPC64-NEXT: ) -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 1 -MACHO-PPC64-NEXT: Name: __picsymbolstub1 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 31) -MACHO-PPC64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x40 -MACHO-PPC64-NEXT: Size: 0x20 -MACHO-PPC64-NEXT: Offset: 672 -MACHO-PPC64-NEXT: Alignment: 5 -MACHO-PPC64-NEXT: RelocationOffset: 0x2FC -MACHO-PPC64-NEXT: RelocationCount: 4 -MACHO-PPC64-NEXT: Type: SymbolStubs (0x8) -MACHO-PPC64-NEXT: Attributes [ (0x800004) -MACHO-PPC64-NEXT: PureInstructions (0x800000) -MACHO-PPC64-NEXT: SomeInstructions (0x4) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x0 -MACHO-PPC64-NEXT: Reserved2: 0x20 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: Relocations [ -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x14 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (14) -MACHO-PPC64-NEXT: Value: 0x6C -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x0 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (1) -MACHO-PPC64-NEXT: Value: 0x48 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0xC -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (12) -MACHO-PPC64-NEXT: Value: 0x6C -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x24 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 2 -MACHO-PPC64-NEXT: Type: (1) -MACHO-PPC64-NEXT: Value: 0x48 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Symbols [ -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: SectionData ( -MACHO-PPC64-NEXT: 0000: 7C0802A6 429F0005 7D6802A6 3D6B0000 ||...B...}h..=k..| -MACHO-PPC64-NEXT: 0010: 7C0803A6 E98B0025 7D8903A6 4E800420 ||......%}...N.. | -MACHO-PPC64-NEXT: ) -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 2 -MACHO-PPC64-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x60 -MACHO-PPC64-NEXT: Size: 0x4 -MACHO-PPC64-NEXT: Offset: 704 -MACHO-PPC64-NEXT: Alignment: 2 -MACHO-PPC64-NEXT: RelocationOffset: 0x0 -MACHO-PPC64-NEXT: RelocationCount: 0 -MACHO-PPC64-NEXT: Type: Regular (0x0) -MACHO-PPC64-NEXT: Attributes [ (0x0) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x0 -MACHO-PPC64-NEXT: Reserved2: 0x0 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: Relocations [ -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Symbols [ -MACHO-PPC64-NEXT: Symbol { -MACHO-PPC64-NEXT: Name: _b (1) -MACHO-PPC64-NEXT: Extern -MACHO-PPC64-NEXT: Type: Section (0xE) -MACHO-PPC64-NEXT: Section: __data (0x3) -MACHO-PPC64-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-PPC64-NEXT: Flags [ (0x0) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Value: 0x60 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: SectionData ( -MACHO-PPC64-NEXT: 0000: 0000002A |...*| -MACHO-PPC64-NEXT: ) -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 3 -MACHO-PPC64-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x64 -MACHO-PPC64-NEXT: Size: 0x8 -MACHO-PPC64-NEXT: Offset: 708 -MACHO-PPC64-NEXT: Alignment: 2 -MACHO-PPC64-NEXT: RelocationOffset: 0x0 -MACHO-PPC64-NEXT: RelocationCount: 0 -MACHO-PPC64-NEXT: Type: NonLazySymbolPointers (0x6) -MACHO-PPC64-NEXT: Attributes [ (0x0) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x1 -MACHO-PPC64-NEXT: Reserved2: 0x0 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: Relocations [ -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Symbols [ -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: SectionData ( -MACHO-PPC64-NEXT: 0000: 00000000 00000000 |........| -MACHO-PPC64-NEXT: ) -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 4 -MACHO-PPC64-NEXT: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x6C -MACHO-PPC64-NEXT: Size: 0x8 -MACHO-PPC64-NEXT: Offset: 716 -MACHO-PPC64-NEXT: Alignment: 2 -MACHO-PPC64-NEXT: RelocationOffset: 0x31C -MACHO-PPC64-NEXT: RelocationCount: 1 -MACHO-PPC64-NEXT: Type: LazySymbolPointers (0x7) -MACHO-PPC64-NEXT: Attributes [ (0x0) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x2 -MACHO-PPC64-NEXT: Reserved2: 0x0 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: Relocations [ -MACHO-PPC64-NEXT: Relocation { -MACHO-PPC64-NEXT: Offset: 0x0 -MACHO-PPC64-NEXT: PCRel: 0 -MACHO-PPC64-NEXT: Length: 3 -MACHO-PPC64-NEXT: Type: (0) -MACHO-PPC64-NEXT: Symbol: dyld_stub_binding_helper (5) -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Symbols [ -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: SectionData ( -MACHO-PPC64-NEXT: 0000: 00000000 00000000 |........| -MACHO-PPC64-NEXT: ) -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: ] - -MACHO-ARM: Sections [ -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 0 -MACHO-ARM-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x0 -MACHO-ARM-NEXT: Size: 0x3C -MACHO-ARM-NEXT: Offset: 664 -MACHO-ARM-NEXT: Alignment: 2 -MACHO-ARM-NEXT: RelocationOffset: 0x2E0 -MACHO-ARM-NEXT: RelocationCount: 9 -MACHO-ARM-NEXT: Type: Regular (0x0) -MACHO-ARM-NEXT: Attributes [ (0x800004) -MACHO-ARM-NEXT: PureInstructions (0x800000) -MACHO-ARM-NEXT: SomeInstructions (0x4) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: Relocations [ -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x38 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) -MACHO-ARM-NEXT: Value: 0x40 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x0 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) -MACHO-ARM-NEXT: Value: 0x28 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x20 -MACHO-ARM-NEXT: PCRel: 1 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_BR24 (5) -MACHO-ARM-NEXT: Symbol: _g -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x1C -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 1 -MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) -MACHO-ARM-NEXT: Symbol: _g -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x0 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 1 -MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) -MACHO-ARM-NEXT: Section: - -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x18 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 0 -MACHO-ARM-NEXT: Type: ARM_RELOC_HALF (8) -MACHO-ARM-NEXT: Symbol: _g -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x0 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 0 -MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) -MACHO-ARM-NEXT: Section: - -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0xC -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_SECTDIFF (2) -MACHO-ARM-NEXT: Value: 0x44 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Relocation { -MACHO-ARM-NEXT: Offset: 0x0 -MACHO-ARM-NEXT: PCRel: 0 -MACHO-ARM-NEXT: Length: 2 -MACHO-ARM-NEXT: Type: ARM_RELOC_PAIR (1) -MACHO-ARM-NEXT: Value: 0x4 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Symbols [ -MACHO-ARM-NEXT: Symbol { -MACHO-ARM-NEXT: Name: _f (4) -MACHO-ARM-NEXT: Extern -MACHO-ARM-NEXT: Type: Section (0xE) -MACHO-ARM-NEXT: Section: __text (0x1) -MACHO-ARM-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-ARM-NEXT: Flags [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Value: 0x10 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Symbol { -MACHO-ARM-NEXT: Name: _h (1) -MACHO-ARM-NEXT: Extern -MACHO-ARM-NEXT: Type: Section (0xE) -MACHO-ARM-NEXT: Section: __text (0x1) -MACHO-ARM-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-ARM-NEXT: Flags [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Value: 0x0 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: SectionData ( -MACHO-ARM-NEXT: 0000: 04009FE5 00009FE7 1EFF2FE1 38000000 |........../.8...| -MACHO-ARM-NEXT: 0010: 80402DE9 0D70A0E1 000000E3 000040E3 |.@-..p........@.| -MACHO-ARM-NEXT: 0020: F6FFFFEB 0C009FE5 00009FE7 000090E5 |................| -MACHO-ARM-NEXT: 0030: 8040BDE8 1EFF2FE1 10000000 |.@..../.....| -MACHO-ARM-NEXT: ) -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 1 -MACHO-ARM-NEXT: Name: __textcoal_nt (5F 5F 74 65 78 74 63 6F 61 6C 5F 6E 74 00 00 00) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x0 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 0 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: Coalesced (0xB) -MACHO-ARM-NEXT: Attributes [ (0x800000) -MACHO-ARM-NEXT: PureInstructions (0x800000) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: Relocations [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Symbols [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: SectionData ( -MACHO-ARM-NEXT: ) -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 2 -MACHO-ARM-NEXT: Name: __const_coal (5F 5F 63 6F 6E 73 74 5F 63 6F 61 6C 00 00 00 00) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x0 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 0 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: Coalesced (0xB) -MACHO-ARM-NEXT: Attributes [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: Relocations [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Symbols [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: SectionData ( -MACHO-ARM-NEXT: ) -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 3 -MACHO-ARM-NEXT: Name: __picsymbolstub4 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 34) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x0 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 0 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: SymbolStubs (0x8) -MACHO-ARM-NEXT: Attributes [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x10 -MACHO-ARM-NEXT: Relocations [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Symbols [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: SectionData ( -MACHO-ARM-NEXT: ) -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 4 -MACHO-ARM-NEXT: Name: __StaticInit (5F 5F 53 74 61 74 69 63 49 6E 69 74 00 00 00 00) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x0 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 0 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: Regular (0x0) -MACHO-ARM-NEXT: Attributes [ (0x800000) -MACHO-ARM-NEXT: PureInstructions (0x800000) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: Relocations [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Symbols [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: SectionData ( -MACHO-ARM-NEXT: ) -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 5 -MACHO-ARM-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x4 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 2 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: Regular (0x0) -MACHO-ARM-NEXT: Attributes [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: Relocations [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Symbols [ -MACHO-ARM-NEXT: Symbol { -MACHO-ARM-NEXT: Name: _b (10) -MACHO-ARM-NEXT: Extern -MACHO-ARM-NEXT: Type: Section (0xE) -MACHO-ARM-NEXT: Section: __data (0x6) -MACHO-ARM-NEXT: RefType: UndefinedNonLazy (0x0) -MACHO-ARM-NEXT: Flags [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Value: 0x3C -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: SectionData ( -MACHO-ARM-NEXT: 0000: 2A000000 |*...| -MACHO-ARM-NEXT: ) -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 6 -MACHO-ARM-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-ARM-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x40 -MACHO-ARM-NEXT: Size: 0x8 -MACHO-ARM-NEXT: Offset: 728 -MACHO-ARM-NEXT: Alignment: 2 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: NonLazySymbolPointers (0x6) -MACHO-ARM-NEXT: Attributes [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: Relocations [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Symbols [ -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: SectionData ( -MACHO-ARM-NEXT: 0000: 00000000 00000000 |........| -MACHO-ARM-NEXT: ) -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/sections.test b/llvm/test/tools/llvm-readobj/sections.test deleted file mode 100644 --- a/llvm/test/tools/llvm-readobj/sections.test +++ /dev/null @@ -1,548 +0,0 @@ -RUN: llvm-readobj --sections %p/COFF/Inputs/trivial.obj.coff-i386 \ -RUN: | FileCheck %s -check-prefix COFF -RUN: llvm-readobj --sections %p/ELF/Inputs/trivial.obj.elf-i386 \ -RUN: | FileCheck %s -check-prefix ELF -RUN: llvm-readobj --sections %p/ELF/Inputs/trivial.obj.elf-mipsel \ -RUN: | FileCheck %s -check-prefix ELF-MIPSEL -RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-i386 \ -RUN: | FileCheck %s -check-prefix MACHO-I386 -RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-x86-64 \ -RUN: | FileCheck %s -check-prefix MACHO-X86-64 -RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-ppc \ -RUN: | FileCheck %s -check-prefix MACHO-PPC -RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-ppc64 \ -RUN: | FileCheck %s -check-prefix MACHO-PPC64 -RUN: llvm-readobj --sections %p/MachO/Inputs/trivial.obj.macho-arm \ -RUN: | FileCheck %s -check-prefix MACHO-ARM -RUN: llvm-readobj --sections %p/wasm/Inputs/trivial.obj.wasm \ -RUN: | FileCheck %s -check-prefix WASM - -# Check flag aliases produce identical output. -RUN: llvm-readobj --sections %p/ELF/Inputs/trivial.obj.elf-i386 > %t.sections -RUN: llvm-readobj -S %p/ELF/Inputs/trivial.obj.elf-i386 > %t.uppers -RUN: cmp %t.sections %t.uppers -RUN: llvm-readobj -S %p/ELF/Inputs/trivial.obj.elf-i386 > %t.lowers -RUN: cmp %t.sections %t.lowers - -COFF: Sections [ -COFF-NEXT: Section { -COFF-NEXT: Number: 1 -COFF-NEXT: Name: .text (2E 74 65 78 74 00 00 00) -COFF-NEXT: VirtualSize: 0x0 -COFF-NEXT: VirtualAddress: 0x0 -COFF-NEXT: RawDataSize: 22 -COFF-NEXT: PointerToRawData: 0x64 -COFF-NEXT: PointerToRelocations: 0x7A -COFF-NEXT: PointerToLineNumbers: 0x0 -COFF-NEXT: RelocationCount: 3 -COFF-NEXT: LineNumberCount: 0 -COFF-NEXT: Characteristics [ (0x60500020) -COFF-NEXT: IMAGE_SCN_ALIGN_16BYTES (0x500000) -COFF-NEXT: IMAGE_SCN_CNT_CODE (0x20) -COFF-NEXT: IMAGE_SCN_MEM_EXECUTE (0x20000000) -COFF-NEXT: IMAGE_SCN_MEM_READ (0x40000000) -COFF-NEXT: ] -COFF-NEXT: } -COFF-NEXT: Section { -COFF-NEXT: Number: 2 -COFF-NEXT: Name: .data (2E 64 61 74 61 00 00 00) -COFF-NEXT: VirtualSize: 0x0 -COFF-NEXT: VirtualAddress: 0x0 -COFF-NEXT: RawDataSize: 13 -COFF-NEXT: PointerToRawData: 0x98 -COFF-NEXT: PointerToRelocations: 0x0 -COFF-NEXT: PointerToLineNumbers: 0x0 -COFF-NEXT: RelocationCount: 0 -COFF-NEXT: LineNumberCount: 0 -COFF-NEXT: Characteristics [ (0xC0300040) -COFF-NEXT: IMAGE_SCN_ALIGN_4BYTES (0x300000) -COFF-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA (0x40) -COFF-NEXT: IMAGE_SCN_MEM_READ (0x40000000) -COFF-NEXT: IMAGE_SCN_MEM_WRITE (0x80000000) -COFF-NEXT: ] -COFF-NEXT: } -COFF-NEXT: ] - -ELF: Sections [ -ELF-NEXT: Section { -ELF-NEXT: Index: 0 -ELF-NEXT: Name: (0) -ELF-NEXT: Type: SHT_NULL (0x0) -ELF-NEXT: Flags [ (0x0) -ELF-NEXT: ] -ELF-NEXT: Address: 0x0 -ELF-NEXT: Offset: 0x0 -ELF-NEXT: Size: 0 -ELF-NEXT: Link: 0 -ELF-NEXT: Info: 0 -ELF-NEXT: AddressAlignment: 0 -ELF-NEXT: EntrySize: 0 -ELF-NEXT: } -ELF-NEXT: Section { -ELF-NEXT: Index: 1 -ELF-NEXT: Name: .text (5) -ELF-NEXT: Type: SHT_PROGBITS (0x1) -ELF-NEXT: Flags [ (0x6) -ELF-NEXT: SHF_ALLOC (0x2) -ELF-NEXT: SHF_EXECINSTR (0x4) -ELF-NEXT: ] -ELF-NEXT: Address: 0x0 -ELF-NEXT: Offset: 0x40 -ELF-NEXT: Size: 42 -ELF-NEXT: Link: 0 -ELF-NEXT: Info: 0 -ELF-NEXT: AddressAlignment: 16 -ELF-NEXT: EntrySize: 0 -ELF-NEXT: } - -ELF-MIPSEL: Section { -ELF-MIPSEL: Index: 4 -ELF-MIPSEL-NEXT: Name: .reginfo (27) -ELF-MIPSEL-NEXT: Type: SHT_MIPS_REGINFO (0x70000006) -ELF-MIPSEL-NEXT: Flags [ (0x2) -ELF-MIPSEL-NEXT: SHF_ALLOC (0x2) -ELF-MIPSEL-NEXT: ] -ELF-MIPSEL-NEXT: Address: 0x0 -ELF-MIPSEL-NEXT: Offset: 0x34 -ELF-MIPSEL-NEXT: Size: 24 -ELF-MIPSEL-NEXT: Link: 0 -ELF-MIPSEL-NEXT: Info: 0 -ELF-MIPSEL-NEXT: AddressAlignment: 1 -ELF-MIPSEL-NEXT: EntrySize: 0 -ELF-MIPSEL-NEXT: } -ELF-MIPSEL-NEXT: Section { -ELF-MIPSEL-NEXT: Index: 5 -ELF-MIPSEL-NEXT: Name: .MIPS.abiflags (12) -ELF-MIPSEL-NEXT: Type: SHT_MIPS_ABIFLAGS (0x7000002A) -ELF-MIPSEL-NEXT: Flags [ (0x2) -ELF-MIPSEL-NEXT: SHF_ALLOC (0x2) -ELF-MIPSEL-NEXT: ] -ELF-MIPSEL-NEXT: Address: 0x0 -ELF-MIPSEL-NEXT: Offset: 0x50 -ELF-MIPSEL-NEXT: Size: 24 -ELF-MIPSEL-NEXT: Link: 0 -ELF-MIPSEL-NEXT: Info: 0 -ELF-MIPSEL-NEXT: AddressAlignment: 8 -ELF-MIPSEL-NEXT: EntrySize: 0 -ELF-MIPSEL-NEXT: } - -MACHO-I386: Sections [ -MACHO-I386-NEXT: Section { -MACHO-I386-NEXT: Index: 0 -MACHO-I386-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-I386-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-I386-NEXT: Address: 0x0 -MACHO-I386-NEXT: Size: 0x22 -MACHO-I386-NEXT: Offset: 324 -MACHO-I386-NEXT: Alignment: 4 -MACHO-I386-NEXT: RelocationOffset: 0x174 -MACHO-I386-NEXT: RelocationCount: 4 -MACHO-I386-NEXT: Type: Regular (0x0) -MACHO-I386-NEXT: Attributes [ (0x800004) -MACHO-I386-NEXT: PureInstructions (0x800000) -MACHO-I386-NEXT: SomeInstructions (0x4) -MACHO-I386-NEXT: ] -MACHO-I386-NEXT: Reserved1: 0x0 -MACHO-I386-NEXT: Reserved2: 0x0 -MACHO-I386-NEXT: } -MACHO-I386-NEXT: Section { -MACHO-I386-NEXT: Index: 1 -MACHO-I386-NEXT: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) -MACHO-I386-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-I386-NEXT: Address: 0x22 -MACHO-I386-NEXT: Size: 0xD -MACHO-I386-NEXT: Offset: 358 -MACHO-I386-NEXT: Alignment: 0 -MACHO-I386-NEXT: RelocationOffset: 0x0 -MACHO-I386-NEXT: RelocationCount: 0 -MACHO-I386-NEXT: Type: CStringLiterals (0x2) -MACHO-I386-NEXT: Attributes [ (0x0) -MACHO-I386-NEXT: ] -MACHO-I386-NEXT: Reserved1: 0x0 -MACHO-I386-NEXT: Reserved2: 0x0 -MACHO-I386-NEXT: } - - -MACHO-X86-64: Sections [ -MACHO-X86-64-NEXT: Section { -MACHO-X86-64-NEXT: Index: 0 -MACHO-X86-64-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-X86-64-NEXT: Address: 0x0 -MACHO-X86-64-NEXT: Size: 0x16 -MACHO-X86-64-NEXT: Offset: 368 -MACHO-X86-64-NEXT: Alignment: 4 -MACHO-X86-64-NEXT: RelocationOffset: 0x194 -MACHO-X86-64-NEXT: RelocationCount: 3 -MACHO-X86-64-NEXT: Type: Regular (0x0) -MACHO-X86-64-NEXT: Attributes [ (0x800004) -MACHO-X86-64-NEXT: PureInstructions (0x800000) -MACHO-X86-64-NEXT: SomeInstructions (0x4) -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: Reserved1: 0x0 -MACHO-X86-64-NEXT: Reserved2: 0x0 -MACHO-X86-64-NEXT: Reserved3: 0x0 -MACHO-X86-64-NEXT: } -MACHO-X86-64-NEXT: Section { -MACHO-X86-64-NEXT: Index: 1 -MACHO-X86-64-NEXT: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) -MACHO-X86-64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-X86-64-NEXT: Address: 0x16 -MACHO-X86-64-NEXT: Size: 0xD -MACHO-X86-64-NEXT: Offset: 390 -MACHO-X86-64-NEXT: Alignment: 0 -MACHO-X86-64-NEXT: RelocationOffset: 0x0 -MACHO-X86-64-NEXT: RelocationCount: 0 -MACHO-X86-64-NEXT: Type: CStringLiterals (0x2) -MACHO-X86-64-NEXT: Attributes [ (0x0) -MACHO-X86-64-NEXT: ] -MACHO-X86-64-NEXT: Reserved1: 0x0 -MACHO-X86-64-NEXT: Reserved2: 0x0 -MACHO-X86-64-NEXT: Reserved3: 0x0 -MACHO-X86-64-NEXT: } -MACHO-X86-64-NEXT:] - -MACHO-PPC: Sections [ -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 0 -MACHO-PPC-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x0 -MACHO-PPC-NEXT: Size: 0x3C -MACHO-PPC-NEXT: Offset: 528 -MACHO-PPC-NEXT: Alignment: 2 -MACHO-PPC-NEXT: RelocationOffset: 0x27C -MACHO-PPC-NEXT: RelocationCount: 5 -MACHO-PPC-NEXT: Type: Regular (0x0) -MACHO-PPC-NEXT: Attributes [ (0x800004) -MACHO-PPC-NEXT: PureInstructions (0x800000) -MACHO-PPC-NEXT: SomeInstructions (0x4) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x0 -MACHO-PPC-NEXT: Reserved2: 0x0 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 1 -MACHO-PPC-NEXT: Name: __picsymbolstub1 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 31) -MACHO-PPC-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x40 -MACHO-PPC-NEXT: Size: 0x20 -MACHO-PPC-NEXT: Offset: 592 -MACHO-PPC-NEXT: Alignment: 5 -MACHO-PPC-NEXT: RelocationOffset: 0x2A4 -MACHO-PPC-NEXT: RelocationCount: 4 -MACHO-PPC-NEXT: Type: SymbolStubs (0x8) -MACHO-PPC-NEXT: Attributes [ (0x800004) -MACHO-PPC-NEXT: PureInstructions (0x800000) -MACHO-PPC-NEXT: SomeInstructions (0x4) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x0 -MACHO-PPC-NEXT: Reserved2: 0x20 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 2 -MACHO-PPC-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x60 -MACHO-PPC-NEXT: Size: 0x4 -MACHO-PPC-NEXT: Offset: 624 -MACHO-PPC-NEXT: Alignment: 2 -MACHO-PPC-NEXT: RelocationOffset: 0x0 -MACHO-PPC-NEXT: RelocationCount: 0 -MACHO-PPC-NEXT: Type: Regular (0x0) -MACHO-PPC-NEXT: Attributes [ (0x0) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x0 -MACHO-PPC-NEXT: Reserved2: 0x0 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 3 -MACHO-PPC-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x64 -MACHO-PPC-NEXT: Size: 0x4 -MACHO-PPC-NEXT: Offset: 628 -MACHO-PPC-NEXT: Alignment: 2 -MACHO-PPC-NEXT: RelocationOffset: 0x0 -MACHO-PPC-NEXT: RelocationCount: 0 -MACHO-PPC-NEXT: Type: NonLazySymbolPointers (0x6) -MACHO-PPC-NEXT: Attributes [ (0x0) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x1 -MACHO-PPC-NEXT: Reserved2: 0x0 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: Section { -MACHO-PPC-NEXT: Index: 4 -MACHO-PPC-NEXT: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-PPC-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC-NEXT: Address: 0x68 -MACHO-PPC-NEXT: Size: 0x4 -MACHO-PPC-NEXT: Offset: 632 -MACHO-PPC-NEXT: Alignment: 2 -MACHO-PPC-NEXT: RelocationOffset: 0x2C4 -MACHO-PPC-NEXT: RelocationCount: 1 -MACHO-PPC-NEXT: Type: LazySymbolPointers (0x7) -MACHO-PPC-NEXT: Attributes [ (0x0) -MACHO-PPC-NEXT: ] -MACHO-PPC-NEXT: Reserved1: 0x2 -MACHO-PPC-NEXT: Reserved2: 0x0 -MACHO-PPC-NEXT: } -MACHO-PPC-NEXT: ] - -MACHO-PPC64: Sections [ -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 0 -MACHO-PPC64-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x0 -MACHO-PPC64-NEXT: Size: 0x3C -MACHO-PPC64-NEXT: Offset: 608 -MACHO-PPC64-NEXT: Alignment: 2 -MACHO-PPC64-NEXT: RelocationOffset: 0x2D4 -MACHO-PPC64-NEXT: RelocationCount: 5 -MACHO-PPC64-NEXT: Type: Regular (0x0) -MACHO-PPC64-NEXT: Attributes [ (0x800004) -MACHO-PPC64-NEXT: PureInstructions (0x800000) -MACHO-PPC64-NEXT: SomeInstructions (0x4) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x0 -MACHO-PPC64-NEXT: Reserved2: 0x0 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 1 -MACHO-PPC64-NEXT: Name: __picsymbolstub1 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 31) -MACHO-PPC64-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x40 -MACHO-PPC64-NEXT: Size: 0x20 -MACHO-PPC64-NEXT: Offset: 672 -MACHO-PPC64-NEXT: Alignment: 5 -MACHO-PPC64-NEXT: RelocationOffset: 0x2FC -MACHO-PPC64-NEXT: RelocationCount: 4 -MACHO-PPC64-NEXT: Type: SymbolStubs (0x8) -MACHO-PPC64-NEXT: Attributes [ (0x800004) -MACHO-PPC64-NEXT: PureInstructions (0x800000) -MACHO-PPC64-NEXT: SomeInstructions (0x4) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x0 -MACHO-PPC64-NEXT: Reserved2: 0x20 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 2 -MACHO-PPC64-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x60 -MACHO-PPC64-NEXT: Size: 0x4 -MACHO-PPC64-NEXT: Offset: 704 -MACHO-PPC64-NEXT: Alignment: 2 -MACHO-PPC64-NEXT: RelocationOffset: 0x0 -MACHO-PPC64-NEXT: RelocationCount: 0 -MACHO-PPC64-NEXT: Type: Regular (0x0) -MACHO-PPC64-NEXT: Attributes [ (0x0) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x0 -MACHO-PPC64-NEXT: Reserved2: 0x0 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 3 -MACHO-PPC64-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x64 -MACHO-PPC64-NEXT: Size: 0x8 -MACHO-PPC64-NEXT: Offset: 708 -MACHO-PPC64-NEXT: Alignment: 2 -MACHO-PPC64-NEXT: RelocationOffset: 0x0 -MACHO-PPC64-NEXT: RelocationCount: 0 -MACHO-PPC64-NEXT: Type: NonLazySymbolPointers (0x6) -MACHO-PPC64-NEXT: Attributes [ (0x0) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x1 -MACHO-PPC64-NEXT: Reserved2: 0x0 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: Section { -MACHO-PPC64-NEXT: Index: 4 -MACHO-PPC64-NEXT: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-PPC64-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-PPC64-NEXT: Address: 0x6C -MACHO-PPC64-NEXT: Size: 0x8 -MACHO-PPC64-NEXT: Offset: 716 -MACHO-PPC64-NEXT: Alignment: 2 -MACHO-PPC64-NEXT: RelocationOffset: 0x31C -MACHO-PPC64-NEXT: RelocationCount: 1 -MACHO-PPC64-NEXT: Type: LazySymbolPointers (0x7) -MACHO-PPC64-NEXT: Attributes [ (0x0) -MACHO-PPC64-NEXT: ] -MACHO-PPC64-NEXT: Reserved1: 0x2 -MACHO-PPC64-NEXT: Reserved2: 0x0 -MACHO-PPC64-NEXT: Reserved3: 0x0 -MACHO-PPC64-NEXT: } -MACHO-PPC64-NEXT: ] - -MACHO-ARM: Sections [ -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 0 -MACHO-ARM-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x0 -MACHO-ARM-NEXT: Size: 0x3C -MACHO-ARM-NEXT: Offset: 664 -MACHO-ARM-NEXT: Alignment: 2 -MACHO-ARM-NEXT: RelocationOffset: 0x2E0 -MACHO-ARM-NEXT: RelocationCount: 9 -MACHO-ARM-NEXT: Type: Regular (0x0) -MACHO-ARM-NEXT: Attributes [ (0x800004) -MACHO-ARM-NEXT: PureInstructions (0x800000) -MACHO-ARM-NEXT: SomeInstructions (0x4) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 1 -MACHO-ARM-NEXT: Name: __textcoal_nt (5F 5F 74 65 78 74 63 6F 61 6C 5F 6E 74 00 00 00) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x0 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 0 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: Coalesced (0xB) -MACHO-ARM-NEXT: Attributes [ (0x800000) -MACHO-ARM-NEXT: PureInstructions (0x800000) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 2 -MACHO-ARM-NEXT: Name: __const_coal (5F 5F 63 6F 6E 73 74 5F 63 6F 61 6C 00 00 00 00) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x0 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 0 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: Coalesced (0xB) -MACHO-ARM-NEXT: Attributes [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 3 -MACHO-ARM-NEXT: Name: __picsymbolstub4 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 34) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x0 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 0 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: SymbolStubs (0x8) -MACHO-ARM-NEXT: Attributes [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x10 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 4 -MACHO-ARM-NEXT: Name: __StaticInit (5F 5F 53 74 61 74 69 63 49 6E 69 74 00 00 00 00) -MACHO-ARM-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x0 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 0 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: Regular (0x0) -MACHO-ARM-NEXT: Attributes [ (0x800000) -MACHO-ARM-NEXT: PureInstructions (0x800000) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 5 -MACHO-ARM-NEXT: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x3C -MACHO-ARM-NEXT: Size: 0x4 -MACHO-ARM-NEXT: Offset: 724 -MACHO-ARM-NEXT: Alignment: 2 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: Regular (0x0) -MACHO-ARM-NEXT: Attributes [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT: Section { -MACHO-ARM-NEXT: Index: 6 -MACHO-ARM-NEXT: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00) -MACHO-ARM-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) -MACHO-ARM-NEXT: Address: 0x40 -MACHO-ARM-NEXT: Size: 0x8 -MACHO-ARM-NEXT: Offset: 728 -MACHO-ARM-NEXT: Alignment: 2 -MACHO-ARM-NEXT: RelocationOffset: 0x0 -MACHO-ARM-NEXT: RelocationCount: 0 -MACHO-ARM-NEXT: Type: NonLazySymbolPointers (0x6) -MACHO-ARM-NEXT: Attributes [ (0x0) -MACHO-ARM-NEXT: ] -MACHO-ARM-NEXT: Reserved1: 0x0 -MACHO-ARM-NEXT: Reserved2: 0x0 -MACHO-ARM-NEXT: } -MACHO-ARM-NEXT:] - -WASM: Sections [ -WASM-NEXT: Section { -WASM-NEXT: Type: TYPE (0x1) -WASM-NEXT: Size: 17 -WASM-NEXT: Offset: 8 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: IMPORT (0x2) -WASM-NEXT: Size: 93 -WASM-NEXT: Offset: 31 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: FUNCTION (0x3) -WASM-NEXT: Size: 3 -WASM-NEXT: Offset: 130 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: CODE (0xA) -WASM-NEXT: Size: 36 -WASM-NEXT: Offset: 139 -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: DATA (0xB) -WASM-NEXT: Size: 19 -WASM-NEXT: Offset: 181 -WASM-NEXT: Segments [ -WASM-NEXT: Segment { -WASM-NEXT: Name: .rodata..L.str -WASM-NEXT: Size: 13 -WASM-NEXT: Offset: 0 -WASM-NEXT: } -WASM-NEXT: ] -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: CUSTOM (0x0) -WASM-NEXT: Size: 89 -WASM-NEXT: Offset: 206 -WASM-NEXT: Name: linking -WASM-NEXT: } -WASM-NEXT: Section { -WASM-NEXT: Type: CUSTOM (0x0) -WASM-NEXT: Size: 15 -WASM-NEXT: Offset: 309 -WASM-NEXT: Name: reloc.CODE -WASM-NEXT: } -WASM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/symbols.test b/llvm/test/tools/llvm-readobj/symbols.test deleted file mode 100644 --- a/llvm/test/tools/llvm-readobj/symbols.test +++ /dev/null @@ -1,129 +0,0 @@ -RUN: llvm-readobj --symbols %p/COFF/Inputs/trivial.obj.coff-i386 \ -RUN: | FileCheck %s -check-prefix COFF -RUN: llvm-readobj --symbols %p/ELF/Inputs/trivial.obj.elf-i386 \ -RUN: | FileCheck %s -check-prefix ELF -RUN: llvm-readobj --symbols %p/wasm/Inputs/trivial.obj.wasm \ -RUN: | FileCheck %s -check-prefix WASM - -# Check flag aliases produce identical output. -RUN: llvm-readobj --symbols %p/ELF/Inputs/trivial.obj.elf-i386 > %t.symbols -RUN: llvm-readobj --syms %p/ELF/Inputs/trivial.obj.elf-i386 > %t.syms -RUN: cmp %t.symbols %t.syms -RUN: llvm-readobj -t %p/ELF/Inputs/trivial.obj.elf-i386 > %t.t -RUN: cmp %t.symbols %t.t -RUN: llvm-readelf -s -elf-output-style LLVM %p/ELF/Inputs/trivial.obj.elf-i386 > %t.lowers -RUN: cmp %t.symbols %t.lowers - -COFF: Symbols [ -COFF-NEXT: Symbol { -COFF-NEXT: Name: @comp.id -COFF-NEXT: Value: 14766605 -COFF-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) -COFF-NEXT: BaseType: Null (0x0) -COFF-NEXT: ComplexType: Null (0x0) -COFF-NEXT: StorageClass: Static (0x3) -COFF-NEXT: AuxSymbolCount: 0 -COFF-NEXT: } -COFF-NEXT: Symbol { -COFF-NEXT: Name: @feat.00 -COFF-NEXT: Value: 2147484049 -COFF-NEXT: Section: IMAGE_SYM_ABSOLUTE (-1) -COFF-NEXT: BaseType: Null (0x0) -COFF-NEXT: ComplexType: Null (0x0) -COFF-NEXT: StorageClass: Static (0x3) -COFF-NEXT: AuxSymbolCount: 0 -COFF-NEXT: } -COFF-NEXT: Symbol { -COFF-NEXT: Name: .text -COFF-NEXT: Value: 0 -COFF-NEXT: Section: .text (1) -COFF-NEXT: BaseType: Null (0x0) -COFF-NEXT: ComplexType: Null (0x0) -COFF-NEXT: StorageClass: Static (0x3) -COFF-NEXT: AuxSymbolCount: 1 -COFF-NEXT: AuxSectionDef { -COFF-NEXT: Length: 22 -COFF-NEXT: RelocationCount: 3 -COFF-NEXT: LineNumberCount: 0 -COFF-NEXT: Checksum: 0x0 -COFF-NEXT: Number: 1 -COFF-NEXT: Selection: 0x0 -COFF-NEXT: } -COFF-NEXT: } - -ELF: Symbols [ -ELF-NEXT: Symbol { -ELF-NEXT: Name: (0) -ELF-NEXT: Value: 0x0 -ELF-NEXT: Size: 0 -ELF-NEXT: Binding: Local (0x0) -ELF-NEXT: Type: None (0x0) -ELF-NEXT: Other: 0 -ELF-NEXT: Section: Undefined (0x0) -ELF-NEXT: } -ELF-NEXT: Symbol { -ELF-NEXT: Name: trivial.ll (1) -ELF-NEXT: Value: 0x0 -ELF-NEXT: Size: 0 -ELF-NEXT: Binding: Local (0x0) -ELF-NEXT: Type: File (0x4) -ELF-NEXT: Other: 0 -ELF-NEXT: Section: Absolute (0xFFF1) -ELF-NEXT: } -ELF-NEXT: Symbol { -ELF-NEXT: Name: .L.str (39) -ELF-NEXT: Value: 0x0 -ELF-NEXT: Size: 13 -ELF-NEXT: Binding: Local (0x0) -ELF-NEXT: Type: Object (0x1) -ELF-NEXT: Other: 0 -ELF-NEXT: Section: .rodata.str1.1 (0x5) -ELF-NEXT: } - -WASM: Symbols [ -WASM-NEXT: Symbol { -WASM-NEXT: Name: main -WASM-NEXT: Type: FUNCTION (0x0) -WASM-NEXT: Flags [ (0x0) -WASM-NEXT: ] -WASM-NEXT: ElementIndex: 0x2 -WASM-NEXT: } -WASM-NEXT: Symbol { -WASM-NEXT: Name: .L.str -WASM-NEXT: Type: DATA (0x1) -WASM-NEXT: Flags [ (0x2) -WASM-NEXT: BINDING_LOCAL (0x2) -WASM-NEXT: ] -WASM-NEXT: Offset: 0x0 -WASM-NEXT: Segment: 0x0 -WASM-NEXT: Size: 0xD -WASM-NEXT: } -WASM-NEXT: Symbol { -WASM-NEXT: Name: puts -WASM-NEXT: Type: FUNCTION (0x0) -WASM-NEXT: Flags [ (0x10) -WASM-NEXT: UNDEFINED (0x10) -WASM-NEXT: ] -WASM-NEXT: ImportName: puts -WASM-NEXT: ImportModule: env -WASM-NEXT: ElementIndex: 0x0 -WASM-NEXT: } -WASM-NEXT: Symbol { -WASM-NEXT: Name: .LSomeOtherFunction_bitcast -WASM-NEXT: Type: FUNCTION (0x0) -WASM-NEXT: Flags [ (0x2) -WASM-NEXT: BINDING_LOCAL (0x2) -WASM-NEXT: ] -WASM-NEXT: ElementIndex: 0x3 -WASM-NEXT: } -WASM-NEXT: Symbol { -WASM-NEXT: Name: SomeOtherFunction -WASM-NEXT: Type: FUNCTION (0x0) -WASM-NEXT: Flags [ (0x10) -WASM-NEXT: UNDEFINED (0x10) -WASM-NEXT: ] -WASM-NEXT: ImportName: SomeOtherFunction -WASM-NEXT: ImportModule: env -WASM-NEXT: ElementIndex: 0x1 -WASM-NEXT: } -WASM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/thin-archive.test b/llvm/test/tools/llvm-readobj/thin-archive.test --- a/llvm/test/tools/llvm-readobj/thin-archive.test +++ b/llvm/test/tools/llvm-readobj/thin-archive.test @@ -1,12 +1,9 @@ # RUN: rm -f %t.a # RUN: rm -rf %t # RUN: mkdir -p %t - -# Make copies of the test inputs for placing in the archive so that we can mess -# about with them later on. -# RUN: cp %p/ELF/Inputs/trivial.obj.elf-x86-64 %t/1.o -# RUN: cp %p/ELF/Inputs/relocs.obj.elf-x86_64 %t/2.o -# RUN: cp %p/COFF/Inputs/trivial.obj.coff-arm %t/3.o +# RUN: yaml2obj --docnum=1 %s -o %t/1.o +# RUN: yaml2obj --docnum=2 %s -o %t/2.o +# RUN: yaml2obj --docnum=3 %s -o %t/3.o # RUN: llvm-ar rcT %t.a %t/1.o %t/2.o %t/3.o # Test that basic dumping works for all members. @@ -16,30 +13,26 @@ # LLVM: File: {{.*}}1.o # LLVM: Format: ELF64-x86-64 # LLVM: ElfHeader { -# LLVM: SectionHeaderCount: 10 +# LLVM: SectionHeaderCount: 3 # LLVM: Sections [ # LLVM: Relocations [ # LLVM: Symbols [ # GNU: ELF Header: -# GNU: Number of section headers: 10 +# GNU: Number of section headers: 3 # GNU: Section Headers: -# GNU: Relocation section '.rela.text' -# GNU: Symbol table '.symtab' # LLVM: File: {{.*}}2.o -# LLVM: Format: ELF64-x86-64 +# LLVM: Format: ELF32-i386 # LLVM: ElfHeader { -# LLVM: SectionHeaderCount: 8 +# LLVM: SectionHeaderCount: 4 # LLVM: Sections [ # LLVM: Relocations [ # LLVM: Symbols [ # GNU: ELF Header: -# GNU: Number of section headers: 8 +# GNU: Number of section headers: 4 # GNU: Section Headers: -# GNU: Relocation section '.rela.text' -# GNU: Symbol table '.symtab' # LLVM: File: {{.*}}3.o # LLVM: Format: COFF-ARM @@ -55,9 +48,9 @@ # RUN: llvm-readobj --file-headers %t.a | FileCheck %s --check-prefix=RESIZED # RESIZED: File: {{.*}}1.o -# RESIZED: SectionHeaderCount: 10 +# RESIZED: Format: ELF64-x86-64 # RESIZED: File: {{.*}}2.o -# RESIZED: SectionHeaderCount: 10 +# RESIZED: Format: ELF64-x86-64 # Remove the second member and show that the first can still be dumped, but that the last isn't. # RUN: rm %t/2.o @@ -65,6 +58,30 @@ # RUN: FileCheck %s --check-prefix=ERR --input-file=%t.err # MISSING: File: {{.*}}1.o -# MISSING: SectionHeaderCount: 10 +# MISSING: Format: ELF64-x86-64 # MISSING-NOT: File: {{.*}}3.o # ERR: error: '{{.*}}.a': '{{.*}}2.o': {{[Nn]}}o such file or directory + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 + +--- !ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_386 +Sections: + - Name: .foo + Type: SHT_PROGBITS + +--- !COFF +header: + Machine: IMAGE_FILE_MACHINE_ARMNT + Characteristics: [ ] +sections: [] +symbols: [] diff --git a/llvm/test/tools/llvm-readobj/wasm/hex-dump.test b/llvm/test/tools/llvm-readobj/wasm/hex-dump.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/wasm/hex-dump.test @@ -0,0 +1,8 @@ +## Test that --hex-dump/-x can be used to display the contents +## of the indicated section as hexadecimal bytes. + +# RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.wasm | FileCheck %s +# RUN: llvm-readobj --hex-dump 1 %p/Inputs/trivial.obj.wasm | FileCheck %s + +# CHECK: 0x00000000 04600001 7f60017f 017f6000 0060017f .`...`....`..`.. +# CHECK: 0x00000010 00 . diff --git a/llvm/test/tools/llvm-readobj/wasm/relocations.test b/llvm/test/tools/llvm-readobj/wasm/relocations.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/wasm/relocations.test @@ -0,0 +1,30 @@ +## Check how we print relocations. + +# RUN: llvm-readobj -r --expand-relocs %p/Inputs/trivial.obj.wasm \ +# RUN: | FileCheck %s --check-prefix WASM + +# WASM: Relocations [ +# WASM-NEXT: Section (4) CODE { +# WASM-NEXT: Relocation { +# WASM-NEXT: Type: R_WASM_MEMORY_ADDR_SLEB (4) +# WASM-NEXT: Offset: 0x4 +# WASM-NEXT: Symbol: .L.str +# WASM-NEXT: Addend: 0 +# WASM-NEXT: } +# WASM-NEXT: Relocation { +# WASM-NEXT: Type: R_WASM_FUNCTION_INDEX_LEB (0) +# WASM-NEXT: Offset: 0xA +# WASM-NEXT: Symbol: puts +# WASM-NEXT: } +# WASM-NEXT: Relocation { +# WASM-NEXT: Type: R_WASM_FUNCTION_INDEX_LEB (0) +# WASM-NEXT: Offset: 0x11 +# WASM-NEXT: Symbol: .LSomeOtherFunction_bitcast +# WASM-NEXT: } +# WASM-NEXT: Relocation { +# WASM-NEXT: Type: R_WASM_FUNCTION_INDEX_LEB (0) +# WASM-NEXT: Offset: 0x1E +# WASM-NEXT: Symbol: SomeOtherFunction +# WASM-NEXT: } +# WASM-NEXT: } +# WASM-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/wasm/sections.test b/llvm/test/tools/llvm-readobj/wasm/sections.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/wasm/sections.test @@ -0,0 +1,50 @@ +## Check how we print sections. + +# RUN: llvm-readobj --sections %p/Inputs/trivial.obj.wasm | FileCheck %s + +# CHECK: Sections [ +# CHECK-NEXT: Section { +# CHECK-NEXT: Type: TYPE (0x1) +# CHECK-NEXT: Size: 17 +# CHECK-NEXT: Offset: 8 +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Type: IMPORT (0x2) +# CHECK-NEXT: Size: 93 +# CHECK-NEXT: Offset: 31 +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Type: FUNCTION (0x3) +# CHECK-NEXT: Size: 3 +# CHECK-NEXT: Offset: 130 +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Type: CODE (0xA) +# CHECK-NEXT: Size: 36 +# CHECK-NEXT: Offset: 139 +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Type: DATA (0xB) +# CHECK-NEXT: Size: 19 +# CHECK-NEXT: Offset: 181 +# CHECK-NEXT: Segments [ +# CHECK-NEXT: Segment { +# CHECK-NEXT: Name: .rodata..L.str +# CHECK-NEXT: Size: 13 +# CHECK-NEXT: Offset: 0 +# CHECK-NEXT: } +# CHECK-NEXT: ] +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Type: CUSTOM (0x0) +# CHECK-NEXT: Size: 89 +# CHECK-NEXT: Offset: 206 +# CHECK-NEXT: Name: linking +# CHECK-NEXT: } +# CHECK-NEXT: Section { +# CHECK-NEXT: Type: CUSTOM (0x0) +# CHECK-NEXT: Size: 15 +# CHECK-NEXT: Offset: 309 +# CHECK-NEXT: Name: reloc.CODE +# CHECK-NEXT: } +# CHECK-NEXT: ] diff --git a/llvm/test/tools/llvm-readobj/wasm/symbols.test b/llvm/test/tools/llvm-readobj/wasm/symbols.test new file mode 100644 --- /dev/null +++ b/llvm/test/tools/llvm-readobj/wasm/symbols.test @@ -0,0 +1,51 @@ +## This is the test for the --symbols option and its aliases. + +# RUN: llvm-readobj --symbols %p/Inputs/trivial.obj.wasm | FileCheck %s + +# CHECK: Symbols [ +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: main +# CHECK-NEXT: Type: FUNCTION (0x0) +# CHECK-NEXT: Flags [ (0x0) +# CHECK-NEXT: ] +# CHECK-NEXT: ElementIndex: 0x2 +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: .L.str +# CHECK-NEXT: Type: DATA (0x1) +# CHECK-NEXT: Flags [ (0x2) +# CHECK-NEXT: BINDING_LOCAL (0x2) +# CHECK-NEXT: ] +# CHECK-NEXT: Offset: 0x0 +# CHECK-NEXT: Segment: 0x0 +# CHECK-NEXT: Size: 0xD +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: puts +# CHECK-NEXT: Type: FUNCTION (0x0) +# CHECK-NEXT: Flags [ (0x10) +# CHECK-NEXT: UNDEFINED (0x10) +# CHECK-NEXT: ] +# CHECK-NEXT: ImportName: puts +# CHECK-NEXT: ImportModule: env +# CHECK-NEXT: ElementIndex: 0x0 +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: .LSomeOtherFunction_bitcast +# CHECK-NEXT: Type: FUNCTION (0x0) +# CHECK-NEXT: Flags [ (0x2) +# CHECK-NEXT: BINDING_LOCAL (0x2) +# CHECK-NEXT: ] +# CHECK-NEXT: ElementIndex: 0x3 +# CHECK-NEXT: } +# CHECK-NEXT: Symbol { +# CHECK-NEXT: Name: SomeOtherFunction +# CHECK-NEXT: Type: FUNCTION (0x0) +# CHECK-NEXT: Flags [ (0x10) +# CHECK-NEXT: UNDEFINED (0x10) +# CHECK-NEXT: ] +# CHECK-NEXT: ImportName: SomeOtherFunction +# CHECK-NEXT: ImportModule: env +# CHECK-NEXT: ElementIndex: 0x1 +# CHECK-NEXT: } +# CHECK-NEXT: ]