• Ian Lance Taylor's avatar
    runtime: save context value in NetBSD sigtramp · 123510bf
    Ian Lance Taylor authored
    On NetBSD a signal handler returns to the kernel by calling the
    setcontext system call with the context passed to the signal handler.
    The implementation of runtime·sigreturn_tramp for amd64, copied from the
    NetBSD libc, expects that context address to be in r15.  That works in
    the NetBSD libc because r15 is preserved across the call to the signal
    handler.  It fails in the Go library because r15 is not preserved.
    There are various ways to fix this; this one uses the simple approach,
    essentially identical to the one in the NetBSD libc, of preserving r15
    across the signal handler proper.
    
    Looking at the code for 386 and arm suggests that they are OK.  However,
    I have not actually tested them.
    
    Update #14052.
    
    Change-Id: I2b516b1d05fe5d3b8911e65ca761d621dc37fa1b
    Reviewed-on: https://go-review.googlesource.com/18815
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    123510bf
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...