about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2013-09-14 19:19:11 -0400
committerRich Felker <dalias@aerifal.cx>2013-09-14 19:19:11 -0400
commitbfba15c9b96c2a42bd02f51ff10596a23a677926 (patch)
tree2d0718933972275fefa3ea1e256c2ad51de08357
parent9b35ed3fefca6817d7334f15a883d068e0034011 (diff)
downloadmusl-bfba15c9b96c2a42bd02f51ff10596a23a677926.tar.gz
musl-bfba15c9b96c2a42bd02f51ff10596a23a677926.tar.xz
musl-bfba15c9b96c2a42bd02f51ff10596a23a677926.zip
fix child stack alignment on mips clone
unlike other archs, the mips version of clone was not doing anything
to align the stack pointer. this seems to have been the cause for some
SIGBUS crashes that were observed in posix_spawn.
-rw-r--r--src/thread/mips/clone.s1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/thread/mips/clone.s b/src/thread/mips/clone.s
index 826716ab..6c2e7908 100644
--- a/src/thread/mips/clone.s
+++ b/src/thread/mips/clone.s
@@ -3,6 +3,7 @@
 .type   __clone,@function
 __clone:
 	# Save function pointer and argument pointer on new thread stack
+	and $5, $5, -8
 	subu $5, $5, 16
 	sw $4, 0($5)
 	sw $7, 4($5)