.macro define,name | |
.type \name,%gnu_indirect_function | |
\name: | |
mov pc,lr | |
.size \name,.-\name | |
.endm | |
.macro test_relocs,name | |
bl \name | |
ldr r4,1f | |
ldr r4,2f | |
ldr r4,3f | |
ldr r4,4f | |
ldr r5,5f | |
1: | |
.word \name | |
2: | |
.word \name-. | |
3: | |
.word \name(GOTOFF) | |
4: | |
.word \name(GOT) | |
5: | |
.word \name(GOT_PREL) | |
.endm | |
.global f3 | |
.hidden f3 | |
define f1 | |
# f2 provided by ifunc-3.so | |
define f3 | |
.globl _start | |
_start: | |
test_relocs foo | |
test_relocs f1 | |
test_relocs f2 | |
test_relocs f3 | |
.size _start,.-_start | |
.data | |
foo: | |
.word 0x11223344 |