diff options
| author | Juergen Lock <nox@FreeBSD.org> | 2014-06-22 11:05:29 +0000 |
|---|---|---|
| committer | Juergen Lock <nox@FreeBSD.org> | 2014-06-22 11:05:29 +0000 |
| commit | d0d1c5fea9e002b416c049b9edede89388ca574f (patch) | |
| tree | 2bbca5b515b94da6bb0d3a732cc70a6f463164d0 /emulators/qemu-devel/files | |
| parent | Fix 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_siginfo | 37 |
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); + } |
