1 .macro define,name 2 .text 3 .type \name,%gnu_indirect_function 4 \name: 5 mov pc,lr 6 .size \name,.-\name 7 .endm 8 9 .macro test_relocs,name 10 bl \name(PLT) 11 ldr r4,1f 12 ldr r4,2f 13 1: 14 .word \name(GOT) 15 2: 16 .word \name(GOT_PREL) 17 18 .data 19 .word \name 20 .word \name - . 21 .text 22 .endm 23 24 .globl f2 25 26 .globl f3 27 .hidden f3 28 29 .globl f4 30 .protected f4 31 32 define f1 33 define f2 34 define f3 35 define f4 36 37 .data 38 foo: 39 .word 0x11223344 40 41 .text 42 .globl arm 43 arm: 44 test_relocs foo 45 test_relocs f1 46 test_relocs f2 47 test_relocs f3 48 test_relocs f4 49 .size arm,.-arm 50