| 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: ] |