Commit Graph

6 Commits

Author SHA1 Message Date
Rich Felker
6fef8cafbd remove hand-written crt1.s and Scrt1.s files for all archs
since commit c5e34dabbb, crt1.c has
provided a "mostly-C" implementation of the crt1 start file that
avoids the need for arch-specific symbol referencing, PIC/PIE-specific
code variants, etc. but for archs that had existing hand-written
versions, the new code was initially unused, and later only used as
the dynamic linker entry point. this commit switches all archs to
using the new code.

the code being removed was a recurring source of subtle errors, and
was still broken at least on arm, where it failed to properly align
the stack pointer before calling into C code.
2015-10-14 17:08:34 -04:00
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
2be87702b7 remove some junk from x86_64 start files
looks like nik copied these "extra arguments" from the i386 code.
they're not actually arguments there, just 1-byte instructions to
make sure the stack is aligned to 16 bytes after all the other
arguments are pushed. since each push is 8 bytes on x86_64, they
happened to have no effect here, but their presence is confusing and a
minor waste of space.
2012-05-02 21:16:02 -04:00
Rich Felker
94167cafd5 PIE support for x86_64 (untested) 2012-05-02 21:14:41 -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
Nicholas J. Kain
1e12632591 Port musl to x86-64. One giant commit! 2011-02-15 07:32:09 -05:00