forked from OSchip/llvm-project
47 lines
1.5 KiB
Plaintext
47 lines
1.5 KiB
Plaintext
# REQUIRES: x86
|
|
|
|
# RUN: yaml2obj %s -o %t.o
|
|
# RUN: not ld.lld %t.o -o %t.exe 2>&1 | FileCheck --check-prefix=ERR %s
|
|
# ERR: R_X86_64_GOTTPOFF must be used in MOVQ or ADDQ instructions only
|
|
# ERR: R_X86_64_GOTTPOFF must be used in MOVQ or ADDQ instructions only
|
|
|
|
## YAML below contains 2 relocations of type R_X86_64_GOTTPOFF, and a .text
|
|
## with fake content filled by 0xFF. That means instructions for relaxation are
|
|
## "broken", so they does not match any known valid relaxations. We also generate
|
|
## .tls section because we need it for correct proccessing of STT_TLS symbol.
|
|
!ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
OSABI: ELFOSABI_FREEBSD
|
|
Type: ET_REL
|
|
Machine: EM_X86_64
|
|
Sections:
|
|
- Type: SHT_PROGBITS
|
|
Name: .text
|
|
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
|
|
AddressAlign: 0x04
|
|
Content: "FFFFFFFFFFFFFFFF"
|
|
- Type: SHT_PROGBITS
|
|
Name: .tls
|
|
Flags: [ SHF_ALLOC, SHF_TLS ]
|
|
- Type: SHT_REL
|
|
Name: .rel.text
|
|
Link: .symtab
|
|
Info: .text
|
|
AddressAlign: 0x04
|
|
Relocations:
|
|
- Offset: 4
|
|
Symbol: foo
|
|
Type: R_X86_64_GOTTPOFF
|
|
- Offset: 4
|
|
Symbol: foo
|
|
Type: R_X86_64_GOTTPOFF
|
|
Symbols:
|
|
- Name: foo
|
|
Type: STT_TLS
|
|
Section: .text
|
|
Value: 0x12345
|
|
Size: 4
|
|
Binding: STB_GLOBAL
|
|
|