From 1c8eb8bad791fe9d01d0d4ab77882db634fa933d Mon Sep 17 00:00:00 2001 From: rofl0r Date: Fri, 9 Nov 2012 23:36:55 +0100 Subject: PPC port cleaned up, static linking works well now. --- crt/powerpc/crt1.s | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 crt/powerpc/crt1.s (limited to 'crt/powerpc') diff --git a/crt/powerpc/crt1.s b/crt/powerpc/crt1.s new file mode 100644 index 00000000..7025430c --- /dev/null +++ b/crt/powerpc/crt1.s @@ -0,0 +1,26 @@ + .weak _init + .weak _fini + .global _start + .type _start, %function +_start: + mr 9, 1 # Save the original stack pointer. + clrrwi 1, 1, 4 # Align the stack to 16 bytes. + lis 13, _SDA_BASE_@ha # r13 points to the small data area. + addi 13, 13, _SDA_BASE_@l + li 0, 0 # Zero the frame pointer. + stwu 1, -16(1) # The initial stack frame. + mtlr 0 # Clear the link register. + stw 0, 0(1) # And save it. + lis 3, main@ha # Get main() ... + addi 3, 3, main@l + lwz 4, 0(9) # and argc... + addi 5, 9, 4 # and argv ... + lis 6, _init@ha # and _init() ... + addi 6, 6, _init@l + lis 7, _fini@ha # and _fini() ... + addi 7, 7, _fini@l + li 8, 0 # ldso_fini == NULL + bl __libc_start_main # Let's go! + b . # Never gets here. + .end _start + .size _start, .-_start -- cgit v1.2.1