As Gerald Pfeifer wrote:
assertion "libc_sigaction" failed: file "../../scheduler/pthread.c", line 661
#3 0x5c16c404 in sigaction (signum=12, act=0xbfbfdce0, oldact=0xbfbfdcc8) at ../../scheduler/pthread.c:661
Signal #12 is SIGSYS (Illegal system call). That should not be related to the SIGCHLD manipulations.
#4 0x5c074f09 in getcwd () from /usr/lib/libc.so.4
Is getcwd() supposed to cause a SIGSYS at all?
OTOH, that failing dlsym() syscall could be related to all this... I don't know why that complicated dlsym() is used, but maybe since sigaction() is now invoked directly before, the run-time loader has already loaded it from libc.so before. Maybe Alexandre can shed some light on how that's supposed to work.