readobj-shared-object.test 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \
  2. RUN: %p/Inputs/shared-object-test.elf-i386 \
  3. RUN: | FileCheck %s -check-prefix ELF
  4. RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \
  5. RUN: %p/Inputs/shared-object-test.elf-i386 \
  6. RUN: | FileCheck %s -check-prefix ELF32
  7. RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \
  8. RUN: %p/Inputs/shared-object-test.elf-x86-64 \
  9. RUN: | FileCheck %s -check-prefix ELF
  10. RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \
  11. RUN: %p/Inputs/shared-object-test.elf-x86-64 \
  12. RUN: | FileCheck %s -check-prefix ELF64
  13. ELF64: Format: ELF64-x86-64
  14. ELF64: Arch: x86_64
  15. ELF64: AddressSize: 64bit
  16. ELF64: LoadName: libfoo.so
  17. ELF32: Format: ELF32-i386
  18. ELF32: Arch: i386
  19. ELF32: AddressSize: 32bit
  20. ELF32: LoadName: libfoo.so
  21. ELF: Sections [
  22. ELF: Section {
  23. ELF: Name: (0)
  24. ELF: Type: SHT_NULL
  25. ELF: Flags [ (0x0)
  26. ELF: ]
  27. ELF: }
  28. ELF: Section {
  29. ELF: Name: .hash
  30. ELF: Type: SHT_HASH
  31. ELF: Flags [ (0x2)
  32. ELF: SHF_ALLOC
  33. ELF: ]
  34. ELF: }
  35. ELF: Section {
  36. ELF: Name: .dynsym
  37. ELF: Type: SHT_DYNSYM
  38. ELF: Flags [ (0x2)
  39. ELF: SHF_ALLOC
  40. ELF: ]
  41. ELF: }
  42. ELF: Section {
  43. ELF: Name: .dynstr
  44. ELF: Type: SHT_STRTAB
  45. ELF: Flags [ (0x2)
  46. ELF: SHF_ALLOC
  47. ELF: ]
  48. ELF: }
  49. ELF: Section {
  50. ELF: Name: .text
  51. ELF: Type: SHT_PROGBITS
  52. ELF: Flags [ (0x6)
  53. ELF: SHF_ALLOC
  54. ELF: SHF_EXECINSTR
  55. ELF: ]
  56. ELF: }
  57. ELF: Section {
  58. ELF: Name: .eh_frame
  59. ELF: Type: SHT_PROGBITS
  60. ELF: Flags [ (0x2)
  61. ELF: SHF_ALLOC
  62. ELF: ]
  63. ELF: }
  64. ELF: Section {
  65. ELF: Name: .tdata
  66. ELF: Type: SHT_PROGBITS
  67. ELF: Flags [ (0x403)
  68. ELF: SHF_ALLOC
  69. ELF: SHF_TLS
  70. ELF: SHF_WRITE
  71. ELF: ]
  72. ELF: }
  73. ELF: Section {
  74. ELF: Name: .dynamic
  75. ELF: Type: SHT_DYNAMIC
  76. ELF: Flags [ (0x3)
  77. ELF: SHF_ALLOC
  78. ELF: SHF_WRITE
  79. ELF: ]
  80. ELF: }
  81. ELF: Section {
  82. ELF: Name: .got.plt
  83. ELF: Type: SHT_PROGBITS
  84. ELF: Flags [ (0x3)
  85. ELF: SHF_ALLOC
  86. ELF: SHF_WRITE
  87. ELF: ]
  88. ELF: }
  89. ELF: Section {
  90. ELF: Name: .data
  91. ELF: Type: SHT_PROGBITS
  92. ELF: Flags [ (0x3)
  93. ELF: SHF_ALLOC
  94. ELF: SHF_WRITE
  95. ELF: ]
  96. ELF: }
  97. ELF: Section {
  98. ELF: Name: .bss
  99. ELF: Type: SHT_NOBITS
  100. ELF: Flags [ (0x3)
  101. ELF: SHF_ALLOC
  102. ELF: SHF_WRITE
  103. ELF: ]
  104. ELF: }
  105. ELF: Section {
  106. ELF: Name: .shstrtab
  107. ELF: Type: SHT_STRTAB
  108. ELF: Flags [ (0x0)
  109. ELF: ]
  110. ELF: }
  111. ELF: Section {
  112. ELF: Name: .symtab
  113. ELF: Type: SHT_SYMTAB
  114. ELF: Flags [ (0x0)
  115. ELF: ]
  116. ELF: }
  117. ELF: Section {
  118. ELF: Name: .strtab
  119. ELF: Type: SHT_STRTAB
  120. ELF: Flags [ (0x0)
  121. ELF: ]
  122. ELF: }
  123. ELF: ]
  124. ELF: Symbols [
  125. ELF: Symbol {
  126. ELF: Name: (0)
  127. ELF: Binding: Local
  128. ELF: Type: Section
  129. ELF: Section: .hash
  130. ELF: }
  131. ELF: Symbol {
  132. ELF: Name: (0)
  133. ELF: Binding: Local
  134. ELF: Type: Section
  135. ELF: Section: .dynsym
  136. ELF: }
  137. ELF: Symbol {
  138. ELF: Name: (0)
  139. ELF: Binding: Local
  140. ELF: Type: Section
  141. ELF: Section: .dynstr
  142. ELF: }
  143. ELF: Symbol {
  144. ELF: Name: (0)
  145. ELF: Binding: Local
  146. ELF: Type: Section
  147. ELF: Section: .text
  148. ELF: }
  149. ELF: Symbol {
  150. ELF: Name: (0)
  151. ELF: Binding: Local
  152. ELF: Type: Section
  153. ELF: Section: .eh_frame
  154. ELF: }
  155. ELF: Symbol {
  156. ELF: Name: (0)
  157. ELF: Binding: Local
  158. ELF: Type: Section
  159. ELF: Section: .tdata
  160. ELF: }
  161. ELF: Symbol {
  162. ELF: Name: (0)
  163. ELF: Binding: Local
  164. ELF: Type: Section
  165. ELF: Section: .dynamic
  166. ELF: }
  167. ELF: Symbol {
  168. ELF: Name: (0)
  169. ELF: Binding: Local
  170. ELF: Type: Section
  171. ELF: Section: .got.plt
  172. ELF: }
  173. ELF: Symbol {
  174. ELF: Name: (0)
  175. ELF: Binding: Local
  176. ELF: Type: Section
  177. ELF: Section: .data
  178. ELF: }
  179. ELF: Symbol {
  180. ELF: Name: (0)
  181. ELF: Binding: Local
  182. ELF: Type: Section
  183. ELF: Section: .bss
  184. ELF: }
  185. ELF: Symbol {
  186. ELF: Name: shared.ll
  187. ELF: Binding: Local
  188. ELF: Type: File
  189. ELF: Section: Absolute (0xFFF1)
  190. ELF: }
  191. ELF: Symbol {
  192. ELF: Name: local_func
  193. ELF: Binding: Local
  194. ELF: Type: Function
  195. ELF: Section: .text
  196. ELF: }
  197. ELF: Symbol {
  198. ELF: Name: _GLOBAL_OFFSET_TABLE_
  199. ELF: Binding: Local
  200. ELF: Type: Object
  201. ELF: Section: Absolute (0xFFF1)
  202. ELF: }
  203. ELF: Symbol {
  204. ELF: Name: _DYNAMIC
  205. ELF: Binding: Local
  206. ELF: Type: Object
  207. ELF: Section: Absolute (0xFFF1)
  208. ELF: }
  209. ELF: Symbol {
  210. ELF: Name: common_sym
  211. ELF: Binding: Global
  212. ELF: Type: Object
  213. ELF: Section: .bss
  214. ELF: }
  215. ELF: Symbol {
  216. ELF: Name: tls_sym
  217. ELF: Binding: Global
  218. ELF: Type: TLS
  219. ELF: Section: .tdata
  220. ELF: }
  221. ELF: Symbol {
  222. ELF: Name: defined_sym
  223. ELF: Binding: Global
  224. ELF: Type: Object
  225. ELF: Section: .data
  226. ELF: }
  227. ELF: Symbol {
  228. ELF: Name: __bss_start
  229. ELF: Binding: Global
  230. ELF: Type: None
  231. ELF: Section: Absolute (0xFFF1)
  232. ELF: }
  233. ELF: Symbol {
  234. ELF: Name: _end
  235. ELF: Binding: Global
  236. ELF: Type: None
  237. ELF: Section: Absolute (0xFFF1)
  238. ELF: }
  239. ELF: Symbol {
  240. ELF: Name: global_func
  241. ELF: Binding: Global
  242. ELF: Type: Function
  243. ELF: Section: .text
  244. ELF: }
  245. ELF: Symbol {
  246. ELF: Name: _edata
  247. ELF: Binding: Global
  248. ELF: Type: None
  249. ELF: Section: Absolute (0xFFF1)
  250. ELF: }
  251. ELF: ]
  252. ELF: DynamicSymbols [
  253. ELF: Symbol {
  254. ELF: Name: common_sym
  255. ELF: Binding: Global
  256. ELF: Type: Object
  257. ELF: Section: .bss
  258. ELF: }
  259. ELF: Symbol {
  260. ELF: Name: tls_sym
  261. ELF: Binding: Global
  262. ELF: Type: TLS
  263. ELF: Section: .tdata
  264. ELF: }
  265. ELF: Symbol {
  266. ELF: Name: defined_sym
  267. ELF: Binding: Global
  268. ELF: Type: Object
  269. ELF: Section: .data
  270. ELF: }
  271. ELF: Symbol {
  272. ELF: Name: __bss_start
  273. ELF: Binding: Global
  274. ELF: Type: None
  275. ELF: Section: Absolute (0xFFF1)
  276. ELF: }
  277. ELF: Symbol {
  278. ELF: Name: _end
  279. ELF: Binding: Global
  280. ELF: Type: None
  281. ELF: Section: Absolute (0xFFF1)
  282. ELF: }
  283. ELF: Symbol {
  284. ELF: Name: global_func
  285. ELF: Binding: Global
  286. ELF: Type: Function
  287. ELF: Section: .text
  288. ELF: }
  289. ELF: Symbol {
  290. ELF: Name: _edata
  291. ELF: Binding: Global
  292. ELF: Type: None
  293. ELF: Section: Absolute (0xFFF1)
  294. ELF: }
  295. ELF: ]
  296. ELF: DynamicSection [ (9 entries)
  297. ELF: Tag Type Name/Value
  298. ELF: 00000001 NEEDED SharedLibrary (libc.so.6)
  299. ELF: 00000001 NEEDED SharedLibrary (libm.so.6)
  300. ELF: 0000000E SONAME LibrarySoname (libfoo.so)
  301. ELF: 00000004 HASH {{[0-9a-f]+}}
  302. ELF: 00000005 STRTAB {{[0-9a-f]+}}
  303. ELF: 00000006 SYMTAB {{[0-9a-f]+}}
  304. ELF: 0000000A STRSZ {{[0-9]+}} (bytes)
  305. ELF: 0000000B SYMENT {{[0-9]+}} (bytes)
  306. ELF: 00000000 NULL 0x0
  307. ELF: ]
  308. ELF: NeededLibraries [
  309. ELF-NEXT: libc.so.6
  310. ELF-NEXT: libm.so.6
  311. ELF-NEXT: ]