diff options
author | Eli Bendersky <eliben@chromium.org> | 2013-07-15 16:09:15 -0700 |
---|---|---|
committer | Eli Bendersky <eliben@chromium.org> | 2013-07-15 16:09:15 -0700 |
commit | c6cf05cb5108f356dde97c01ee4188b0671d4542 (patch) | |
tree | 436fdc2a55296d3c202e7ef11f31be3be53efb5f /test/Object/readobj-shared-object.test | |
parent | c75199c649c739aade160289d93f257edc798cde (diff) | |
parent | 7dfcb84fc16b3bf6b2379713b53090757f0a45f9 (diff) |
Merge commit '7dfcb84fc16b3bf6b2379713b53090757f0a45f9'
Conflicts:
docs/LangRef.rst
include/llvm/CodeGen/CallingConvLower.h
include/llvm/IRReader/IRReader.h
include/llvm/Target/TargetMachine.h
lib/CodeGen/CallingConvLower.cpp
lib/IRReader/IRReader.cpp
lib/IRReader/LLVMBuild.txt
lib/IRReader/Makefile
lib/LLVMBuild.txt
lib/Makefile
lib/Support/MemoryBuffer.cpp
lib/Support/Unix/PathV2.inc
lib/Target/ARM/ARMBaseInstrInfo.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMSubtarget.cpp
lib/Target/ARM/ARMTargetMachine.cpp
lib/Target/Mips/CMakeLists.txt
lib/Target/Mips/MipsDelaySlotFiller.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsInstrInfo.td
lib/Target/Mips/MipsSubtarget.cpp
lib/Target/Mips/MipsSubtarget.h
lib/Target/X86/X86FastISel.cpp
lib/Target/X86/X86ISelDAGToDAG.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrControl.td
lib/Target/X86/X86InstrFormats.td
lib/Transforms/IPO/ExtractGV.cpp
lib/Transforms/InstCombine/InstCombineCompares.cpp
lib/Transforms/Utils/SimplifyLibCalls.cpp
test/CodeGen/X86/fast-isel-divrem.ll
test/MC/ARM/data-in-code.ll
tools/Makefile
tools/llvm-extract/llvm-extract.cpp
tools/llvm-link/CMakeLists.txt
tools/opt/CMakeLists.txt
tools/opt/LLVMBuild.txt
tools/opt/Makefile
tools/opt/opt.cpp
Diffstat (limited to 'test/Object/readobj-shared-object.test')
-rw-r--r-- | test/Object/readobj-shared-object.test | 387 |
1 files changed, 307 insertions, 80 deletions
diff --git a/test/Object/readobj-shared-object.test b/test/Object/readobj-shared-object.test index 2c0b54dca4..72dbd32ea9 100644 --- a/test/Object/readobj-shared-object.test +++ b/test/Object/readobj-shared-object.test @@ -1,92 +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 +ELF64: Format: ELF64-x86-64 +ELF64: Arch: x86_64 +ELF64: AddressSize: 64bit +ELF64: LoadName: libfoo.so -ELF32:File Format : ELF32-i386 -ELF32:Arch : i386 -ELF32:Address Size: 32 bits -ELF32:Load Name : libfoo.so +ELF32: Format: ELF32-i386 +ELF32: Arch: i386 +ELF32: AddressSize: 32bit +ELF32: LoadName: libfoo.so -ELF:Symbols: -ELF: Name Type Address Size FileOffset Flags -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: 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:Dynamic Symbols: -ELF: Name Type Address Size FileOffset Flags -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: 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:Sections: -ELF: Name Address Size Align Flags -ELF: {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} rodata -ELF: .hash {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} required,rodata -ELF: .dynsym {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} required,rodata -ELF: .dynstr {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} required,rodata -ELF: .text {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} text,{{(data,)?}}required -ELF: .eh_frame {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} data,required,rodata -ELF: .tdata {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} data,required -ELF: .dynamic {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} required -ELF: .got.plt {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} data,required -ELF: .data {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} data,required -ELF: .bss {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} bss,required,virtual,zeroinit -ELF: .shstrtab {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} rodata -ELF: .symtab {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} rodata -ELF: .strtab {{[0-9a-f]+}} {{[0-9a-f]+}} {{[0-9a-f]+}} rodata -ELF: Total: 14 - -ELF:Dynamic section contains 9 entries -ELF: Tag Type Name/Value -ELF: 00000001 (NEEDED) Shared library: [libc.so.6] -ELF: 00000001 (NEEDED) Shared library: [libm.so.6] -ELF: 0000000e (SONAME) Library soname: [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: Total: 9 - -ELF:Libraries needed: -ELF: libc.so.6 -ELF: libm.so.6 -ELF: Total: 2 +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: ] |