Procházet zdrojové kódy

stack_end in __uClibc_main must point to where argc is.

Joakim Tjernlund před 19 roky
rodič
revize
8ccf1631d3
1 změnil soubory, kde provedl 3 přidání a 4 odebrání
  1. 3 4
      libc/sysdeps/linux/powerpc/crt1.S

+ 3 - 4
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__