summaryrefslogtreecommitdiff
path: root/crt/arm/crtn.s
AgeCommit message (Collapse)AuthorLines
2013-02-03fix regression that made shared libs crash on armRich Felker-0/+2
2012-12-07add support for ctors/dtors on arm with modern gccRich Felker-2/+20
a while back, gcc switched from using the old _init/_fini fragments method for calling ctors and dtors on arm to the __init_array and __fini_array method. unfortunately, on glibc this depends on ugly hacks involving making libc.so a linker script and pulling parts of libc into the main program binary. so I cheat a little bit, and just write asm to iterate over the init/fini arrays from the _init/_fini asm. the same approach could be used on any arch it's needed on, but for now arm is the only one.
2012-06-25fix arm crti/crtn codeRich Felker-0/+2
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).
2012-02-06add support for init/finit (constructors and destructors)Rich Felker-0/+9
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.