# Check success and failure cases of R_AARCH64_32 handling.
# This file contains a single R_AARCH64_ABS32 relocation. We expect the
# relocation to apply successfully when we assign x an address in the low
# 32-bits of the address space, and fail if we assign x an address outside that
# range.
# RUN: yaml2obj -o %t.o %s
# RUN: llvm-jitlink -abs x=0x12345678 -noexec -check=%s %t.o
# RUN: not llvm-jitlink -abs x=0x123456789 -noexec %t.o 2>&1 | \
# RUN: FileCheck -check-prefix=CHECK-ERROR %s
# jitlink-check: *{8}xptr = x
# CHECK-ERROR: relocation target "x" {{.*}} is out of range of Pointer32 fixup
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_AARCH64
SectionHeaderStringTable: .strtab
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
AddressAlign: 0x4
Content: E0031F2AC0035FD6
- Name: .data
Type: SHT_PROGBITS
Flags: [ SHF_WRITE, SHF_ALLOC ]
AddressAlign: 0x8
Content: '0000000000000000'
- Name: .comment
Type: SHT_PROGBITS
Flags: [ SHF_MERGE, SHF_STRINGS ]
AddressAlign: 0x1
EntSize: 0x1
Content: 00636C616E672076657273696F6E2031372E302E30202868747470733A2F2F6769746875622E636F6D2F6C6C766D2F6C6C766D2D70726F6A6563742E67697420333130616161633834363336656336633933383739633138643933653332663537623264383938362900
- Name: .note.GNU-stack
Type: SHT_PROGBITS
AddressAlign: 0x1
- Name: .rela.data
Type: SHT_RELA
Flags: [ SHF_INFO_LINK ]
Link: .symtab
AddressAlign: 0x8
Info: .data
Relocations:
- Symbol: x
Type: R_AARCH64_ABS32
- Name: .llvm_addrsig
Type: SHT_LLVM_ADDRSIG
Flags: [ SHF_EXCLUDE ]
Link: .symtab
AddressAlign: 0x1
Symbols: [ x ]
- Type: SectionHeaderTable
Sections:
- Name: .strtab
- Name: .text
- Name: .data
- Name: .rela.data
- Name: .comment
- Name: .note.GNU-stack
- Name: .llvm_addrsig
- Name: .symtab
Symbols:
- Name: hw.c
Type: STT_FILE
Index: SHN_ABS
- Name: '$x.0'
Section: .text
- Name: '$d.1'
Section: .data
- Name: '$d.2'
Section: .comment
- Name: main
Type: STT_FUNC
Section: .text
Binding: STB_GLOBAL
Size: 0x8
- Name: xptr
Type: STT_OBJECT
Section: .data
Binding: STB_GLOBAL
Size: 0x8
- Name: x
Binding: STB_GLOBAL
...