mirror of
https://github.com/fluencelabs/musl
synced 2025-06-01 09:01:40 +00:00
this is mainly in hopes of supporting c++ (not yet possible for other reasons) but will also help applications/libraries which use (and more often, abuse) the gcc __attribute__((__constructor__)) feature in "C" code. x86_64 and arm versions of the new startup asm are untested and may have minor problems.
23 lines
310 B
ArmAsm
23 lines
310 B
ArmAsm
.weak _init
|
|
.weak _fini
|
|
.text
|
|
.global _start
|
|
_start:
|
|
xorl %ebp,%ebp
|
|
popl %ecx
|
|
movl %esp,%eax
|
|
andl $-16,%esp
|
|
pushl %esp
|
|
pushl %esp
|
|
pushl %edx
|
|
call 1f
|
|
1: addl $[_fini-.],(%esp)
|
|
call 1f
|
|
1: addl $[_init-.],(%esp)
|
|
pushl %eax
|
|
pushl %ecx
|
|
call 1f
|
|
1: addl $[main-.],(%esp)
|
|
call __libc_start_main
|
|
1: jmp 1b
|