fix arm crti/crtn code

lr must be saved because init/fini-section code from the compiler
clobbers it. this was not a problem when i tested without gcc's
crtbegin/crtend files present, but with them, musl on arm fails to
work (infinite loop in _init).
This commit is contained in:
Rich Felker 2012-06-25 16:06:09 -04:00
parent ec820f1262
commit 9abab94b21
2 changed files with 4 additions and 0 deletions

View File

@ -1,7 +1,9 @@
.section .init
.global _init
_init:
push {lr}
.section .fini
.global _fini
_fini:
push {lr}

View File

@ -1,9 +1,11 @@
.section .init
pop {lr}
tst lr,#1
moveq pc,lr
bx lr
.section .fini
pop {lr}
tst lr,#1
moveq pc,lr
bx lr