mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 17:59:20 -04:00
- Fix bsd-user default TARGET_SIGINFO handling.
- Bump PORTREVISION. Reported by: sbruno
This commit is contained in:
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
|
@ -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
|
||||
|
|
37
emulators/qemu-devel/files/extra-patch-target_siginfo
Normal file
37
emulators/qemu-devel/files/extra-patch-target_siginfo
Normal 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);
|
||||
}
|
Loading…
Add table
Reference in a new issue