- Fix bsd-user default TARGET_SIGINFO handling.

- Bump PORTREVISION.

Reported by:	sbruno
This commit is contained in:
Juergen Lock 2014-06-22 11:05:29 +00:00
parent 08822d5638
commit d0d1c5fea9
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=358788
2 changed files with 39 additions and 1 deletions

View file

@ -3,7 +3,7 @@
PORTNAME= qemu
PORTVERSION= 2.0.0
PORTREVISION= 4
PORTREVISION= 5
CATEGORIES= emulators
MASTER_SITES= http://wiki.qemu.org/download/:release \
LOCAL/nox:snapshot
@ -68,6 +68,7 @@ EXTRA_PATCHES+= ${FILESDIR}/extra-patch-sysctl-0oldlen
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-bsd-user-mmap.c
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-sysctl-hw-pagesizes
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-bsd-user-x86_64-target_arch_vmparam.h
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-target_siginfo
.endif
CONFIGURE_ARGS+= --extra-ldflags=-L${LOCALBASE}/lib

View file

@ -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);
}