tile: align stack for tilegx32
authorChris Metcalf <cmetcalf@tilera.com>
Mon, 14 May 2012 19:03:46 +0000 (15:03 -0400)
committerChris Metcalf <cmetcalf@tilera.com>
Mon, 14 May 2012 19:46:13 +0000 (15:46 -0400)
Previously we weren't re-aligning the stack pointer during the
call to _dl_init(), so for tilegx32 and an odd value in _dl_skip_args
and kernel unaligned access fixups disabled, we would die with SIGBUS.
We now handle this case properly by aligning before calling _dl_init().

ChangeLog.tile
sysdeps/tile/dl-start.S

index 6bde168..9e75826 100644 (file)
@@ -1,3 +1,7 @@
+2012-05-14  Chris Metcalf  <cmetcalf@tilera.com>
+
+       * sysdeps/tile/dl-start.S: Align stack for tilegx32.
+
 2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
 
        * sysdeps/unix/sysv/linux/tile/sys/dataplane.h: Add <features.h>.
index 94025a5..97cdac3 100644 (file)
@@ -77,6 +77,7 @@ ENTRY (_start)
         ST_PTR r52, r0
         SHL_PTR_ADD sp, r4, sp
        }
+       andi sp, sp, -8
 
 .Lno_skip:
        /* Call_dl_init (_dl_loaded, argc, argv, envp).  See elf/start.s