1
0
mirror of https://github.com/golang/go synced 2024-11-19 09:04:41 -07:00
go/misc/cgo/test
Russ Cox 01f05d8ff1 runtime: unify asmcgocall and systemstack traceback setup
Both asmcgocall and systemstack need to save the calling Go code's
context for use by traceback, but they do it differently.
Systemstack's appraoch is better, because it doesn't require a
special case in traceback.
So make them both use that.

While we are here, the fake mstart caller in systemstack is
no longer needed and can be removed.
(traceback knows to stop in systemstack because of the writes to SP.)

Also remove the fake mstarts in sys_windows_*.s.

And while we are there, fix the control flow guard code in sys_windows_arm.s.
The current code is using pointers to a stack frame that technically is gone
once we hit the RET instruction. Clearly it's working OK, but better not to depend
on data below SP being preserved, even for just a few instructions.
Store the value we need in other registers instead.
(This code is only used for pushing a sigpanic call, which does not
actually return to the site of the fault and therefore doesn't need to
preserve any of the registers.)

This CL is part of a stack adding windows/arm64
support (#36439), intended to land in the Go 1.17 cycle.
This CL is, however, not windows/arm64-specific.
It is cleanup meant to make the port (and future ports) easier.

Change-Id: Id1e3ef5e54f7ad786e4b87043f2626eba7c3bbd9
Reviewed-on: https://go-review.googlesource.com/c/go/+/288799
Trust: Russ Cox <rsc@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
2021-02-19 00:02:06 +00:00
..
testdata cmd/dist,cmd/go,runtime: add support for cgo on linux/riscv64 2020-11-03 12:59:51 +00:00
backdoor.go
buildid_linux.go misc/cgo/test: avoid endless loop when we can't parse notes 2018-01-11 19:55:49 +00:00
callback_c_gc.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
callback_c_gccgo.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
callback_c.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
callback.go runtime: unify asmcgocall and systemstack traceback setup 2021-02-19 00:02:06 +00:00
cgo_linux_test.go syscall: support POSIX semantics for Linux syscalls 2020-10-23 20:53:14 +00:00
cgo_stubs_android_test.go misc/cgo/test: consolidate tests into fewer cgo source files 2019-05-22 12:52:33 +00:00
cgo_test.go misc/cgo/test: test C.enum_* 2020-10-27 18:13:59 +00:00
cgo_thread_lock.go misc/cgo/test: add test that gccgo fails 2016-10-13 00:03:57 +00:00
cgo_unix_test.go runtime/cgo: retry pthread_create on EAGAIN 2016-12-05 18:46:18 +00:00
cthread_unix.c cmd/dist, misc/cgo: enable tests for aix/ppc64 2019-03-20 14:38:44 +00:00
cthread_windows.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue1435.go syscall: improve TestSetuidEtc() /proc/ parsing against races 2020-11-11 20:49:53 +00:00
issue4029.c cmd/link: support cgo internal/linking on darwin/arm64 2020-10-20 02:25:52 +00:00
issue4029.go cmd/link: support cgo internal/linking on darwin/arm64 2020-10-20 02:25:52 +00:00
issue4029w.go cmd/link: support cgo internal/linking on darwin/arm64 2020-10-20 02:25:52 +00:00
issue4273.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4273b.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4339.c
issue4339.h
issue5548_c.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5740a.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5740b.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6833_c.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6907export_c.c cmd/cgo: permit passing string values directly between Go and C 2017-11-15 03:36:54 +00:00
issue6997_linux.c misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue6997_linux.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue7234_test.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8148.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8331.h all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8517_windows.c
issue8517_windows.go
issue8517.go
issue8694.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue8811.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue18146.go all: add GOOS=ios 2020-09-23 18:12:59 +00:00
issue20910.c cmd/cgo: unify cgo output for gc and gccgo 2017-08-16 21:57:56 +00:00
issue21897.go misc/cgo/test: re-enable darwin cgo tests in race mode 2020-01-10 10:04:49 +00:00
issue21897b.go misc/cgo/test: re-enable darwin cgo tests in race mode 2020-01-10 10:04:49 +00:00
issue31891.c cmd/cgo: build unique C type cache keys from parent names 2019-10-05 00:16:04 +00:00
issue42495.go cmd/cgo: fix initialization of empty argument types 2020-11-13 15:15:15 +00:00
overlaydir_test.go misc: remove use of relative directories in overlayDir functions 2019-11-25 16:26:15 +00:00
pkg_test.go misc/cgo/test: enable TestCrossPackageTests on darwin/arm64 2020-12-30 22:39:48 +00:00
setgid_linux.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
sigaltstack.go runtime: use sigaltstack on macOS/ARM64 2020-10-06 21:25:42 +00:00
sigprocmask.c misc/cgo/test: add retry loop around pthread_create in TestSigprocmask 2018-06-27 04:33:10 +00:00
sigprocmask.go misc/cgo/test: log error value in testSigprocmask 2018-04-25 20:26:39 +00:00
test_unix.go misc/cgo/test: consolidate tests into fewer cgo source files 2019-05-22 12:52:33 +00:00
test_windows.go misc/cgo/test: consolidate tests into fewer cgo source files 2019-05-22 12:52:33 +00:00
test.go misc/cgo/test: test C.enum_* 2020-10-27 18:13:59 +00:00
testx.go all: add GOOS=ios 2020-09-23 18:12:59 +00:00