commit a0a2f269223cbdd4ad43ec234304ed80b920a89f
parent 9c890abb26d15ec43a76e5e799390568d71baa29
Author: Dimitris Papastamos <dimitris.papastamos@arm.com>
Date: Wed, 21 Nov 2018 16:37:15 +0000
[arm64] Fixup crt-linux.s
Use kernel provided stack and setup argc, argv and environ as needed.
Change-Id: Iebb619bdd093a83895341ec93ae4614af0132aef
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
Diffstat:
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/arch/arm64/crt-linux.s b/arch/arm64/crt-linux.s
@@ -1,14 +1,16 @@
+ .bss
+ .globl _environ
+_environ:
+ .quad 0
+
.text
.globl _start
_start:
- ldr x0,=stackend
- mov sp,x0
-
+ ldr x0,[sp]
+ add x1,sp,#8
+ add x2,x1,x0,lsl #3
+ add x2,x2,#8
+ adr x3,_environ
+ str x2,[x3]
bl main
b exit
-
- .data
- .align 12
-stack: .space 3072
-stackend:
-bss: .space 4096 - (stackend - stack)