[llvm-objdump] Add dynamic section printing to private-headers option
Differential Revision: https://reviews.llvm.org/D49016
llvm-svn: 337902
diff --git a/llvm/test/tools/llvm-objdump/Inputs/private-headers-x86_64.elf b/llvm/test/tools/llvm-objdump/Inputs/private-headers-x86_64.elf
new file mode 100755
index 0000000..d92d9f1
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/Inputs/private-headers-x86_64.elf
Binary files differ
diff --git a/llvm/test/tools/llvm-objdump/private-headers-dynamic-section.test b/llvm/test/tools/llvm-objdump/private-headers-dynamic-section.test
new file mode 100644
index 0000000..ba93d0b
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/private-headers-dynamic-section.test
@@ -0,0 +1,35 @@
+# RUN: llvm-objdump -p %p/Inputs/private-headers-x86_64.elf | FileCheck %s
+# RUN: llvm-objcopy --strip-sections %p/Inputs/private-headers-x86_64.elf %t
+# RUN: llvm-objdump -p %t | FileCheck %s
+
+# CHECK: NEEDED libstdc++.so.6
+# CHECK: NEEDED libm.so.6
+# CHECK: NEEDED libgcc_s.so.1
+# CHECK: NEEDED libc.so.6
+# CHECK: INIT 0x00000000000006a0
+# CHECK: FINI 0x0000000000000924
+# CHECK: INIT_ARRAY 0x0000000000200da8
+# CHECK: INIT_ARRAYSZ 0x0000000000000010
+# CHECK: FINI_ARRAY 0x0000000000200db8
+# CHECK: FINI_ARRAYSZ 0x0000000000000008
+# CHECK: GNU_HASH 0x0000000000000298
+# CHECK: STRTAB 0x00000000000003c8
+# CHECK: SYMTAB 0x00000000000002c0
+# CHECK: STRSZ 0x000000000000012f
+# CHECK: SYMENT 0x0000000000000018
+# CHECK: DEBUG 0x0000000000000000
+# CHECK: PLTGOT 0x0000000000201000
+# CHECK: PLTRELSZ 0x0000000000000048
+# CHECK: PLTREL 0x0000000000000007
+# CHECK: JMPREL 0x0000000000000658
+# CHECK: RELA 0x0000000000000550
+# CHECK: RELASZ 0x0000000000000108
+# CHECK: RELAENT 0x0000000000000018
+# CHECK: FLAGS_1 0x0000000008000000
+# CHECK: VERNEED 0x0000000000000510
+# CHECK: VERNEEDNUM 0x0000000000000002
+# CHECK: VERSYM 0x00000000000004f8
+# CHECK: RELACOUNT 0x0000000000000004
+# CHECK: RELRSZ 0x0000000000000014
+# CHECK: RELR 0x0000000087654321
+# CHECK: RELRENT 0x0000000000000010
diff --git a/llvm/test/tools/llvm-objdump/private-headers-no-dynamic-segment.test b/llvm/test/tools/llvm-objdump/private-headers-no-dynamic-segment.test
new file mode 100644
index 0000000..0aec1fe
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/private-headers-no-dynamic-segment.test
@@ -0,0 +1,42 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-objdump -p %t | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .dynamic
+ Type: SHT_DYNAMIC
+ Flags: [ SHF_ALLOC, SHF_WRITE ]
+ Content: 0c00000000000000a0060000000000000d0000000000000024090000000000001900000000000000a80d2000000000001b0000000000000010000000000000001a00000000000000b80d2000000000001c000000000000000800000000000000f5feff6f0000000098020000000000000500000000000000c8030000000000000600000000000000c0020000000000000a000000000000002f010000000000000b0000000000000018000000000000001500000000000000000000000000000003000000000000000010200000000000020000000000000048000000000000001400000000000000070000000000000017000000000000005806000000000000070000000000000050050000000000000800000000000000080100000000000009000000000000001800000000000000fbffff6f000000000000000800000000feffff6f000000001005000000000000ffffff6f000000000200000000000000f0ffff6f00000000f804000000000000f9ffff6f0000000004000000000000002300000000000000140000000000000024000000000000002143658700000000250000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000
+
+# CHECK: INIT 0x00000000000006a0
+# CHECK: FINI 0x0000000000000924
+# CHECK: INIT_ARRAY 0x0000000000200da8
+# CHECK: INIT_ARRAYSZ 0x0000000000000010
+# CHECK: FINI_ARRAY 0x0000000000200db8
+# CHECK: FINI_ARRAYSZ 0x0000000000000008
+# CHECK: GNU_HASH 0x0000000000000298
+# CHECK: STRTAB 0x00000000000003c8
+# CHECK: SYMTAB 0x00000000000002c0
+# CHECK: STRSZ 0x000000000000012f
+# CHECK: SYMENT 0x0000000000000018
+# CHECK: DEBUG 0x0000000000000000
+# CHECK: PLTGOT 0x0000000000201000
+# CHECK: PLTRELSZ 0x0000000000000048
+# CHECK: PLTREL 0x0000000000000007
+# CHECK: JMPREL 0x0000000000000658
+# CHECK: RELA 0x0000000000000550
+# CHECK: RELASZ 0x0000000000000108
+# CHECK: RELAENT 0x0000000000000018
+# CHECK: FLAGS_1 0x0000000008000000
+# CHECK: VERNEED 0x0000000000000510
+# CHECK: VERNEEDNUM 0x0000000000000002
+# CHECK: VERSYM 0x00000000000004f8
+# CHECK: RELACOUNT 0x0000000000000004
+# CHECK: RELRSZ 0x0000000000000014
+# CHECK: RELR 0x0000000087654321
+# CHECK: RELRENT 0x0000000000000010
diff --git a/llvm/test/tools/llvm-objdump/private-headers-no-dynamic.test b/llvm/test/tools/llvm-objdump/private-headers-no-dynamic.test
new file mode 100644
index 0000000..80c6841
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/private-headers-no-dynamic.test
@@ -0,0 +1,19 @@
+# RUN: yaml2obj %s > %t
+# RUN: llvm-objdump -p %t | FileCheck %s
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .text
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ Address: 0x1000
+ AddressAlign: 0x0000000000000010
+ Size: 64
+
+# CHECK: Dynamic Section:
+# CHECK-NOT: {{.}}