about summary refs log tree commit diff
path: root/crt/arm/crti.s
Commit message (Collapse)AuthorAgeFilesLines
* add function types to arm crt assemblyRich Felker2013-08-151-0/+2
| | | | | | | | | without these, calls may be resolved incorrectly if the calling code has been compiled to thumb instead of arm. it's not clear to me at this point whether crt_arch.h is even working if crt1.c is built as thumb; this needs testing. but the _init and _fini issues were known to cause crashes in static-linked apps when libc was built as thumb, and this commit should fix that issue.
* remove init/fini array asm from arm crti/crtn filesRich Felker2013-07-211-22/+2
| | | | | 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.
* fix regression that made shared libs crash on armRich Felker2013-02-031-0/+2
|
* add support for ctors/dtors on arm with modern gccRich Felker2012-12-071-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.
* fix arm crti/crtn codeRich Felker2012-06-251-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).
* add support for init/finit (constructors and destructors)Rich Felker2012-02-061-0/+7
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.