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