summaryrefslogtreecommitdiffstats
path: root/linux-user
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 /linux-user
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>
Diffstat (limited to 'linux-user')
-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) {