aboutsummaryrefslogtreecommitdiff
path: root/src/thread/powerpc/clone.s (follow)
Commit message (Expand)AuthorAgeFilesLines
* make arch __clone backends hidden•••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. Rich Felker2018-09-121-0/+1
* fix thread structure/dtv-pointer corruption on powerpc•••per the powerpc psabi, offset 4 of the stack at call time belongs to the callee and is used for spilling lr (return address). in addition, offset 0 on the stack must contain a pointer to the previous stack frame, or a null pointer for the initial stack frame of a thread. __clone failed to setup any stack frame on the new thread's stack, thereby allowing the start function it called to clobber offset 4 of the new thread's struct __pthread, which contains the dtv pointer. add code to setup a proper stack frame and align the stack pointer to a multiple of 16 (also an abi requirement) if it was not already aligned. Rich Felker2016-04-251-0/+5
* powerpc: handle syscall error in clone.•••sigsetjmp: store temporaries in jmp_buf rather than on stack. rofl0r2012-11-191-25/+9
* fix powerpc asm not to store data in volatile space below stack pointer•••it's essential to decrement the stack pointer before writing to new stack space, rather than afterwards. otherwise there is a race condition during which asynchronous code (signals) could clobber the data being stored. it may be possible to optimize the code further using stwu, but I wanted to avoid making any changes to the actual stack layout in this commit. further improvements can be made separately if desired. Rich Felker2012-11-181-4/+4
* PPC port cleaned up, static linking works well now.rofl0r2012-11-131-0/+83