llvm-project/lld/test/old-elf/sections.test

143 lines
3.6 KiB
Plaintext

# This test checks if sections are created properly in the output that appear in
# the input
RUN: lld -flavor old-gnu -target i386 -o %t1 %p/Inputs/section-test.i386 \
RUN: -static -e baz
RUN: llvm-objdump -section-headers %t1 | FileCheck -check-prefix=OBJDUMP %s
RUN: llvm-readobj -h -s -t %t1 | FileCheck -check-prefix=READOBJ %s
OBJDUMP: 0 00000000 0000000000000000
OBJDUMP: 1 .text 0000000a 0000000000000074 TEXT DATA
OBJDUMP: 2 .data 00000004 0000000000001000 DATA
OBJDUMP: 3 .special 00000004 0000000000001004 DATA
OBJDUMP: 4 .anotherspecial 00000004 0000000000001008 DATA
OBJDUMP: 5 .bss 00000004 000000000000100c BSS
OBJDUMP: 6 .shstrtab {{[0-9a-f]+}} 0000000000000000
OBJDUMP: 7 .symtab {{[0-9a-f]+}} 0000000000000000
OBJDUMP: 8 .strtab {{[0-9a-f]+}} 0000000000000000
READOBJ: Format: ELF32-i386
READOBJ: Arch: i386
READOBJ: AddressSize: 32bit
READOBJ: ElfHeader {
READOBJ: Ident {
READOBJ: DataEncoding: LittleEndian (0x1)
READOBJ: }
READOBJ: Machine: EM_386
READOBJ: }
READOBJ: Sections [
READOBJ: Section {
READOBJ: Index: 0
READOBJ: Name: (0)
READOBJ: Type: SHT_NULL
READOBJ: Flags [ (0x0)
READOBJ: ]
READOBJ: Address: 0x0
READOBJ: Size: 0
READOBJ: }
READOBJ: Section {
READOBJ: Index: 1
READOBJ: Name: .text
READOBJ: Type: SHT_PROGBITS
READOBJ: Flags [ (0x6)
READOBJ: SHF_ALLOC
READOBJ: SHF_EXECINSTR
READOBJ: ]
READOBJ: Address: 0x74
READOBJ: Size: 10
READOBJ: AddressAlignment: 4
READOBJ: }
READOBJ: Section {
READOBJ: Index: 2
READOBJ: Name: .data
READOBJ: Type: SHT_PROGBITS
READOBJ: Flags [ (0x3)
READOBJ: SHF_ALLOC
READOBJ: SHF_WRITE
READOBJ: ]
READOBJ: Address: 0x1000
READOBJ: Size: 4
READOBJ: AddressAlignment: 4
READOBJ: }
READOBJ: Section {
READOBJ: Index: 3
READOBJ: Name: .special
READOBJ: Type: SHT_PROGBITS
READOBJ: Flags [ (0x3)
READOBJ: SHF_ALLOC
READOBJ: SHF_WRITE
READOBJ: ]
READOBJ: Address: 0x1004
READOBJ: Size: 4
READOBJ: }
READOBJ: Section {
READOBJ: Index: 4
READOBJ: Name: .anotherspecial
READOBJ: Type: SHT_PROGBITS
READOBJ: Flags [ (0x3)
READOBJ: SHF_ALLOC
READOBJ: SHF_WRITE
READOBJ: ]
READOBJ: Address: 0x1008
READOBJ: Size: 4
READOBJ: }
READOBJ: Section {
READOBJ: Index: 5
READOBJ: Name: .bss
READOBJ: Type: SHT_NOBITS
READOBJ: Flags [ (0x3)
READOBJ: SHF_ALLOC
READOBJ: SHF_WRITE
READOBJ: ]
READOBJ: Address: 0x100C
READOBJ: Size: 4
READOBJ: }
READOBJ: Section {
READOBJ: Index: 6
READOBJ: Name: .shstrtab
READOBJ: Type: SHT_STRTAB
READOBJ: Flags [ (0x0)
READOBJ: ]
READOBJ: Address: 0x0
READOBJ: Link: 0
READOBJ: AddressAlignment: 1
READOBJ: }
READOBJ: Section {
READOBJ: Index: 7
READOBJ: Name: .symtab
READOBJ: Type: SHT_SYMTAB
READOBJ: Flags [ (0x0)
READOBJ: ]
READOBJ: Address: 0x0
READOBJ: Link: 8
READOBJ: AddressAlignment: 4
READOBJ: EntrySize: 16
READOBJ: }
READOBJ: Section {
READOBJ: Index: 8
READOBJ: Name: .strtab
READOBJ: Type: SHT_STRTAB
READOBJ: Flags [ (0x0)
READOBJ: ]
READOBJ: Address: 0x0
READOBJ: }
READOBJ: ]
READOBJ: Symbols [
READOBJ: Symbol {
READOBJ: Name: baz
READOBJ: Value: 0x74
READOBJ: Size: 10
READOBJ: Binding: Global
READOBJ: Type: Function
READOBJ: Section: .text
READOBJ: }
READOBJ: Symbol {
READOBJ: Name: y
READOBJ: Value: 0x1004
READOBJ: Size: 4
READOBJ: Binding: Global
READOBJ: Type: Object
READOBJ: Section: .special
READOBJ: }