summaryrefslogtreecommitdiffstats
path: root/test/Object/readobj-shared-object.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/Object/readobj-shared-object.test')
-rw-r--r--test/Object/readobj-shared-object.test362
1 files changed, 311 insertions, 51 deletions
diff --git a/test/Object/readobj-shared-object.test b/test/Object/readobj-shared-object.test
index 3b5457c..72dbd32 100644
--- a/test/Object/readobj-shared-object.test
+++ b/test/Object/readobj-shared-object.test
@@ -1,59 +1,319 @@
-RUN: llvm-readobj %p/Inputs/shared-object-test.elf-i386 \
+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 %p/Inputs/shared-object-test.elf-i386 \
+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 %p/Inputs/shared-object-test.elf-x86-64 \
+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 %p/Inputs/shared-object-test.elf-x86-64 \
+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:File Format : ELF64-x86-64
-ELF64:Arch : x86_64
-ELF64:Address Size: 64 bits
-ELF64:Load Name : libfoo.so
-
-ELF32:File Format : ELF32-i386
-ELF32:Arch : i386
-ELF32:Address Size: 32 bits
-ELF32:Load Name : libfoo.so
-
-ELF:Symbols:
-ELF: .dynsym DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific
-ELF: .dynstr DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific
-ELF: .text DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific
-ELF: .eh_frame DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific
-ELF: .tdata DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific
-ELF: .dynamic DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific
-ELF: .got.plt DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific
-ELF: .data DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific
-ELF: .bss DBG {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} formatspecific
-ELF: shared.ll FILE {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} absolute,formatspecific
-ELF: local_func FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}}
-ELF: _GLOBAL_OFFSET_TABLE_ DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} absolute
-ELF: _DYNAMIC DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} absolute
-ELF: common_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global
-ELF: tls_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,threadlocal
-ELF: defined_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global
-ELF: __bss_start ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute
-ELF: _end ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute
-ELF: global_func FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global
-ELF: _edata ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute
-ELF: Total: 21
-
-ELF:Dynamic Symbols:
-ELF: common_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global
-ELF: tls_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,threadlocal
-ELF: defined_sym DATA {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global
-ELF: __bss_start ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute
-ELF: _end ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute
-ELF: global_func FUNC {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global
-ELF: _edata ? {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} global,absolute
-ELF: Total: {{[0-9a-f]+}}
-
-ELF:Libraries needed:
-ELF: libc.so.6
-ELF: libm.so.6
-ELF: Total: 2
+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: .hash
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .hash
+ELF: }
+ELF: Symbol {
+ELF: Name: .dynsym
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .dynsym
+ELF: }
+ELF: Symbol {
+ELF: Name: .dynstr
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .dynstr
+ELF: }
+ELF: Symbol {
+ELF: Name: .text
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .text
+ELF: }
+ELF: Symbol {
+ELF: Name: .eh_frame
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .eh_frame
+ELF: }
+ELF: Symbol {
+ELF: Name: .tdata
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .tdata
+ELF: }
+ELF: Symbol {
+ELF: Name: .dynamic
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .dynamic
+ELF: }
+ELF: Symbol {
+ELF: Name: .got.plt
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .got.plt
+ELF: }
+ELF: Symbol {
+ELF: Name: .data
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .data
+ELF: }
+ELF: Symbol {
+ELF: Name: .bss
+ELF: Binding: Local
+ELF: Type: Section
+ELF: Section: .bss
+ELF: }
+ELF: Symbol {
+ELF: Name: shared.ll
+ELF: Binding: Local
+ELF: Type: File
+ELF: Section: (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: (0xFFF1)
+ELF: }
+ELF: Symbol {
+ELF: Name: _DYNAMIC
+ELF: Binding: Local
+ELF: Type: Object
+ELF: Section: (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: (0xFFF1)
+ELF: }
+ELF: Symbol {
+ELF: Name: _end
+ELF: Binding: Global
+ELF: Type: None
+ELF: Section: (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: (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: (0xFFF1)
+ELF: }
+ELF: Symbol {
+ELF: Name: _end
+ELF: Binding: Global
+ELF: Type: None
+ELF: Section: (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: (0xFFF1)
+ELF: }
+ELF: ]
+
+ELF: DynamicSection [ (9 entries)
+ELF: Tag Type Name/Value
+ELF: 00000001 NEEDED SharedLibrary (libc.so.6)
+ELF: 00000001 NEEDED SharedLibrary (libm.so.6)
+ELF: 0000000E SONAME LibrarySoname (libfoo.so)
+ELF: 00000004 HASH {{[0-9a-f]+}}
+ELF: 00000005 STRTAB {{[0-9a-f]+}}
+ELF: 00000006 SYMTAB {{[0-9a-f]+}}
+ELF: 0000000A STRSZ {{[0-9]+}} (bytes)
+ELF: 0000000B SYMENT {{[0-9]+}} (bytes)
+ELF: 00000000 NULL 0x0
+ELF: ]
+
+ELF: NeededLibraries [
+ELF-NEXT: libc.so.6
+ELF-NEXT: libm.so.6
+ELF-NEXT: ]
OpenPOWER on IntegriCloud