summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-objdump
diff options
context:
space:
mode:
authorGeorgii Rymar <grimar@accesssoftek.com>2019-12-26 14:55:53 +0300
committerGeorgii Rymar <grimar@accesssoftek.com>2020-01-14 17:09:12 +0300
commite1f524ea43f920767259c47e201405091d7e76fd (patch)
tree8f3151ace84397e5c6c4202dcf36289df538486a /llvm/test/tools/llvm-objdump
parent1d6b964ed1f7a77b178e86bef7d569611f2c0983 (diff)
downloadbcm5719-llvm-e1f524ea43f920767259c47e201405091d7e76fd.tar.gz
bcm5719-llvm-e1f524ea43f920767259c47e201405091d7e76fd.zip
[llvm-readobj][llvm-readelf][test] - Add a few more dynamic section tests.
This adds a few more tests for dynamic section. We only had tests for simple unknown values for 64-bits target, in this patch I've added OS specific and processor specific tags. Also it tests both 32 and 64-bits targets now. It will help to fix the formatting issues we have and diagnose a possible new ones. Differential revision: https://reviews.llvm.org/D71896
Diffstat (limited to 'llvm/test/tools/llvm-objdump')
-rw-r--r--llvm/test/tools/llvm-objdump/elf-dynamic-section.test349
1 files changed, 288 insertions, 61 deletions
diff --git a/llvm/test/tools/llvm-objdump/elf-dynamic-section.test b/llvm/test/tools/llvm-objdump/elf-dynamic-section.test
index a401c3881c9..05f21f6072a 100644
--- a/llvm/test/tools/llvm-objdump/elf-dynamic-section.test
+++ b/llvm/test/tools/llvm-objdump/elf-dynamic-section.test
@@ -1,64 +1,67 @@
-# RUN: yaml2obj %s > %t
-# RUN: llvm-objdump -p %t | FileCheck %s
+# RUN: yaml2obj --docnum=1 %s -o %t1
+# RUN: llvm-objdump -p %t1 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF64
-# CHECK:Dynamic Section:
-# CHECK-NEXT: NEEDED D
-# CHECK-NEXT: PLTRELSZ 0x0000000000000010
-# CHECK-NEXT: PLTGOT 0x0000000000001000
-# CHECK-NEXT: HASH 0x0000000000001000
-# CHECK-NEXT: STRTAB 0x0000000000001000
-# CHECK-NEXT: SYMTAB 0x0000000000001000
-# CHECK-NEXT: RELA 0x0000000000001000
-# CHECK-NEXT: RELASZ 0x0000000000000010
-# CHECK-NEXT: RELAENT 0x0000000000000789
-# CHECK-NEXT: STRSZ 0x0000000000000010
-# CHECK-NEXT: SYMENT 0x0000000000000987
-# CHECK-NEXT: INIT 0x0000000000001000
-# CHECK-NEXT: FINI 0x0000000000001000
-# CHECK-NEXT: SONAME U
-# CHECK-NEXT: RPATH f
-# CHECK-NEXT: SYMBOLIC 0x1234567890abcdef
-# CHECK-NEXT: REL 0x0000000000001000
-# CHECK-NEXT: RELSZ 0x0000000000000010
-# CHECK-NEXT: RELENT 0x0000000000000123
-# CHECK-NEXT: PLTREL 0x0000000000000007
-# CHECK-NEXT: DEBUG 0xfedcba0987654321
-# CHECK-NEXT: TEXTREL 0x1122334455667788
-# CHECK-NEXT: JMPREL 0x0000000000001000
-# CHECK-NEXT: BIND_NOW 0x8877665544332211
-# CHECK-NEXT: INIT_ARRAY 0x0000000000001000
-# CHECK-NEXT: FINI_ARRAY 0x0000000000001000
-# CHECK-NEXT: INIT_ARRAYSZ 0x0000000000000010
-# CHECK-NEXT: FINI_ARRAYSZ 0x0000000000000010
-# CHECK-NEXT: RUNPATH w
-# CHECK-NEXT: FLAGS 0xaabbccddeeff9900
-# CHECK-NEXT: PREINIT_ARRAY 0x0000000000001000
-# CHECK-NEXT: PREINIT_ARRAYSZ 0x0000000000000010
-# CHECK-NEXT: SYMTAB_SHNDX 0x0000000000001000
-# CHECK-NEXT: RELRSZ 0x0000000000000010
-# CHECK-NEXT: RELR 0x0000000000001000
-# CHECK-NEXT: RELRENT 0x0000000000004321
-# CHECK-NEXT: ANDROID_REL 0x0000000000001000
-# CHECK-NEXT: ANDROID_RELSZ 0x0000000000000010
-# CHECK-NEXT: ANDROID_RELA 0x0000000000001000
-# CHECK-NEXT: ANDROID_RELASZ 0x0000000000000010
-# CHECK-NEXT: ANDROID_RELR 0x0000000000001000
-# CHECK-NEXT: ANDROID_RELRSZ 0x0000000000000010
-# CHECK-NEXT: ANDROID_RELRENT 0x0000000000001234
-# CHECK-NEXT: GNU_HASH 0x0000000000001000
-# CHECK-NEXT: TLSDESC_PLT 0x0000000000001000
-# CHECK-NEXT: TLSDESC_GOT 0x0000000000001000
-# CHECK-NEXT: RELACOUNT 0x0000000000000000
-# CHECK-NEXT: RELCOUNT 0x0000000000000000
-# CHECK-NEXT: FLAGS_1 0x0000000087654321
-# CHECK-NEXT: VERSYM 0x0000000000001000
-# CHECK-NEXT: VERDEF 0x0000000000001000
-# CHECK-NEXT: VERDEFNUM 0x0000000000000000
-# CHECK-NEXT: VERNEED 0x0000000000001000
-# CHECK-NEXT: VERNEEDNUM 0x0000000000000000
-# CHECK-NEXT: AUXILIARY D
-# CHECK-NEXT: FILTER U
-# CHECK-NEXT: <unknown:>0x1234abcd 0x0000000000000001
+# ELF64:Dynamic Section:
+# ELF64-NEXT: NEEDED D
+# ELF64-NEXT: PLTRELSZ 0x0000000000000010
+# ELF64-NEXT: PLTGOT 0x0000000000001000
+# ELF64-NEXT: HASH 0x0000000000001000
+# ELF64-NEXT: STRTAB 0x0000000000001000
+# ELF64-NEXT: SYMTAB 0x0000000000001000
+# ELF64-NEXT: RELA 0x0000000000001000
+# ELF64-NEXT: RELASZ 0x0000000000000010
+# ELF64-NEXT: RELAENT 0x0000000000000789
+# ELF64-NEXT: STRSZ 0x0000000000000010
+# ELF64-NEXT: SYMENT 0x0000000000000987
+# ELF64-NEXT: INIT 0x0000000000001000
+# ELF64-NEXT: FINI 0x0000000000001000
+# ELF64-NEXT: SONAME U
+# ELF64-NEXT: RPATH f
+# ELF64-NEXT: SYMBOLIC 0x1234567890abcdef
+# ELF64-NEXT: REL 0x0000000000001000
+# ELF64-NEXT: RELSZ 0x0000000000000010
+# ELF64-NEXT: RELENT 0x0000000000000123
+# ELF64-NEXT: PLTREL 0x0000000000000007
+# ELF64-NEXT: DEBUG 0xfedcba0987654321
+# ELF64-NEXT: TEXTREL 0x1122334455667788
+# ELF64-NEXT: JMPREL 0x0000000000001000
+# ELF64-NEXT: BIND_NOW 0x8877665544332211
+# ELF64-NEXT: INIT_ARRAY 0x0000000000001000
+# ELF64-NEXT: FINI_ARRAY 0x0000000000001000
+# ELF64-NEXT: INIT_ARRAYSZ 0x0000000000000010
+# ELF64-NEXT: FINI_ARRAYSZ 0x0000000000000010
+# ELF64-NEXT: RUNPATH w
+# ELF64-NEXT: FLAGS 0xaabbccddeeff9900
+# ELF64-NEXT: PREINIT_ARRAY 0x0000000000001000
+# ELF64-NEXT: PREINIT_ARRAYSZ 0x0000000000000010
+# ELF64-NEXT: SYMTAB_SHNDX 0x0000000000001000
+# ELF64-NEXT: RELRSZ 0x0000000000000010
+# ELF64-NEXT: RELR 0x0000000000001000
+# ELF64-NEXT: RELRENT 0x0000000000004321
+# ELF64-NEXT: ANDROID_REL 0x0000000000001000
+# ELF64-NEXT: ANDROID_RELSZ 0x0000000000000010
+# ELF64-NEXT: ANDROID_RELA 0x0000000000001000
+# ELF64-NEXT: ANDROID_RELASZ 0x0000000000000010
+# ELF64-NEXT: ANDROID_RELR 0x0000000000001000
+# ELF64-NEXT: ANDROID_RELRSZ 0x0000000000000010
+# ELF64-NEXT: ANDROID_RELRENT 0x0000000000001234
+# ELF64-NEXT: GNU_HASH 0x0000000000001000
+# ELF64-NEXT: TLSDESC_PLT 0x0000000000001000
+# ELF64-NEXT: TLSDESC_GOT 0x0000000000001000
+# ELF64-NEXT: RELACOUNT 0x0000000000000000
+# ELF64-NEXT: RELCOUNT 0x0000000000000000
+# ELF64-NEXT: FLAGS_1 0x0000000087654321
+# ELF64-NEXT: VERSYM 0x0000000000001000
+# ELF64-NEXT: VERDEF 0x0000000000001000
+# ELF64-NEXT: VERDEFNUM 0x0000000000000000
+# ELF64-NEXT: VERNEED 0x0000000000001000
+# ELF64-NEXT: VERNEEDNUM 0x0000000000000000
+# ELF64-NEXT: AUXILIARY D
+# ELF64-NEXT: FILTER U
+# ELF64-NEXT: <unknown:>0x12345678 0x8765432187654321
+# ELF64-NEXT: <unknown:>0x6abcdef0 0x9988776655443322
+# ELF64-NEXT: <unknown:>0x76543210 0x5555666677778888
+# ELF64-NOT:{{.}}
--- !ELF
FileHeader:
@@ -189,8 +192,232 @@ Sections:
Value: 0x1
- Tag: DT_FILTER
Value: 0x3
- - Tag: 0x1234abcd
+## Show behaviour for unknown values in special and unmarked ranges.
+## An arbitrary unknown value outside of the special ranges.
+ - Tag: 0x12345678
+ Value: 0x8765432187654321
+## An OS specific tag.
+ - Tag: 0x6abcdef0
+ Value: 0x9988776655443322
+## A processor specific tags.
+ - Tag: 0x76543210
+ Value: 0x5555666677778888
+ - Tag: DT_NULL
+ Value: 0x0
+ProgramHeaders:
+ - Type: PT_LOAD
+ VAddr: 0x1000
+ Sections:
+ - Section: .dynstr
+ - Section: .dynamic
+ - Type: PT_DYNAMIC
+ VAddr: 0x1010
+ Sections:
+ - Section: .dynamic
+
+# RUN: yaml2obj --docnum=2 %s > %t2
+# RUN: llvm-objdump -p %t2 | FileCheck %s --strict-whitespace --match-full-lines --check-prefix=ELF32
+
+# ELF32:Dynamic Section:
+# ELF32-NEXT: NEEDED D
+# ELF32-NEXT: PLTRELSZ 0x00000010
+# ELF32-NEXT: PLTGOT 0x00001000
+# ELF32-NEXT: HASH 0x00001000
+# ELF32-NEXT: STRTAB 0x00001000
+# ELF32-NEXT: SYMTAB 0x00001000
+# ELF32-NEXT: RELA 0x00001000
+# ELF32-NEXT: RELASZ 0x00000010
+# ELF32-NEXT: RELAENT 0x00000789
+# ELF32-NEXT: STRSZ 0x00000010
+# ELF32-NEXT: SYMENT 0x00000987
+# ELF32-NEXT: INIT 0x00001000
+# ELF32-NEXT: FINI 0x00001000
+# ELF32-NEXT: SONAME U
+# ELF32-NEXT: RPATH f
+# ELF32-NEXT: SYMBOLIC 0x12345678
+# ELF32-NEXT: REL 0x00001000
+# ELF32-NEXT: RELSZ 0x00000010
+# ELF32-NEXT: RELENT 0x00000123
+# ELF32-NEXT: PLTREL 0x00000007
+# ELF32-NEXT: DEBUG 0xfedcba09
+# ELF32-NEXT: TEXTREL 0x11223344
+# ELF32-NEXT: JMPREL 0x00001000
+# ELF32-NEXT: BIND_NOW 0x88776655
+# ELF32-NEXT: INIT_ARRAY 0x00001000
+# ELF32-NEXT: FINI_ARRAY 0x00001000
+# ELF32-NEXT: INIT_ARRAYSZ 0x00000010
+# ELF32-NEXT: FINI_ARRAYSZ 0x00000010
+# ELF32-NEXT: RUNPATH w
+# ELF32-NEXT: FLAGS 0xaabbccdd
+# ELF32-NEXT: PREINIT_ARRAY 0x00001000
+# ELF32-NEXT: PREINIT_ARRAYSZ 0x00000010
+# ELF32-NEXT: SYMTAB_SHNDX 0x00001000
+# ELF32-NEXT: RELRSZ 0x00000010
+# ELF32-NEXT: RELR 0x00001000
+# ELF32-NEXT: RELRENT 0x00004321
+# ELF32-NEXT: ANDROID_REL 0x00001000
+# ELF32-NEXT: ANDROID_RELSZ 0x00000010
+# ELF32-NEXT: ANDROID_RELA 0x00001000
+# ELF32-NEXT: ANDROID_RELASZ 0x00000010
+# ELF32-NEXT: ANDROID_RELR 0x00001000
+# ELF32-NEXT: ANDROID_RELRSZ 0x00000010
+# ELF32-NEXT: ANDROID_RELRENT 0x00001234
+# ELF32-NEXT: GNU_HASH 0x00001000
+# ELF32-NEXT: TLSDESC_PLT 0x00001000
+# ELF32-NEXT: TLSDESC_GOT 0x00001000
+# ELF32-NEXT: RELACOUNT 0x00000000
+# ELF32-NEXT: RELCOUNT 0x00000000
+# ELF32-NEXT: FLAGS_1 0x87654321
+# ELF32-NEXT: VERSYM 0x00001000
+# ELF32-NEXT: VERDEF 0x00001000
+# ELF32-NEXT: VERDEFNUM 0x00000000
+# ELF32-NEXT: VERNEED 0x00001000
+# ELF32-NEXT: VERNEEDNUM 0x00000000
+# ELF32-NEXT: AUXILIARY D
+# ELF32-NEXT: FILTER U
+# ELF32-NEXT: <unknown:>0x12345678 0x87654321
+# ELF32-NEXT: <unknown:>0x6abcdef0 0x99887766
+# ELF32-NEXT: <unknown:>0x76543210 0x55556666
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS32
+ Data: ELFDATA2LSB
+ Type: ET_EXEC
+ Machine: EM_386
+Sections:
+ - Name: .dynstr
+ Type: SHT_STRTAB
+ Address: 0x1000
+ Size: 0x10
+ Content: "004400550066007700"
+ - Name: .dynamic
+ Type: SHT_DYNAMIC
+ Address: 0x1010
+ Link: 1
+ Entries:
+ - Tag: DT_NEEDED
Value: 0x1
+ - Tag: DT_PLTRELSZ
+ Value: 0x10
+ - Tag: DT_PLTGOT
+ Value: 0x1000
+ - Tag: DT_HASH
+ Value: 0x1000
+ - Tag: DT_STRTAB
+ Value: 0x1000
+ - Tag: DT_SYMTAB
+ Value: 0x1000
+ - Tag: DT_RELA
+ Value: 0x1000
+ - Tag: DT_RELASZ
+ Value: 0x10
+ - Tag: DT_RELAENT
+ Value: 0x789
+ - Tag: DT_STRSZ
+ Value: 0x10
+ - Tag: DT_SYMENT
+ Value: 0x987
+ - Tag: DT_INIT
+ Value: 0x1000
+ - Tag: DT_FINI
+ Value: 0x1000
+ - Tag: DT_SONAME
+ Value: 0x3
+ - Tag: DT_RPATH
+ Value: 0x5
+ - Tag: DT_SYMBOLIC
+ Value: 0x12345678
+ - Tag: DT_REL
+ Value: 0x1000
+ - Tag: DT_RELSZ
+ Value: 0x10
+ - Tag: DT_RELENT
+ Value: 0x123
+ - Tag: DT_PLTREL
+ Value: 0x7
+ - Tag: DT_DEBUG
+ Value: 0xfedcba09
+ - Tag: DT_TEXTREL
+ Value: 0x11223344
+ - Tag: DT_JMPREL
+ Value: 0x1000
+ - Tag: DT_BIND_NOW
+ Value: 0x88776655
+ - Tag: DT_INIT_ARRAY
+ Value: 0x1000
+ - Tag: DT_FINI_ARRAY
+ Value: 0x1000
+ - Tag: DT_INIT_ARRAYSZ
+ Value: 0x10
+ - Tag: DT_FINI_ARRAYSZ
+ Value: 0x10
+ - Tag: DT_RUNPATH
+ Value: 0x7
+ - Tag: DT_FLAGS
+ Value: 0xaabbccdd
+ - Tag: DT_PREINIT_ARRAY
+ Value: 0x1000
+ - Tag: DT_PREINIT_ARRAYSZ
+ Value: 0x10
+ - Tag: DT_SYMTAB_SHNDX
+ Value: 0x1000
+ - Tag: DT_RELRSZ
+ Value: 0x10
+ - Tag: DT_RELR
+ Value: 0x1000
+ - Tag: DT_RELRENT
+ Value: 0x4321
+ - Tag: DT_ANDROID_REL
+ Value: 0x1000
+ - Tag: DT_ANDROID_RELSZ
+ Value: 0x10
+ - Tag: DT_ANDROID_RELA
+ Value: 0x1000
+ - Tag: DT_ANDROID_RELASZ
+ Value: 0x10
+ - Tag: DT_ANDROID_RELR
+ Value: 0x1000
+ - Tag: DT_ANDROID_RELRSZ
+ Value: 0x10
+ - Tag: DT_ANDROID_RELRENT
+ Value: 0x1234
+ - Tag: DT_GNU_HASH
+ Value: 0x1000
+ - Tag: DT_TLSDESC_PLT
+ Value: 0x1000
+ - Tag: DT_TLSDESC_GOT
+ Value: 0x1000
+ - Tag: DT_RELACOUNT
+ Value: 0x0
+ - Tag: DT_RELCOUNT
+ Value: 0x0
+ - Tag: DT_FLAGS_1
+ Value: 0x87654321
+ - Tag: DT_VERSYM
+ Value: 0x1000
+ - Tag: DT_VERDEF
+ Value: 0x1000
+ - Tag: DT_VERDEFNUM
+ Value: 0x0
+ - Tag: DT_VERNEED
+ Value: 0x1000
+ - Tag: DT_VERNEEDNUM
+ Value: 0x0
+ - Tag: DT_AUXILIARY
+ Value: 0x1
+ - Tag: DT_FILTER
+ Value: 0x3
+## Show behaviour for unknown values in special and unmarked ranges.
+## An arbitrary unknown value outside of the special ranges.
+ - Tag: 0x12345678
+ Value: 0x87654321
+## An OS specific tag.
+ - Tag: 0x6abcdef0
+ Value: 0x99887766
+## A processor specific tags.
+ - Tag: 0x76543210
+ Value: 0x55556666
- Tag: DT_NULL
Value: 0x0
ProgramHeaders:
OpenPOWER on IntegriCloud