Commit Graph

9 Commits

Author SHA1 Message Date
Rich Felker
a6d272127b align stack properly for calling global ctors/dtors on x86[_64]
failure to do so was causing crashes on x86_64 when ctors used SSE,
which was first observed when ctors called variadic functions due to
the SSE prologue code inserted into every variadic function.
2013-06-03 17:32:42 -04:00
Rich Felker
faab12bece consistency cleanup: removed redundant size suffixed from i386 asm 2012-05-02 21:03:25 -04:00
Rich Felker
83023d1b50 PIE support for i386 2012-05-02 21:01:55 -04:00
Rich Felker
c9dea48f84 remove attempts to be pie-compatible from i386 crt1.s
it does not work; after further consideration, a separate Scrt1.s for
pie really is essential. it would be nice if the unified approach
worked, but the linker fails to generate the correct PLT entries and
instead puts textrels in the main program, which don't work because
the kernel maps the text read-only.

new Scrt1.s will be committed soon in place of this.
2012-05-02 20:56:55 -04:00
Rich Felker
4ce3cb5cdd add support for init/finit (constructors and destructors)
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.
2012-02-06 14:39:09 -05:00
Rich Felker
8cd48f0965 cleanup comment cruft in startup code 2011-02-21 22:27:35 -05:00
Rich Felker
e2ee1bdd8d make startup code PIE-compatible 2011-02-21 22:26:31 -05:00
Rich Felker
ba68efc921 shave off 2 bytes from crt1.o _start 2011-02-20 19:07:19 -05:00
Rich Felker
0b44a0315b initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00