summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/powerpc/crt1.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/powerpc/crt1.S')
-rw-r--r--libc/sysdeps/linux/powerpc/crt1.S7
1 files changed, 5 insertions, 2 deletions
diff --git a/libc/sysdeps/linux/powerpc/crt1.S b/libc/sysdeps/linux/powerpc/crt1.S
index 8798849b3..4f1494a8f 100644
--- a/libc/sysdeps/linux/powerpc/crt1.S
+++ b/libc/sysdeps/linux/powerpc/crt1.S
@@ -74,8 +74,11 @@ _start:
lwz r4,0(r9)
/* find argv one word offset from the stack pointer */
addi r5,r9,4
- mr r8,r3 /* Pass _dl_fini from ldso or NULL if statically linked
- Note: using r3 instead of r7, since linux 2.6 clobbers r7 */
+ mr r8,r3 /* Pass _dl_fini from ldso or NULL if statically linked */
+ /* Note: PPC depends on the kernel to zero r3 before */
+ /* handing over to user space, otherwise static apps */
+ /* will SEGV during exit() */
+
/* Ok, now run uClibc's main() -- shouldn't return */
#ifdef __PIC__
lwz r6,_init@got(r31)