diff --git a/src/pkg/runtime/defs_openbsd.go b/src/pkg/runtime/defs_openbsd.go --- a/src/pkg/runtime/defs_openbsd.go +++ b/src/pkg/runtime/defs_openbsd.go @@ -75,6 +75,7 @@ const ( SIGINFO = C.SIGINFO SIGUSR1 = C.SIGUSR1 SIGUSR2 = C.SIGUSR2 + SIGTHR = C.SIGTHR FPE_INTDIV = C.FPE_INTDIV FPE_INTOVF = C.FPE_INTOVF diff --git a/src/pkg/runtime/defs_openbsd_386.h b/src/pkg/runtime/defs_openbsd_386.h --- a/src/pkg/runtime/defs_openbsd_386.h +++ b/src/pkg/runtime/defs_openbsd_386.h @@ -52,6 +52,7 @@ enum { SIGINFO = 0x1d, SIGUSR1 = 0x1e, SIGUSR2 = 0x1f, + SIGTHR = 0x20, FPE_INTDIV = 0x1, FPE_INTOVF = 0x2, diff --git a/src/pkg/runtime/defs_openbsd_amd64.h b/src/pkg/runtime/defs_openbsd_amd64.h --- a/src/pkg/runtime/defs_openbsd_amd64.h +++ b/src/pkg/runtime/defs_openbsd_amd64.h @@ -52,6 +52,7 @@ enum { SIGINFO = 0x1d, SIGUSR1 = 0x1e, SIGUSR2 = 0x1f, + SIGTHR = 0x20, FPE_INTDIV = 0x1, FPE_INTOVF = 0x2, diff --git a/src/pkg/runtime/os_openbsd.c b/src/pkg/runtime/os_openbsd.c --- a/src/pkg/runtime/os_openbsd.c +++ b/src/pkg/runtime/os_openbsd.c @@ -270,6 +270,15 @@ runtime·badsignal(int32 sig) if (sig == SIGPROF) { return; // Ignore SIGPROFs intended for a non-Go thread. } + if (sig == SIGURG || + sig == SIGCONT || + sig == SIGCHLD || + sig == SIGIO || + sig == SIGWINCH || + sig == SIGINFO || + sig == SIGTHR) { + return; // Ignore signals with no default action. + } runtime·write(2, badsignal, sizeof badsignal - 1); if (0 <= sig && sig < NSIG) { // Can't call findnull() because it will split stack.