summaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-28 21:56:14 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-28 21:56:14 +0000
commit886edb46576eb3eabeea3a7d138d755e188437ab (patch)
treefd28ce5047f23384c6a3f80900cb0576ada467b0 /libgo
parenta9196da948b3e12daa6680f51c5f618ed18750fc (diff)
downloadgcc-886edb46576eb3eabeea3a7d138d755e188437ab.tar.gz
runtime: Don't block SIGTRAP while creating a new thread.
Thanks to Uros Bizjak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196362 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgo')
-rw-r--r--libgo/runtime/proc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
index b59f4acf0dc..9b563a50946 100644
--- a/libgo/runtime/proc.c
+++ b/libgo/runtime/proc.c
@@ -1256,6 +1256,12 @@ runtime_newm(void)
// Block signals during pthread_create so that the new thread
// starts with signals disabled. It will enable them in minit.
sigfillset(&clear);
+
+#ifdef SIGTRAP
+ // Blocking SIGTRAP reportedly breaks gdb on Alpha GNU/Linux.
+ sigdelset(&clear, SIGTRAP);
+#endif
+
sigemptyset(&old);
sigprocmask(SIG_BLOCK, &clear, &old);
ret = pthread_create(&tid, &attr, runtime_mstart, mp);