summaryrefslogtreecommitdiffstats
path: root/main/musl/0009-add-PIE-support-for-ARM.patch
blob: 3ced0277a968affc85692b38b6bc000eb854a7ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
From 84934ac8bcebb41ffca1703d97512682069c68ec Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Wed, 10 Jul 2013 16:58:27 -0400
Subject: [PATCH 9/9] add PIE support for ARM

---
 crt/arm/Scrt1.s | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 crt/arm/Scrt1.s

diff --git a/crt/arm/Scrt1.s b/crt/arm/Scrt1.s
new file mode 100644
index 0000000..a54859a
--- /dev/null
+++ b/crt/arm/Scrt1.s
@@ -0,0 +1,30 @@
+.weak _init
+.weak _fini
+.global _start
+_start:
+	mov fp,#0
+	mov lr,#0
+
+	ldr a2,[sp],#4
+	mov a3,sp
+	str fp,[sp,#-4]!
+	str a1,[sp,#-4]!
+
+	adr ip,2f
+	ldr a4,2f+4
+	add a4,a4,ip
+	str a4,[sp,#-4]!
+	ldr a4,2f+8
+	add a4,a4,ip
+
+	ldr a1,2f
+	add ip,ip,a1
+	ldr a1,2f+12
+	ldr a1,[ip,a1]
+
+	bl __libc_start_main(PLT)
+1:	b 1b
+2:	.word _GLOBAL_OFFSET_TABLE_-2b
+	.word _fini-2b
+	.word _init-2b
+	.word main(GOT)
-- 
1.8.3.2