Files
clang-p2996/lld/test/elf/sections.objtxt
Shankar Easwaran 3c5d2c8a24 [lld][LayoutPass] This commit fixes a problem in the
Layoutpass by ordering atoms if they appear in the override
list first and then looking at the way of ordering atoms in
the default way.

The fix also fixes issues with the sizes of the sections,
that appear in the output properly too.

The commit also adds a testcase(orderatoms-by-override.test)
to test it and fixes all the other relevant testcases.

llvm-svn: 181605
2013-05-10 16:44:02 +00:00

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 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 00000001 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: 1
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: }