This is the 3rd iteration of the patch, here are the changes with regard to previous one:
* more precise description of the problem.
* only set r30 in PIC+secureplt case as it seems indeed to be the only case which causes problem. Secureplt without PIC does not need r30.
* don't rely on uclibc being already built: now we check for secure-plt by doing $(CC) --verbose and searching for the ./configure parameters of GCC for "--enable-secureplt".
Yann Sionneau (1):
powerpc: fix PIE/PIC builds with newer gcc/binutils which use
secureplt by default
Rules.mak | 3 ++-
ldso/ldso/powerpc/dl-startup.h | 3 +++
libc/sysdeps/linux/powerpc/crt1.S | 4 ++++
3 files changed, 9 insertions(+), 1 deletion(-)
I got report about race condition in LinuxThread's sigaction wrapper
located in libpthread/linuxthreads/signals.c
In sigaction wrapper
A.1) override handler for new action to point at pthread_sighandler
A.3) update global array (sighandler) used by pthread_sighandler with
real action (from new)
B.1) find real action (indexed by signal number)
B.2) unconditionally execute action
IIUC, if we receive signal in a window between A.2 and A.3 we are
missing executing real action (likely we try to execute NULL).
Does that make sense?