1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-14 07:43:06 +00:00
freebsd-ports/emulators/qemu-devel/files/extra-patch-target_siginfo
Juergen Lock d0d1c5fea9 - Fix bsd-user default TARGET_SIGINFO handling.
- Bump PORTREVISION.

Reported by:	sbruno
2014-06-22 11:05:29 +00:00

38 lines
1.3 KiB
Plaintext

From nox Mon Sep 17 00:00:00 2001
From: Juergen Lock <nox@jelal.kn-bremen.de>
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 <nox@jelal.kn-bremen.de>
--- 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);
}