62 lines
2 KiB
YAML
62 lines
2 KiB
YAML
# RUN: yaml2obj %s -o %t
|
|
# RUN: lldb-test object-file -contents %t | FileCheck %s
|
|
|
|
## Test that R_ARM_ABS32 relocations are resolved in .debug_info sections on aarch32.
|
|
## REL-type relocations store implicit addend as signed values inline.
|
|
## We relocate the symbol foo with 4 different addends and bar once in the .debug_info section.
|
|
## Results that exceed the 32-bit range or overflow are logged and ignored.
|
|
|
|
# CHECK: Name: .debug_info
|
|
# CHECK: Data: (
|
|
#
|
|
# Addends: Zero Positive Negative Overflow Out-of-range
|
|
# 00000000 04030201 D6FFFFFF D5FFFFFF FFFFFF7F
|
|
# CHECK-NEXT: 0000: 2A000000 2E030201 00000000 D5FFFFFF FFFFFF7F
|
|
# CHECK-NEXT: )
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS32
|
|
Data: ELFDATA2LSB
|
|
Type: ET_REL
|
|
Machine: EM_ARM
|
|
Flags: [ EF_ARM_EABI_VER5 ]
|
|
Sections:
|
|
- Name: .text
|
|
Type: SHT_PROGBITS
|
|
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
|
|
- Name: .debug_info
|
|
Type: SHT_PROGBITS
|
|
Content: 0000000004030201D6FFFFFFD5FFFFFFFFFFFF7F
|
|
- Name: .rel.debug_info
|
|
Type: SHT_REL
|
|
Info: .debug_info
|
|
Relocations:
|
|
- Offset: 0x0
|
|
Symbol: foo
|
|
Type: R_ARM_ABS32
|
|
- Offset: 0x4
|
|
Symbol: foo
|
|
Type: R_ARM_ABS32
|
|
- Offset: 0x8
|
|
Symbol: foo
|
|
Type: R_ARM_ABS32
|
|
- Offset: 0xC
|
|
Symbol: foo
|
|
Type: R_ARM_ABS32
|
|
- Offset: 0x10
|
|
Symbol: bar
|
|
Type: R_ARM_ABS32
|
|
Symbols:
|
|
- Name: .debug_info
|
|
Type: STT_SECTION
|
|
Section: .debug_info
|
|
- Name: foo
|
|
Type: STT_FUNC
|
|
Section: .debug_info
|
|
Value: 0x0000002A
|
|
- Name: bar
|
|
Type: STT_FUNC
|
|
Section: .debug_info
|
|
Value: 0xFF000000
|
|
...
|