From 8ccf1631d32e06e4ca17a784f7a16041e03b61f4 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Sun, 26 Jun 2005 00:11:34 +0000 Subject: stack_end in __uClibc_main must point to where argc is. --- libc/sysdeps/linux/powerpc/crt1.S | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libc/sysdeps/linux/powerpc/crt1.S b/libc/sysdeps/linux/powerpc/crt1.S index a97b0d142..eef12faf0 100644 --- a/libc/sysdeps/linux/powerpc/crt1.S +++ b/libc/sysdeps/linux/powerpc/crt1.S @@ -40,9 +40,8 @@ .type __uClibc_main,%function _start: - mr r10,r1 /* Save the stack pointer */ + mr r9,r1 /* Save the stack pointer and pass it to __uClibc_main */ clrrwi r1,r1,4 /* Align stack ptr to 16 bytes */ - mr r9,r1 /* Pass aligned stack ptr */ #ifdef __PIC__ bl _GLOBAL_OFFSET_TABLE_-4@local mflr r31 @@ -53,9 +52,9 @@ _start: mtlr r0 stw r0,0(r1) /* find argc from the stack pointer */ - lwz r4,0(r10) + lwz r4,0(r9) /* find argv one word offset from the stack pointer */ - addi r5,r10,4 + addi r5,r9,4 mr r8,r7 /* Pass _dl_fini from ldso or NULL if statically linked */ /* Ok, now run uClibc's main() -- shouldn't return */ #ifdef __PIC__ -- cgit v1.2.3