mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
47eaa06265
This patch touches a few test cases: It removes dtflags.elf-x86-64 binary and elf-dtflags.test. elf-dtflags.test is excessive because we have the elf-dynamic-tags.test which test all non-machine specific tags. It removes testing of --dynamic-table from test\Object\readobj-shared-object.test (we have the elf-dynamic-tags.test for that), and simplifies this test case. It moves testing of the headers from readobj-shared-object.test to elf-file-headers.test. Adds test/tools/llvm-readobj/elf-file-types.test and test/tools/llvm-readobj/elf-loadname.test. It opens road for removing the readobj-shared-object.test completely soon. Differential revision: https://reviews.llvm.org/D65068 llvm-svn: 366895
289 lines
6.8 KiB
Plaintext
289 lines
6.8 KiB
Plaintext
# RUN: llvm-readobj --sections --symbols --dyn-syms --needed-libs \
|
|
# RUN: %p/Inputs/shared-object-test.elf-i386 | FileCheck %s
|
|
|
|
# RUN: llvm-readobj --sections --symbols --dyn-syms --needed-libs \
|
|
# RUN: %p/Inputs/shared-object-test.elf-x86-64 | FileCheck %s
|
|
|
|
# CHECK: Sections [
|
|
# CHECK: Section {
|
|
# CHECK: Name: (0)
|
|
# CHECK: Type: SHT_NULL
|
|
# CHECK: Flags [ (0x0)
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .hash
|
|
# CHECK: Type: SHT_HASH
|
|
# CHECK: Flags [ (0x2)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .dynsym
|
|
# CHECK: Type: SHT_DYNSYM
|
|
# CHECK: Flags [ (0x2)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .dynstr
|
|
# CHECK: Type: SHT_STRTAB
|
|
# CHECK: Flags [ (0x2)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .text
|
|
# CHECK: Type: SHT_PROGBITS
|
|
# CHECK: Flags [ (0x6)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: SHF_EXECINSTR
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .eh_frame
|
|
# CHECK: Type: SHT_PROGBITS
|
|
# CHECK: Flags [ (0x2)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .tdata
|
|
# CHECK: Type: SHT_PROGBITS
|
|
# CHECK: Flags [ (0x403)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: SHF_TLS
|
|
# CHECK: SHF_WRITE
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .dynamic
|
|
# CHECK: Type: SHT_DYNAMIC
|
|
# CHECK: Flags [ (0x3)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: SHF_WRITE
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .got.plt
|
|
# CHECK: Type: SHT_PROGBITS
|
|
# CHECK: Flags [ (0x3)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: SHF_WRITE
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .data
|
|
# CHECK: Type: SHT_PROGBITS
|
|
# CHECK: Flags [ (0x3)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: SHF_WRITE
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .bss
|
|
# CHECK: Type: SHT_NOBITS
|
|
# CHECK: Flags [ (0x3)
|
|
# CHECK: SHF_ALLOC
|
|
# CHECK: SHF_WRITE
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .shstrtab
|
|
# CHECK: Type: SHT_STRTAB
|
|
# CHECK: Flags [ (0x0)
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .symtab
|
|
# CHECK: Type: SHT_SYMTAB
|
|
# CHECK: Flags [ (0x0)
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: Section {
|
|
# CHECK: Name: .strtab
|
|
# CHECK: Type: SHT_STRTAB
|
|
# CHECK: Flags [ (0x0)
|
|
# CHECK: ]
|
|
# CHECK: }
|
|
# CHECK: ]
|
|
|
|
# CHECK: Symbols [
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .hash (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .hash
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .dynsym (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .dynsym
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .dynstr (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .dynstr
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .text (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .text
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .eh_frame (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .eh_frame
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .tdata (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .tdata
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .dynamic (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .dynamic
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .got.plt (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .got.plt
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .data (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .data
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: .bss (0)
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Section
|
|
# CHECK: Section: .bss
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: shared.ll
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: File
|
|
# CHECK: Section: Absolute (0xFFF1)
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: local_func
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Function
|
|
# CHECK: Section: .text
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: _GLOBAL_OFFSET_TABLE_
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Object
|
|
# CHECK: Section: Absolute (0xFFF1)
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: _DYNAMIC
|
|
# CHECK: Binding: Local
|
|
# CHECK: Type: Object
|
|
# CHECK: Section: Absolute (0xFFF1)
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: common_sym
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: Object
|
|
# CHECK: Section: .bss
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: tls_sym
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: TLS
|
|
# CHECK: Section: .tdata
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: defined_sym
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: Object
|
|
# CHECK: Section: .data
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: __bss_start
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: None
|
|
# CHECK: Section: Absolute (0xFFF1)
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: _end
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: None
|
|
# CHECK: Section: Absolute (0xFFF1)
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: global_func
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: Function
|
|
# CHECK: Section: .text
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: _edata
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: None
|
|
# CHECK: Section: Absolute (0xFFF1)
|
|
# CHECK: }
|
|
# CHECK: ]
|
|
|
|
# CHECK: DynamicSymbols [
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: common_sym
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: Object
|
|
# CHECK: Section: .bss
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: tls_sym
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: TLS
|
|
# CHECK: Section: .tdata
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: defined_sym
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: Object
|
|
# CHECK: Section: .data
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: __bss_start
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: None
|
|
# CHECK: Section: Absolute (0xFFF1)
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: _end
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: None
|
|
# CHECK: Section: Absolute (0xFFF1)
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: global_func
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: Function
|
|
# CHECK: Section: .text
|
|
# CHECK: }
|
|
# CHECK: Symbol {
|
|
# CHECK: Name: _edata
|
|
# CHECK: Binding: Global
|
|
# CHECK: Type: None
|
|
# CHECK: Section: Absolute (0xFFF1)
|
|
# CHECK: }
|
|
# CHECK: ]
|
|
|
|
# CHECK: NeededLibraries [
|
|
# CHECK-NEXT: libc.so.6
|
|
# CHECK-NEXT: libm.so.6
|
|
# CHECK-NEXT: ]
|