summaryrefslogtreecommitdiff
path: root/emulators/qemu-devel/files
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2014-06-22 11:05:29 +0000
committerJuergen Lock <nox@FreeBSD.org>2014-06-22 11:05:29 +0000
commitd0d1c5fea9e002b416c049b9edede89388ca574f (patch)
tree2bbca5b515b94da6bb0d3a732cc70a6f463164d0 /emulators/qemu-devel/files
parentFix MASTER_SITES. (diff)
- Fix bsd-user default TARGET_SIGINFO handling.
- Bump PORTREVISION. Reported by: sbruno
Diffstat (limited to 'emulators/qemu-devel/files')
-rw-r--r--emulators/qemu-devel/files/extra-patch-target_siginfo37
1 files changed, 37 insertions, 0 deletions
diff --git a/emulators/qemu-devel/files/extra-patch-target_siginfo b/emulators/qemu-devel/files/extra-patch-target_siginfo
new file mode 100644
index 000000000000..4058f191eed9
--- /dev/null
+++ b/emulators/qemu-devel/files/extra-patch-target_siginfo
@@ -0,0 +1,37 @@
+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);
+ }