From nox Mon Sep 17 00:00:00 2001 From: Juergen Lock Date: 22 Jun 2014 00:52:23 +0200 Subject: Fix bsd-user default TARGET_SIGINFO handling TARGET_SIGINFO doesn't kill the process and also doesn't cause EINTR by default so add it to fatal_signal() appropriately; and also don't call force_sig() on it should it end up being handled. Signed-off-by: Juergen Lock --- a/bsd-user/signal.c +++ b/bsd-user/signal.c @@ -391,6 +391,7 @@ int queue_signal(CPUArchState *env, int if (sig != TARGET_SIGCHLD && sig != TARGET_SIGURG && sig != TARGET_SIGWINCH && + sig != TARGET_SIGINFO && sig != TARGET_SIGCONT) { force_sig(sig); } else { @@ -531,6 +532,7 @@ static int fatal_signal(int sig) case TARGET_SIGCHLD: case TARGET_SIGURG: case TARGET_SIGWINCH: + case TARGET_SIGINFO: /* Ignored by default. */ return 0; case TARGET_SIGCONT: @@ -884,6 +886,7 @@ handle_signal: TARGET_SIGTTOU == sig) { kill(getpid(), SIGSTOP); } else if (TARGET_SIGCHLD != sig && TARGET_SIGURG != sig && + TARGET_SIGINFO != sig && TARGET_SIGWINCH != sig && TARGET_SIGCONT != sig) { force_sig(sig); }