------- Additional Comments From aeby at graeff dot com 2005-09-15 14:24 ------- I don't think this bug is linked with 23758. No matter if you call unsafe procedures before or after fork() SIGCHLD ist still blocked at the point where execvp() is called. It seems the posix-threads code does explicitly block SIGCHLD signals (block_sigchld() in libjava/posix-threads.cc) without unblocking them before calling execvp(). Therefore, the child process runs with SIGCHLD blocked, too.
I'm attaching a dirty hack(?) fixing the problem for me (just sets signal handler for SIGCHLD to SIG_DFL and unblock SIGCHLD just before execvp()). BTW: Am I the only person in the world that is trying to exec() external programs from Java? :-)) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23763