| RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \ | |
| RUN: %p/Inputs/shared-object-test.elf-i386 \ | |
| RUN: | FileCheck %s -check-prefix ELF | |
| RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \ | |
| RUN: %p/Inputs/shared-object-test.elf-i386 \ | |
| RUN: | FileCheck %s -check-prefix ELF32 | |
| RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \ | |
| RUN: %p/Inputs/shared-object-test.elf-x86-64 \ | |
| RUN: | FileCheck %s -check-prefix ELF | |
| RUN: llvm-readobj -s -t -dt -dynamic-table -needed-libs \ | |
| RUN: %p/Inputs/shared-object-test.elf-x86-64 \ | |
| RUN: | FileCheck %s -check-prefix ELF64 | |
| ELF64: Format: ELF64-x86-64 | |
| ELF64: Arch: x86_64 | |
| ELF64: AddressSize: 64bit | |
| ELF64: LoadName: libfoo.so | |
| ELF32: Format: ELF32-i386 | |
| ELF32: Arch: i386 | |
| ELF32: AddressSize: 32bit | |
| ELF32: LoadName: libfoo.so | |
| ELF: Sections [ | |
| ELF: Section { | |
| ELF: Name: (0) | |
| ELF: Type: SHT_NULL | |
| ELF: Flags [ (0x0) | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .hash | |
| ELF: Type: SHT_HASH | |
| ELF: Flags [ (0x2) | |
| ELF: SHF_ALLOC | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .dynsym | |
| ELF: Type: SHT_DYNSYM | |
| ELF: Flags [ (0x2) | |
| ELF: SHF_ALLOC | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .dynstr | |
| ELF: Type: SHT_STRTAB | |
| ELF: Flags [ (0x2) | |
| ELF: SHF_ALLOC | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .text | |
| ELF: Type: SHT_PROGBITS | |
| ELF: Flags [ (0x6) | |
| ELF: SHF_ALLOC | |
| ELF: SHF_EXECINSTR | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .eh_frame | |
| ELF: Type: SHT_PROGBITS | |
| ELF: Flags [ (0x2) | |
| ELF: SHF_ALLOC | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .tdata | |
| ELF: Type: SHT_PROGBITS | |
| ELF: Flags [ (0x403) | |
| ELF: SHF_ALLOC | |
| ELF: SHF_TLS | |
| ELF: SHF_WRITE | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .dynamic | |
| ELF: Type: SHT_DYNAMIC | |
| ELF: Flags [ (0x3) | |
| ELF: SHF_ALLOC | |
| ELF: SHF_WRITE | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .got.plt | |
| ELF: Type: SHT_PROGBITS | |
| ELF: Flags [ (0x3) | |
| ELF: SHF_ALLOC | |
| ELF: SHF_WRITE | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .data | |
| ELF: Type: SHT_PROGBITS | |
| ELF: Flags [ (0x3) | |
| ELF: SHF_ALLOC | |
| ELF: SHF_WRITE | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .bss | |
| ELF: Type: SHT_NOBITS | |
| ELF: Flags [ (0x3) | |
| ELF: SHF_ALLOC | |
| ELF: SHF_WRITE | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .shstrtab | |
| ELF: Type: SHT_STRTAB | |
| ELF: Flags [ (0x0) | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .symtab | |
| ELF: Type: SHT_SYMTAB | |
| ELF: Flags [ (0x0) | |
| ELF: ] | |
| ELF: } | |
| ELF: Section { | |
| ELF: Name: .strtab | |
| ELF: Type: SHT_STRTAB | |
| ELF: Flags [ (0x0) | |
| ELF: ] | |
| ELF: } | |
| ELF: ] | |
| ELF: Symbols [ | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .hash | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .dynsym | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .dynstr | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .text | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .eh_frame | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .tdata | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .dynamic | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .got.plt | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .data | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: (0) | |
| ELF: Binding: Local | |
| ELF: Type: Section | |
| ELF: Section: .bss | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: shared.ll | |
| ELF: Binding: Local | |
| ELF: Type: File | |
| ELF: Section: Absolute (0xFFF1) | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: local_func | |
| ELF: Binding: Local | |
| ELF: Type: Function | |
| ELF: Section: .text | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: _GLOBAL_OFFSET_TABLE_ | |
| ELF: Binding: Local | |
| ELF: Type: Object | |
| ELF: Section: Absolute (0xFFF1) | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: _DYNAMIC | |
| ELF: Binding: Local | |
| ELF: Type: Object | |
| ELF: Section: Absolute (0xFFF1) | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: common_sym | |
| ELF: Binding: Global | |
| ELF: Type: Object | |
| ELF: Section: .bss | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: tls_sym | |
| ELF: Binding: Global | |
| ELF: Type: TLS | |
| ELF: Section: .tdata | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: defined_sym | |
| ELF: Binding: Global | |
| ELF: Type: Object | |
| ELF: Section: .data | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: __bss_start | |
| ELF: Binding: Global | |
| ELF: Type: None | |
| ELF: Section: Absolute (0xFFF1) | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: _end | |
| ELF: Binding: Global | |
| ELF: Type: None | |
| ELF: Section: Absolute (0xFFF1) | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: global_func | |
| ELF: Binding: Global | |
| ELF: Type: Function | |
| ELF: Section: .text | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: _edata | |
| ELF: Binding: Global | |
| ELF: Type: None | |
| ELF: Section: Absolute (0xFFF1) | |
| ELF: } | |
| ELF: ] | |
| ELF: DynamicSymbols [ | |
| ELF: Symbol { | |
| ELF: Name: common_sym | |
| ELF: Binding: Global | |
| ELF: Type: Object | |
| ELF: Section: .bss | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: tls_sym | |
| ELF: Binding: Global | |
| ELF: Type: TLS | |
| ELF: Section: .tdata | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: defined_sym | |
| ELF: Binding: Global | |
| ELF: Type: Object | |
| ELF: Section: .data | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: __bss_start | |
| ELF: Binding: Global | |
| ELF: Type: None | |
| ELF: Section: Absolute (0xFFF1) | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: _end | |
| ELF: Binding: Global | |
| ELF: Type: None | |
| ELF: Section: Absolute (0xFFF1) | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: global_func | |
| ELF: Binding: Global | |
| ELF: Type: Function | |
| ELF: Section: .text | |
| ELF: } | |
| ELF: Symbol { | |
| ELF: Name: _edata | |
| ELF: Binding: Global | |
| ELF: Type: None | |
| ELF: Section: Absolute (0xFFF1) | |
| ELF: } | |
| ELF: ] | |
| ELF32: DynamicSection [ (9 entries) | |
| ELF32: Tag Type Name/Value | |
| ELF32: 0x00000001 NEEDED Shared library: [libc.so.6] | |
| ELF32: 0x00000001 NEEDED Shared library: [libm.so.6] | |
| ELF32: 0x0000000E SONAME Library soname: [libfoo.so] | |
| ELF32: 0x00000004 HASH {{[0-9a-f]+}} | |
| ELF32: 0x00000005 STRTAB {{[0-9a-f]+}} | |
| ELF32: 0x00000006 SYMTAB {{[0-9a-f]+}} | |
| ELF32: 0x0000000A STRSZ {{[0-9]+}} (bytes) | |
| ELF32: 0x0000000B SYMENT {{[0-9]+}} (bytes) | |
| ELF32: 0x00000000 NULL 0x0 | |
| ELF32: ] | |
| ELF64: DynamicSection [ (9 entries) | |
| ELF64: Tag Type Name/Value | |
| ELF64: 0x0000000000000001 NEEDED Shared library: [libc.so.6] | |
| ELF64: 0x0000000000000001 NEEDED Shared library: [libm.so.6] | |
| ELF64: 0x000000000000000E SONAME Library soname: [libfoo.so] | |
| ELF64: 0x0000000000000004 HASH {{[0-9a-f]+}} | |
| ELF64: 0x0000000000000005 STRTAB {{[0-9a-f]+}} | |
| ELF64: 0x0000000000000006 SYMTAB {{[0-9a-f]+}} | |
| ELF64: 0x000000000000000A STRSZ {{[0-9]+}} (bytes) | |
| ELF64: 0x000000000000000B SYMENT {{[0-9]+}} (bytes) | |
| ELF64: 0x0000000000000000 NULL 0x0 | |
| ELF64: ] | |
| ELF: NeededLibraries [ | |
| ELF-NEXT: libc.so.6 | |
| ELF-NEXT: libm.so.6 | |
| ELF-NEXT: ] |