diff options
author | Alex Bennée | 2019-05-02 16:58:46 +0200 |
---|---|---|
committer | Laurent Vivier | 2019-05-10 12:44:23 +0200 |
commit | 716cdbe0e846f1b75a1ee629619bfc9337ddb914 (patch) | |
tree | 483c44621ad355e674da325854221520805a1264 /linux-user | |
parent | linux-user: elf: Map empty PT_LOAD segments (diff) | |
download | qemu-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.c | 5 |
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) { |