forked from OSchip/llvm-project
128 lines
4.4 KiB
Plaintext
128 lines
4.4 KiB
Plaintext
# Test .init_array.
|
|
# Generated from the following C code:
|
|
#
|
|
# static void
|
|
# init () {}
|
|
#
|
|
# static void (*const init_array []) ()
|
|
# __attribute__ ((used, section (".init_array"), aligned (sizeof (void *))))
|
|
# = { init };
|
|
#
|
|
# int
|
|
# main() { return (0); }
|
|
#
|
|
# Note: both STT_OBJECT and STT_SECTION for .init_array are commented in yaml
|
|
# declaration to check if lld correct adds the object's .init_array when the
|
|
# section has no symbol (some compilers may create object with this behavior,
|
|
# specially for C++ global constructors).
|
|
|
|
#RUN: yaml2obj -format=elf %s -o=%t.o
|
|
#RUN: lld -flavor old-gnu -target x86_64 %t.o -o %t -e=main
|
|
#RUN: llvm-objdump -t -section-headers %t | FileCheck %s
|
|
|
|
#CHECK: .init_array {{[0-9]+}} [[ADDR:[0-9]+]]
|
|
#CHECK: [[ADDR]] l *ABS* {{[0-9]+}} .hidden __init_array_start
|
|
|
|
---
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
OSABI: ELFOSABI_FREEBSD
|
|
Type: ET_REL
|
|
Machine: EM_X86_64
|
|
Sections:
|
|
- Name: .text
|
|
Type: SHT_PROGBITS
|
|
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
|
|
AddressAlign: 0x0000000000000010
|
|
Content: 554889E5B800000000C745FC000000005DC366666666662E0F1F840000000000554889E55DC3
|
|
- Name: .data
|
|
Type: SHT_PROGBITS
|
|
Flags: [ SHF_WRITE, SHF_ALLOC ]
|
|
AddressAlign: 0x0000000000000004
|
|
Content: ''
|
|
- Name: .bss
|
|
Type: SHT_NOBITS
|
|
Flags: [ SHF_WRITE, SHF_ALLOC ]
|
|
AddressAlign: 0x0000000000000004
|
|
- Name: .init_array
|
|
Type: SHT_INIT_ARRAY
|
|
Flags: [ SHF_ALLOC ]
|
|
AddressAlign: 0x0000000000000008
|
|
Content: '0000000000000000'
|
|
- Name: .rela.init_array
|
|
Type: SHT_RELA
|
|
Link: .symtab
|
|
AddressAlign: 0x0000000000000008
|
|
Info: .init_array
|
|
Relocations:
|
|
- Offset: 0x0000000000000000
|
|
Symbol: .text
|
|
Type: R_X86_64_64
|
|
Addend: 32
|
|
- Name: .comment
|
|
Type: SHT_PROGBITS
|
|
Flags: [ SHF_MERGE, SHF_STRINGS ]
|
|
AddressAlign: 0x0000000000000001
|
|
Content: 004672656542534420636C616E672076657273696F6E20332E342E312028746167732F52454C454153455F33342F646F74312D66696E616C203230383033322920323031343035313200
|
|
- Name: .note.GNU-stack
|
|
Type: SHT_PROGBITS
|
|
AddressAlign: 0x0000000000000001
|
|
Content: ''
|
|
- Name: .eh_frame
|
|
Type: SHT_PROGBITS
|
|
Flags: [ SHF_ALLOC ]
|
|
AddressAlign: 0x0000000000000008
|
|
Content: 1400000000000000017A5200017810011B0C070890010000180000001C000000000000001200000000410E108602430D060000001800000038000000000000000600000000410E108602430D06000000
|
|
- Name: .rela.eh_frame
|
|
Type: SHT_RELA
|
|
Link: .symtab
|
|
AddressAlign: 0x0000000000000008
|
|
Info: .eh_frame
|
|
Relocations:
|
|
- Offset: 0x0000000000000020
|
|
Symbol: .text
|
|
Type: R_X86_64_PC32
|
|
- Offset: 0x000000000000003C
|
|
Symbol: .text
|
|
Type: R_X86_64_PC32
|
|
Addend: 32
|
|
Symbols:
|
|
Local:
|
|
- Name: init
|
|
Type: STT_FUNC
|
|
Section: .text
|
|
Value: 0x0000000000000020
|
|
Size: 0x0000000000000006
|
|
# - Name: init_array
|
|
# Type: STT_OBJECT
|
|
# Section: .init_array
|
|
# Size: 0x0000000000000008
|
|
- Name: .text
|
|
Type: STT_SECTION
|
|
Section: .text
|
|
- Name: .data
|
|
Type: STT_SECTION
|
|
Section: .data
|
|
- Name: .bss
|
|
Type: STT_SECTION
|
|
Section: .bss
|
|
# - Name: .init_array
|
|
# Type: STT_SECTION
|
|
# Section: .init_array
|
|
- Name: .comment
|
|
Type: STT_SECTION
|
|
Section: .comment
|
|
- Name: .note.GNU-stack
|
|
Type: STT_SECTION
|
|
Section: .note.GNU-stack
|
|
- Name: .eh_frame
|
|
Type: STT_SECTION
|
|
Section: .eh_frame
|
|
Global:
|
|
- Name: main
|
|
Type: STT_FUNC
|
|
Section: .text
|
|
Size: 0x0000000000000012
|
|
...
|