summaryrefslogtreecommitdiff
path: root/arch/arm/crt_arch.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/crt_arch.h')
-rw-r--r--arch/arm/crt_arch.h25
1 files changed, 15 insertions, 10 deletions
diff --git a/arch/arm/crt_arch.h b/arch/arm/crt_arch.h
index bed99c27..d1f9a662 100644
--- a/arch/arm/crt_arch.h
+++ b/arch/arm/crt_arch.h
@@ -1,10 +1,15 @@
-__asm__("\
-.global _start \n\
-.type _start,%function \n\
-_start: \n\
- mov fp, #0 \n\
- mov lr, #0 \n\
- mov a1, sp \n\
- and sp, sp, #-16 \n\
- bl __cstart \n\
-");
+__asm__(
+".global " START " \n"
+".type " START ",%function \n"
+START ": \n"
+" mov fp, #0 \n"
+" mov lr, #0 \n"
+" mov a1, sp \n"
+" ldr a2, 1f \n"
+"2: add a2, pc, a2 \n"
+" and sp, sp, #-16 \n"
+" bl " START "_c \n"
+".weak _DYNAMIC \n"
+".hidden _DYNAMIC \n"
+"1: .word _DYNAMIC-2b-8 \n"
+);