From 36b56886974eae4f9c5ebc96befd3e7bfe5de338 Mon Sep 17 00:00:00 2001 From: Stephen Hines Date: Wed, 23 Apr 2014 16:57:46 -0700 Subject: Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617 --- test/Object/Inputs/COFF/i386.yaml | 16 ++++++--- test/Object/Inputs/COFF/long-file-symbol.yaml | 14 ++++++++ test/Object/Inputs/COFF/x86-64.yaml | 16 ++++++--- test/Object/Inputs/absolute.elf-x86-64 | Bin 0 -> 711 bytes test/Object/Inputs/common.coff-i386 | Bin 0 -> 520 bytes .../relocatable-with-section-address.elf-x86-64 | Bin 0 -> 1584 bytes test/Object/Inputs/thumb-symbols.elf.arm | Bin 0 -> 481 bytes test/Object/Inputs/trivial-object-test.elf-mipsel | Bin 0 -> 936 bytes test/Object/Inputs/weak.elf-x86-64 | Bin 0 -> 896 bytes .../objdump-disassembly-inline-relocations.test | 35 ++++++++++++++++++ test/Object/extract.ll | 1 + test/Object/mangle-ir.ll | 8 +++++ test/Object/nm-archive.test | 2 +- test/Object/nm-error.test | 6 ++-- test/Object/nm-ir.ll | 34 ++++++++++++++++++ test/Object/nm-shared-object.test | 22 ++++++++---- test/Object/nm-trivial-object.test | 40 +++++++++++++++++++++ test/Object/obj2yaml-coff-long-file-symbol.test | 3 ++ test/Object/obj2yaml.test | 32 ++++++++++++----- test/Object/objdump-relocations.test | 12 ++++++- test/Object/readobj-elf-versioning.test | 4 +-- test/Object/readobj-shared-object.test | 18 +++++----- .../yaml2obj-elf-file-headers-with-e_flags.yaml | 16 +++++++++ test/Object/yaml2obj-elf-section-basic.yaml | 13 +++++++ test/Object/yaml2obj-elf-symbol-basic.yaml | 2 +- 25 files changed, 253 insertions(+), 41 deletions(-) create mode 100644 test/Object/Inputs/COFF/long-file-symbol.yaml create mode 100644 test/Object/Inputs/absolute.elf-x86-64 create mode 100644 test/Object/Inputs/common.coff-i386 create mode 100644 test/Object/Inputs/relocatable-with-section-address.elf-x86-64 create mode 100644 test/Object/Inputs/thumb-symbols.elf.arm create mode 100644 test/Object/Inputs/trivial-object-test.elf-mipsel create mode 100644 test/Object/Inputs/weak.elf-x86-64 create mode 100644 test/Object/mangle-ir.ll create mode 100644 test/Object/nm-ir.ll create mode 100644 test/Object/obj2yaml-coff-long-file-symbol.test create mode 100644 test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml (limited to 'test/Object') diff --git a/test/Object/Inputs/COFF/i386.yaml b/test/Object/Inputs/COFF/i386.yaml index 1badad8..7873df0 100644 --- a/test/Object/Inputs/COFF/i386.yaml +++ b/test/Object/Inputs/COFF/i386.yaml @@ -39,8 +39,12 @@ symbols: SimpleType: IMAGE_SYM_TYPE_NULL # (0) ComplexType: IMAGE_SYM_DTYPE_NULL # (0) StorageClass: IMAGE_SYM_CLASS_STATIC # (3) - NumberOfAuxSymbols: 1 - AuxiliaryData: !hex "240000000300000000000000010000000000" # |$.................| + SectionDefinition: + Length: 36 + NumberOfRelocations: 3 + NumberOfLinenumbers: 0 + CheckSum: 0 + Number: 1 - !Symbol Name: .data @@ -49,8 +53,12 @@ symbols: SimpleType: IMAGE_SYM_TYPE_NULL # (0) ComplexType: IMAGE_SYM_DTYPE_NULL # (0) StorageClass: IMAGE_SYM_CLASS_STATIC # (3) - NumberOfAuxSymbols: 1 - AuxiliaryData: !hex "0D0000000000000000000000020000000000" # |..................| + SectionDefinition: + Length: 13 + NumberOfRelocations: 0 + NumberOfLinenumbers: 0 + CheckSum: 0 + Number: 2 - !Symbol Name: _main diff --git a/test/Object/Inputs/COFF/long-file-symbol.yaml b/test/Object/Inputs/COFF/long-file-symbol.yaml new file mode 100644 index 0000000..37caad7 --- /dev/null +++ b/test/Object/Inputs/COFF/long-file-symbol.yaml @@ -0,0 +1,14 @@ +--- +header: + Machine: IMAGE_FILE_MACHINE_AMD64 + Characteristics: [ IMAGE_FILE_RELOCS_STRIPPED, IMAGE_FILE_LINE_NUMS_STRIPPED ] +sections: +symbols: + - Name: .file + Value: 0 + SectionNumber: 65534 + SimpleType: IMAGE_SYM_TYPE_NULL + ComplexType: IMAGE_SYM_DTYPE_NULL + StorageClass: IMAGE_SYM_CLASS_FILE + File: filename_with_22_chars +... diff --git a/test/Object/Inputs/COFF/x86-64.yaml b/test/Object/Inputs/COFF/x86-64.yaml index b775ae9..1dc2b10 100644 --- a/test/Object/Inputs/COFF/x86-64.yaml +++ b/test/Object/Inputs/COFF/x86-64.yaml @@ -38,8 +38,12 @@ symbols: SimpleType: IMAGE_SYM_TYPE_NULL # (0) ComplexType: IMAGE_SYM_DTYPE_NULL # (0) StorageClass: IMAGE_SYM_CLASS_STATIC # (3) - NumberOfAuxSymbols: 1 - AuxiliaryData: !hex "260000000300000000000000010000000000" # |&.................| + SectionDefinition: + Length: 38 + NumberOfRelocations: 3 + NumberOfLinenumbers: 0 + CheckSum: 0 + Number: 1 - !Symbol Name: .data @@ -48,8 +52,12 @@ symbols: SimpleType: IMAGE_SYM_TYPE_NULL # (0) ComplexType: IMAGE_SYM_DTYPE_NULL # (0) StorageClass: IMAGE_SYM_CLASS_STATIC # (3) - NumberOfAuxSymbols: 1 - AuxiliaryData: !hex "0D0000000000000000000000020000000000" # |..................| + SectionDefinition: + Length: 13 + NumberOfRelocations: 0 + NumberOfLinenumbers: 0 + CheckSum: 0 + Number: 2 - !Symbol Name: main diff --git a/test/Object/Inputs/absolute.elf-x86-64 b/test/Object/Inputs/absolute.elf-x86-64 new file mode 100644 index 0000000..863ab58 Binary files /dev/null and b/test/Object/Inputs/absolute.elf-x86-64 differ diff --git a/test/Object/Inputs/common.coff-i386 b/test/Object/Inputs/common.coff-i386 new file mode 100644 index 0000000..a61d76c Binary files /dev/null and b/test/Object/Inputs/common.coff-i386 differ diff --git a/test/Object/Inputs/relocatable-with-section-address.elf-x86-64 b/test/Object/Inputs/relocatable-with-section-address.elf-x86-64 new file mode 100644 index 0000000..7bee9a9 Binary files /dev/null and b/test/Object/Inputs/relocatable-with-section-address.elf-x86-64 differ diff --git a/test/Object/Inputs/thumb-symbols.elf.arm b/test/Object/Inputs/thumb-symbols.elf.arm new file mode 100644 index 0000000..923eef6 Binary files /dev/null and b/test/Object/Inputs/thumb-symbols.elf.arm differ diff --git a/test/Object/Inputs/trivial-object-test.elf-mipsel b/test/Object/Inputs/trivial-object-test.elf-mipsel new file mode 100644 index 0000000..2910a16 Binary files /dev/null and b/test/Object/Inputs/trivial-object-test.elf-mipsel differ diff --git a/test/Object/Inputs/weak.elf-x86-64 b/test/Object/Inputs/weak.elf-x86-64 new file mode 100644 index 0000000..e45f988 Binary files /dev/null and b/test/Object/Inputs/weak.elf-x86-64 differ diff --git a/test/Object/X86/objdump-disassembly-inline-relocations.test b/test/Object/X86/objdump-disassembly-inline-relocations.test index 2ef1a43..7861576 100644 --- a/test/Object/X86/objdump-disassembly-inline-relocations.test +++ b/test/Object/X86/objdump-disassembly-inline-relocations.test @@ -6,6 +6,10 @@ RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.macho-i386 \ RUN: | FileCheck %s -check-prefix MACHO-i386 RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.macho-x86-64 \ RUN: | FileCheck %s -check-prefix MACHO-x86-64 +RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF-i386 +RUN: llvm-objdump -d -r %p/../Inputs/trivial-object-test.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF-x86-64 COFF-i386: file format COFF-i386 COFF-i386: Disassembly of section .text: @@ -65,3 +69,34 @@ MACHO-x86-64: 1b: X86_64_RELOC_BRANCH _SomeOther MACHO-x86-64: 1f: 8b 44 24 04 movl 4(%rsp), %eax MACHO-x86-64: 23: 48 83 c4 08 addq $8, %rsp MACHO-x86-64: 27: c3 ret + +ELF-i386: file format ELF32-i386 +ELF-i386: Disassembly of section .text: +ELF-i386: main: +ELF-i386: 0: 83 ec 0c subl $12, %esp +ELF-i386: 3: c7 44 24 08 00 00 00 00 movl $0, 8(%esp) +ELF-i386: b: c7 04 24 00 00 00 00 movl $0, (%esp) +ELF-i386: e: R_386_32 Unknown +ELF-i386: 12: e8 fc ff ff ff calll -4 +ELF-i386: 13: R_386_PC32 Unknown +ELF-i386: 17: e8 fc ff ff ff calll -4 +ELF-i386: 18: R_386_PC32 Unknown +ELF-i386: 1c: 8b 44 24 08 movl 8(%esp), %eax +ELF-i386: 20: 83 c4 0c addl $12, %esp +ELF-i386: 23: c3 ret + +ELF-x86-64: file format ELF64-x86-64 +ELF-x86-64: Disassembly of section .text: +ELF-x86-64: main: +ELF-x86-64: 0: 48 83 ec 08 subq $8, %rsp +ELF-x86-64: 4: c7 44 24 04 00 00 00 00 movl $0, 4(%rsp) +ELF-x86-64: c: bf 00 00 00 00 movl $0, %edi +ELF-x86-64: d: R_X86_64_32S .rodata.str1.1+0 +ELF-x86-64: 11: e8 00 00 00 00 callq 0 +ELF-x86-64: 12: R_X86_64_PC32 puts-4-P +ELF-x86-64: 16: 30 c0 xorb %al, %al +ELF-x86-64: 18: e8 00 00 00 00 callq 0 +ELF-x86-64: 19: R_X86_64_PC32 SomeOtherFunction-4-P +ELF-x86-64: 1d: 8b 44 24 04 movl 4(%rsp), %eax +ELF-x86-64: 21: 48 83 c4 08 addq $8, %rsp +ELF-x86-64: 25: c3 ret diff --git a/test/Object/extract.ll b/test/Object/extract.ll index 4e519ae..9f93c68 100644 --- a/test/Object/extract.ll +++ b/test/Object/extract.ll @@ -40,6 +40,7 @@ ; new archive and checking that date. ; RUN: rm -f very_long_bytecode_file_name.bc ; RUN: llvm-ar xo %p/Inputs/GNU.a very_long_bytecode_file_name.bc +; RUN: rm -f %t.a ; RUN: llvm-ar rc %t.a very_long_bytecode_file_name.bc ; RUN: env TZ=GMT llvm-ar tv %t.a | FileCheck %s diff --git a/test/Object/mangle-ir.ll b/test/Object/mangle-ir.ll new file mode 100644 index 0000000..725d788 --- /dev/null +++ b/test/Object/mangle-ir.ll @@ -0,0 +1,8 @@ +; RUN: llvm-as %s -o - | llvm-nm - | FileCheck %s + +target datalayout = "m:o" + +; CHECK: T _f +define void @f() { + ret void +} diff --git a/test/Object/nm-archive.test b/test/Object/nm-archive.test index 0d43cc7..fbbf051 100644 --- a/test/Object/nm-archive.test +++ b/test/Object/nm-archive.test @@ -28,7 +28,7 @@ Or in an archive with no symtab or string table. RUN: llvm-nm %p/Inputs/archive-test.a-gnu-minimal -And don't crash when asked to print a non existing symtab. +And don't crash when asked to print a non-existing symtab. RUN: llvm-nm -s %p/Inputs/archive-test.a-gnu-minimal Don't reject an empty archive. diff --git a/test/Object/nm-error.test b/test/Object/nm-error.test index 146b887..bed9ccb 100644 --- a/test/Object/nm-error.test +++ b/test/Object/nm-error.test @@ -1,12 +1,10 @@ Test that llvm-nm returns an error because of the unknown file type, but keeps processing subsequent files. -Note: We use a temporary file since the tests don't run with pipefail. - RUN: touch %t RUN: not llvm-nm %p/Inputs/trivial-object-test.elf-i386 %t \ -RUN: %p/Inputs/trivial-object-test.elf-i386 > %t.log -RUN: FileCheck %s < %t.log +RUN: %p/Inputs/trivial-object-test.elf-i386 | \ +RUN: FileCheck %s CHECK: U SomeOtherFunction CHECK: 00000000 T main diff --git a/test/Object/nm-ir.ll b/test/Object/nm-ir.ll new file mode 100644 index 0000000..ddf4125 --- /dev/null +++ b/test/Object/nm-ir.ll @@ -0,0 +1,34 @@ +; RUN: llvm-as %s -o - | llvm-nm - | FileCheck %s + +; CHECK: D a1 +; CHECK-NEXT: d a2 +; CHECK-NEXT: T f1 +; CHECK-NEXT: t f2 +; CHECK-NEXT: W f3 +; CHECK-NEXT: U f4 +; CHECK-NEXT: D g1 +; CHECK-NEXT: d g2 +; CHECK-NEXT: C g3 +; CHECK-NOT: g4 + +@g1 = global i32 42 +@g2 = internal global i32 42 +@g3 = common global i32 0 +@g4 = private global i32 42 + +@a1 = alias i32* @g1 +@a2 = alias internal i32* @g1 + +define void @f1() { + ret void +} + +define internal void @f2() { + ret void +} + +define linkonce_odr void @f3() { + ret void +} + +declare void @f4() diff --git a/test/Object/nm-shared-object.test b/test/Object/nm-shared-object.test index a57b940..b77b2ce 100644 --- a/test/Object/nm-shared-object.test +++ b/test/Object/nm-shared-object.test @@ -1,23 +1,31 @@ RUN: llvm-nm -D %p/Inputs/shared-object-test.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF-32 -RUN: llvm-nm -D %p/Inputs/shared-object-test.elf-x86-64 \ -RUN: | FileCheck %s -check-prefix ELF-64 - -; Note: tls_sym should be 'D' (not '?'), but TLS is not -; yet recognized by ObjectFile. +ELF-32-NOT: U ELF-32: 0012c8 A __bss_start ELF-32: 0012c8 A _edata ELF-32: 0012cc A _end ELF-32: 0012c8 B common_sym ELF-32: 0012c4 D defined_sym ELF-32: 0001f0 T global_func -ELF-32: ? tls_sym +ELF-32: 000000 D tls_sym +RUN: llvm-nm -D %p/Inputs/shared-object-test.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF-64 + +ELF-64-NOT: U ELF-64: 200454 A __bss_start ELF-64: 200454 A _edata ELF-64: 200458 A _end ELF-64: 200454 B common_sym ELF-64: 200450 D defined_sym ELF-64: 0002f0 T global_func -ELF-64: ? tls_sym +ELF-64: 000000 D tls_sym + +RUN: not llvm-nm -D %p/Inputs/weak-global-symbol.macho-i386 2>&1 \ +RUN: | FileCheck %s -check-prefix ERROR + +RUN: not llvm-nm -D %p/Inputs/trivial-object-test.coff-i386 2>&1 \ +RUN: | FileCheck %s -check-prefix ERROR + +ERROR: File format has no dynamic symbol table. diff --git a/test/Object/nm-trivial-object.test b/test/Object/nm-trivial-object.test index 748d6f2..4e90f96 100644 --- a/test/Object/nm-trivial-object.test +++ b/test/Object/nm-trivial-object.test @@ -6,10 +6,21 @@ RUN: llvm-nm %p/Inputs/trivial-object-test.elf-i386 \ RUN: | FileCheck %s -check-prefix ELF RUN: llvm-nm %p/Inputs/trivial-object-test.elf-x86-64 \ RUN: | FileCheck %s -check-prefix ELF +RUN: llvm-nm %p/Inputs/weak.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix WEAK-ELF +RUN: llvm-nm %p/Inputs/absolute.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ABSOLUTE-ELF RUN: llvm-nm %p/Inputs/trivial-object-test.macho-i386 \ RUN: | FileCheck %s -check-prefix macho RUN: llvm-nm %p/Inputs/trivial-object-test.macho-x86-64 \ RUN: | FileCheck %s -check-prefix macho64 +RUN: llvm-nm %p/Inputs/common.coff-i386 \ +RUN: | FileCheck %s -check-prefix COFF-COMMON +RUN: llvm-nm %p/Inputs/relocatable-with-section-address.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF-SEC-ADDR +RUN: llvm-nm %p/Inputs/thumb-symbols.elf.arm \ +RUN: | FileCheck %s -check-prefix ELF-THUMB + COFF: 00000000 d .data COFF: 00000000 t .text @@ -18,11 +29,27 @@ COFF: U {{_?}}SomeOtherFunction COFF: 00000000 T {{_?}}main COFF: U {{_?}}puts +COFF-COMMON: 00000000 b .bss +COFF-COMMON-NEXT: 00000000 d .data +COFF-COMMON-NEXT: 00000000 d .drectve +COFF-COMMON-NEXT: 00000000 n .file +COFF-COMMON-NEXT: 00000000 r .rdata$zzz +COFF-COMMON-NEXT: 00000000 t .text +COFF-COMMON-NEXT: C _a + + ELF-NOT: U ELF: U SomeOtherFunction ELF: 00000000 T main ELF: U puts +WEAK-ELF: w f1 +WEAK-ELF: 00000000 W f2 +WEAK-ELF: v x1 +WEAK-ELF: 00000000 V x2 + +ABSOLUTE-ELF: 00000123 a a1 +ABSOLUTE-ELF: 00000123 A a2 macho: 00000000 U _SomeOtherFunction macho: 00000000 T _main @@ -32,3 +59,16 @@ macho64: 00000028 s L_.str macho64: 00000000 U _SomeOtherFunction macho64: 00000000 T _main macho64: 00000000 U _puts + + +Test that nm uses addresses even with ELF .o files. +ELF-SEC-ADDR: 00000058 D a +ELF-SEC-ADDR-NEXT: 0000005c D b +ELF-SEC-ADDR-NEXT: 00000040 T f +ELF-SEC-ADDR-NEXT: 00000050 T g +ELF-SEC-ADDR-NEXT: 00000060 D p + + +Test that we drop the thumb bit only from function addresses. +ELF-THUMB: 00000000 t f +ELF-THUMB: 00000003 t g diff --git a/test/Object/obj2yaml-coff-long-file-symbol.test b/test/Object/obj2yaml-coff-long-file-symbol.test new file mode 100644 index 0000000..3a4d380 --- /dev/null +++ b/test/Object/obj2yaml-coff-long-file-symbol.test @@ -0,0 +1,3 @@ +RUN: yaml2obj %p/Inputs/COFF/long-file-symbol.yaml | obj2yaml | FileCheck %s --check-prefix COFF-I386 + +COFF-I386: File: filename_with_22_chars diff --git a/test/Object/obj2yaml.test b/test/Object/obj2yaml.test index 4954133..d96275f 100644 --- a/test/Object/obj2yaml.test +++ b/test/Object/obj2yaml.test @@ -36,8 +36,12 @@ COFF-I386-NEXT: SectionNumber: 1 COFF-I386-NEXT: SimpleType: IMAGE_SYM_TYPE_NULL COFF-I386-NEXT: ComplexType: IMAGE_SYM_DTYPE_NULL COFF-I386-NEXT: StorageClass: IMAGE_SYM_CLASS_STATIC -COFF-I386-NEXT: NumberOfAuxSymbols: 1 -COFF-I386-NEXT: AuxiliaryData: 240000000300000000000000010000000000 +COFF-I386-NEXT: SectionDefinition: +COFF-I386-NEXT: Length: 36 +COFF-I386-NEXT: NumberOfRelocations: 3 +COFF-I386-NEXT: NumberOfLinenumbers: 0 +COFF-I386-NEXT: CheckSum: 0 +COFF-I386-NEXT: Number: 1 COFF-I386: - Name: .data COFF-I386-NEXT: Value: 0 @@ -45,8 +49,12 @@ COFF-I386-NEXT: SectionNumber: 2 COFF-I386-NEXT: SimpleType: IMAGE_SYM_TYPE_NULL COFF-I386-NEXT: ComplexType: IMAGE_SYM_DTYPE_NULL COFF-I386-NEXT: StorageClass: IMAGE_SYM_CLASS_STATIC -COFF-I386-NEXT: NumberOfAuxSymbols: 1 -COFF-I386-NEXT: AuxiliaryData: 0D0000000000000000000000020000000000 +COFF-I386-NEXT: SectionDefinition: +COFF-I386-NEXT: Length: 13 +COFF-I386-NEXT: NumberOfRelocations: 0 +COFF-I386-NEXT: NumberOfLinenumbers: 0 +COFF-I386-NEXT: CheckSum: 0 +COFF-I386-NEXT: Number: 2 COFF-I386: - Name: _main COFF-I386-NEXT: Value: 0 @@ -111,8 +119,12 @@ COFF-X86-64-NEXT: SectionNumber: 1 COFF-X86-64-NEXT: SimpleType: IMAGE_SYM_TYPE_NULL COFF-X86-64-NEXT: ComplexType: IMAGE_SYM_DTYPE_NULL COFF-X86-64-NEXT: StorageClass: IMAGE_SYM_CLASS_STATIC -COFF-X86-64-NEXT: NumberOfAuxSymbols: 1 -COFF-X86-64-NEXT: AuxiliaryData: 260000000300000000000000010000000000 +COFF-X86-64-NEXT: SectionDefinition: +COFF-X86-64-NEXT: Length: 38 +COFF-X86-64-NEXT: NumberOfRelocations: 3 +COFF-X86-64-NEXT: NumberOfLinenumbers: 0 +COFF-X86-64-NEXT: CheckSum: 0 +COFF-X86-64-NEXT: Number: 1 COFF-X86-64: - Name: .data COFF-X86-64-NEXT: Value: 0 @@ -120,8 +132,12 @@ COFF-X86-64-NEXT: SectionNumber: 2 COFF-X86-64-NEXT: SimpleType: IMAGE_SYM_TYPE_NULL COFF-X86-64-NEXT: ComplexType: IMAGE_SYM_DTYPE_NULL COFF-X86-64-NEXT: StorageClass: IMAGE_SYM_CLASS_STATIC -COFF-X86-64-NEXT: NumberOfAuxSymbols: 1 -COFF-X86-64-NEXT: AuxiliaryData: 0D0000000000000000000000020000000000 +COFF-X86-64-NEXT: SectionDefinition: +COFF-X86-64-NEXT: Length: 13 +COFF-X86-64-NEXT: NumberOfRelocations: 0 +COFF-X86-64-NEXT: NumberOfLinenumbers: 0 +COFF-X86-64-NEXT: CheckSum: 0 +COFF-X86-64-NEXT: Number: 2 COFF-X86-64: - Name: main COFF-X86-64-NEXT: Value: 0 diff --git a/test/Object/objdump-relocations.test b/test/Object/objdump-relocations.test index 95c4c4d..28cac10 100644 --- a/test/Object/objdump-relocations.test +++ b/test/Object/objdump-relocations.test @@ -10,6 +10,8 @@ RUN: llvm-objdump -r %p/Inputs/trivial-object-test.elf-hexagon \ RUN: | FileCheck %s -check-prefix ELF-hexagon RUN: llvm-objdump -r %p/Inputs/trivial-object-test.elf-mips64el \ RUN: | FileCheck %s -check-prefix ELF-MIPS64EL +RUN: llvm-objdump -r %p/Inputs/trivial-object-test.elf-mipsel \ +RUN: | FileCheck %s -check-prefix ELF-MIPSEL RUN: llvm-objdump -r %p/Inputs/relocations.elf-x86-64 \ RUN: | FileCheck %s -check-prefix ELF-complex-x86-64 @@ -45,7 +47,15 @@ ELF-hexagon: R_HEX_B22_PCREL puts // Note: this file was produced with gas to make sure we don't end up in a // situation where LLVM produces and accepts a broken file. ELF-MIPS64EL: .data -ELF-MIPS64EL: R_MIPS_64 +ELF-MIPS64EL: R_MIPS_64/R_MIPS_NONE/R_MIPS_NONE zed + +ELF-MIPSEL: .rel.text +ELF-MIPSEL: R_MIPS_HI16 _gp_disp +ELF-MIPSEL: R_MIPS_LO16 _gp_disp +ELF-MIPSEL: R_MIPS_GOT16 $.str +ELF-MIPSEL: R_MIPS_LO16 $.str +ELF-MIPSEL: R_MIPS_CALL16 puts +ELF-MIPSEL: R_MIPS_CALL16 SomeOtherFunction ELF-complex-x86-64: .text ELF-complex-x86-64-NEXT: R_X86_64_8 .data-4 diff --git a/test/Object/readobj-elf-versioning.test b/test/Object/readobj-elf-versioning.test index 1f09ef3..4085287 100644 --- a/test/Object/readobj-elf-versioning.test +++ b/test/Object/readobj-elf-versioning.test @@ -33,7 +33,7 @@ ELF32: Symbol { ELF32: Name: puts@GLIBC_2.0 ELF32: Binding: Global ELF32: Type: Function -ELF32: Section: (0x0) +ELF32: Section: Undefined (0x0) ELF32: } ELF32: ] ELF64: DynamicSymbols [ @@ -41,6 +41,6 @@ ELF64: Symbol { ELF64: Name: puts@GLIBC_2.2.5 ELF64: Binding: Global ELF64: Type: Function -ELF64: Section: (0x0) +ELF64: Section: Undefined (0x0) ELF64: } ELF64: ] diff --git a/test/Object/readobj-shared-object.test b/test/Object/readobj-shared-object.test index 72dbd32..516d4c6 100644 --- a/test/Object/readobj-shared-object.test +++ b/test/Object/readobj-shared-object.test @@ -191,7 +191,7 @@ ELF: Symbol { ELF: Name: shared.ll ELF: Binding: Local ELF: Type: File -ELF: Section: (0xFFF1) +ELF: Section: Absolute (0xFFF1) ELF: } ELF: Symbol { ELF: Name: local_func @@ -203,13 +203,13 @@ ELF: Symbol { ELF: Name: _GLOBAL_OFFSET_TABLE_ ELF: Binding: Local ELF: Type: Object -ELF: Section: (0xFFF1) +ELF: Section: Absolute (0xFFF1) ELF: } ELF: Symbol { ELF: Name: _DYNAMIC ELF: Binding: Local ELF: Type: Object -ELF: Section: (0xFFF1) +ELF: Section: Absolute (0xFFF1) ELF: } ELF: Symbol { ELF: Name: common_sym @@ -233,13 +233,13 @@ ELF: Symbol { ELF: Name: __bss_start ELF: Binding: Global ELF: Type: None -ELF: Section: (0xFFF1) +ELF: Section: Absolute (0xFFF1) ELF: } ELF: Symbol { ELF: Name: _end ELF: Binding: Global ELF: Type: None -ELF: Section: (0xFFF1) +ELF: Section: Absolute (0xFFF1) ELF: } ELF: Symbol { ELF: Name: global_func @@ -251,7 +251,7 @@ ELF: Symbol { ELF: Name: _edata ELF: Binding: Global ELF: Type: None -ELF: Section: (0xFFF1) +ELF: Section: Absolute (0xFFF1) ELF: } ELF: ] @@ -278,13 +278,13 @@ ELF: Symbol { ELF: Name: __bss_start ELF: Binding: Global ELF: Type: None -ELF: Section: (0xFFF1) +ELF: Section: Absolute (0xFFF1) ELF: } ELF: Symbol { ELF: Name: _end ELF: Binding: Global ELF: Type: None -ELF: Section: (0xFFF1) +ELF: Section: Absolute (0xFFF1) ELF: } ELF: Symbol { ELF: Name: global_func @@ -296,7 +296,7 @@ ELF: Symbol { ELF: Name: _edata ELF: Binding: Global ELF: Type: None -ELF: Section: (0xFFF1) +ELF: Section: Absolute (0xFFF1) ELF: } ELF: ] diff --git a/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml b/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml new file mode 100644 index 0000000..19cc91e --- /dev/null +++ b/test/Object/yaml2obj-elf-file-headers-with-e_flags.yaml @@ -0,0 +1,16 @@ +# RUN: yaml2obj -format=elf %s | llvm-readobj -file-headers - | FileCheck %s +!ELF +FileHeader: + Class: ELFCLASS32 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_MIPS + Flags: [ EF_MIPS_NOREORDER, EF_MIPS_ABI_O32 ] + +# CHECK: Format: ELF32-mips +# CHECK: Arch: mipsel +# CHECK: Machine: EM_MIPS +# CHECK: Flags [ (0x1001) +# CHECK-NEXT: 0x1 +# CHECK-NEXT: 0x1000 +# CHECK-NEXT: ] diff --git a/test/Object/yaml2obj-elf-section-basic.yaml b/test/Object/yaml2obj-elf-section-basic.yaml index 34be11d..c1f6935 100644 --- a/test/Object/yaml2obj-elf-section-basic.yaml +++ b/test/Object/yaml2obj-elf-section-basic.yaml @@ -33,3 +33,16 @@ Sections: # CHECK: SectionData ( # CHECK-NEXT: 0000: EBFE # CHECK-NEXT: ) +# +# CHECK: Section { +# CHECK: Name: .symtab (7) +# CHECK: Type: SHT_SYMTAB (0x2) +# CHECK: } +# CHECK: Section { +# CHECK: Name: .strtab (15) +# CHECK: Type: SHT_STRTAB (0x3) +# CHECK: } +# CHECK: Section { +# CHECK: Name: .shstrtab (23) +# CHECK: Type: SHT_STRTAB (0x3) +# CHECK: } diff --git a/test/Object/yaml2obj-elf-symbol-basic.yaml b/test/Object/yaml2obj-elf-symbol-basic.yaml index 3fb9b17..6d49ddd 100644 --- a/test/Object/yaml2obj-elf-symbol-basic.yaml +++ b/test/Object/yaml2obj-elf-symbol-basic.yaml @@ -37,4 +37,4 @@ Symbols: # CHECK: Section: .text # CHECK: Symbol { # CHECK: Name: undefined_symbol -# CHECK: Section: (0x0) +# CHECK: Section: Undefined (0x0) -- cgit v1.1