fix child stack alignment on mips clone
authorRich Felker <dalias@aerifal.cx>
Sat, 14 Sep 2013 23:19:11 +0000 (19:19 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 14 Sep 2013 23:19:11 +0000 (19:19 -0400)
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.

src/thread/mips/clone.s

index 826716ab7f423ecdc9b2f0f7e18bdb48be17e861..6c2e7908385f23d062fc155e1b2115cec59adbc2 100644 (file)
@@ -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)