diff options
| author | Rich Felker <dalias@aerifal.cx> | 2013-07-10 16:58:27 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2013-07-10 16:58:27 -0400 | 
| commit | c07da2e9704d2ba95efa34a4fde2747d973b4e4c (patch) | |
| tree | 814e020ffae9e24e6f23280d5e826ad6935bd71b /crt/arm/Scrt1.s | |
| parent | 3e8806b4f7f25f7c249f61f597d3a113f531a059 (diff) | |
| download | musl-c07da2e9704d2ba95efa34a4fde2747d973b4e4c.tar.gz | |
add PIE support for ARM
Diffstat (limited to 'crt/arm/Scrt1.s')
| -rw-r--r-- | crt/arm/Scrt1.s | 30 | 
1 files changed, 30 insertions, 0 deletions
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)  | 
