Align libgloss/arm and libc/sys/arm sources: Lite exit support
Applied changes from commit 2404223: * arm/crt0.S (_mainCRTStartup): Weak reference to atexit and _fini when lite exit is enabled.
This commit is contained in:
parent
dfffe68303
commit
bd5596f4fd
|
@ -518,8 +518,17 @@ __change_mode:
|
||||||
for _fini to be called at program exit. */
|
for _fini to be called at program exit. */
|
||||||
movs r4, r0
|
movs r4, r0
|
||||||
movs r5, r1
|
movs r5, r1
|
||||||
|
#ifdef _LITE_EXIT
|
||||||
|
/* Make reference to atexit weak to avoid unconditionally pulling in
|
||||||
|
support code. Refer to comments in __atexit.c for more details. */
|
||||||
|
.weak FUNCTION(atexit)
|
||||||
|
ldr r0, .Latexit
|
||||||
|
cmp r0, #0
|
||||||
|
beq .Lweak_atexit
|
||||||
|
#endif
|
||||||
ldr r0, .Lfini
|
ldr r0, .Lfini
|
||||||
bl FUNCTION (atexit)
|
bl FUNCTION (atexit)
|
||||||
|
.Lweak_atexit:
|
||||||
bl FUNCTION (_init)
|
bl FUNCTION (_init)
|
||||||
movs r0, r4
|
movs r0, r4
|
||||||
movs r1, r5
|
movs r1, r5
|
||||||
|
@ -589,6 +598,13 @@ change_back:
|
||||||
.LC2:
|
.LC2:
|
||||||
.word __bss_end__
|
.word __bss_end__
|
||||||
#ifdef __USES_INITFINI__
|
#ifdef __USES_INITFINI__
|
||||||
|
#ifdef _LITE_EXIT
|
||||||
|
.Latexit:
|
||||||
|
.word FUNCTION(atexit)
|
||||||
|
|
||||||
|
/* Weak reference _fini in case of lite exit. */
|
||||||
|
.weak FUNCTION(_fini)
|
||||||
|
#endif
|
||||||
.Lfini:
|
.Lfini:
|
||||||
.word FUNCTION(_fini)
|
.word FUNCTION(_fini)
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue