瀏覽代碼

add PIE support for ARM

Rich Felker 11 年之前
父節點
當前提交
c07da2e970
共有 1 個文件被更改,包括 30 次插入0 次删除
  1. 30 0
      crt/arm/Scrt1.s

+ 30 - 0
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)