add PIE support for ARM
[musl] / crt / arm / Scrt1.s
1 .weak _init
2 .weak _fini
3 .global _start
4 _start:
5         mov fp,#0
6         mov lr,#0
7
8         ldr a2,[sp],#4
9         mov a3,sp
10         str fp,[sp,#-4]!
11         str a1,[sp,#-4]!
12
13         adr ip,2f
14         ldr a4,2f+4
15         add a4,a4,ip
16         str a4,[sp,#-4]!
17         ldr a4,2f+8
18         add a4,a4,ip
19
20         ldr a1,2f
21         add ip,ip,a1
22         ldr a1,2f+12
23         ldr a1,[ip,a1]
24
25         bl __libc_start_main(PLT)
26 1:      b 1b
27 2:      .word _GLOBAL_OFFSET_TABLE_-2b
28         .word _fini-2b
29         .word _init-2b
30         .word main(GOT)