From c5e34dabbb47d8e97a4deccbb421e0cd93c0094b Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 26 Jul 2013 01:49:14 -0400 Subject: new mostly-C crt1 implementation the only immediate effect of this commit is enabling PIE support on some archs that did not previously have any Scrt1.s, since the existing asm files for crt1 override this C code. so some of the crt_arch.h files committed are only there for the sake of documenting what their archs "would do" if they used the new C-based crt1. the expectation is that new archs should use this new system rather than using heavy asm for crt1. aside from being easier and less error-prone, it also ensures that PIE support is available immediately (since Scrt1.o is generated from the same C source, using -fPIC) rather than having to be added as an afterthought in the porting process. --- arch/powerpc/crt_arch.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 arch/powerpc/crt_arch.h (limited to 'arch/powerpc') diff --git a/arch/powerpc/crt_arch.h b/arch/powerpc/crt_arch.h new file mode 100644 index 00000000..8cc53d98 --- /dev/null +++ b/arch/powerpc/crt_arch.h @@ -0,0 +1,12 @@ +__asm__("\ +.global _start \n\ +.type _start, %function \n\ +_start: \n\ + mr 3, 1 \n\ + clrrwi 1, 1, 4 \n\ + li 0, 0 \n\ + stwu 1, -16(1) \n\ + mtlr 0 \n\ + stw 0, 0(1) \n\ + bl __cstart \n\ +"); -- cgit v1.2.1