diff options
| -rw-r--r-- | libc/sysdeps/linux/powerpc/crt1.S | 7 | 
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) | 
