Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2016-04-25 | fix thread structure/dtv-pointer corruption on powerpc | Rich Felker | 1 | -0/+5 | |
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. | |||||
2012-11-19 | powerpc: handle syscall error in clone. | rofl0r | 1 | -25/+9 | |
sigsetjmp: store temporaries in jmp_buf rather than on stack. | |||||
2012-11-18 | fix powerpc asm not to store data in volatile space below stack pointer | Rich Felker | 1 | -4/+4 | |
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. | |||||
2012-11-13 | PPC port cleaned up, static linking works well now. | rofl0r | 1 | -0/+83 | |