runtime: unify handling of alternate signal stack

Change all Unix systems to use stackt for the alternate signal
stack (some were using sigaltstackt). Add OS-specific setSignalstackSP
function to handle different types for ss_sp field, and unify all
OS-specific signalstack functions into one. Unify handling of alternate
signal stack in OS-specific minit and sigtrampgo functions via new
functions minitSignalstack and setGsignalStack.

Change-Id: Idc316dc69b1dd725717acdf61a1cd8b9f33ed174
Reviewed-on: https://go-review.googlesource.com/29757
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Ian Lance Taylor 2016-09-25 13:38:54 -07:00
parent e6143e17d3
commit d15295c679
40 changed files with 110 additions and 286 deletions

View file

@ -101,7 +101,7 @@ func (ts *timespec) set_nsec(x int32) {
ts.tv_nsec = x
}
type sigaltstackt struct {
type stackt struct {
ss_sp *byte
ss_flags int32
ss_size uintptr
@ -134,7 +134,7 @@ type sigcontext struct {
type ucontext struct {
uc_flags uint32
uc_link *ucontext
uc_stack sigaltstackt
uc_stack stackt
uc_mcontext sigcontext
uc_sigmask uint32
__unused [31]int32