summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Bennée2019-05-02 16:58:46 +0200
committerLaurent Vivier2019-05-10 12:44:23 +0200
commit716cdbe0e846f1b75a1ee629619bfc9337ddb914 (patch)
tree483c44621ad355e674da325854221520805a1264
parentlinux-user: elf: Map empty PT_LOAD segments (diff)
downloadqemu-716cdbe0e846f1b75a1ee629619bfc9337ddb914.tar.gz
qemu-716cdbe0e846f1b75a1ee629619bfc9337ddb914.tar.xz
qemu-716cdbe0e846f1b75a1ee629619bfc9337ddb914.zip
linux-user: avoid treading on gprof's SIGPROF signals
The guest tends to get confused when it receives signals it doesn't know about. Given the gprof magic has also set up it's own handler we would do well to avoid stomping on it as well. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190502145846.26226-1-alex.bennee@linaro.org> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-rw-r--r--linux-user/signal.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/linux-user/signal.c b/linux-user/signal.c
index e2c0b37173..44b2d3b35a 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -508,6 +508,11 @@ void signal_init(void)
act.sa_flags = SA_SIGINFO;
act.sa_sigaction = host_signal_handler;
for(i = 1; i <= TARGET_NSIG; i++) {
+#ifdef TARGET_GPROF
+ if (i == SIGPROF) {
+ continue;
+ }
+#endif
host_sig = target_to_host_signal(i);
sigaction(host_sig, NULL, &oact);
if (oact.sa_sigaction == (void *)SIG_IGN) {