diff options
Diffstat (limited to 'packages/qemu/files/10_signal_jobs.patch')
-rw-r--r-- | packages/qemu/files/10_signal_jobs.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/qemu/files/10_signal_jobs.patch b/packages/qemu/files/10_signal_jobs.patch new file mode 100644 index 0000000000..794a538676 --- /dev/null +++ b/packages/qemu/files/10_signal_jobs.patch @@ -0,0 +1,26 @@ +#DPATCHLEVEL=0 +--- +# linux-user/signal.c | 7 ++++++- +# 1 file changed, 6 insertions(+), 1 deletion(-) +# +Index: linux-user/signal.c +=================================================================== +--- linux-user/signal.c.orig 2007-06-13 11:51:52.000000000 +0100 ++++ linux-user/signal.c 2007-06-13 11:52:21.000000000 +0100 +@@ -341,10 +341,15 @@ int queue_signal(int sig, target_siginfo + k = &sigact_table[sig - 1]; + handler = k->sa._sa_handler; + if (handler == TARGET_SIG_DFL) { ++ if (sig == TARGET_SIGTSTP || sig == TARGET_SIGTTIN || sig == TARGET_SIGTTOU) { ++ kill(getpid(),SIGSTOP); ++ return 0; ++ } else + /* default handler : ignore some signal. The other are fatal */ + if (sig != TARGET_SIGCHLD && + sig != TARGET_SIGURG && +- sig != TARGET_SIGWINCH) { ++ sig != TARGET_SIGWINCH && ++ sig != TARGET_SIGCONT) { + force_sig(sig); + } else { + return 0; /* indicate ignored */ |