aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2012-05-14 15:03:46 -0400
committerChris Metcalf <cmetcalf@tilera.com>2012-05-14 15:46:13 -0400
commitbcfe09d24161bdf3b734da2f2fc4692bd26b7f52 (patch)
treea0f92eb1ea02277cad50c31a797067553374139f
parent8927be2b217ad44682efd987e32320ee80c4dbe1 (diff)
downloadglibc-bcfe09d24161bdf3b734da2f2fc4692bd26b7f52.tar.xz
glibc-bcfe09d24161bdf3b734da2f2fc4692bd26b7f52.zip
tile: align stack for tilegx32
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().
-rw-r--r--ChangeLog.tile4
-rw-r--r--sysdeps/tile/dl-start.S1
2 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog.tile b/ChangeLog.tile
index 6bde1689a7..9e75826e93 100644
--- a/ChangeLog.tile
+++ b/ChangeLog.tile
@@ -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>.
diff --git a/sysdeps/tile/dl-start.S b/sysdeps/tile/dl-start.S
index 94025a544b..97cdac3fce 100644
--- a/sysdeps/tile/dl-start.S
+++ b/sysdeps/tile/dl-start.S
@@ -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