mirror of https://git.musl-libc.org/git/musl
Browse Source
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).rs-1.0
2 changed files with 4 additions and 0 deletions
@ -1,7 +1,9 @@ |
|||
.section .init |
|||
.global _init |
|||
_init: |
|||
push {lr} |
|||
|
|||
.section .fini |
|||
.global _fini |
|||
_fini: |
|||
push {lr} |
|||
|
|||
@ -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 |
|||
|
|||
Loading…
Reference in new issue