summaryrefslogtreecommitdiff
path: root/test/elfdump/ts/dso2
diff options
context:
space:
mode:
Diffstat (limited to 'test/elfdump/ts/dso2')
-rw-r--r--test/elfdump/ts/dso2/@G%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@G%test.so.out11
-rw-r--r--test/elfdump/ts/dso2/@S@G%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@G%test.so.out6
-rw-r--r--test/elfdump/ts/dso2/@S@c%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@c%test.so.out210
-rw-r--r--test/elfdump/ts/dso2/@S@d%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@d%test.so.out27
-rw-r--r--test/elfdump/ts/dso2/@S@e%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@e%test.so.out10
-rw-r--r--test/elfdump/ts/dso2/@S@h%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@h%test.so.out22
-rw-r--r--test/elfdump/ts/dso2/@S@k%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@k%test.so.out2
-rw-r--r--test/elfdump/ts/dso2/@S@n%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@n%test.so.out0
-rw-r--r--test/elfdump/ts/dso2/@S@p%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@p%test.so.out30
-rw-r--r--test/elfdump/ts/dso2/@S@r%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@r%test.so.out20
-rw-r--r--test/elfdump/ts/dso2/@S@s%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@s%test.so.out103
-rw-r--r--test/elfdump/ts/dso2/@S@v%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@S@v%test.so.out5
-rw-r--r--test/elfdump/ts/dso2/@c%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@c%test.so.out374
-rw-r--r--test/elfdump/ts/dso2/@c@p@n%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@c@p@n%test.so.out426
-rw-r--r--test/elfdump/ts/dso2/@c@s%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@c@s%test.so.out1057
-rw-r--r--test/elfdump/ts/dso2/@d%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@d%test.so.out97
-rw-r--r--test/elfdump/ts/dso2/@e%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@e%test.so.out17
-rw-r--r--test/elfdump/ts/dso2/@e@i%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@e@i%test.so.out17
-rw-r--r--test/elfdump/ts/dso2/@e@p@c%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@e@p@c%test.so.out443
-rw-r--r--test/elfdump/ts/dso2/@h%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@h%test.so.out51
-rw-r--r--test/elfdump/ts/dso2/@n%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@n%test.so.out0
-rw-r--r--test/elfdump/ts/dso2/@p%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@p%test.so.out52
-rw-r--r--test/elfdump/ts/dso2/@p@s%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@p@s%test.so.out735
-rw-r--r--test/elfdump/ts/dso2/@r%test.so.err0
-rw-r--r--test/elfdump/ts/dso2/@r%test.so.out74
-rwxr-xr-xtest/elfdump/ts/dso2/tc156
-rw-r--r--test/elfdump/ts/dso2/test.sobin0 -> 9684 bytes
50 files changed, 3945 insertions, 0 deletions
diff --git a/test/elfdump/ts/dso2/@G%test.so.err b/test/elfdump/ts/dso2/@G%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@G%test.so.err
diff --git a/test/elfdump/ts/dso2/@G%test.so.out b/test/elfdump/ts/dso2/@G%test.so.out
new file mode 100644
index 0000000000000..d506229a774ce
--- /dev/null
+++ b/test/elfdump/ts/dso2/@G%test.so.out
@@ -0,0 +1,11 @@
+
+global offset table:
+
+entry: 0
+ 0
+
+entry: 1
+ 0
+
+entry: 2
+ 0
diff --git a/test/elfdump/ts/dso2/@S@G%test.so.err b/test/elfdump/ts/dso2/@S@G%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@G%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@G%test.so.out b/test/elfdump/ts/dso2/@S@G%test.so.out
new file mode 100644
index 0000000000000..7b5bdff019e31
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@G%test.so.out
@@ -0,0 +1,6 @@
+
+Global Offset Table Section: .got (3 entries)
+ ndx addr value reloc addend symbol
+[00000] 0000000000200de8 0000000000000000 R_X86_64_GLOB_DAT 000000000000 __gmon_start__
+[00001] 0000000000200df0 0000000000000000 R_X86_64_GLOB_DAT 000000000000 _Jv_RegisterClasses
+[00002] 0000000000200df8 0000000000000000 R_X86_64_GLOB_DAT 000000000000 __cxa_finalize
diff --git a/test/elfdump/ts/dso2/@S@c%test.so.err b/test/elfdump/ts/dso2/@S@c%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@c%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@c%test.so.out b/test/elfdump/ts/dso2/@S@c%test.so.out
new file mode 100644
index 0000000000000..4dbedfa0eb7cb
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@c%test.so.out
@@ -0,0 +1,210 @@
+
+Section Header[1]: sh_name: .gnu.hash
+ sh_addr: 0x158 sh_flags: [ SHF_ALLOC ]
+ sh_size: 0x50 sh_type: [ SHT_GNU_HASH ]
+ sh_offset: 0x158 sh_entsize: 0
+ sh_link: 2 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[2]: sh_name: .dynsym
+ sh_addr: 0x1a8 sh_flags: [ SHF_ALLOC ]
+ sh_size: 0x240 sh_type: [ SHT_DYNSYM ]
+ sh_offset: 0x1a8 sh_entsize: 0x18
+ sh_link: 3 sh_info: 2
+ sh_addralign: 0x8
+
+Section Header[3]: sh_name: .dynstr
+ sh_addr: 0x3e8 sh_flags: [ SHF_ALLOC ]
+ sh_size: 0xc4 sh_type: [ SHT_STRTAB ]
+ sh_offset: 0x3e8 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x1
+
+Section Header[4]: sh_name: .gnu.version
+ sh_addr: 0x4ac sh_flags: [ SHF_ALLOC ]
+ sh_size: 0x30 sh_type: [ SHT_SUNW(GNU)_versym ]
+ sh_offset: 0x4ac sh_entsize: 0x2
+ sh_link: 2 sh_info: 0
+ sh_addralign: 0x2
+
+Section Header[5]: sh_name: .gnu.version_r
+ sh_addr: 0x4e0 sh_flags: [ SHF_ALLOC ]
+ sh_size: 0x40 sh_type: [ SHT_SUNW(GNU)_verneed ]
+ sh_offset: 0x4e0 sh_entsize: 0
+ sh_link: 3 sh_info: 2
+ sh_addralign: 0x8
+
+Section Header[6]: sh_name: .rela.dyn
+ sh_addr: 0x520 sh_flags: [ SHF_ALLOC ]
+ sh_size: 0x78 sh_type: [ SHT_RELA ]
+ sh_offset: 0x520 sh_entsize: 0x18
+ sh_link: 2 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[7]: sh_name: .rela.plt
+ sh_addr: 0x598 sh_flags: [ SHF_ALLOC ]
+ sh_size: 0xd8 sh_type: [ SHT_RELA ]
+ sh_offset: 0x598 sh_entsize: 0x18
+ sh_link: 2 sh_info: 9
+ sh_addralign: 0x8
+
+Section Header[8]: sh_name: .init
+ sh_addr: 0x670 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ]
+ sh_size: 0x18 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0x670 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x4
+
+Section Header[9]: sh_name: .plt
+ sh_addr: 0x688 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ]
+ sh_size: 0xa0 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0x688 sh_entsize: 0x10
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x4
+
+Section Header[10]: sh_name: .text
+ sh_addr: 0x730 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ]
+ sh_size: 0x358 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0x730 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x10
+
+Section Header[11]: sh_name: .fini
+ sh_addr: 0xa88 sh_flags: [ SHF_ALLOC|SHF_EXECINSTR ]
+ sh_size: 0xe sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xa88 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x4
+
+Section Header[12]: sh_name: .rodata
+ sh_addr: 0xa98 sh_flags: [ SHF_ALLOC ]
+ sh_size: 0x78 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xa98 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[13]: sh_name: .eh_frame_hdr
+ sh_addr: 0xb10 sh_flags: [ SHF_ALLOC ]
+ sh_size: 0x3c sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xb10 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x4
+
+Section Header[14]: sh_name: .eh_frame
+ sh_addr: 0xb50 sh_flags: [ SHF_ALLOC ]
+ sh_size: 0xdc sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xb50 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[15]: sh_name: .ctors
+ sh_addr: 0x200c30 sh_flags: [ SHF_WRITE|SHF_ALLOC ]
+ sh_size: 0x10 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xc30 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[16]: sh_name: .dtors
+ sh_addr: 0x200c40 sh_flags: [ SHF_WRITE|SHF_ALLOC ]
+ sh_size: 0x10 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xc40 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[17]: sh_name: .jcr
+ sh_addr: 0x200c50 sh_flags: [ SHF_WRITE|SHF_ALLOC ]
+ sh_size: 0x8 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xc50 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[18]: sh_name: .dynamic
+ sh_addr: 0x200c58 sh_flags: [ SHF_WRITE|SHF_ALLOC ]
+ sh_size: 0x190 sh_type: [ SHT_DYNAMIC ]
+ sh_offset: 0xc58 sh_entsize: 0x10
+ sh_link: 3 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[19]: sh_name: .got
+ sh_addr: 0x200de8 sh_flags: [ SHF_WRITE|SHF_ALLOC ]
+ sh_size: 0x18 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xde8 sh_entsize: 0x8
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[20]: sh_name: .got.plt
+ sh_addr: 0x200e00 sh_flags: [ SHF_WRITE|SHF_ALLOC ]
+ sh_size: 0x60 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xe00 sh_entsize: 0x8
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[21]: sh_name: .data
+ sh_addr: 0x200e60 sh_flags: [ SHF_WRITE|SHF_ALLOC ]
+ sh_size: 0x10 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xe60 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x8
+
+Section Header[22]: sh_name: .bss
+ sh_addr: 0x200e70 sh_flags: [ SHF_WRITE|SHF_ALLOC ]
+ sh_size: 0x8 sh_type: [ SHT_NOBITS ]
+ sh_offset: 0xe70 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x4
+
+Section Header[23]: sh_name: .comment
+ sh_addr: 0 sh_flags: 0
+ sh_size: 0x122 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xe70 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x1
+
+Section Header[24]: sh_name: .debug_aranges
+ sh_addr: 0 sh_flags: 0
+ sh_size: 0x90 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0xfa0 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x10
+
+Section Header[25]: sh_name: .debug_info
+ sh_addr: 0 sh_flags: 0
+ sh_size: 0x1a4 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0x1030 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x1
+
+Section Header[26]: sh_name: .debug_abbrev
+ sh_addr: 0 sh_flags: 0
+ sh_size: 0x20 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0x11d4 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x1
+
+Section Header[27]: sh_name: .debug_line
+ sh_addr: 0 sh_flags: 0
+ sh_size: 0x160 sh_type: [ SHT_PROGBITS ]
+ sh_offset: 0x11f4 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x1
+
+Section Header[28]: sh_name: .shstrtab
+ sh_addr: 0 sh_flags: 0
+ sh_size: 0x10a sh_type: [ SHT_STRTAB ]
+ sh_offset: 0x1354 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x1
+
+Section Header[29]: sh_name: .symtab
+ sh_addr: 0 sh_flags: 0
+ sh_size: 0x6d8 sh_type: [ SHT_SYMTAB ]
+ sh_offset: 0x1c20 sh_entsize: 0x18
+ sh_link: 30 sh_info: 51
+ sh_addralign: 0x8
+
+Section Header[30]: sh_name: .strtab
+ sh_addr: 0 sh_flags: 0
+ sh_size: 0x2dc sh_type: [ SHT_STRTAB ]
+ sh_offset: 0x22f8 sh_entsize: 0
+ sh_link: 0 sh_info: 0
+ sh_addralign: 0x1
diff --git a/test/elfdump/ts/dso2/@S@d%test.so.err b/test/elfdump/ts/dso2/@S@d%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@d%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@d%test.so.out b/test/elfdump/ts/dso2/@S@d%test.so.out
new file mode 100644
index 0000000000000..4a56b906fc543
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@d%test.so.out
@@ -0,0 +1,27 @@
+Dynamic Section: .dynamic
+ index tag value
+ [0] DT_NEEDED 0x8c libm.so.6
+ [1] DT_NEEDED 0x96 libc.so.6
+ [2] DT_INIT 0x670
+ [3] DT_FINI 0xa88
+ [4] DT_GNU_HASH 0x158
+ [5] DT_STRTAB 0x3e8
+ [6] DT_SYMTAB 0x1a8
+ [7] DT_STRSZ 0xc4
+ [8] DT_SYMENT 0x18
+ [9] DT_PLTGOT 0x200e00
+ [10] DT_PLTRELSZ 0xd8
+ [11] DT_PLTREL 0x7
+ [12] DT_JMPREL 0x598
+ [13] DT_RELA 0x520
+ [14] DT_RELASZ 0x78
+ [15] DT_RELAENT 0x18
+ [16] DT_VERNEED 0x4e0
+ [17] DT_VERNEEDNUM 0x2
+ [18] DT_GNU_VERSYM 0x4ac
+ [19] DT_RELACOUNT 0x2
+ [20] DT_NULL
+ [21] DT_NULL
+ [22] DT_NULL
+ [23] DT_NULL
+ [24] DT_NULL
diff --git a/test/elfdump/ts/dso2/@S@e%test.so.err b/test/elfdump/ts/dso2/@S@e%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@e%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@e%test.so.out b/test/elfdump/ts/dso2/@S@e%test.so.out
new file mode 100644
index 0000000000000..0f30ff8c3ba4d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@e%test.so.out
@@ -0,0 +1,10 @@
+
+ELF Header
+ ei_magic: { 0x7f, E, L, F }
+ ei_class: ELFCLASS64 ei_data: ELFDATA2LSB
+ e_machine: EM_X86_64 e_version: EV_CURRENT
+ e_type: ET_DYN
+ e_flags: 0
+ e_entry: 0x730 e_ehsize: 64 e_shstrndx: 28
+ e_shoff: 0x1460 e_shentsize: 64 e_shnum: 31
+ e_phoff: 0x40 e_phentsize: 56 e_phnum: 5
diff --git a/test/elfdump/ts/dso2/@S@h%test.so.err b/test/elfdump/ts/dso2/@S@h%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@h%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@h%test.so.out b/test/elfdump/ts/dso2/@S@h%test.so.out
new file mode 100644
index 0000000000000..c3c244df3b86d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@h%test.so.out
@@ -0,0 +1,22 @@
+
+GNU Hash Section: .gnu.hash
+ bucket symndx name
+ 0 [13] _end
+ [14] _edata
+ [15] add4
+ 1 [16] mathstring
+ [17] add2
+ [18] add
+ [19] __bss_start
+ [20] _init
+ 2 [21] _fini
+ [22] add3
+ [23] sub
+
+ 0 buckets contain 0 symbols
+ 0 buckets contain 1 symbols
+ 0 buckets contain 2 symbols
+ 2 buckets contain 3 symbols
+ 0 buckets contain 4 symbols
+ 1 buckets contain 5 symbols
+ 3 buckets 11 symbols (globals)
diff --git a/test/elfdump/ts/dso2/@S@k%test.so.err b/test/elfdump/ts/dso2/@S@k%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@k%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@k%test.so.out b/test/elfdump/ts/dso2/@S@k%test.so.out
new file mode 100644
index 0000000000000..2abc8a5facecf
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@k%test.so.out
@@ -0,0 +1,2 @@
+
+elf checksum: 0xa722
diff --git a/test/elfdump/ts/dso2/@S@n%test.so.err b/test/elfdump/ts/dso2/@S@n%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@n%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@n%test.so.out b/test/elfdump/ts/dso2/@S@n%test.so.out
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@n%test.so.out
diff --git a/test/elfdump/ts/dso2/@S@p%test.so.err b/test/elfdump/ts/dso2/@S@p%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@p%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@p%test.so.out b/test/elfdump/ts/dso2/@S@p%test.so.out
new file mode 100644
index 0000000000000..2182aa193e7f4
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@p%test.so.out
@@ -0,0 +1,30 @@
+
+Program Header[0]:
+ p_vaddr: 0 p_flags: [ PF_X|PF_R ]
+ p_paddr: 0 p_type: [ PT_LOAD ]
+ p_filesz: 0xc2c p_memsz: 0xc2c
+ p_offset: 0 p_align: 0x200000
+
+Program Header[1]:
+ p_vaddr: 0x200c30 p_flags: [ PF_W|PF_R ]
+ p_paddr: 0x200c30 p_type: [ PT_LOAD ]
+ p_filesz: 0x240 p_memsz: 0x248
+ p_offset: 0xc30 p_align: 0x200000
+
+Program Header[2]:
+ p_vaddr: 0x200c58 p_flags: [ PF_W|PF_R ]
+ p_paddr: 0x200c58 p_type: [ PT_DYNAMIC ]
+ p_filesz: 0x190 p_memsz: 0x190
+ p_offset: 0xc58 p_align: 0x8
+
+Program Header[3]:
+ p_vaddr: 0xb10 p_flags: [ PF_R ]
+ p_paddr: 0xb10 p_type: [ PT_NULL ]
+ p_filesz: 0x3c p_memsz: 0x3c
+ p_offset: 0xb10 p_align: 0x4
+
+Program Header[4]:
+ p_vaddr: 0 p_flags: [ PF_W|PF_R ]
+ p_paddr: 0 p_type: [ PT_LOAD ]
+ p_filesz: 0 p_memsz: 0
+ p_offset: 0 p_align: 0x8
diff --git a/test/elfdump/ts/dso2/@S@r%test.so.err b/test/elfdump/ts/dso2/@S@r%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@r%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@r%test.so.out b/test/elfdump/ts/dso2/@S@r%test.so.out
new file mode 100644
index 0000000000000..d787b2cd9313b
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@r%test.so.out
@@ -0,0 +1,20 @@
+
+Relocation Section: .rela.dyn
+ type offset addend section with respect to
+ R_X86_64_RELATIVE 0x200e60 2100832 .rela.dyn
+ R_X86_64_RELATIVE 0x200e68 2100296 .rela.dyn
+ R_X86_64_GLOB_DAT 0x200de8 0 .rela.dyn __gmon_start__
+ R_X86_64_GLOB_DAT 0x200df0 0 .rela.dyn _Jv_RegisterClasses
+ R_X86_64_GLOB_DAT 0x200df8 0 .rela.dyn __cxa_finalize
+
+Relocation Section: .rela.plt
+ type offset addend section with respect to
+ R_X86_64_JMP_SLOT 0x200e18 0 .rela.plt printf
+ R_X86_64_JMP_SLOT 0x200e20 0 .rela.plt puts
+ R_X86_64_JMP_SLOT 0x200e28 0 .rela.plt toupper
+ R_X86_64_JMP_SLOT 0x200e30 0 .rela.plt cos
+ R_X86_64_JMP_SLOT 0x200e38 0 .rela.plt cosh
+ R_X86_64_JMP_SLOT 0x200e40 0 .rela.plt __cxa_finalize
+ R_X86_64_JMP_SLOT 0x200e48 0 .rela.plt gets
+ R_X86_64_JMP_SLOT 0x200e50 0 .rela.plt tolower
+ R_X86_64_JMP_SLOT 0x200e58 0 .rela.plt acos
diff --git a/test/elfdump/ts/dso2/@S@s%test.so.err b/test/elfdump/ts/dso2/@S@s%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@s%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@s%test.so.out b/test/elfdump/ts/dso2/@S@s%test.so.out
new file mode 100644
index 0000000000000..72436b7ae9886
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@s%test.so.out
@@ -0,0 +1,103 @@
+
+Symbol Table Section: .dynsym
+ index value size type bind oth ver shndx name
+ [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF
+ [1] 0x00000670 0x000000000000 SECT LOCL D 0 .init
+ [2] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF printf
+ [3] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF __gmon_start__
+ [4] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF _Jv_RegisterClasses
+ [5] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF puts
+ [6] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF toupper
+ [7] 0x00000000 0x000000000000 FUNC GLOB D 3 UNDEF cos
+ [8] 0x00000000 0x000000000000 FUNC GLOB D 3 UNDEF cosh
+ [9] 0x00000000 0x000000000000 FUNC WEAK D 2 UNDEF __cxa_finalize
+ [10] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF gets
+ [11] 0x00000000 0x000000000000 FUNC GLOB D 2 UNDEF tolower
+ [12] 0x00000000 0x000000000000 FUNC GLOB D 3 UNDEF acos
+ [13] 0x00200e78 0x000000000000 NOTY GLOB D 1 ABS _end
+ [14] 0x00200e70 0x000000000000 NOTY GLOB D 1 ABS _edata
+ [15] 0x00000802 0x000000000012 FUNC GLOB D 1 .text add4
+ [16] 0x00000828 0x00000000021a FUNC GLOB D 1 .text mathstring
+ [17] 0x000007de 0x000000000012 FUNC GLOB D 1 .text add2
+ [18] 0x000007cc 0x000000000012 FUNC GLOB D 1 .text add
+ [19] 0x00200e70 0x000000000000 NOTY GLOB D 1 ABS __bss_start
+ [20] 0x00000670 0x000000000000 FUNC GLOB D 1 .init _init
+ [21] 0x00000a88 0x000000000000 FUNC GLOB D 1 .fini _fini
+ [22] 0x000007f0 0x000000000012 FUNC GLOB D 1 .text add3
+ [23] 0x00000814 0x000000000014 FUNC GLOB D 1 .text sub
+
+Symbol Table Section: .symtab
+ index value size type bind oth ver shndx name
+ [0] 0x00000000 0x000000000000 NOTY LOCL D 0 UNDEF
+ [1] 0x00000158 0x000000000000 SECT LOCL D 0 .gnu.hash
+ [2] 0x000001a8 0x000000000000 SECT LOCL D 0 .dynsym
+ [3] 0x000003e8 0x000000000000 SECT LOCL D 0 .dynstr
+ [4] 0x000004ac 0x000000000000 SECT LOCL D 0 .gnu.versio
+ [5] 0x000004e0 0x000000000000 SECT LOCL D 0 .gnu.versio
+ [6] 0x00000520 0x000000000000 SECT LOCL D 0 .rela.dyn
+ [7] 0x00000598 0x000000000000 SECT LOCL D 0 .rela.plt
+ [8] 0x00000670 0x000000000000 SECT LOCL D 0 .init
+ [9] 0x00000688 0x000000000000 SECT LOCL D 0 .plt
+ [10] 0x00000730 0x000000000000 SECT LOCL D 0 .text
+ [11] 0x00000a88 0x000000000000 SECT LOCL D 0 .fini
+ [12] 0x00000a98 0x000000000000 SECT LOCL D 0 .rodata
+ [13] 0x00000b10 0x000000000000 SECT LOCL D 0 .eh_frame_h
+ [14] 0x00000b50 0x000000000000 SECT LOCL D 0 .eh_frame
+ [15] 0x00200c30 0x000000000000 SECT LOCL D 0 .ctors
+ [16] 0x00200c40 0x000000000000 SECT LOCL D 0 .dtors
+ [17] 0x00200c50 0x000000000000 SECT LOCL D 0 .jcr
+ [18] 0x00200c58 0x000000000000 SECT LOCL D 0 .dynamic
+ [19] 0x00200de8 0x000000000000 SECT LOCL D 0 .got
+ [20] 0x00200e00 0x000000000000 SECT LOCL D 0 .got.plt
+ [21] 0x00200e60 0x000000000000 SECT LOCL D 0 .data
+ [22] 0x00200e70 0x000000000000 SECT LOCL D 0 .bss
+ [23] 0x00000000 0x000000000000 SECT LOCL D 0 .comment
+ [24] 0x00000000 0x000000000000 SECT LOCL D 0 .debug_aran
+ [25] 0x00000000 0x000000000000 SECT LOCL D 0 .debug_info
+ [26] 0x00000000 0x000000000000 SECT LOCL D 0 .debug_abbr
+ [27] 0x00000000 0x000000000000 SECT LOCL D 0 .debug_line
+ [28] 0x00000000 0x000000000000 FILE LOCL D 0 ABS initfini.c
+ [29] 0x00000000 0x000000000000 FILE LOCL D 0 ABS /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crti.S
+ [30] 0x00000730 0x000000000000 FUNC LOCL D 0 .text call_gmon_start
+ [31] 0x00000000 0x000000000000 FILE LOCL D 0 ABS crtstuff.c
+ [32] 0x00200c30 0x000000000000 OBJT LOCL D 0 .ctors __CTOR_LIST__
+ [33] 0x00200c40 0x000000000000 OBJT LOCL D 0 .dtors __DTOR_LIST__
+ [34] 0x00200c50 0x000000000000 OBJT LOCL D 0 .jcr __JCR_LIST__
+ [35] 0x00200e70 0x000000000001 OBJT LOCL D 0 .bss completed.5959
+ [36] 0x00200e68 0x000000000000 OBJT LOCL D 0 .data p.5957
+ [37] 0x00000750 0x000000000000 FUNC LOCL D 0 .text __do_global_dtors_aux
+ [38] 0x000007a0 0x000000000000 FUNC LOCL D 0 .text frame_dummy
+ [39] 0x00000000 0x000000000000 FILE LOCL D 0 ABS crtstuff.c
+ [40] 0x00200c38 0x000000000000 OBJT LOCL D 0 .ctors __CTOR_END__
+ [41] 0x00200c48 0x000000000000 OBJT LOCL D 0 .dtors __DTOR_END__
+ [42] 0x00000c28 0x000000000000 OBJT LOCL D 0 .eh_frame __FRAME_END__
+ [43] 0x00200c50 0x000000000000 OBJT LOCL D 0 .jcr __JCR_END__
+ [44] 0x00000a50 0x000000000000 FUNC LOCL D 0 .text __do_global_ctors_aux
+ [45] 0x00000000 0x000000000000 FILE LOCL D 0 ABS initfini.c
+ [46] 0x00000000 0x000000000000 FILE LOCL D 0 ABS /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crtn.S
+ [47] 0x00000000 0x000000000000 FILE LOCL D 0 ABS test2.c
+ [48] 0x00200e00 0x000000000000 OBJT LOCL H 0 ABS _GLOBAL_OFFSET_TABLE_
+ [49] 0x00200e60 0x000000000000 OBJT LOCL H 0 .data __dso_handle
+ [50] 0x00200c58 0x000000000000 OBJT LOCL H 0 ABS _DYNAMIC
+ [51] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF printf@@GLIBC_2.2.5
+ [52] 0x00000828 0x00000000021a FUNC GLOB D 0 .text mathstring
+ [53] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF __gmon_start__
+ [54] 0x00000000 0x000000000000 NOTY WEAK D 0 UNDEF _Jv_RegisterClasses
+ [55] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF puts@@GLIBC_2.2.5
+ [56] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF toupper@@GLIBC_2.2.5
+ [57] 0x00000a88 0x000000000000 FUNC GLOB D 0 .fini _fini
+ [58] 0x000007f0 0x000000000012 FUNC GLOB D 0 .text add3
+ [59] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF cos@@GLIBC_2.2.5
+ [60] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF cosh@@GLIBC_2.2.5
+ [61] 0x00000000 0x000000000000 FUNC WEAK D 0 UNDEF __cxa_finalize@@GLIBC_2.2.5
+ [62] 0x000007de 0x000000000012 FUNC GLOB D 0 .text add2
+ [63] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF gets@@GLIBC_2.2.5
+ [64] 0x000007cc 0x000000000012 FUNC GLOB D 0 .text add
+ [65] 0x00200e70 0x000000000000 NOTY GLOB D 0 ABS __bss_start
+ [66] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF tolower@@GLIBC_2.2.5
+ [67] 0x00000000 0x000000000000 FUNC GLOB D 0 UNDEF acos@@GLIBC_2.2.5
+ [68] 0x00200e78 0x000000000000 NOTY GLOB D 0 ABS _end
+ [69] 0x00200e70 0x000000000000 NOTY GLOB D 0 ABS _edata
+ [70] 0x00000814 0x000000000014 FUNC GLOB D 0 .text sub
+ [71] 0x00000670 0x000000000000 FUNC GLOB D 0 .init _init
+ [72] 0x00000802 0x000000000012 FUNC GLOB D 0 .text add4
diff --git a/test/elfdump/ts/dso2/@S@v%test.so.err b/test/elfdump/ts/dso2/@S@v%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@v%test.so.err
diff --git a/test/elfdump/ts/dso2/@S@v%test.so.out b/test/elfdump/ts/dso2/@S@v%test.so.out
new file mode 100644
index 0000000000000..d987203ca678f
--- /dev/null
+++ b/test/elfdump/ts/dso2/@S@v%test.so.out
@@ -0,0 +1,5 @@
+
+Version Needed Section: .gnu.version_r
+ file version
+ libm.so.6 GLIBC_2.2.5
+ libc.so.6 GLIBC_2.2.5
diff --git a/test/elfdump/ts/dso2/@c%test.so.err b/test/elfdump/ts/dso2/@c%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@c%test.so.err
diff --git a/test/elfdump/ts/dso2/@c%test.so.out b/test/elfdump/ts/dso2/@c%test.so.out
new file mode 100644
index 0000000000000..920ab151fd0c9
--- /dev/null
+++ b/test/elfdump/ts/dso2/@c%test.so.out
@@ -0,0 +1,374 @@
+
+section header:
+
+entry: 0
+ sh_name:
+ sh_type: SHT_NULL
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 0
+ sh_size: 0
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 0
+ sh_entsize: 0
+
+entry: 1
+ sh_name: .gnu.hash
+ sh_type: SHT_GNU_HASH
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x158
+ sh_offset: 344
+ sh_size: 80
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 2
+ sh_name: .dynsym
+ sh_type: SHT_DYNSYM
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x1a8
+ sh_offset: 424
+ sh_size: 576
+ sh_link: 3
+ sh_info: 2
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 3
+ sh_name: .dynstr
+ sh_type: SHT_STRTAB
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x3e8
+ sh_offset: 1000
+ sh_size: 196
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 4
+ sh_name: .gnu.version
+ sh_type: SHT_SUNW(GNU)_versym
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x4ac
+ sh_offset: 1196
+ sh_size: 48
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 2
+ sh_entsize: 2
+
+entry: 5
+ sh_name: .gnu.version_r
+ sh_type: SHT_SUNW(GNU)_verneed
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x4e0
+ sh_offset: 1248
+ sh_size: 64
+ sh_link: 3
+ sh_info: 2
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 6
+ sh_name: .rela.dyn
+ sh_type: SHT_RELA
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x520
+ sh_offset: 1312
+ sh_size: 120
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 7
+ sh_name: .rela.plt
+ sh_type: SHT_RELA
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x598
+ sh_offset: 1432
+ sh_size: 216
+ sh_link: 2
+ sh_info: 9
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 8
+ sh_name: .init
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x670
+ sh_offset: 1648
+ sh_size: 24
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 9
+ sh_name: .plt
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x688
+ sh_offset: 1672
+ sh_size: 160
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 16
+
+entry: 10
+ sh_name: .text
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x730
+ sh_offset: 1840
+ sh_size: 856
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 16
+ sh_entsize: 0
+
+entry: 11
+ sh_name: .fini
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0xa88
+ sh_offset: 2696
+ sh_size: 14
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 12
+ sh_name: .rodata
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xa98
+ sh_offset: 2712
+ sh_size: 120
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 13
+ sh_name: .eh_frame_hdr
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xb10
+ sh_offset: 2832
+ sh_size: 60
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 14
+ sh_name: .eh_frame
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xb50
+ sh_offset: 2896
+ sh_size: 220
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 15
+ sh_name: .ctors
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c30
+ sh_offset: 3120
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 16
+ sh_name: .dtors
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c40
+ sh_offset: 3136
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 17
+ sh_name: .jcr
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c50
+ sh_offset: 3152
+ sh_size: 8
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 18
+ sh_name: .dynamic
+ sh_type: SHT_DYNAMIC
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c58
+ sh_offset: 3160
+ sh_size: 400
+ sh_link: 3
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 16
+
+entry: 19
+ sh_name: .got
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200de8
+ sh_offset: 3560
+ sh_size: 24
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 8
+
+entry: 20
+ sh_name: .got.plt
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e00
+ sh_offset: 3584
+ sh_size: 96
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 8
+
+entry: 21
+ sh_name: .data
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e60
+ sh_offset: 3680
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 22
+ sh_name: .bss
+ sh_type: SHT_NOBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e70
+ sh_offset: 3696
+ sh_size: 8
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 23
+ sh_name: .comment
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 3696
+ sh_size: 290
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 24
+ sh_name: .debug_aranges
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4000
+ sh_size: 144
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 16
+ sh_entsize: 0
+
+entry: 25
+ sh_name: .debug_info
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4144
+ sh_size: 420
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 26
+ sh_name: .debug_abbrev
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4564
+ sh_size: 32
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 27
+ sh_name: .debug_line
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4596
+ sh_size: 352
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 28
+ sh_name: .shstrtab
+ sh_type: SHT_STRTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4948
+ sh_size: 266
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 29
+ sh_name: .symtab
+ sh_type: SHT_SYMTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 7200
+ sh_size: 1752
+ sh_link: 30
+ sh_info: 51
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 30
+ sh_name: .strtab
+ sh_type: SHT_STRTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 8952
+ sh_size: 732
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
diff --git a/test/elfdump/ts/dso2/@c@p@n%test.so.err b/test/elfdump/ts/dso2/@c@p@n%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@c@p@n%test.so.err
diff --git a/test/elfdump/ts/dso2/@c@p@n%test.so.out b/test/elfdump/ts/dso2/@c@p@n%test.so.out
new file mode 100644
index 0000000000000..57a82068dbc43
--- /dev/null
+++ b/test/elfdump/ts/dso2/@c@p@n%test.so.out
@@ -0,0 +1,426 @@
+
+program header:
+
+entry: 0
+ p_type: PT_LOAD
+ p_offset: 0
+ p_vaddr: 0
+ p_paddr: 0
+ p_filesz: 3116
+ p_memsz: 3116
+ p_flags: PF_X|PF_R
+ p_align: 2097152
+
+entry: 1
+ p_type: PT_LOAD
+ p_offset: 3120
+ p_vaddr: 0x200c30
+ p_paddr: 0x200c30
+ p_filesz: 576
+ p_memsz: 584
+ p_flags: PF_W|PF_R
+ p_align: 2097152
+
+entry: 2
+ p_type: PT_DYNAMIC
+ p_offset: 3160
+ p_vaddr: 0x200c58
+ p_paddr: 0x200c58
+ p_filesz: 400
+ p_memsz: 400
+ p_flags: PF_W|PF_R
+ p_align: 8
+
+entry: 3
+ p_type: PT_NULL
+ p_offset: 2832
+ p_vaddr: 0xb10
+ p_paddr: 0xb10
+ p_filesz: 60
+ p_memsz: 60
+ p_flags: PF_R
+ p_align: 4
+
+entry: 4
+ p_type: PT_LOAD
+ p_offset: 0
+ p_vaddr: 0
+ p_paddr: 0
+ p_filesz: 0
+ p_memsz: 0
+ p_flags: PF_W|PF_R
+ p_align: 8
+
+section header:
+
+entry: 0
+ sh_name:
+ sh_type: SHT_NULL
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 0
+ sh_size: 0
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 0
+ sh_entsize: 0
+
+entry: 1
+ sh_name: .gnu.hash
+ sh_type: SHT_GNU_HASH
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x158
+ sh_offset: 344
+ sh_size: 80
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 2
+ sh_name: .dynsym
+ sh_type: SHT_DYNSYM
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x1a8
+ sh_offset: 424
+ sh_size: 576
+ sh_link: 3
+ sh_info: 2
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 3
+ sh_name: .dynstr
+ sh_type: SHT_STRTAB
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x3e8
+ sh_offset: 1000
+ sh_size: 196
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 4
+ sh_name: .gnu.version
+ sh_type: SHT_SUNW(GNU)_versym
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x4ac
+ sh_offset: 1196
+ sh_size: 48
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 2
+ sh_entsize: 2
+
+entry: 5
+ sh_name: .gnu.version_r
+ sh_type: SHT_SUNW(GNU)_verneed
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x4e0
+ sh_offset: 1248
+ sh_size: 64
+ sh_link: 3
+ sh_info: 2
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 6
+ sh_name: .rela.dyn
+ sh_type: SHT_RELA
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x520
+ sh_offset: 1312
+ sh_size: 120
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 7
+ sh_name: .rela.plt
+ sh_type: SHT_RELA
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x598
+ sh_offset: 1432
+ sh_size: 216
+ sh_link: 2
+ sh_info: 9
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 8
+ sh_name: .init
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x670
+ sh_offset: 1648
+ sh_size: 24
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 9
+ sh_name: .plt
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x688
+ sh_offset: 1672
+ sh_size: 160
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 16
+
+entry: 10
+ sh_name: .text
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x730
+ sh_offset: 1840
+ sh_size: 856
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 16
+ sh_entsize: 0
+
+entry: 11
+ sh_name: .fini
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0xa88
+ sh_offset: 2696
+ sh_size: 14
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 12
+ sh_name: .rodata
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xa98
+ sh_offset: 2712
+ sh_size: 120
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 13
+ sh_name: .eh_frame_hdr
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xb10
+ sh_offset: 2832
+ sh_size: 60
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 14
+ sh_name: .eh_frame
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xb50
+ sh_offset: 2896
+ sh_size: 220
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 15
+ sh_name: .ctors
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c30
+ sh_offset: 3120
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 16
+ sh_name: .dtors
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c40
+ sh_offset: 3136
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 17
+ sh_name: .jcr
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c50
+ sh_offset: 3152
+ sh_size: 8
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 18
+ sh_name: .dynamic
+ sh_type: SHT_DYNAMIC
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c58
+ sh_offset: 3160
+ sh_size: 400
+ sh_link: 3
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 16
+
+entry: 19
+ sh_name: .got
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200de8
+ sh_offset: 3560
+ sh_size: 24
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 8
+
+entry: 20
+ sh_name: .got.plt
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e00
+ sh_offset: 3584
+ sh_size: 96
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 8
+
+entry: 21
+ sh_name: .data
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e60
+ sh_offset: 3680
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 22
+ sh_name: .bss
+ sh_type: SHT_NOBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e70
+ sh_offset: 3696
+ sh_size: 8
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 23
+ sh_name: .comment
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 3696
+ sh_size: 290
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 24
+ sh_name: .debug_aranges
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4000
+ sh_size: 144
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 16
+ sh_entsize: 0
+
+entry: 25
+ sh_name: .debug_info
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4144
+ sh_size: 420
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 26
+ sh_name: .debug_abbrev
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4564
+ sh_size: 32
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 27
+ sh_name: .debug_line
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4596
+ sh_size: 352
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 28
+ sh_name: .shstrtab
+ sh_type: SHT_STRTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4948
+ sh_size: 266
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 29
+ sh_name: .symtab
+ sh_type: SHT_SYMTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 7200
+ sh_size: 1752
+ sh_link: 30
+ sh_info: 51
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 30
+ sh_name: .strtab
+ sh_type: SHT_STRTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 8952
+ sh_size: 732
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
diff --git a/test/elfdump/ts/dso2/@c@s%test.so.err b/test/elfdump/ts/dso2/@c@s%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@c@s%test.so.err
diff --git a/test/elfdump/ts/dso2/@c@s%test.so.out b/test/elfdump/ts/dso2/@c@s%test.so.out
new file mode 100644
index 0000000000000..a8c805b08d6c9
--- /dev/null
+++ b/test/elfdump/ts/dso2/@c@s%test.so.out
@@ -0,0 +1,1057 @@
+
+section header:
+
+entry: 0
+ sh_name:
+ sh_type: SHT_NULL
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 0
+ sh_size: 0
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 0
+ sh_entsize: 0
+
+entry: 1
+ sh_name: .gnu.hash
+ sh_type: SHT_GNU_HASH
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x158
+ sh_offset: 344
+ sh_size: 80
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 2
+ sh_name: .dynsym
+ sh_type: SHT_DYNSYM
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x1a8
+ sh_offset: 424
+ sh_size: 576
+ sh_link: 3
+ sh_info: 2
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 3
+ sh_name: .dynstr
+ sh_type: SHT_STRTAB
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x3e8
+ sh_offset: 1000
+ sh_size: 196
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 4
+ sh_name: .gnu.version
+ sh_type: SHT_SUNW(GNU)_versym
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x4ac
+ sh_offset: 1196
+ sh_size: 48
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 2
+ sh_entsize: 2
+
+entry: 5
+ sh_name: .gnu.version_r
+ sh_type: SHT_SUNW(GNU)_verneed
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x4e0
+ sh_offset: 1248
+ sh_size: 64
+ sh_link: 3
+ sh_info: 2
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 6
+ sh_name: .rela.dyn
+ sh_type: SHT_RELA
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x520
+ sh_offset: 1312
+ sh_size: 120
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 7
+ sh_name: .rela.plt
+ sh_type: SHT_RELA
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x598
+ sh_offset: 1432
+ sh_size: 216
+ sh_link: 2
+ sh_info: 9
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 8
+ sh_name: .init
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x670
+ sh_offset: 1648
+ sh_size: 24
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 9
+ sh_name: .plt
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x688
+ sh_offset: 1672
+ sh_size: 160
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 16
+
+entry: 10
+ sh_name: .text
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x730
+ sh_offset: 1840
+ sh_size: 856
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 16
+ sh_entsize: 0
+
+entry: 11
+ sh_name: .fini
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0xa88
+ sh_offset: 2696
+ sh_size: 14
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 12
+ sh_name: .rodata
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xa98
+ sh_offset: 2712
+ sh_size: 120
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 13
+ sh_name: .eh_frame_hdr
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xb10
+ sh_offset: 2832
+ sh_size: 60
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 14
+ sh_name: .eh_frame
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xb50
+ sh_offset: 2896
+ sh_size: 220
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 15
+ sh_name: .ctors
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c30
+ sh_offset: 3120
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 16
+ sh_name: .dtors
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c40
+ sh_offset: 3136
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 17
+ sh_name: .jcr
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c50
+ sh_offset: 3152
+ sh_size: 8
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 18
+ sh_name: .dynamic
+ sh_type: SHT_DYNAMIC
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c58
+ sh_offset: 3160
+ sh_size: 400
+ sh_link: 3
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 16
+
+entry: 19
+ sh_name: .got
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200de8
+ sh_offset: 3560
+ sh_size: 24
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 8
+
+entry: 20
+ sh_name: .got.plt
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e00
+ sh_offset: 3584
+ sh_size: 96
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 8
+
+entry: 21
+ sh_name: .data
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e60
+ sh_offset: 3680
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 22
+ sh_name: .bss
+ sh_type: SHT_NOBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e70
+ sh_offset: 3696
+ sh_size: 8
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 23
+ sh_name: .comment
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 3696
+ sh_size: 290
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 24
+ sh_name: .debug_aranges
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4000
+ sh_size: 144
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 16
+ sh_entsize: 0
+
+entry: 25
+ sh_name: .debug_info
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4144
+ sh_size: 420
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 26
+ sh_name: .debug_abbrev
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4564
+ sh_size: 32
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 27
+ sh_name: .debug_line
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4596
+ sh_size: 352
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 28
+ sh_name: .shstrtab
+ sh_type: SHT_STRTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4948
+ sh_size: 266
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 29
+ sh_name: .symtab
+ sh_type: SHT_SYMTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 7200
+ sh_size: 1752
+ sh_link: 30
+ sh_info: 51
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 30
+ sh_name: .strtab
+ sh_type: SHT_STRTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 8952
+ sh_size: 732
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+symbol table (.dynsym):
+
+entry: 0
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_LOCAL
+ st_shndx: 0
+
+entry: 1
+ st_name:
+ st_value: 0x670
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 8
+
+entry: 2
+ st_name: printf
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 3
+ st_name: __gmon_start__
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_WEAK
+ st_shndx: 0
+
+entry: 4
+ st_name: _Jv_RegisterClasses
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_WEAK
+ st_shndx: 0
+
+entry: 5
+ st_name: puts
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 6
+ st_name: toupper
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 7
+ st_name: cos
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 8
+ st_name: cosh
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 9
+ st_name: __cxa_finalize
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_WEAK
+ st_shndx: 0
+
+entry: 10
+ st_name: gets
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 11
+ st_name: tolower
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 12
+ st_name: acos
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 13
+ st_name: _end
+ st_value: 0x200e78
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 14
+ st_name: _edata
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 15
+ st_name: add4
+ st_value: 0x802
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 16
+ st_name: mathstring
+ st_value: 0x828
+ st_size: 538
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 17
+ st_name: add2
+ st_value: 0x7de
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 18
+ st_name: add
+ st_value: 0x7cc
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 19
+ st_name: __bss_start
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 20
+ st_name: _init
+ st_value: 0x670
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 8
+
+entry: 21
+ st_name: _fini
+ st_value: 0xa88
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 11
+
+entry: 22
+ st_name: add3
+ st_value: 0x7f0
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 23
+ st_name: sub
+ st_value: 0x814
+ st_size: 20
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+symbol table (.symtab):
+
+entry: 0
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_LOCAL
+ st_shndx: 0
+
+entry: 1
+ st_name:
+ st_value: 0x158
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 1
+
+entry: 2
+ st_name:
+ st_value: 0x1a8
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 2
+
+entry: 3
+ st_name:
+ st_value: 0x3e8
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 3
+
+entry: 4
+ st_name:
+ st_value: 0x4ac
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 4
+
+entry: 5
+ st_name:
+ st_value: 0x4e0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 5
+
+entry: 6
+ st_name:
+ st_value: 0x520
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 6
+
+entry: 7
+ st_name:
+ st_value: 0x598
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 7
+
+entry: 8
+ st_name:
+ st_value: 0x670
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 8
+
+entry: 9
+ st_name:
+ st_value: 0x688
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 9
+
+entry: 10
+ st_name:
+ st_value: 0x730
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 10
+
+entry: 11
+ st_name:
+ st_value: 0xa88
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 11
+
+entry: 12
+ st_name:
+ st_value: 0xa98
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 12
+
+entry: 13
+ st_name:
+ st_value: 0xb10
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 13
+
+entry: 14
+ st_name:
+ st_value: 0xb50
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 14
+
+entry: 15
+ st_name:
+ st_value: 0x200c30
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 15
+
+entry: 16
+ st_name:
+ st_value: 0x200c40
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 16
+
+entry: 17
+ st_name:
+ st_value: 0x200c50
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 17
+
+entry: 18
+ st_name:
+ st_value: 0x200c58
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 18
+
+entry: 19
+ st_name:
+ st_value: 0x200de8
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 19
+
+entry: 20
+ st_name:
+ st_value: 0x200e00
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 20
+
+entry: 21
+ st_name:
+ st_value: 0x200e60
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 21
+
+entry: 22
+ st_name:
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 22
+
+entry: 23
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 23
+
+entry: 24
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 24
+
+entry: 25
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 25
+
+entry: 26
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 26
+
+entry: 27
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 27
+
+entry: 28
+ st_name: initfini.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 29
+ st_name: /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crti.S
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 30
+ st_name: call_gmon_start
+ st_value: 0x730
+ st_size: 0
+ st_info: STT_FUNC STB_LOCAL
+ st_shndx: 10
+
+entry: 31
+ st_name: crtstuff.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 32
+ st_name: __CTOR_LIST__
+ st_value: 0x200c30
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 15
+
+entry: 33
+ st_name: __DTOR_LIST__
+ st_value: 0x200c40
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 16
+
+entry: 34
+ st_name: __JCR_LIST__
+ st_value: 0x200c50
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 17
+
+entry: 35
+ st_name: completed.5959
+ st_value: 0x200e70
+ st_size: 1
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 22
+
+entry: 36
+ st_name: p.5957
+ st_value: 0x200e68
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 21
+
+entry: 37
+ st_name: __do_global_dtors_aux
+ st_value: 0x750
+ st_size: 0
+ st_info: STT_FUNC STB_LOCAL
+ st_shndx: 10
+
+entry: 38
+ st_name: frame_dummy
+ st_value: 0x7a0
+ st_size: 0
+ st_info: STT_FUNC STB_LOCAL
+ st_shndx: 10
+
+entry: 39
+ st_name: crtstuff.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 40
+ st_name: __CTOR_END__
+ st_value: 0x200c38
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 15
+
+entry: 41
+ st_name: __DTOR_END__
+ st_value: 0x200c48
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 16
+
+entry: 42
+ st_name: __FRAME_END__
+ st_value: 0xc28
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 14
+
+entry: 43
+ st_name: __JCR_END__
+ st_value: 0x200c50
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 17
+
+entry: 44
+ st_name: __do_global_ctors_aux
+ st_value: 0xa50
+ st_size: 0
+ st_info: STT_FUNC STB_LOCAL
+ st_shndx: 10
+
+entry: 45
+ st_name: initfini.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 46
+ st_name: /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crtn.S
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 47
+ st_name: test2.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 48
+ st_name: _GLOBAL_OFFSET_TABLE_
+ st_value: 0x200e00
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 65521
+
+entry: 49
+ st_name: __dso_handle
+ st_value: 0x200e60
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 21
+
+entry: 50
+ st_name: _DYNAMIC
+ st_value: 0x200c58
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 65521
+
+entry: 51
+ st_name: printf@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 52
+ st_name: mathstring
+ st_value: 0x828
+ st_size: 538
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 53
+ st_name: __gmon_start__
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_WEAK
+ st_shndx: 0
+
+entry: 54
+ st_name: _Jv_RegisterClasses
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_WEAK
+ st_shndx: 0
+
+entry: 55
+ st_name: puts@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 56
+ st_name: toupper@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 57
+ st_name: _fini
+ st_value: 0xa88
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 11
+
+entry: 58
+ st_name: add3
+ st_value: 0x7f0
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 59
+ st_name: cos@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 60
+ st_name: cosh@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 61
+ st_name: __cxa_finalize@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_WEAK
+ st_shndx: 0
+
+entry: 62
+ st_name: add2
+ st_value: 0x7de
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 63
+ st_name: gets@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 64
+ st_name: add
+ st_value: 0x7cc
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 65
+ st_name: __bss_start
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 66
+ st_name: tolower@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 67
+ st_name: acos@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 68
+ st_name: _end
+ st_value: 0x200e78
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 69
+ st_name: _edata
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 70
+ st_name: sub
+ st_value: 0x814
+ st_size: 20
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 71
+ st_name: _init
+ st_value: 0x670
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 8
+
+entry: 72
+ st_name: add4
+ st_value: 0x802
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
diff --git a/test/elfdump/ts/dso2/@d%test.so.err b/test/elfdump/ts/dso2/@d%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@d%test.so.err
diff --git a/test/elfdump/ts/dso2/@d%test.so.out b/test/elfdump/ts/dso2/@d%test.so.out
new file mode 100644
index 0000000000000..8ba63bf9fde88
--- /dev/null
+++ b/test/elfdump/ts/dso2/@d%test.so.out
@@ -0,0 +1,97 @@
+
+dynamic:
+
+entry: 0
+ d_tag: DT_NEEDED
+ d_val: libm.so.6
+
+entry: 1
+ d_tag: DT_NEEDED
+ d_val: libc.so.6
+
+entry: 2
+ d_tag: DT_INIT
+ d_ptr: 0x670
+
+entry: 3
+ d_tag: DT_FINI
+ d_ptr: 0xa88
+
+entry: 4
+ d_tag: DT_GNU_HASH
+ d_ptr: 0x158
+
+entry: 5
+ d_tag: DT_STRTAB
+ d_ptr: 0x3e8
+
+entry: 6
+ d_tag: DT_SYMTAB
+ d_ptr: 0x1a8
+
+entry: 7
+ d_tag: DT_STRSZ
+ d_val: 196
+
+entry: 8
+ d_tag: DT_SYMENT
+ d_val: 24
+
+entry: 9
+ d_tag: DT_PLTGOT
+ d_ptr: 0x200e00
+
+entry: 10
+ d_tag: DT_PLTRELSZ
+ d_val: 216
+
+entry: 11
+ d_tag: DT_PLTREL
+ d_val: 7
+
+entry: 12
+ d_tag: DT_JMPREL
+ d_ptr: 0x598
+
+entry: 13
+ d_tag: DT_RELA
+ d_val: 1312
+
+entry: 14
+ d_tag: DT_RELASZ
+ d_val: 120
+
+entry: 15
+ d_tag: DT_RELAENT
+ d_val: 24
+
+entry: 16
+ d_tag: DT_VERNEED
+ d_val: 1248
+
+entry: 17
+ d_tag: DT_VERNEEDNUM
+ d_val: 2
+
+entry: 18
+ d_tag: DT_GNU_VERSYM
+ d_val: 1196
+
+entry: 19
+ d_tag: DT_RELACOUNT
+ d_val: 2
+
+entry: 20
+ d_tag: DT_NULL
+
+entry: 21
+ d_tag: DT_NULL
+
+entry: 22
+ d_tag: DT_NULL
+
+entry: 23
+ d_tag: DT_NULL
+
+entry: 24
+ d_tag: DT_NULL
diff --git a/test/elfdump/ts/dso2/@e%test.so.err b/test/elfdump/ts/dso2/@e%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@e%test.so.err
diff --git a/test/elfdump/ts/dso2/@e%test.so.out b/test/elfdump/ts/dso2/@e%test.so.out
new file mode 100644
index 0000000000000..427aef9d2bb5c
--- /dev/null
+++ b/test/elfdump/ts/dso2/@e%test.so.out
@@ -0,0 +1,17 @@
+
+elf header:
+
+ e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_SYSV
+ e_type: ET_DYN
+ e_machine: EM_X86_64
+ e_version: EV_CURRENT
+ e_entry: 0x730
+ e_phoff: 64
+ e_shoff: 5216
+ e_flags: 0
+ e_ehsize: 64
+ e_phentsize: 56
+ e_phnum: 5
+ e_shentsize: 64
+ e_shnum: 31
+ e_shstrndx: 28
diff --git a/test/elfdump/ts/dso2/@e@i%test.so.err b/test/elfdump/ts/dso2/@e@i%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@e@i%test.so.err
diff --git a/test/elfdump/ts/dso2/@e@i%test.so.out b/test/elfdump/ts/dso2/@e@i%test.so.out
new file mode 100644
index 0000000000000..427aef9d2bb5c
--- /dev/null
+++ b/test/elfdump/ts/dso2/@e@i%test.so.out
@@ -0,0 +1,17 @@
+
+elf header:
+
+ e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_SYSV
+ e_type: ET_DYN
+ e_machine: EM_X86_64
+ e_version: EV_CURRENT
+ e_entry: 0x730
+ e_phoff: 64
+ e_shoff: 5216
+ e_flags: 0
+ e_ehsize: 64
+ e_phentsize: 56
+ e_phnum: 5
+ e_shentsize: 64
+ e_shnum: 31
+ e_shstrndx: 28
diff --git a/test/elfdump/ts/dso2/@e@p@c%test.so.err b/test/elfdump/ts/dso2/@e@p@c%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@e@p@c%test.so.err
diff --git a/test/elfdump/ts/dso2/@e@p@c%test.so.out b/test/elfdump/ts/dso2/@e@p@c%test.so.out
new file mode 100644
index 0000000000000..370dced8b06f4
--- /dev/null
+++ b/test/elfdump/ts/dso2/@e@p@c%test.so.out
@@ -0,0 +1,443 @@
+
+elf header:
+
+ e_ident: ELFCLASS64 ELFDATA2LSB ELFOSABI_SYSV
+ e_type: ET_DYN
+ e_machine: EM_X86_64
+ e_version: EV_CURRENT
+ e_entry: 0x730
+ e_phoff: 64
+ e_shoff: 5216
+ e_flags: 0
+ e_ehsize: 64
+ e_phentsize: 56
+ e_phnum: 5
+ e_shentsize: 64
+ e_shnum: 31
+ e_shstrndx: 28
+
+program header:
+
+entry: 0
+ p_type: PT_LOAD
+ p_offset: 0
+ p_vaddr: 0
+ p_paddr: 0
+ p_filesz: 3116
+ p_memsz: 3116
+ p_flags: PF_X|PF_R
+ p_align: 2097152
+
+entry: 1
+ p_type: PT_LOAD
+ p_offset: 3120
+ p_vaddr: 0x200c30
+ p_paddr: 0x200c30
+ p_filesz: 576
+ p_memsz: 584
+ p_flags: PF_W|PF_R
+ p_align: 2097152
+
+entry: 2
+ p_type: PT_DYNAMIC
+ p_offset: 3160
+ p_vaddr: 0x200c58
+ p_paddr: 0x200c58
+ p_filesz: 400
+ p_memsz: 400
+ p_flags: PF_W|PF_R
+ p_align: 8
+
+entry: 3
+ p_type: PT_NULL
+ p_offset: 2832
+ p_vaddr: 0xb10
+ p_paddr: 0xb10
+ p_filesz: 60
+ p_memsz: 60
+ p_flags: PF_R
+ p_align: 4
+
+entry: 4
+ p_type: PT_LOAD
+ p_offset: 0
+ p_vaddr: 0
+ p_paddr: 0
+ p_filesz: 0
+ p_memsz: 0
+ p_flags: PF_W|PF_R
+ p_align: 8
+
+section header:
+
+entry: 0
+ sh_name:
+ sh_type: SHT_NULL
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 0
+ sh_size: 0
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 0
+ sh_entsize: 0
+
+entry: 1
+ sh_name: .gnu.hash
+ sh_type: SHT_GNU_HASH
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x158
+ sh_offset: 344
+ sh_size: 80
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 2
+ sh_name: .dynsym
+ sh_type: SHT_DYNSYM
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x1a8
+ sh_offset: 424
+ sh_size: 576
+ sh_link: 3
+ sh_info: 2
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 3
+ sh_name: .dynstr
+ sh_type: SHT_STRTAB
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x3e8
+ sh_offset: 1000
+ sh_size: 196
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 4
+ sh_name: .gnu.version
+ sh_type: SHT_SUNW(GNU)_versym
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x4ac
+ sh_offset: 1196
+ sh_size: 48
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 2
+ sh_entsize: 2
+
+entry: 5
+ sh_name: .gnu.version_r
+ sh_type: SHT_SUNW(GNU)_verneed
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x4e0
+ sh_offset: 1248
+ sh_size: 64
+ sh_link: 3
+ sh_info: 2
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 6
+ sh_name: .rela.dyn
+ sh_type: SHT_RELA
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x520
+ sh_offset: 1312
+ sh_size: 120
+ sh_link: 2
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 7
+ sh_name: .rela.plt
+ sh_type: SHT_RELA
+ sh_flags: SHF_ALLOC
+ sh_addr: 0x598
+ sh_offset: 1432
+ sh_size: 216
+ sh_link: 2
+ sh_info: 9
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 8
+ sh_name: .init
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x670
+ sh_offset: 1648
+ sh_size: 24
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 9
+ sh_name: .plt
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x688
+ sh_offset: 1672
+ sh_size: 160
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 16
+
+entry: 10
+ sh_name: .text
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0x730
+ sh_offset: 1840
+ sh_size: 856
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 16
+ sh_entsize: 0
+
+entry: 11
+ sh_name: .fini
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC|SHF_EXECINSTR
+ sh_addr: 0xa88
+ sh_offset: 2696
+ sh_size: 14
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 12
+ sh_name: .rodata
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xa98
+ sh_offset: 2712
+ sh_size: 120
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 13
+ sh_name: .eh_frame_hdr
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xb10
+ sh_offset: 2832
+ sh_size: 60
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 14
+ sh_name: .eh_frame
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_ALLOC
+ sh_addr: 0xb50
+ sh_offset: 2896
+ sh_size: 220
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 15
+ sh_name: .ctors
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c30
+ sh_offset: 3120
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 16
+ sh_name: .dtors
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c40
+ sh_offset: 3136
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 17
+ sh_name: .jcr
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c50
+ sh_offset: 3152
+ sh_size: 8
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 18
+ sh_name: .dynamic
+ sh_type: SHT_DYNAMIC
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200c58
+ sh_offset: 3160
+ sh_size: 400
+ sh_link: 3
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 16
+
+entry: 19
+ sh_name: .got
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200de8
+ sh_offset: 3560
+ sh_size: 24
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 8
+
+entry: 20
+ sh_name: .got.plt
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e00
+ sh_offset: 3584
+ sh_size: 96
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 8
+
+entry: 21
+ sh_name: .data
+ sh_type: SHT_PROGBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e60
+ sh_offset: 3680
+ sh_size: 16
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 8
+ sh_entsize: 0
+
+entry: 22
+ sh_name: .bss
+ sh_type: SHT_NOBITS
+ sh_flags: SHF_WRITE|SHF_ALLOC
+ sh_addr: 0x200e70
+ sh_offset: 3696
+ sh_size: 8
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 4
+ sh_entsize: 0
+
+entry: 23
+ sh_name: .comment
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 3696
+ sh_size: 290
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 24
+ sh_name: .debug_aranges
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4000
+ sh_size: 144
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 16
+ sh_entsize: 0
+
+entry: 25
+ sh_name: .debug_info
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4144
+ sh_size: 420
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 26
+ sh_name: .debug_abbrev
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4564
+ sh_size: 32
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 27
+ sh_name: .debug_line
+ sh_type: SHT_PROGBITS
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4596
+ sh_size: 352
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 28
+ sh_name: .shstrtab
+ sh_type: SHT_STRTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 4948
+ sh_size: 266
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
+
+entry: 29
+ sh_name: .symtab
+ sh_type: SHT_SYMTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 7200
+ sh_size: 1752
+ sh_link: 30
+ sh_info: 51
+ sh_addralign: 8
+ sh_entsize: 24
+
+entry: 30
+ sh_name: .strtab
+ sh_type: SHT_STRTAB
+ sh_flags:
+ sh_addr: 0
+ sh_offset: 8952
+ sh_size: 732
+ sh_link: 0
+ sh_info: 0
+ sh_addralign: 1
+ sh_entsize: 0
diff --git a/test/elfdump/ts/dso2/@h%test.so.err b/test/elfdump/ts/dso2/@h%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@h%test.so.err
diff --git a/test/elfdump/ts/dso2/@h%test.so.out b/test/elfdump/ts/dso2/@h%test.so.out
new file mode 100644
index 0000000000000..25f62f37eb5e9
--- /dev/null
+++ b/test/elfdump/ts/dso2/@h%test.so.out
@@ -0,0 +1,51 @@
+
+gnu hash table (.gnu.hash):
+
+nbucket: 3
+symndx: 13
+maskwords: 1
+shift2: 6
+nchain: 11
+
+bucket[0]:
+ 13
+
+bucket[1]:
+ 16
+
+bucket[2]:
+ 21
+
+chain[0]:
+ 2090001338
+
+chain[1]:
+ 3973399874
+
+chain[2]:
+ 2090071747
+
+chain[3]:
+ 2038844230
+
+chain[4]:
+ 2090071744
+
+chain[5]:
+ 193486030
+
+chain[6]:
+ 475558360
+
+chain[7]:
+ 250711481
+
+chain[8]:
+ 250598378
+
+chain[9]:
+ 2090071744
+
+chain[10]:
+ 193506191
+
diff --git a/test/elfdump/ts/dso2/@n%test.so.err b/test/elfdump/ts/dso2/@n%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@n%test.so.err
diff --git a/test/elfdump/ts/dso2/@n%test.so.out b/test/elfdump/ts/dso2/@n%test.so.out
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@n%test.so.out
diff --git a/test/elfdump/ts/dso2/@p%test.so.err b/test/elfdump/ts/dso2/@p%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@p%test.so.err
diff --git a/test/elfdump/ts/dso2/@p%test.so.out b/test/elfdump/ts/dso2/@p%test.so.out
new file mode 100644
index 0000000000000..99b2fb9f22508
--- /dev/null
+++ b/test/elfdump/ts/dso2/@p%test.so.out
@@ -0,0 +1,52 @@
+
+program header:
+
+entry: 0
+ p_type: PT_LOAD
+ p_offset: 0
+ p_vaddr: 0
+ p_paddr: 0
+ p_filesz: 3116
+ p_memsz: 3116
+ p_flags: PF_X|PF_R
+ p_align: 2097152
+
+entry: 1
+ p_type: PT_LOAD
+ p_offset: 3120
+ p_vaddr: 0x200c30
+ p_paddr: 0x200c30
+ p_filesz: 576
+ p_memsz: 584
+ p_flags: PF_W|PF_R
+ p_align: 2097152
+
+entry: 2
+ p_type: PT_DYNAMIC
+ p_offset: 3160
+ p_vaddr: 0x200c58
+ p_paddr: 0x200c58
+ p_filesz: 400
+ p_memsz: 400
+ p_flags: PF_W|PF_R
+ p_align: 8
+
+entry: 3
+ p_type: PT_NULL
+ p_offset: 2832
+ p_vaddr: 0xb10
+ p_paddr: 0xb10
+ p_filesz: 60
+ p_memsz: 60
+ p_flags: PF_R
+ p_align: 4
+
+entry: 4
+ p_type: PT_LOAD
+ p_offset: 0
+ p_vaddr: 0
+ p_paddr: 0
+ p_filesz: 0
+ p_memsz: 0
+ p_flags: PF_W|PF_R
+ p_align: 8
diff --git a/test/elfdump/ts/dso2/@p@s%test.so.err b/test/elfdump/ts/dso2/@p@s%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@p@s%test.so.err
diff --git a/test/elfdump/ts/dso2/@p@s%test.so.out b/test/elfdump/ts/dso2/@p@s%test.so.out
new file mode 100644
index 0000000000000..ae24ddb363901
--- /dev/null
+++ b/test/elfdump/ts/dso2/@p@s%test.so.out
@@ -0,0 +1,735 @@
+
+program header:
+
+entry: 0
+ p_type: PT_LOAD
+ p_offset: 0
+ p_vaddr: 0
+ p_paddr: 0
+ p_filesz: 3116
+ p_memsz: 3116
+ p_flags: PF_X|PF_R
+ p_align: 2097152
+
+entry: 1
+ p_type: PT_LOAD
+ p_offset: 3120
+ p_vaddr: 0x200c30
+ p_paddr: 0x200c30
+ p_filesz: 576
+ p_memsz: 584
+ p_flags: PF_W|PF_R
+ p_align: 2097152
+
+entry: 2
+ p_type: PT_DYNAMIC
+ p_offset: 3160
+ p_vaddr: 0x200c58
+ p_paddr: 0x200c58
+ p_filesz: 400
+ p_memsz: 400
+ p_flags: PF_W|PF_R
+ p_align: 8
+
+entry: 3
+ p_type: PT_NULL
+ p_offset: 2832
+ p_vaddr: 0xb10
+ p_paddr: 0xb10
+ p_filesz: 60
+ p_memsz: 60
+ p_flags: PF_R
+ p_align: 4
+
+entry: 4
+ p_type: PT_LOAD
+ p_offset: 0
+ p_vaddr: 0
+ p_paddr: 0
+ p_filesz: 0
+ p_memsz: 0
+ p_flags: PF_W|PF_R
+ p_align: 8
+
+symbol table (.dynsym):
+
+entry: 0
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_LOCAL
+ st_shndx: 0
+
+entry: 1
+ st_name:
+ st_value: 0x670
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 8
+
+entry: 2
+ st_name: printf
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 3
+ st_name: __gmon_start__
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_WEAK
+ st_shndx: 0
+
+entry: 4
+ st_name: _Jv_RegisterClasses
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_WEAK
+ st_shndx: 0
+
+entry: 5
+ st_name: puts
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 6
+ st_name: toupper
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 7
+ st_name: cos
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 8
+ st_name: cosh
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 9
+ st_name: __cxa_finalize
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_WEAK
+ st_shndx: 0
+
+entry: 10
+ st_name: gets
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 11
+ st_name: tolower
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 12
+ st_name: acos
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 13
+ st_name: _end
+ st_value: 0x200e78
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 14
+ st_name: _edata
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 15
+ st_name: add4
+ st_value: 0x802
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 16
+ st_name: mathstring
+ st_value: 0x828
+ st_size: 538
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 17
+ st_name: add2
+ st_value: 0x7de
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 18
+ st_name: add
+ st_value: 0x7cc
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 19
+ st_name: __bss_start
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 20
+ st_name: _init
+ st_value: 0x670
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 8
+
+entry: 21
+ st_name: _fini
+ st_value: 0xa88
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 11
+
+entry: 22
+ st_name: add3
+ st_value: 0x7f0
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 23
+ st_name: sub
+ st_value: 0x814
+ st_size: 20
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+symbol table (.symtab):
+
+entry: 0
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_LOCAL
+ st_shndx: 0
+
+entry: 1
+ st_name:
+ st_value: 0x158
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 1
+
+entry: 2
+ st_name:
+ st_value: 0x1a8
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 2
+
+entry: 3
+ st_name:
+ st_value: 0x3e8
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 3
+
+entry: 4
+ st_name:
+ st_value: 0x4ac
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 4
+
+entry: 5
+ st_name:
+ st_value: 0x4e0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 5
+
+entry: 6
+ st_name:
+ st_value: 0x520
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 6
+
+entry: 7
+ st_name:
+ st_value: 0x598
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 7
+
+entry: 8
+ st_name:
+ st_value: 0x670
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 8
+
+entry: 9
+ st_name:
+ st_value: 0x688
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 9
+
+entry: 10
+ st_name:
+ st_value: 0x730
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 10
+
+entry: 11
+ st_name:
+ st_value: 0xa88
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 11
+
+entry: 12
+ st_name:
+ st_value: 0xa98
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 12
+
+entry: 13
+ st_name:
+ st_value: 0xb10
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 13
+
+entry: 14
+ st_name:
+ st_value: 0xb50
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 14
+
+entry: 15
+ st_name:
+ st_value: 0x200c30
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 15
+
+entry: 16
+ st_name:
+ st_value: 0x200c40
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 16
+
+entry: 17
+ st_name:
+ st_value: 0x200c50
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 17
+
+entry: 18
+ st_name:
+ st_value: 0x200c58
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 18
+
+entry: 19
+ st_name:
+ st_value: 0x200de8
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 19
+
+entry: 20
+ st_name:
+ st_value: 0x200e00
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 20
+
+entry: 21
+ st_name:
+ st_value: 0x200e60
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 21
+
+entry: 22
+ st_name:
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 22
+
+entry: 23
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 23
+
+entry: 24
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 24
+
+entry: 25
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 25
+
+entry: 26
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 26
+
+entry: 27
+ st_name:
+ st_value: 0
+ st_size: 0
+ st_info: STT_SECTION STB_LOCAL
+ st_shndx: 27
+
+entry: 28
+ st_name: initfini.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 29
+ st_name: /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crti.S
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 30
+ st_name: call_gmon_start
+ st_value: 0x730
+ st_size: 0
+ st_info: STT_FUNC STB_LOCAL
+ st_shndx: 10
+
+entry: 31
+ st_name: crtstuff.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 32
+ st_name: __CTOR_LIST__
+ st_value: 0x200c30
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 15
+
+entry: 33
+ st_name: __DTOR_LIST__
+ st_value: 0x200c40
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 16
+
+entry: 34
+ st_name: __JCR_LIST__
+ st_value: 0x200c50
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 17
+
+entry: 35
+ st_name: completed.5959
+ st_value: 0x200e70
+ st_size: 1
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 22
+
+entry: 36
+ st_name: p.5957
+ st_value: 0x200e68
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 21
+
+entry: 37
+ st_name: __do_global_dtors_aux
+ st_value: 0x750
+ st_size: 0
+ st_info: STT_FUNC STB_LOCAL
+ st_shndx: 10
+
+entry: 38
+ st_name: frame_dummy
+ st_value: 0x7a0
+ st_size: 0
+ st_info: STT_FUNC STB_LOCAL
+ st_shndx: 10
+
+entry: 39
+ st_name: crtstuff.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 40
+ st_name: __CTOR_END__
+ st_value: 0x200c38
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 15
+
+entry: 41
+ st_name: __DTOR_END__
+ st_value: 0x200c48
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 16
+
+entry: 42
+ st_name: __FRAME_END__
+ st_value: 0xc28
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 14
+
+entry: 43
+ st_name: __JCR_END__
+ st_value: 0x200c50
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 17
+
+entry: 44
+ st_name: __do_global_ctors_aux
+ st_value: 0xa50
+ st_size: 0
+ st_info: STT_FUNC STB_LOCAL
+ st_shndx: 10
+
+entry: 45
+ st_name: initfini.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 46
+ st_name: /home/aurel32/debian/co-packages/glibc/etch/glibc-2.3.6.ds1/build-tree/amd64-libc/csu/crtn.S
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 47
+ st_name: test2.c
+ st_value: 0
+ st_size: 0
+ st_info: STT_FILE STB_LOCAL
+ st_shndx: 65521
+
+entry: 48
+ st_name: _GLOBAL_OFFSET_TABLE_
+ st_value: 0x200e00
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 65521
+
+entry: 49
+ st_name: __dso_handle
+ st_value: 0x200e60
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 21
+
+entry: 50
+ st_name: _DYNAMIC
+ st_value: 0x200c58
+ st_size: 0
+ st_info: STT_OBJECT STB_LOCAL
+ st_shndx: 65521
+
+entry: 51
+ st_name: printf@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 52
+ st_name: mathstring
+ st_value: 0x828
+ st_size: 538
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 53
+ st_name: __gmon_start__
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_WEAK
+ st_shndx: 0
+
+entry: 54
+ st_name: _Jv_RegisterClasses
+ st_value: 0
+ st_size: 0
+ st_info: STT_NOTYPE STB_WEAK
+ st_shndx: 0
+
+entry: 55
+ st_name: puts@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 56
+ st_name: toupper@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 57
+ st_name: _fini
+ st_value: 0xa88
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 11
+
+entry: 58
+ st_name: add3
+ st_value: 0x7f0
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 59
+ st_name: cos@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 60
+ st_name: cosh@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 61
+ st_name: __cxa_finalize@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_WEAK
+ st_shndx: 0
+
+entry: 62
+ st_name: add2
+ st_value: 0x7de
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 63
+ st_name: gets@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 64
+ st_name: add
+ st_value: 0x7cc
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 65
+ st_name: __bss_start
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 66
+ st_name: tolower@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 67
+ st_name: acos@@GLIBC_2.2.5
+ st_value: 0
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 0
+
+entry: 68
+ st_name: _end
+ st_value: 0x200e78
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 69
+ st_name: _edata
+ st_value: 0x200e70
+ st_size: 0
+ st_info: STT_NOTYPE STB_GLOBAL
+ st_shndx: 65521
+
+entry: 70
+ st_name: sub
+ st_value: 0x814
+ st_size: 20
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
+
+entry: 71
+ st_name: _init
+ st_value: 0x670
+ st_size: 0
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 8
+
+entry: 72
+ st_name: add4
+ st_value: 0x802
+ st_size: 18
+ st_info: STT_FUNC STB_GLOBAL
+ st_shndx: 10
diff --git a/test/elfdump/ts/dso2/@r%test.so.err b/test/elfdump/ts/dso2/@r%test.so.err
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/elfdump/ts/dso2/@r%test.so.err
diff --git a/test/elfdump/ts/dso2/@r%test.so.out b/test/elfdump/ts/dso2/@r%test.so.out
new file mode 100644
index 0000000000000..c394e902f3285
--- /dev/null
+++ b/test/elfdump/ts/dso2/@r%test.so.out
@@ -0,0 +1,74 @@
+
+relocation with addend (.rela.dyn):
+
+entry: 0
+ r_offset: 0x200e60
+ r_info: 0x8
+ r_addend: 2100832
+
+entry: 1
+ r_offset: 0x200e68
+ r_info: 0x8
+ r_addend: 2100296
+
+entry: 2
+ r_offset: 0x200de8
+ r_info: 0x300000006
+ r_addend: 0
+
+entry: 3
+ r_offset: 0x200df0
+ r_info: 0x400000006
+ r_addend: 0
+
+entry: 4
+ r_offset: 0x200df8
+ r_info: 0x900000006
+ r_addend: 0
+
+relocation with addend (.rela.plt):
+
+entry: 0
+ r_offset: 0x200e18
+ r_info: 0x200000007
+ r_addend: 0
+
+entry: 1
+ r_offset: 0x200e20
+ r_info: 0x500000007
+ r_addend: 0
+
+entry: 2
+ r_offset: 0x200e28
+ r_info: 0x600000007
+ r_addend: 0
+
+entry: 3
+ r_offset: 0x200e30
+ r_info: 0x700000007
+ r_addend: 0
+
+entry: 4
+ r_offset: 0x200e38
+ r_info: 0x800000007
+ r_addend: 0
+
+entry: 5
+ r_offset: 0x200e40
+ r_info: 0x900000007
+ r_addend: 0
+
+entry: 6
+ r_offset: 0x200e48
+ r_info: 0xa00000007
+ r_addend: 0
+
+entry: 7
+ r_offset: 0x200e50
+ r_info: 0xb00000007
+ r_addend: 0
+
+entry: 8
+ r_offset: 0x200e58
+ r_info: 0xc00000007
+ r_addend: 0
diff --git a/test/elfdump/ts/dso2/tc b/test/elfdump/ts/dso2/tc
new file mode 100755
index 0000000000000..73659a6421ac3
--- /dev/null
+++ b/test/elfdump/ts/dso2/tc
@@ -0,0 +1,156 @@
+#!/bin/sh
+#
+# $Id: tc 2083 2011-10-27 04:41:39Z jkoshy $
+
+tp1()
+{
+ run "@e%test.so"
+}
+
+tp2()
+{
+ run "@p%test.so"
+}
+
+tp3()
+{
+ run "@G%test.so"
+}
+
+tp4()
+{
+ run "@n%test.so"
+}
+
+tp5()
+{
+ run "@p@s%test.so"
+}
+
+tp6()
+{
+ run "@c%test.so"
+}
+
+tp7()
+{
+ run "@c@s%test.so"
+}
+
+tp8()
+{
+ run "@c@p@n%test.so"
+}
+
+tp9()
+{
+ run "@d%test.so"
+}
+
+tp10()
+{
+ run "@e@i%test.so"
+}
+
+tp11()
+{
+ run "@r%test.so"
+}
+
+tp12()
+{
+ run "@h%test.so"
+}
+
+tp13()
+{
+ run "@e@p@c%test.so"
+}
+
+tp14()
+{
+ run "@S@e%test.so"
+}
+
+tp15()
+{
+ run "@S@p%test.so"
+}
+
+tp16()
+{
+ run "@S@G%test.so"
+}
+
+tp17()
+{
+ run "@S@r%test.so"
+}
+
+tp18()
+{
+ run "@S@d%test.so"
+}
+
+tp19()
+{
+ run "@S@n%test.so"
+}
+
+tp20()
+{
+ run "@S@c%test.so"
+}
+
+tp21()
+{
+ run "@S@s%test.so"
+}
+
+tp22()
+{
+ run "@S@k%test.so"
+}
+
+tp23()
+{
+ run "@S@v%test.so"
+}
+
+tp24()
+{
+ run "@S@h%test.so"
+}
+
+tet_startup=""
+tet_cleanup="cleanup"
+
+iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic13 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24"
+
+ic1="tp1"
+ic2="tp2"
+ic3="tp3"
+ic4="tp4"
+ic5="tp5"
+ic6="tp6"
+ic7="tp7"
+ic8="tp8"
+ic9="tp9"
+ic10="tp10"
+ic11="tp11"
+ic12="tp12"
+ic13="tp13"
+ic14="tp14"
+ic15="tp15"
+ic16="tp16"
+ic17="tp17"
+ic18="tp18"
+ic19="tp19"
+ic20="tp20"
+ic21="tp21"
+ic22="tp22"
+ic23="tp23"
+ic24="tp24"
+
+. $TET_SUITE_ROOT/ts/common/func.sh
+. $TET_ROOT/lib/xpg3sh/tcm.sh
diff --git a/test/elfdump/ts/dso2/test.so b/test/elfdump/ts/dso2/test.so
new file mode 100644
index 0000000000000..993a16d1410f3
--- /dev/null
+++ b/test/elfdump/ts/dso2/test.so
Binary files differ