xref: /llvm-project/lld/test/ELF/systemz-reloc-gotrel.s (revision fe3406e349884e4ef61480dd0607f1e237102c74)
1# REQUIRES: systemz
2# RUN: llvm-mc -filetype=obj -triple=s390x-unknown-linux %s -o %t.o
3# RUN: ld.lld -shared %t.o -soname=t.so -o %t.so
4
5# RUN: llvm-readelf -S -s -x .data %t.so | FileCheck %s
6
7# CHECK: Section Headers:
8# CHECK: .plt PROGBITS 0000000000001290
9# CHECK: .got PROGBITS 0000000000002390
10
11# CHECK: Symbol table '.symtab'
12# CHECK: 0000000000001288 {{.*}}  bar
13
14## Note: foo is the first (and only) PLT entry, which resides at .plt + 32
15## PLTOFF (foo) is (.plt + 32) - .got == 0x12b0 - 0x2390 == 0xffffef20
16## GOTOFF (bar) is bar - .got == 0x1288 - 0x2390 == 0xffffeef8
17# CHECK: Hex dump of section '.data':
18# CHECK-NEXT: eef8ef20 ffffeef8 ffffef20 ffffffff
19# CHECK-NEXT: ffffeef8 ffffffff ffffef20
20
21bar:
22  br %r14
23
24.data
25.reloc ., R_390_GOTOFF16, bar
26.space 2
27.reloc ., R_390_PLTOFF16, foo
28.space 2
29.reloc ., R_390_GOTOFF, bar
30.space 4
31.reloc ., R_390_PLTOFF32, foo
32.space 4
33.reloc ., R_390_GOTOFF64, bar
34.space 8
35.reloc ., R_390_PLTOFF64, foo
36.space 8
37