[patch] ARM stack alignment

Paul Brook paul at codesourcery.com
Sat Dec 23 11:08:31 UTC 2006


The patch below tweaks the ARM nommu startup code so that doubleword stack 
alignment is preserved.  This is required on EABI targets.

Paul

Index: libc/sysdeps/linux/arm/crt1.S
===================================================================
--- libc/sysdeps/linux/arm/crt1.S	(revision 17022)
+++ libc/sysdeps/linux/arm/crt1.S	(working copy)
@@ -119,9 +119,10 @@ _start:
 	 * uClinux/arm stacks look a little different from normal
 	 * MMU-full Linux/arm stacks (for no good reason)
 	 */
-	/* pull argc and argv off the stack */
-	ldr a2, [sp, #0]
-	ldr a3, [sp, #4]
+	/* pull argc and argv off the stack.  We are going to push 3
+	 * arguments, so pop one here to maintain doubleword alignment.  */
+	ldr a2, [sp], #4
+	ldr a3, [sp]
 #endif
 
 	/* Push stack limit */



More information about the uClibc mailing list