[uClibc-cvs] CVS uClibc/libc/sysdeps/linux/powerpc

CVS User jocke jocke at codepoet.org
Wed Nov 17 12:29:10 UTC 2004


Update of /var/cvs/uClibc/libc/sysdeps/linux/powerpc
In directory nail:/tmp/cvs-serv26374

Modified Files:
	crt0.S 
Log Message:
Make __builtin_return_address() return NULL at top of
stack frame. This will make backtracing possible.


--- /var/cvs/uClibc/libc/sysdeps/linux/powerpc/crt0.S	2004/08/30 11:37:47	1.11
+++ /var/cvs/uClibc/libc/sysdeps/linux/powerpc/crt0.S	2004/11/17 12:29:10	1.12
@@ -50,6 +50,10 @@
 _start:
 	/* Save the stack pointer, in case we're statically linked under Linux.  */
 	mr	r9,r1
+#if defined L_Scrt0 || defined L_Scrt1
+	bl	_GLOBAL_OFFSET_TABLE_-4 at local
+	mflr	r31
+#endif
 	/* Set up an initial stack frame, and clear the LR.  */
 	clrrwi	r1,r1,4
 	li	r0,0
@@ -66,28 +70,24 @@
 	addi	r5,r5,1
 	rlwinm	r5,r5,2,0,29
 	add	r5,r5,r4
-#if defined L_Scrt0 || defined L_Scrt1
-	bl	_GLOBAL_OFFSET_TABLE_-4 at local
-	mflr	r31
-#endif
 	/* Ok, now run uClibc's main() -- shouldn't return */
 #if (defined L_crt1 || defined L_Scrt1) && defined __UCLIBC_CTOR_DTOR__
 # ifdef L_Scrt1
 	lwz	r6,_init at got(r31)
 	lwz	r7,_fini at got(r31)
-	bl	__uClibc_start_main at plt
+	b	__uClibc_start_main at plt
 # else
 	lis     r6,_init at ha	# load top 16 bits
 	addi    r6,r6,_init at l	# load bottom 16 bits
 	lis     r7,_fini at ha	# load top 16 bits of &msg
 	addi    r7,r7,_fini at l	# load bottom 16 bits
-	bl	__uClibc_start_main
+	b	__uClibc_start_main
 # endif
 #else
 # ifdef L_Scrt0
-	bl	__uClibc_main at plt
+	b	__uClibc_main at plt
 # else
-	bl	__uClibc_main
+	b	__uClibc_main
 # endif
 #endif
 .size _start,.-_start



More information about the uClibc-cvs mailing list