diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:44:32 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:44:32 +0000 |
commit | 5a5ac124e1efaf208671f01c46edb15f29ed2a0b (patch) | |
tree | a6140557876943cdd800ee997c9317283394b22c /test/tools/llvm-readobj | |
parent | f03b5bed27d0d2eafd68562ce14f8b5e3f1f0801 (diff) |
Diffstat (limited to 'test/tools/llvm-readobj')
15 files changed, 406 insertions, 20 deletions
diff --git a/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mips b/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mips Binary files differnew file mode 100644 index 0000000000000..edcd50becec4e --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mips diff --git a/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mipsel b/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mipsel Binary files differnew file mode 100644 index 0000000000000..bb5f43d286239 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/abiflags.obj.elf-mipsel diff --git a/test/tools/llvm-readobj/Inputs/dtflags.elf-x86-64 b/test/tools/llvm-readobj/Inputs/dtflags.elf-x86-64 Binary files differnew file mode 100755 index 0000000000000..c6e8501d9e739 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/dtflags.elf-x86-64 diff --git a/test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386 b/test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386 Binary files differnew file mode 100644 index 0000000000000..1660714c68ea8 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/macho-universal-archive.x86_64.i386 diff --git a/test/tools/llvm-readobj/Inputs/macho-universal.x86_64.i386 b/test/tools/llvm-readobj/Inputs/macho-universal.x86_64.i386 Binary files differnew file mode 100644 index 0000000000000..36d5fc29d6819 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/macho-universal.x86_64.i386 diff --git a/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el b/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el Binary files differnew file mode 100755 index 0000000000000..4b6525731dd77 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/mips-options.elf-mips64el diff --git a/test/tools/llvm-readobj/Inputs/trivial.exe.coff-arm b/test/tools/llvm-readobj/Inputs/trivial.exe.coff-arm Binary files differnew file mode 100755 index 0000000000000..121d820b6b0f5 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/trivial.exe.coff-arm diff --git a/test/tools/llvm-readobj/Inputs/trivial.ll b/test/tools/llvm-readobj/Inputs/trivial.ll index 2cd7ec89e2460..f79b8b897691c 100644 --- a/test/tools/llvm-readobj/Inputs/trivial.ll +++ b/test/tools/llvm-readobj/Inputs/trivial.ll @@ -9,7 +9,7 @@ define i32 @main() nounwind { entry: - %call = tail call i32 @puts(i8* getelementptr inbounds ([13 x i8]* @.str, i32 0, i32 0)) nounwind + %call = tail call i32 @puts(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i32 0, i32 0)) nounwind tail call void bitcast (void (...)* @SomeOtherFunction to void ()*)() nounwind ret i32 0 } diff --git a/test/tools/llvm-readobj/codeview-linetables.test b/test/tools/llvm-readobj/codeview-linetables.test index e5e344bf10ff3..b2acee1200b93 100644 --- a/test/tools/llvm-readobj/codeview-linetables.test +++ b/test/tools/llvm-readobj/codeview-linetables.test @@ -18,16 +18,16 @@ ; z(); ; } ; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively. -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-i368 \ RUN: | FileCheck %s -check-prefix MFUN32 -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2013-i368 \ RUN: | FileCheck %s -check-prefix MFUN32 -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2012-x86_64 \ RUN: | FileCheck %s -check-prefix MFUN64 -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifunction-linetables.obj.coff-2013-x86_64 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifunction-linetables.obj.coff-2013-x86_64 \ RUN: | FileCheck %s -check-prefix MFUN64 -MFUN32: CodeViewLineTables [ +MFUN32: CodeViewDebugInfo [ MFUN32-NEXT: Magic: 0x4 MFUN32-NEXT: Subsection [ MFUN32-NEXT: Type: 0xF1 @@ -136,7 +136,7 @@ MFUN32-NEXT: ] MFUN32-NEXT: ] MFUN32-NEXT: ] -MFUN64: CodeViewLineTables [ +MFUN64: CodeViewDebugInfo [ MFUN64-NEXT: Magic: 0x4 MFUN64-NEXT: Subsection [ MFUN64-NEXT: Type: 0xF1 @@ -248,16 +248,16 @@ MFUN64-NEXT: ] ; g(); ; } ; using 32-/64-bit versions of CL v17.00.61030 and v18.00.21005.1 respectively. -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-i368 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-i368 \ RUN: | FileCheck %s -check-prefix MFILE32 -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-i368 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-i368 \ RUN: | FileCheck %s -check-prefix MFILE32 -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2012-x86_64 \ RUN: | FileCheck %s -check-prefix MFILE64 -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/multifile-linetables.obj.coff-2013-x86_64 \ RUN: | FileCheck %s -check-prefix MFILE64 -MFILE32: CodeViewLineTables [ +MFILE32: CodeViewDebugInfo [ MFILE32-NEXT: Magic: 0x4 MFILE32-NEXT: Subsection [ MFILE32-NEXT: Type: 0xF1 @@ -317,7 +317,7 @@ MFILE32-NEXT: ] MFILE32-NEXT: ] MFILE32-NEXT: ] -MFILE64: CodeViewLineTables [ +MFILE64: CodeViewDebugInfo [ MFILE64-NEXT: Magic: 0x4 MFILE64-NEXT: Subsection [ MFILE64-NEXT: Type: 0xF1 @@ -387,9 +387,9 @@ MFILE64-NEXT: ] ; return 0; ; } ; using 32-version of CL v17.00.61030 and v18.00.21005.1 respectively. -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2012-i386 \ RUN: | FileCheck %s -check-prefix MCOMDAT -RUN: llvm-readobj -s -codeview-linetables %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \ +RUN: llvm-readobj -s -codeview -section-symbols %p/Inputs/comdat-function-linetables.obj.coff-2013-i386 \ RUN: | FileCheck %s -check-prefix MCOMDAT MCOMDAT: ProcStart { diff --git a/test/tools/llvm-readobj/coff-arm-baserelocs.test b/test/tools/llvm-readobj/coff-arm-baserelocs.test new file mode 100644 index 0000000000000..c0febd74aef4c --- /dev/null +++ b/test/tools/llvm-readobj/coff-arm-baserelocs.test @@ -0,0 +1,7 @@ +# RUN: llvm-readobj -coff-basereloc %p/Inputs/trivial.exe.coff-arm | FileCheck %s + +# CHECK: Entry { +# CHECK: Type: ARM_MOV32(T) +# CHECK: Address: 0x9390 +# CHECK: } + diff --git a/test/tools/llvm-readobj/elf-dtflags.test b/test/tools/llvm-readobj/elf-dtflags.test new file mode 100644 index 0000000000000..0ed1c7adf91dd --- /dev/null +++ b/test/tools/llvm-readobj/elf-dtflags.test @@ -0,0 +1,6 @@ +// Test that llvm-readobj dumps DF_XXX and DF_1_XXX flags correctly. + +RUN: llvm-readobj -dynamic-table %p/Inputs/dtflags.elf-x86-64 | FileCheck %s + +CHECK: 0x000000000000001E FLAGS ORIGIN BIND_NOW +CHECK: 0x000000006FFFFFFB FLAGS_1 NOW ORIGIN diff --git a/test/tools/llvm-readobj/macho-universal-x86_64.i386.test b/test/tools/llvm-readobj/macho-universal-x86_64.i386.test new file mode 100644 index 0000000000000..2138bb70ad3c0 --- /dev/null +++ b/test/tools/llvm-readobj/macho-universal-x86_64.i386.test @@ -0,0 +1,297 @@ +RUN: llvm-readobj -h %p/Inputs/macho-universal.x86_64.i386 \ +RUN: | FileCheck %s -check-prefix MULTIHEADER + +RUN: llvm-readobj -sections %p/Inputs/macho-universal.x86_64.i386 \ +RUN: | FileCheck %s -check-prefix MULTISECTIONS + +RUN: llvm-readobj -h %p/Inputs/macho-universal-archive.x86_64.i386 \ +RUN: | FileCheck %s -check-prefix MULTIHEADER-ARCHIVE + +RUN: llvm-readobj -sections %p/Inputs/macho-universal-archive.x86_64.i386 \ +RUN: | FileCheck %s -check-prefix MULTISECTIONS-ARCHIVE + +MULTIHEADER: Format: Mach-O 64-bit x86-64 +MULTIHEADER: Arch: x86_64 +MULTIHEADER: AddressSize: 64bit +MULTIHEADER: MachHeader { +MULTIHEADER: Magic: Magic64 (0xFEEDFACF) +MULTIHEADER: CpuType: X86-64 (0x1000007) +MULTIHEADER: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3) +MULTIHEADER: FileType: Executable (0x2) +MULTIHEADER: NumOfLoadCommands: 16 +MULTIHEADER: SizeOfLoadCommands: 880 +MULTIHEADER: Flags [ (0x200085) +MULTIHEADER: MH_DYLDLINK (0x4) +MULTIHEADER: MH_NOUNDEFS (0x1) +MULTIHEADER: MH_PIE (0x200000) +MULTIHEADER: MH_TWOLEVEL (0x80) +MULTIHEADER: ] +MULTIHEADER: Reserved: 0x0 +MULTIHEADER: } + +MULTIHEADER: Format: Mach-O 32-bit i386 +MULTIHEADER: Arch: i386 +MULTIHEADER: AddressSize: 32bit +MULTIHEADER: MachHeader { +MULTIHEADER: Magic: Magic (0xFEEDFACE) +MULTIHEADER: CpuType: X86 (0x7) +MULTIHEADER: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3) +MULTIHEADER: FileType: Executable (0x2) +MULTIHEADER: NumOfLoadCommands: 16 +MULTIHEADER: SizeOfLoadCommands: 716 +MULTIHEADER: Flags [ (0x1200085) +MULTIHEADER: MH_DYLDLINK (0x4) +MULTIHEADER: MH_NOUNDEFS (0x1) +MULTIHEADER: MH_NO_HEAP_EXECUTION (0x1000000) +MULTIHEADER: MH_PIE (0x200000) +MULTIHEADER: MH_TWOLEVEL (0x80) +MULTIHEADER: ] +MULTIHEADER: } + + + +MULTISECTIONS: Format: Mach-O 64-bit x86-64 +MULTISECTIONS: Arch: x86_64 +MULTISECTIONS: AddressSize: 64bit +MULTISECTIONS: Sections [ +MULTISECTIONS: Section { +MULTISECTIONS: Index: 0 +MULTISECTIONS: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS: Address: 0x100000F60 +MULTISECTIONS: Size: 0x12 +MULTISECTIONS: Offset: 3936 +MULTISECTIONS: Alignment: 4 +MULTISECTIONS: RelocationOffset: 0x0 +MULTISECTIONS: RelocationCount: 0 +MULTISECTIONS: Type: 0x0 +MULTISECTIONS: Attributes [ (0x800004) +MULTISECTIONS: PureInstructions (0x800000) +MULTISECTIONS: SomeInstructions (0x4) +MULTISECTIONS: ] +MULTISECTIONS: Reserved1: 0x0 +MULTISECTIONS: Reserved2: 0x0 +MULTISECTIONS: } +MULTISECTIONS: Section { +MULTISECTIONS: Index: 1 +MULTISECTIONS: Name: __unwind_info (5F 5F 75 6E 77 69 6E 64 5F 69 6E 66 6F 00 00 00) +MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS: Address: 0x100000F72 +MULTISECTIONS: Size: 0x48 +MULTISECTIONS: Offset: 3954 +MULTISECTIONS: Alignment: 0 +MULTISECTIONS: RelocationOffset: 0x0 +MULTISECTIONS: RelocationCount: 0 +MULTISECTIONS: Type: 0x0 +MULTISECTIONS: Attributes [ (0x0) +MULTISECTIONS: ] +MULTISECTIONS: Reserved1: 0x0 +MULTISECTIONS: Reserved2: 0x0 +MULTISECTIONS: } +MULTISECTIONS: Section { +MULTISECTIONS: Index: 2 +MULTISECTIONS: Name: __eh_frame (5F 5F 65 68 5F 66 72 61 6D 65 00 00 00 00 00 00) +MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS: Address: 0x100000FC0 +MULTISECTIONS: Size: 0x40 +MULTISECTIONS: Offset: 4032 +MULTISECTIONS: Alignment: 3 +MULTISECTIONS: RelocationOffset: 0x0 +MULTISECTIONS: RelocationCount: 0 +MULTISECTIONS: Type: 0x0 +MULTISECTIONS: Attributes [ (0x0) +MULTISECTIONS: ] +MULTISECTIONS: Reserved1: 0x0 +MULTISECTIONS: Reserved2: 0x0 +MULTISECTIONS: } +MULTISECTIONS: ] + +MULTISECTIONS: Format: Mach-O 32-bit i386 +MULTISECTIONS: Arch: i386 +MULTISECTIONS: AddressSize: 32bit +MULTISECTIONS: Sections [ +MULTISECTIONS: Section { +MULTISECTIONS: Index: 0 +MULTISECTIONS: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS: Address: 0x1FA0 +MULTISECTIONS: Size: 0x15 +MULTISECTIONS: Offset: 4000 +MULTISECTIONS: Alignment: 4 +MULTISECTIONS: RelocationOffset: 0x0 +MULTISECTIONS: RelocationCount: 0 +MULTISECTIONS: Type: 0x0 +MULTISECTIONS: Attributes [ (0x800004) +MULTISECTIONS: PureInstructions (0x800000) +MULTISECTIONS: SomeInstructions (0x4) +MULTISECTIONS: ] +MULTISECTIONS: Reserved1: 0x0 +MULTISECTIONS: Reserved2: 0x0 +MULTISECTIONS: } +MULTISECTIONS: Section { +MULTISECTIONS: Index: 1 +MULTISECTIONS: Name: __unwind_info (5F 5F 75 6E 77 69 6E 64 5F 69 6E 66 6F 00 00 00) +MULTISECTIONS: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS: Address: 0x1FB5 +MULTISECTIONS: Size: 0x48 +MULTISECTIONS: Offset: 4021 +MULTISECTIONS: Alignment: 0 +MULTISECTIONS: RelocationOffset: 0x0 +MULTISECTIONS: RelocationCount: 0 +MULTISECTIONS: Type: 0x0 +MULTISECTIONS: Attributes [ (0x0) +MULTISECTIONS: ] +MULTISECTIONS: Reserved1: 0x0 +MULTISECTIONS: Reserved2: 0x0 +MULTISECTIONS: } +MULTISECTIONS: ] + +MULTIHEADER-ARCHIVE: File: hello.o +MULTIHEADER-ARCHIVE: Format: Mach-O 64-bit x86-64 +MULTIHEADER-ARCHIVE: Arch: x86_64 +MULTIHEADER-ARCHIVE: AddressSize: 64bit +MULTIHEADER-ARCHIVE: MachHeader { +MULTIHEADER-ARCHIVE: Magic: Magic64 (0xFEEDFACF) +MULTIHEADER-ARCHIVE: CpuType: X86-64 (0x1000007) +MULTIHEADER-ARCHIVE: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3) +MULTIHEADER-ARCHIVE: FileType: Relocatable (0x1) +MULTIHEADER-ARCHIVE: NumOfLoadCommands: 3 +MULTIHEADER-ARCHIVE: SizeOfLoadCommands: 496 +MULTIHEADER-ARCHIVE: Flags [ (0x2000) +MULTIHEADER-ARCHIVE: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) +MULTIHEADER-ARCHIVE: ] +MULTIHEADER-ARCHIVE: Reserved: 0x0 +MULTIHEADER-ARCHIVE: } +MULTIHEADER-ARCHIVE: File: foo.o +MULTIHEADER-ARCHIVE: Format: Mach-O 32-bit i386 +MULTIHEADER-ARCHIVE: Arch: i386 +MULTIHEADER-ARCHIVE: AddressSize: 32bit +MULTIHEADER-ARCHIVE: MachHeader { +MULTIHEADER-ARCHIVE: Magic: Magic (0xFEEDFACE) +MULTIHEADER-ARCHIVE: CpuType: X86 (0x7) +MULTIHEADER-ARCHIVE: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3) +MULTIHEADER-ARCHIVE: FileType: Relocatable (0x1) +MULTIHEADER-ARCHIVE: NumOfLoadCommands: 3 +MULTIHEADER-ARCHIVE: SizeOfLoadCommands: 296 +MULTIHEADER-ARCHIVE: Flags [ (0x2000) +MULTIHEADER-ARCHIVE: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000) +MULTIHEADER-ARCHIVE: ] +MULTIHEADER-ARCHIVE: } + +MULTISECTIONS-ARCHIVE: File: hello.o +MULTISECTIONS-ARCHIVE: Format: Mach-O 64-bit x86-64 +MULTISECTIONS-ARCHIVE: Arch: x86_64 +MULTISECTIONS-ARCHIVE: AddressSize: 64bit +MULTISECTIONS-ARCHIVE: Sections [ +MULTISECTIONS-ARCHIVE: Section { +MULTISECTIONS-ARCHIVE: Index: 0 +MULTISECTIONS-ARCHIVE: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Address: 0x0 +MULTISECTIONS-ARCHIVE: Size: 0x3B +MULTISECTIONS-ARCHIVE: Offset: 528 +MULTISECTIONS-ARCHIVE: Alignment: 4 +MULTISECTIONS-ARCHIVE: RelocationOffset: 0x2B8 +MULTISECTIONS-ARCHIVE: RelocationCount: 2 +MULTISECTIONS-ARCHIVE: Type: 0x0 +MULTISECTIONS-ARCHIVE: Attributes [ (0x800004) +MULTISECTIONS-ARCHIVE: PureInstructions (0x800000) +MULTISECTIONS-ARCHIVE: SomeInstructions (0x4) +MULTISECTIONS-ARCHIVE: ] +MULTISECTIONS-ARCHIVE: Reserved1: 0x0 +MULTISECTIONS-ARCHIVE: Reserved2: 0x0 +MULTISECTIONS-ARCHIVE: } +MULTISECTIONS-ARCHIVE: Section { +MULTISECTIONS-ARCHIVE: Index: 1 +MULTISECTIONS-ARCHIVE: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Address: 0x3B +MULTISECTIONS-ARCHIVE: Size: 0xD +MULTISECTIONS-ARCHIVE: Offset: 587 +MULTISECTIONS-ARCHIVE: Alignment: 0 +MULTISECTIONS-ARCHIVE: RelocationOffset: 0x0 +MULTISECTIONS-ARCHIVE: RelocationCount: 0 +MULTISECTIONS-ARCHIVE: Type: ExtReloc (0x2) +MULTISECTIONS-ARCHIVE: Attributes [ (0x0) +MULTISECTIONS-ARCHIVE: ] +MULTISECTIONS-ARCHIVE: Reserved1: 0x0 +MULTISECTIONS-ARCHIVE: Reserved2: 0x0 +MULTISECTIONS-ARCHIVE: } +MULTISECTIONS-ARCHIVE: Section { +MULTISECTIONS-ARCHIVE: Index: 2 +MULTISECTIONS-ARCHIVE: Name: __compact_unwind (5F 5F 63 6F 6D 70 61 63 74 5F 75 6E 77 69 6E 64) +MULTISECTIONS-ARCHIVE: Segment: __LD (5F 5F 4C 44 00 00 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Address: 0x48 +MULTISECTIONS-ARCHIVE: Size: 0x20 +MULTISECTIONS-ARCHIVE: Offset: 600 +MULTISECTIONS-ARCHIVE: Alignment: 3 +MULTISECTIONS-ARCHIVE: RelocationOffset: 0x2C8 +MULTISECTIONS-ARCHIVE: RelocationCount: 1 +MULTISECTIONS-ARCHIVE: Type: 0x0 +MULTISECTIONS-ARCHIVE: Attributes [ (0x20000) +MULTISECTIONS-ARCHIVE: Debug (0x20000) +MULTISECTIONS-ARCHIVE: ] +MULTISECTIONS-ARCHIVE: Reserved1: 0x0 +MULTISECTIONS-ARCHIVE: Reserved2: 0x0 +MULTISECTIONS-ARCHIVE: } +MULTISECTIONS-ARCHIVE: Section { +MULTISECTIONS-ARCHIVE: Index: 3 +MULTISECTIONS-ARCHIVE: Name: __eh_frame (5F 5F 65 68 5F 66 72 61 6D 65 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Address: 0x68 +MULTISECTIONS-ARCHIVE: Size: 0x40 +MULTISECTIONS-ARCHIVE: Offset: 632 +MULTISECTIONS-ARCHIVE: Alignment: 3 +MULTISECTIONS-ARCHIVE: RelocationOffset: 0x0 +MULTISECTIONS-ARCHIVE: RelocationCount: 0 +MULTISECTIONS-ARCHIVE: Type: 0xB +MULTISECTIONS-ARCHIVE: Attributes [ (0x680000) +MULTISECTIONS-ARCHIVE: LiveSupport (0x80000) +MULTISECTIONS-ARCHIVE: NoTOC (0x400000) +MULTISECTIONS-ARCHIVE: StripStaticSyms (0x200000) +MULTISECTIONS-ARCHIVE: ] +MULTISECTIONS-ARCHIVE: Reserved1: 0x0 +MULTISECTIONS-ARCHIVE: Reserved2: 0x0 +MULTISECTIONS-ARCHIVE: } +MULTISECTIONS-ARCHIVE: ] +MULTISECTIONS-ARCHIVE: File: foo.o +MULTISECTIONS-ARCHIVE: Format: Mach-O 32-bit i386 +MULTISECTIONS-ARCHIVE: Arch: i386 +MULTISECTIONS-ARCHIVE: AddressSize: 32bit +MULTISECTIONS-ARCHIVE: Sections [ +MULTISECTIONS-ARCHIVE: Section { +MULTISECTIONS-ARCHIVE: Index: 0 +MULTISECTIONS-ARCHIVE: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Address: 0x0 +MULTISECTIONS-ARCHIVE: Size: 0x5 +MULTISECTIONS-ARCHIVE: Offset: 324 +MULTISECTIONS-ARCHIVE: Alignment: 4 +MULTISECTIONS-ARCHIVE: RelocationOffset: 0x0 +MULTISECTIONS-ARCHIVE: RelocationCount: 0 +MULTISECTIONS-ARCHIVE: Type: 0x0 +MULTISECTIONS-ARCHIVE: Attributes [ (0x800004) +MULTISECTIONS-ARCHIVE: PureInstructions (0x800000) +MULTISECTIONS-ARCHIVE: SomeInstructions (0x4) +MULTISECTIONS-ARCHIVE: ] +MULTISECTIONS-ARCHIVE: Reserved1: 0x0 +MULTISECTIONS-ARCHIVE: Reserved2: 0x0 +MULTISECTIONS-ARCHIVE: } +MULTISECTIONS-ARCHIVE: Section { +MULTISECTIONS-ARCHIVE: Index: 1 +MULTISECTIONS-ARCHIVE: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00) +MULTISECTIONS-ARCHIVE: Address: 0x8 +MULTISECTIONS-ARCHIVE: Size: 0x4 +MULTISECTIONS-ARCHIVE: Offset: 332 +MULTISECTIONS-ARCHIVE: Alignment: 2 +MULTISECTIONS-ARCHIVE: RelocationOffset: 0x0 +MULTISECTIONS-ARCHIVE: RelocationCount: 0 +MULTISECTIONS-ARCHIVE: Type: 0x0 +MULTISECTIONS-ARCHIVE: Attributes [ (0x0) +MULTISECTIONS-ARCHIVE: ] +MULTISECTIONS-ARCHIVE: Reserved1: 0x0 +MULTISECTIONS-ARCHIVE: Reserved2: 0x0 +MULTISECTIONS-ARCHIVE: } +MULTISECTIONS-ARCHIVE: ] + diff --git a/test/tools/llvm-readobj/mips-abiflags.test b/test/tools/llvm-readobj/mips-abiflags.test new file mode 100644 index 0000000000000..b4c769be20731 --- /dev/null +++ b/test/tools/llvm-readobj/mips-abiflags.test @@ -0,0 +1,42 @@ +RUN: llvm-readobj -mips-abi-flags %p/Inputs/abiflags.obj.elf-mipsel | \ +RUN: FileCheck -check-prefix=EL64 %s +RUN: llvm-readobj -mips-abi-flags %p/Inputs/abiflags.obj.elf-mips | \ +RUN: FileCheck -check-prefix=BE32 %s + +EL64: MIPS ABI Flags { +EL64-NEXT: Version: 0 +EL64-NEXT: ISA: MIPS64r5 +EL64-NEXT: ISA Extension: Cavium Networks Octeon3 (0x13) +EL64-NEXT: ASEs [ (0x103) +EL64-NEXT: DSP (0x1) +EL64-NEXT: DSPR2 (0x2) +EL64-NEXT: VZ (0x100) +EL64-NEXT: ] +EL64-NEXT: FP ABI: Hard float (double precision) (0x1) +EL64-NEXT: GPR size: 64 +EL64-NEXT: CPR1 size: 64 +EL64-NEXT: CPR2 size: 0 +EL64-NEXT: Flags 1 [ (0x1) +EL64-NEXT: ODDSPREG (0x1) +EL64-NEXT: ] +EL64-NEXT: Flags 2: 0x0 +EL64-NEXT: } + +BE32: MIPS ABI Flags { +BE32-NEXT: Version: 0 +BE32-NEXT: ISA: MIPS32r2 +BE32-NEXT: ISA Extension: None (0x0) +BE32-NEXT: ASEs [ (0x803) +BE32-NEXT: DSP (0x1) +BE32-NEXT: DSPR2 (0x2) +BE32-NEXT: microMIPS (0x800) +BE32-NEXT: ] +BE32-NEXT: FP ABI: Soft float (0x3) +BE32-NEXT: GPR size: 32 +BE32-NEXT: CPR1 size: 0 +BE32-NEXT: CPR2 size: 0 +BE32-NEXT: Flags 1 [ (0x1) +BE32-NEXT: ODDSPREG (0x1) +BE32-NEXT: ] +BE32-NEXT: Flags 2: 0x0 +BE32-NEXT: } diff --git a/test/tools/llvm-readobj/mips-options.test b/test/tools/llvm-readobj/mips-options.test new file mode 100644 index 0000000000000..7a2959dd0325c --- /dev/null +++ b/test/tools/llvm-readobj/mips-options.test @@ -0,0 +1,22 @@ +# Check DT_MIPS_OPTIONS .dynamic section tag reading + +RUN: llvm-readobj -dynamic-table %p/Inputs/mips-options.elf-mips64el | \ +RUN: FileCheck %s + +CHECK: DynamicSection [ (14 entries) +CHECK-NEXT: Tag Type Name/Value +CHECK-NEXT: 0x0000000000000004 HASH 0x158 +CHECK-NEXT: 0x0000000000000005 STRTAB 0x1C0 +CHECK-NEXT: 0x0000000000000006 SYMTAB 0x178 +CHECK-NEXT: 0x000000000000000A STRSZ 7 (bytes) +CHECK-NEXT: 0x000000000000000B SYMENT 24 (bytes) +CHECK-NEXT: 0x0000000070000001 MIPS_RLD_VERSION 1 +CHECK-NEXT: 0x0000000070000005 MIPS_FLAGS NOTPOT +CHECK-NEXT: 0x0000000070000006 MIPS_BASE_ADDRESS 0x0 +CHECK-NEXT: 0x000000007000000A MIPS_LOCAL_GOTNO 2 +CHECK-NEXT: 0x0000000070000011 MIPS_SYMTABNO 3 +CHECK-NEXT: 0x0000000070000013 MIPS_GOTSYM 0x3 +CHECK-NEXT: 0x0000000000000003 PLTGOT 0x2000 +CHECK-NEXT: 0x0000000070000029 MIPS_OPTIONS 0x1000 +CHECK-NEXT: 0x0000000000000000 NULL 0x0 +CHECK-NEXT: ] diff --git a/test/tools/llvm-readobj/program-headers.test b/test/tools/llvm-readobj/program-headers.test index f014c03904202..8e8855d8b8e8b 100644 --- a/test/tools/llvm-readobj/program-headers.test +++ b/test/tools/llvm-readobj/program-headers.test @@ -83,10 +83,22 @@ ELF-MIPS-NEXT: AddressSize: 32bit ELF-MIPS-NEXT: LoadName: ELF-MIPS-NEXT: ProgramHeaders [ ELF-MIPS-NEXT: ProgramHeader { +ELF-MIPS-NEXT: Type: PT_MIPS_ABIFLAGS (0x70000003) +ELF-MIPS-NEXT: Offset: 0x98 +ELF-MIPS-NEXT: VirtualAddress: 0x400098 +ELF-MIPS-NEXT: PhysicalAddress: 0x400098 +ELF-MIPS-NEXT: FileSize: 24 +ELF-MIPS-NEXT: MemSize: 24 +ELF-MIPS-NEXT: Flags [ (0x4) +ELF-MIPS-NEXT: PF_R (0x4) +ELF-MIPS-NEXT: ] +ELF-MIPS-NEXT: Alignment: 8 +ELF-MIPS-NEXT: } +ELF-MIPS-NEXT: ProgramHeader { ELF-MIPS-NEXT: Type: PT_MIPS_REGINFO (0x70000000) -ELF-MIPS-NEXT: Offset: 0x74 -ELF-MIPS-NEXT: VirtualAddress: 0x400074 -ELF-MIPS-NEXT: PhysicalAddress: 0x400074 +ELF-MIPS-NEXT: Offset: 0xB0 +ELF-MIPS-NEXT: VirtualAddress: 0x4000B0 +ELF-MIPS-NEXT: PhysicalAddress: 0x4000B0 ELF-MIPS-NEXT: FileSize: 24 ELF-MIPS-NEXT: MemSize: 24 ELF-MIPS-NEXT: Flags [ (0x4) @@ -99,8 +111,8 @@ ELF-MIPS-NEXT: Type: PT_LOAD (0x1) ELF-MIPS-NEXT: Offset: 0x0 ELF-MIPS-NEXT: VirtualAddress: 0x400000 ELF-MIPS-NEXT: PhysicalAddress: 0x400000 -ELF-MIPS-NEXT: FileSize: 160 -ELF-MIPS-NEXT: MemSize: 160 +ELF-MIPS-NEXT: FileSize: 224 +ELF-MIPS-NEXT: MemSize: 224 ELF-MIPS-NEXT: Flags [ (0x5) ELF-MIPS-NEXT: PF_R (0x4) ELF-MIPS-NEXT: PF_X (0x1) |