Browse Source

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).
rs-1.0
Rich Felker 14 years ago
parent
commit
9abab94b21
  1. 2
      crt/arm/crti.s
  2. 2
      crt/arm/crtn.s

2
crt/arm/crti.s

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

2
crt/arm/crtn.s

@ -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…
Cancel
Save