about summary refs log tree commit diff
path: root/src/thread/mips/clone.s
Commit message (Collapse)AuthorAgeFilesLines
* make arch __clone backends hiddenRich Felker2018-09-121-0/+1
| | | | | these are not a public interface and are not intended to be callable from anywhere but the public clone function or other places in libc.
* mips archs: fix runaway execution if start fn passed to clone returnsSegev Finer2018-08-181-1/+4
| | | | | | Call SYS_exit on return from fn in __clone. This is the expected behavior of this function. Without this the child task will crash on return from fn, since it will return to nowhere.
* fix clobbering of caller's stack in mips __clone functionRich Felker2013-09-161-0/+3
| | | | | | | | | this was resulting in crashes in posix_spawn on mips, and would have affected applications calling clone too. since the prototype for __clone has it as a variadic function, it may not assume that 16($sp) is writable for use in making the syscall. instead, it needs to allocate additional stack space, and then adjust the stack pointer back in both of the code paths for the parent process/thread.
* fix child stack alignment on mips cloneRich Felker2013-09-141-0/+1
| | | | | | 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.
* mips clone: don't free stack space used to copy argRich Felker2012-07-111-1/+0
| | | | | | the mips abi reserves stack space equal to the size of the in-register args for the callee to save the args, if desired. this would cause the beginning of the thread structure to be clobbered...
* fix mips clone() on real linux kernelRich Felker2012-07-111-4/+7
| | | | | | the old code worked in qemu app-level emulation, but not on real kernels where the clone syscall does not copy the register values to the new thread. save arguments on the new thread stack instead.
* fix clone() on mips (args were in wrong order)Rich Felker2012-07-111-3/+2
| | | | with this change, threads on mips seem to be working
* first attempt at making threads work on mipsRich Felker2012-07-111-0/+27