1 .macro define,name 2 .type \name,%gnu_indirect_function 3\name: 4 mov pc,lr 5 .size \name,.-\name 6 .endm 7 8 .macro test_relocs,name 9 bl \name 10 ldr r4,1f 11 ldr r4,2f 12 ldr r4,3f 13 ldr r4,4f 14 ldr r5,5f 151: 16 .word \name 172: 18 .word \name-. 193: 20 .word \name(GOTOFF) 214: 22 .word \name(GOT) 235: 24 .word \name(GOT_PREL) 25 .endm 26 27 .global f2 28 29 .global f3 30 .hidden f3 31 32 define f1 33 define f2 34 define f3 35 36 .globl _start 37_start: 38 test_relocs foo 39 test_relocs f1 40 test_relocs f2 41 test_relocs f3 42 .size _start,.-_start 43 44 .data 45foo: 46 .word 0x11223344 47 .word __irel_start 48 .word __irel_end 49