|
13 | 13 | // .relr.dyn
|
14 | 14 | # RUN: %clang %cflags -fPIC -pie %t.o -o %t.relr.exe -nostdlib \
|
15 | 15 | # RUN: -Wl,-q -Wl,-z,notext -Wl,--pack-dyn-relocs=relr
|
| 16 | +# RUN: llvm-objcopy --remove-section .rela.mytext %t.relr.exe |
16 | 17 | # RUN: llvm-bolt %t.relr.exe -o %t.relr.bolt --use-old-text=0 --lite=0
|
17 | 18 | # RUN: llvm-objdump -j .text -d --show-all-symbols %t.relr.bolt | FileCheck %s
|
| 19 | +# RUN: llvm-objdump -j .text -d %t.relr.bolt | \ |
| 20 | +# RUN: FileCheck %s --check-prefix=ADDENDCHECK |
18 | 21 | # RUN: llvm-readelf -rsW %t.relr.bolt | FileCheck --check-prefix=ELFCHECK %s
|
19 | 22 | # RUN: llvm-readelf -SW %t.relr.bolt | FileCheck --check-prefix=RELRSZCHECK %s
|
20 | 23 |
|
|
30 | 33 | # CHECK-NEXT: {{.*}} .word 0x{{[0]+}}[[#ADDR]]
|
31 | 34 | # CHECK-NEXT: {{.*}} .word 0x00000000
|
32 | 35 |
|
| 36 | +// Check that addend was properly patched in mytextP with stripped relocations |
| 37 | +# ADDENDCHECK: [[#%x,ADDR:]] <exitLocal>: |
| 38 | +# ADDENDCHECK: {{.*}} <mytextP>: |
| 39 | +# ADDENDCHECK-NEXT: {{.*}} .word 0x{{[0]+}}[[#ADDR]] |
| 40 | +# ADDENDCHECK-NEXT: {{.*}} .word 0x00000000 |
33 | 41 |
|
34 | 42 | // Check that we've relaxed adr to adrp + add to refer external CI
|
35 | 43 | # CHECK: <addressDynCi>:
|
|
40 | 48 | # ELFCHECK: [[#%x,OFF:]] [[#%x,INFO_DYN:]] R_AARCH64_RELATIVE
|
41 | 49 | # ELFCHECK-NEXT: [[#OFF + 8]] {{0*}}[[#INFO_DYN]] R_AARCH64_RELATIVE
|
42 | 50 | # ELFCHECK-NEXT: [[#OFF + 24]] {{0*}}[[#INFO_DYN]] R_AARCH64_RELATIVE
|
| 51 | +# ELFCHECK-NEXT: {{.*}} R_AARCH64_RELATIVE |
43 | 52 | # ELFCHECK: {{.*}}[[#OFF]] {{.*}} $d
|
44 | 53 |
|
45 |
| -// Check that .relr.dyn size is 2 bytes to ensure that last 2 relocations were |
| 54 | +// Check that .relr.dyn size is 2 bytes to ensure that last 3 relocations were |
46 | 55 | // encoded as a bitmap so the total section size for 3 relocations is 2 bytes.
|
47 | 56 | # RELRSZCHECK: .relr.dyn RELR [[#%x,ADDR:]] [[#%x,OFF:]] {{0*}}10
|
48 | 57 |
|
@@ -81,3 +90,17 @@ addressDynCi:
|
81 | 90 | adr x1, .Lci
|
82 | 91 | bl _start
|
83 | 92 | .size addressDynCi, .-addressDynCi
|
| 93 | + |
| 94 | + .section ".mytext", "ax" |
| 95 | + .balign 8 |
| 96 | + .global dummy |
| 97 | + .type dummy, %function |
| 98 | +dummy: |
| 99 | + nop |
| 100 | + .word 0 |
| 101 | + .size dummy, .-dummy |
| 102 | + |
| 103 | + .global mytextP |
| 104 | +mytextP: |
| 105 | + .xword exitLocal |
| 106 | + .size mytextP, .-mytextP |
0 commit comments