mirror of git://git.musl-libc.org/musl
remove init/fini array asm from arm crti/crtn files
this code has been replaced by portable C code that works on all archs. the old asm needs to be removed or ctors/dtors will run twice.
This commit is contained in:
parent
3edfd07073
commit
976c0fdcb5
|
@ -1,29 +1,9 @@
|
|||
.section .init
|
||||
.global _init
|
||||
_init:
|
||||
push {r0,r1,r2,r4,r5,lr}
|
||||
|
||||
.weak __fini_array_start
|
||||
.weak __fini_array_end
|
||||
.hidden __fini_array_start
|
||||
.hidden __fini_array_end
|
||||
push {r0,lr}
|
||||
|
||||
.section .fini
|
||||
.global _fini
|
||||
_fini:
|
||||
push {r4,r5,r6,lr}
|
||||
adr lr, 1f
|
||||
ldr r4, 2f
|
||||
ldr r5, 2f+4
|
||||
add r4, r4, lr
|
||||
add r5, r5, lr
|
||||
1: adr lr, 1b
|
||||
cmp r4, r5
|
||||
beq 3f
|
||||
ldmia r4!, {r3}
|
||||
tst r3,#1
|
||||
moveq pc,r3
|
||||
bx r3
|
||||
2: .word __fini_array_start-1b
|
||||
.word __fini_array_end-1b
|
||||
3:
|
||||
push {r0,lr}
|
||||
|
|
|
@ -1,31 +1,11 @@
|
|||
.weak __init_array_start
|
||||
.weak __init_array_end
|
||||
.hidden __init_array_start
|
||||
.hidden __init_array_end
|
||||
|
||||
.section .init
|
||||
adr lr, 1f
|
||||
ldr r4, 2f
|
||||
ldr r5, 2f+4
|
||||
add r4, r4, lr
|
||||
add r5, r5, lr
|
||||
1: adr lr, 1b
|
||||
cmp r4, r5
|
||||
beq 3f
|
||||
ldmia r4!, {r3}
|
||||
ldm sp, {r0,r1,r2}
|
||||
tst r3,#1
|
||||
moveq pc,r3
|
||||
bx r3
|
||||
3: pop {r0,r1,r2,r4,r5,lr}
|
||||
pop {r0,lr}
|
||||
tst lr,#1
|
||||
moveq pc,lr
|
||||
bx lr
|
||||
2: .word __init_array_start-1b
|
||||
.word __init_array_end-1b
|
||||
|
||||
.section .fini
|
||||
pop {r4,r5,r6,lr}
|
||||
pop {r0,lr}
|
||||
tst lr,#1
|
||||
moveq pc,lr
|
||||
bx lr
|
||||
|
|
Loading…
Reference in New Issue