blob: 2bb968d4afa9ab222fd9d0694d528a25665b14aa [file] [log] [blame]
/// Test that R_ARM_SBREL32 relocations in debug info are relocated as if the
/// static base register (r9) is zero. Real DWARF info will use an expression to
/// add this to the real value of the static base at runtime.
// REQUIRES: arm
// RUN: rm -rf %t && split-file %s %t && cd %t
// RUN: llvm-mc -filetype=obj -triple=armv7a asm.s -o obj.o
// RUN: ld.lld -T lds.ld obj.o -o exe.elf 2>&1 | FileCheck %s --implicit-check-not=warning: --allow-empty
// RUN: llvm-objdump -D exe.elf | FileCheck --check-prefix=DISASM %s
// DISASM-LABEL: <rw>:
// DISASM-NEXT: 1000: 0000002a
// DISASM-LABEL: <rw2>:
// DISASM-NEXT: 2000: 000004d2
// DISASM-LABEL: <.debug_something>:
// DISASM-NEXT: 0: 00001000
// DISASM-NEXT: ...
// DISASM-NEXT: 104: 00002000
//--- lds.ld
SECTIONS {
data1 0x1000 : { *(data1) }
data2 0x2000 : { *(data2) }
}
//--- asm.s
.text
.type _start,%function
.globl _start
_start:
bx lr
.size _start, .-_start
.section data1, "aw", %progbits
.type rw,%object
.globl rw
rw:
.long 42
.size rw, 4
.section data2, "aw", %progbits
.type rw2,%object
.globl rw2
rw2:
.long 1234
.size rw2, 4
.section .debug_something, "", %progbits
.long rw(sbrel)
.space 0x100
.long rw2(sbrel)