musl/crt/arm/crt1.s
Rich Felker badaa04acc add function types to arm crt assembly
without these, calls may be resolved incorrectly if the calling code
has been compiled to thumb instead of arm. it's not clear to me at
this point whether crt_arch.h is even working if crt1.c is built as
thumb; this needs testing. but the _init and _fini issues were known
to cause crashes in static-linked apps when libc was built as thumb,
and this commit should fix that issue.
2013-08-15 14:52:27 -04:00

18 lines
247 B
ArmAsm

.weak _init
.weak _fini
.global _start
.type _start,%function
_start:
mov fp,#0
mov lr,#0
ldr a2,[sp],#4
mov a3,sp
ldr a4,=_fini
str fp,[sp,#-4]!
str a1,[sp,#-4]!
str a4,[sp,#-4]!
ldr a4,=_init
ldr a1,=main
bl __libc_start_main
1: b 1b