summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/llvm-readobj')
-rw-r--r--llvm/test/tools/llvm-readobj/elf-dynamic-tags.test8
-rw-r--r--llvm/test/tools/llvm-readobj/elf-file-headers.test10
-rw-r--r--llvm/test/tools/llvm-readobj/elf-relocations.test375
-rw-r--r--llvm/test/tools/llvm-readobj/gnu-file-headers.test12
-rw-r--r--llvm/test/tools/llvm-readobj/relocations.test11
5 files changed, 403 insertions, 13 deletions
diff --git a/llvm/test/tools/llvm-readobj/elf-dynamic-tags.test b/llvm/test/tools/llvm-readobj/elf-dynamic-tags.test
index dea94bee9ad..bbf9f798cc6 100644
--- a/llvm/test/tools/llvm-readobj/elf-dynamic-tags.test
+++ b/llvm/test/tools/llvm-readobj/elf-dynamic-tags.test
@@ -1,7 +1,11 @@
-# Show that all non-machine specific tags can be read and printed correctly.
-# RUN: yaml2obj %s > %t
+## Show that all non-machine specific tags can be read and printed correctly.
+## Also show that -d is an alias for --dynamic-table.
+
+# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj --dynamic-table %t | FileCheck %s --check-prefix=LLVM
+# RUN: llvm-readobj -d %t | FileCheck %s --check-prefix=LLVM
# RUN: llvm-readelf --dynamic-table %t | FileCheck %s --check-prefix=GNU
+# RUN: llvm-readelf -d %t | FileCheck %s --check-prefix=GNU
# LLVM: DynamicSection [ (61 entries)
# LLVM-NEXT: Tag Type Name/Value
diff --git a/llvm/test/tools/llvm-readobj/elf-file-headers.test b/llvm/test/tools/llvm-readobj/elf-file-headers.test
index 1cb3563a077..d3282c804cc 100644
--- a/llvm/test/tools/llvm-readobj/elf-file-headers.test
+++ b/llvm/test/tools/llvm-readobj/elf-file-headers.test
@@ -1,5 +1,7 @@
# RUN: yaml2obj %s --docnum=1 -o %t.i386
# RUN: llvm-readobj -h %t.i386 | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.i386 --check-prefix I386
+# RUN: llvm-readobj --file-header %t.i386 | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.i386 --check-prefix I386
+# RUN: llvm-readobj --file-headers %t.i386 | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.i386 --check-prefix I386
# I386:File: [[FILE]]
# I386-NEXT:Format: ELF32-i386
@@ -44,6 +46,10 @@ FileHeader:
# RUN: yaml2obj %s --docnum=2 -o %t.x86-64
# RUN: llvm-readobj -h %t.x86-64 \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.x86-64 --check-prefix X86-64
+# RUN: llvm-readobj --file-header %t.x86-64 \
+# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.x86-64 --check-prefix X86-64
+# RUN: llvm-readobj --file-headers %t.x86-64 \
+# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.x86-64 --check-prefix X86-64
# X86-64:File: [[FILE]]
# X86-64-NEXT:Format: ELF64-x86-64
@@ -88,6 +94,10 @@ FileHeader:
# RUN: yaml2obj %s --docnum=3 -o %t.lanai
# RUN: llvm-readobj -h %t.lanai \
# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.lanai --check-prefix LANAI
+# RUN: llvm-readobj --file-header %t.lanai \
+# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.lanai --check-prefix LANAI
+# RUN: llvm-readobj --file-headers %t.lanai \
+# RUN: | FileCheck %s --strict-whitespace --match-full-lines -DFILE=%t.lanai --check-prefix LANAI
--- !ELF
FileHeader:
diff --git a/llvm/test/tools/llvm-readobj/elf-relocations.test b/llvm/test/tools/llvm-readobj/elf-relocations.test
new file mode 100644
index 00000000000..1b02ad1725a
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/elf-relocations.test
@@ -0,0 +1,375 @@
+## Check llvm-readobj and llvm-readelf print relocations as expected.
+
+## Show that ELF64 is dumped correctly.
+# RUN: yaml2obj %s --docnum=1 -o %t64
+# RUN: llvm-readobj -r %t64 \
+# RUN: | FileCheck %s --check-prefix=LLVM-64 --strict-whitespace --match-full-lines
+# RUN: llvm-readobj --relocs %t64 \
+# RUN: | FileCheck %s --check-prefix=LLVM-64 --strict-whitespace --match-full-lines
+# RUN: llvm-readobj --relocations %t64 \
+# RUN: | FileCheck %s --check-prefix=LLVM-64 --strict-whitespace --match-full-lines
+
+# LLVM-64:Relocations [
+# LLVM-64-NEXT: Section (2) .rel.text {
+# LLVM-64-NEXT: 0x0 R_X86_64_NONE rel_0 0x0
+# LLVM-64-NEXT: 0x1 R_X86_64_PC32 rel_neg 0x0
+# LLVM-64-NEXT: 0x5 R_X86_64_PLT32 rel_pos 0x0
+# LLVM-64-NEXT: 0x9 R_X86_64_64 rel_64 0x0
+# LLVM-64-NEXT: }
+# LLVM-64-NEXT: Section (3) .rela.text {
+# LLVM-64-NEXT: 0x0 R_X86_64_NONE rela_0 0x0
+# LLVM-64-NEXT: 0x1 R_X86_64_PC32 rela_neg 0xFFFFFFFFFFFFFFFF
+# LLVM-64-NEXT: 0x5 R_X86_64_PLT32 rela_pos 0x2
+# LLVM-64-NEXT: 0xFFFFFFFFFFFFFFFF R_X86_64_64 rela_minneg 0x8000000000000000
+# LLVM-64-NEXT: 0x9 R_X86_64_32S rela_maxpos 0x7FFFFFFFFFFFFFFF
+# LLVM-64-NEXT: }
+# LLVM-64-NEXT:]
+
+# RUN: llvm-readelf -r %t64 \
+# RUN: | FileCheck %s --check-prefix=GNU-64 --strict-whitespace --match-full-lines
+# RUN: llvm-readelf --relocs %t64 \
+# RUN: | FileCheck %s --check-prefix=GNU-64 --strict-whitespace --match-full-lines
+# RUN: llvm-readelf --relocations %t64 \
+# RUN: | FileCheck %s --check-prefix=GNU-64 --strict-whitespace --match-full-lines
+
+# GNU-64:Relocation section '.rel.text' at offset 0x51 contains 4 entries:
+# GNU-64-NEXT: Offset Info Type Symbol's Value Symbol's Name
+# GNU-64-NEXT:0000000000000000 0000000100000000 R_X86_64_NONE 0000000000000000 rel_0
+# GNU-64-NEXT:0000000000000001 0000000200000002 R_X86_64_PC32 0000000000000001 rel_neg
+# GNU-64-NEXT:0000000000000005 0000000300000004 R_X86_64_PLT32 0000000000000002 rel_pos
+# GNU-64-NEXT:0000000000000009 0000000400000001 R_X86_64_64 ffffffffffffffff rel_64
+# GNU-64-EMPTY:
+# GNU-64-NEXT:Relocation section '.rela.text' at offset 0x91 contains 5 entries:
+# GNU-64-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend
+# GNU-64-NEXT:0000000000000000 0000000500000000 R_X86_64_NONE 0000000000000000 rela_0 + 0
+# GNU-64-NEXT:0000000000000001 0000000600000002 R_X86_64_PC32 0000000000000001 rela_neg - 1
+# GNU-64-NEXT:0000000000000005 0000000700000004 R_X86_64_PLT32 0000000000000002 rela_pos + 2
+# GNU-64-NEXT:ffffffffffffffff 0000000800000001 R_X86_64_64 0000000000000003 rela_minneg - 8000000000000000
+# GNU-64-NEXT:0000000000000009 000000090000000b R_X86_64_32S ffffffffffffffff rela_maxpos + 7fffffffffffffff
+
+## Show that --expand-relocs expands the relocation dump for LLVM style only
+## (and not GNU).
+# RUN: llvm-readobj -r --expand-relocs %t64 \
+# RUN: | FileCheck %s --check-prefix=LLVM-EXPAND-64 --match-full-lines --strict-whitespace
+# RUN: llvm-readelf -r --expand-relocs %t64 \
+# RUN: | FileCheck %s --check-prefix=GNU-64 --match-full-lines --strict-whitespace
+
+# LLVM-EXPAND-64:Relocations [
+# LLVM-EXPAND-64-NEXT: Section (2) .rel.text {
+# LLVM-EXPAND-64-NEXT: Relocation {
+# LLVM-EXPAND-64-NEXT: Offset: 0x0
+# LLVM-EXPAND-64-NEXT: Type: R_X86_64_NONE (0)
+# LLVM-EXPAND-64-NEXT: Symbol: rel_0 (1)
+# LLVM-EXPAND-64-NEXT: Addend: 0x0
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: Relocation {
+# LLVM-EXPAND-64-NEXT: Offset: 0x1
+# LLVM-EXPAND-64-NEXT: Type: R_X86_64_PC32 (2)
+# LLVM-EXPAND-64-NEXT: Symbol: rel_neg (2)
+# LLVM-EXPAND-64-NEXT: Addend: 0x0
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: Relocation {
+# LLVM-EXPAND-64-NEXT: Offset: 0x5
+# LLVM-EXPAND-64-NEXT: Type: R_X86_64_PLT32 (4)
+# LLVM-EXPAND-64-NEXT: Symbol: rel_pos (3)
+# LLVM-EXPAND-64-NEXT: Addend: 0x0
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: Relocation {
+# LLVM-EXPAND-64-NEXT: Offset: 0x9
+# LLVM-EXPAND-64-NEXT: Type: R_X86_64_64 (1)
+# LLVM-EXPAND-64-NEXT: Symbol: rel_64 (4)
+# LLVM-EXPAND-64-NEXT: Addend: 0x0
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: Section (3) .rela.text {
+# LLVM-EXPAND-64-NEXT: Relocation {
+# LLVM-EXPAND-64-NEXT: Offset: 0x0
+# LLVM-EXPAND-64-NEXT: Type: R_X86_64_NONE (0)
+# LLVM-EXPAND-64-NEXT: Symbol: rela_0 (5)
+# LLVM-EXPAND-64-NEXT: Addend: 0x0
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: Relocation {
+# LLVM-EXPAND-64-NEXT: Offset: 0x1
+# LLVM-EXPAND-64-NEXT: Type: R_X86_64_PC32 (2)
+# LLVM-EXPAND-64-NEXT: Symbol: rela_neg (6)
+# LLVM-EXPAND-64-NEXT: Addend: 0xFFFFFFFFFFFFFFFF
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: Relocation {
+# LLVM-EXPAND-64-NEXT: Offset: 0x5
+# LLVM-EXPAND-64-NEXT: Type: R_X86_64_PLT32 (4)
+# LLVM-EXPAND-64-NEXT: Symbol: rela_pos (7)
+# LLVM-EXPAND-64-NEXT: Addend: 0x2
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: Relocation {
+# LLVM-EXPAND-64-NEXT: Offset: 0xFFFFFFFFFFFFFFFF
+# LLVM-EXPAND-64-NEXT: Type: R_X86_64_64 (1)
+# LLVM-EXPAND-64-NEXT: Symbol: rela_minneg (8)
+# LLVM-EXPAND-64-NEXT: Addend: 0x8000000000000000
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: Relocation {
+# LLVM-EXPAND-64-NEXT: Offset: 0x9
+# LLVM-EXPAND-64-NEXT: Type: R_X86_64_32S (11)
+# LLVM-EXPAND-64-NEXT: Symbol: rela_maxpos (9)
+# LLVM-EXPAND-64-NEXT: Addend: 0x7FFFFFFFFFFFFFFF
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT: }
+# LLVM-EXPAND-64-NEXT:]
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .text
+ Type: SHT_PROGBITS
+ Content: '00FFFFFFFF020000001234567890ABCDEF'
+ - Name: .rel.text
+ Type: SHT_REL
+ Info: .text
+ Relocations:
+ - Offset: 0x0
+ Symbol: rel_0
+ Type: R_X86_64_NONE
+ - Offset: 0x1
+ Symbol: rel_neg
+ Type: R_X86_64_PC32
+ - Offset: 0x5
+ Symbol: rel_pos
+ Type: R_X86_64_PLT32
+ - Offset: 0x9
+ Symbol: rel_64
+ Type: R_X86_64_64
+ - Name: .rela.text
+ Type: SHT_RELA
+ Info: .text
+ Relocations:
+ - Offset: 0x0
+ Symbol: rela_0
+ Type: R_X86_64_NONE
+ Addend: 0
+ - Offset: 0x1
+ Symbol: rela_neg
+ Type: R_X86_64_PC32
+ Addend: -1
+ - Offset: 0x5
+ Symbol: rela_pos
+ Type: R_X86_64_PLT32
+ Addend: 2
+ - Offset: 0xFFFFFFFFFFFFFFFF
+ Symbol: rela_minneg
+ Type: R_X86_64_64
+ Addend: -9223372036854775808 ## Min 64-bit signed.
+ - Offset: 0x9
+ Symbol: rela_maxpos
+ Type: R_X86_64_32S
+ Addend: 9223372036854775807 ## Max 64-bit signed.
+Symbols:
+ - Name: rel_0
+ Section: .text
+ Value: 0
+ - Name: rel_neg
+ Section: .text
+ Value: 1
+ - Name: rel_pos
+ Section: .text
+ Value: 2
+ - Name: rel_64
+ Section: .text
+ Value: 0xFFFFFFFFFFFFFFFF
+ - Name: rela_0
+ Section: .text
+ Value: 0
+ - Name: rela_neg
+ Section: .text
+ Value: 1
+ - Name: rela_pos
+ Section: .text
+ Value: 2
+ - Name: rela_minneg
+ Section: .text
+ Value: 3
+ - Name: rela_maxpos
+ Section: .text
+ Value: 0xFFFFFFFFFFFFFFFF
+
+## Show that ELF32 is dumped correctly.
+# RUN: yaml2obj %s --docnum=2 -o %t32
+# RUN: llvm-readobj -r %t32 \
+# RUN: | FileCheck %s --check-prefix=LLVM-32 --strict-whitespace --match-full-lines
+# RUN: llvm-readobj --relocs %t32 \
+# RUN: | FileCheck %s --check-prefix=LLVM-32 --strict-whitespace --match-full-lines
+# RUN: llvm-readobj --relocations %t32 \
+# RUN: | FileCheck %s --check-prefix=LLVM-32 --strict-whitespace --match-full-lines
+
+# LLVM-32:Relocations [
+# LLVM-32-NEXT: Section (2) .rel.text {
+# LLVM-32-NEXT: 0x0 R_386_NONE rel_0 0x0
+# LLVM-32-NEXT: 0x1 R_386_PC32 rel_neg 0x0
+# LLVM-32-NEXT: 0x5 R_386_PLT32 rel_pos 0x0
+# LLVM-32-NEXT: }
+# LLVM-32-NEXT: Section (3) .rela.text {
+# LLVM-32-NEXT: 0x0 R_386_NONE rela_0 0x0
+# LLVM-32-NEXT: 0x1 R_386_PC32 rela_neg 0xFFFFFFFF
+# LLVM-32-NEXT: 0x5 R_386_PLT32 rela_pos 0x2
+# LLVM-32-NEXT: 0xFFFFFFFF R_386_32 rela_minneg 0x80000000
+# LLVM-32-NEXT: 0x9 R_386_GOT32 rela_maxpos 0x7FFFFFFF
+# LLVM-32-NEXT: }
+# LLVM-32-NEXT:]
+
+# RUN: llvm-readelf -r %t32 \
+# RUN: | FileCheck %s --check-prefix=GNU-32 --strict-whitespace --match-full-lines
+# RUN: llvm-readelf --relocs %t32 \
+# RUN: | FileCheck %s --check-prefix=GNU-32 --strict-whitespace --match-full-lines
+# RUN: llvm-readelf --relocations %t32 \
+# RUN: | FileCheck %s --check-prefix=GNU-32 --strict-whitespace --match-full-lines
+
+# GNU-32:Relocation section '.rel.text' at offset 0x3d contains 3 entries:
+# GNU-32-NEXT: Offset Info Type Sym. Value Symbol's Name
+# GNU-32-NEXT:00000000 00000100 R_386_NONE 00000000 rel_0
+# GNU-32-NEXT:00000001 00000202 R_386_PC32 00000001 rel_neg
+# GNU-32-NEXT:00000005 00000304 R_386_PLT32 ffffffff rel_pos
+# GNU-32-EMPTY:
+# GNU-32-NEXT:Relocation section '.rela.text' at offset 0x55 contains 5 entries:
+# GNU-32-NEXT: Offset Info Type Sym. Value Symbol's Name + Addend
+# GNU-32-NEXT:00000000 00000400 R_386_NONE 00000000 rela_0 + 0
+# GNU-32-NEXT:00000001 00000502 R_386_PC32 00000001 rela_neg - 1
+# GNU-32-NEXT:00000005 00000604 R_386_PLT32 00000002 rela_pos + 2
+# GNU-32-NEXT:ffffffff 00000701 R_386_32 00000003 rela_minneg - 80000000
+# GNU-32-NEXT:00000009 00000803 R_386_GOT32 ffffffff rela_maxpos + 7fffffff
+
+## Show that --expand-relocs expands the relocation dump for LLVM style only
+## (and not GNU).
+# RUN: llvm-readobj -r --expand-relocs %t32 \
+# RUN: | FileCheck %s --check-prefix=LLVM-EXPAND-32 --strict-whitespace --match-full-lines
+# RUN: llvm-readelf -r --expand-relocs %t32 \
+# RUN: | FileCheck %s --check-prefix=GNU-32 --strict-whitespace --match-full-lines
+
+# LLVM-EXPAND-32:Relocations [
+# LLVM-EXPAND-32-NEXT: Section (2) .rel.text {
+# LLVM-EXPAND-32-NEXT: Relocation {
+# LLVM-EXPAND-32-NEXT: Offset: 0x0
+# LLVM-EXPAND-32-NEXT: Type: R_386_NONE (0)
+# LLVM-EXPAND-32-NEXT: Symbol: rel_0 (1)
+# LLVM-EXPAND-32-NEXT: Addend: 0x0
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT: Relocation {
+# LLVM-EXPAND-32-NEXT: Offset: 0x1
+# LLVM-EXPAND-32-NEXT: Type: R_386_PC32 (2)
+# LLVM-EXPAND-32-NEXT: Symbol: rel_neg (2)
+# LLVM-EXPAND-32-NEXT: Addend: 0x0
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT: Relocation {
+# LLVM-EXPAND-32-NEXT: Offset: 0x5
+# LLVM-EXPAND-32-NEXT: Type: R_386_PLT32 (4)
+# LLVM-EXPAND-32-NEXT: Symbol: rel_pos (3)
+# LLVM-EXPAND-32-NEXT: Addend: 0x0
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT: Section (3) .rela.text {
+# LLVM-EXPAND-32-NEXT: Relocation {
+# LLVM-EXPAND-32-NEXT: Offset: 0x0
+# LLVM-EXPAND-32-NEXT: Type: R_386_NONE (0)
+# LLVM-EXPAND-32-NEXT: Symbol: rela_0 (4)
+# LLVM-EXPAND-32-NEXT: Addend: 0x0
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT: Relocation {
+# LLVM-EXPAND-32-NEXT: Offset: 0x1
+# LLVM-EXPAND-32-NEXT: Type: R_386_PC32 (2)
+# LLVM-EXPAND-32-NEXT: Symbol: rela_neg (5)
+# LLVM-EXPAND-32-NEXT: Addend: 0xFFFFFFFF
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT: Relocation {
+# LLVM-EXPAND-32-NEXT: Offset: 0x5
+# LLVM-EXPAND-32-NEXT: Type: R_386_PLT32 (4)
+# LLVM-EXPAND-32-NEXT: Symbol: rela_pos (6)
+# LLVM-EXPAND-32-NEXT: Addend: 0x2
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT: Relocation {
+# LLVM-EXPAND-32-NEXT: Offset: 0xFFFFFFFF
+# LLVM-EXPAND-32-NEXT: Type: R_386_32 (1)
+# LLVM-EXPAND-32-NEXT: Symbol: rela_minneg (7)
+# LLVM-EXPAND-32-NEXT: Addend: 0x80000000
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT: Relocation {
+# LLVM-EXPAND-32-NEXT: Offset: 0x9
+# LLVM-EXPAND-32-NEXT: Type: R_386_GOT32 (3)
+# LLVM-EXPAND-32-NEXT: Symbol: rela_maxpos (8)
+# LLVM-EXPAND-32-NEXT: Addend: 0x7FFFFFFF
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT: }
+# LLVM-EXPAND-32-NEXT:]
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_386
+Sections:
+ - Name: .text
+ Type: SHT_PROGBITS
+ Content: '00FFFFFFFF02000000'
+ - Name: .rel.text
+ Type: SHT_REL
+ Info: .text
+ Relocations:
+ - Offset: 0x0
+ Symbol: rel_0
+ Type: R_386_NONE
+ - Offset: 0x1
+ Symbol: rel_neg
+ Type: R_386_PC32
+ - Offset: 0x5
+ Symbol: rel_pos
+ Type: R_386_PLT32
+ - Name: .rela.text
+ Type: SHT_RELA
+ Info: .text
+ Relocations:
+ - Offset: 0x0
+ Symbol: rela_0
+ Type: R_386_NONE
+ Addend: 0
+ - Offset: 0x1
+ Symbol: rela_neg
+ Type: R_386_PC32
+ Addend: -1
+ - Offset: 0x5
+ Symbol: rela_pos
+ Type: R_386_PLT32
+ Addend: 2
+ - Offset: 0xFFFFFFFF
+ Symbol: rela_minneg
+ Type: R_386_32
+ Addend: -2147483648 ## Min 32-bit signed.
+ - Offset: 0x9
+ Symbol: rela_maxpos
+ Type: R_386_GOT32
+ Addend: 2147483647 ## Max 32-bit signed.
+Symbols:
+ - Name: rel_0
+ Section: .text
+ Value: 0
+ - Name: rel_neg
+ Section: .text
+ Value: 1
+ - Name: rel_pos
+ Section: .text
+ Value: 0xFFFFFFFF
+ - Name: rela_0
+ Section: .text
+ Value: 0
+ - Name: rela_neg
+ Section: .text
+ Value: 1
+ - Name: rela_pos
+ Section: .text
+ Value: 2
+ - Name: rela_minneg
+ Section: .text
+ Value: 3
+ - Name: rela_maxpos
+ Section: .text
+ Value: 0xFFFFFFFF
diff --git a/llvm/test/tools/llvm-readobj/gnu-file-headers.test b/llvm/test/tools/llvm-readobj/gnu-file-headers.test
index c6060ca1beb..c6287450989 100644
--- a/llvm/test/tools/llvm-readobj/gnu-file-headers.test
+++ b/llvm/test/tools/llvm-readobj/gnu-file-headers.test
@@ -1,9 +1,21 @@
RUN: llvm-readelf -h %p/Inputs/trivial.obj.elf-i386 \
RUN: | FileCheck %s -check-prefix ELF32
+RUN: llvm-readelf --file-header %p/Inputs/trivial.obj.elf-i386 \
+RUN: | FileCheck %s -check-prefix ELF32
+RUN: llvm-readelf --file-headers %p/Inputs/trivial.obj.elf-i386 \
+RUN: | FileCheck %s -check-prefix ELF32
RUN: llvm-readelf -h %p/Inputs/trivial.obj.elf-x86-64 \
RUN: | FileCheck %s -check-prefix ELF64
+RUN: llvm-readelf --file-header %p/Inputs/trivial.obj.elf-x86-64 \
+RUN: | FileCheck %s -check-prefix ELF64
+RUN: llvm-readelf --file-headers %p/Inputs/trivial.obj.elf-x86-64 \
+RUN: | FileCheck %s -check-prefix ELF64
RUN: llvm-readelf -h %p/Inputs/trivial.obj.elf-mipsel \
RUN: | FileCheck %s -check-prefix MIPSEL
+RUN: llvm-readelf --file-header %p/Inputs/trivial.obj.elf-mipsel \
+RUN: | FileCheck %s -check-prefix MIPSEL
+RUN: llvm-readelf --file-headers %p/Inputs/trivial.obj.elf-mipsel \
+RUN: | FileCheck %s -check-prefix MIPSEL
ELF32: ELF Header:
ELF32-NEXT: Magic: 7f 45 4c 46 01 01 01 03 00 00 00 00 00 00 00 00
diff --git a/llvm/test/tools/llvm-readobj/relocations.test b/llvm/test/tools/llvm-readobj/relocations.test
index a459981edf1..53517034298 100644
--- a/llvm/test/tools/llvm-readobj/relocations.test
+++ b/llvm/test/tools/llvm-readobj/relocations.test
@@ -4,8 +4,6 @@ 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
-RUN: llvm-readobj -r %p/Inputs/trivial.obj.elf-i386 \
-RUN: | FileCheck %s -check-prefix ELF
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 \
@@ -33,15 +31,6 @@ BAD-COFF-RELOCS-NEXT: 0xDEADBEEF IMAGE_REL_I386_ABSOLUTE -
BAD-COFF-RELOCS-NEXT: }
BAD-COFF-RELOCS-NEXT: ]
-ELF: Relocations [
-ELF-NEXT: Section (2) .rel.text {
-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: ]
-
MACHO-I386: Relocations [
MACHO-I386-NEXT: Section __text {
MACHO-I386-NEXT: 0x18 1 2 1 GENERIC_RELOC_VANILLA 0 _SomeOtherFunction
OpenPOWER on IntegriCloud