From c07da2e9704d2ba95efa34a4fde2747d973b4e4c Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 10 Jul 2013 16:58:27 -0400 Subject: add PIE support for ARM --- crt/arm/Scrt1.s | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 crt/arm/Scrt1.s (limited to 'crt') diff --git a/crt/arm/Scrt1.s b/crt/arm/Scrt1.s new file mode 100644 index 00000000..a54859aa --- /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) -- cgit v1.2.1