syscall: only compile ptrace varargs shim on Linux
authorNikhil Benesch <nikhil.benesch@gmail.com>
Sun, 18 Oct 2020 19:28:54 +0000 (19:28 +0000)
committerIan Lance Taylor <iant@golang.org>
Thu, 22 Oct 2020 05:29:04 +0000 (22:29 -0700)
commit439407aa2c678a96bd5b430ab9c335e65beb5751
tree62868455b7c11523dfe8daaf93e178ecb7425167
parentd5d9706f95378d40a8895616e167614b69dfe70a
syscall: only compile ptrace varargs shim on Linux

Only compile the __go_ptrace varargs shim on Linux to avoid compilation
failures on some other platforms. The C ptrace function is not entirely
portable (e.g., NetBSD has `int data` instead of `void* data`), and so
far Linux is the only platform that needs the varargs shim.

Additionally, make the types in the ptrace and raw_ptrace function
declarations match. This makes it more clear that the only difference
between the two is that calls via the former are allowed to block while
calls via the latter are not.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/263517
14 files changed:
gcc/go/gofrontend/MERGE
libgo/go/syscall/exec_bsd.go
libgo/go/syscall/exec_linux.go
libgo/go/syscall/exec_stubs.go
libgo/go/syscall/libcall_aix.go
libgo/go/syscall/libcall_glibc.go
libgo/go/syscall/libcall_hurd.go
libgo/go/syscall/libcall_irix.go
libgo/go/syscall/libcall_linux.go
libgo/go/syscall/libcall_solaris_386.go
libgo/go/syscall/libcall_solaris_amd64.go
libgo/go/syscall/libcall_solaris_sparc.go
libgo/go/syscall/libcall_solaris_sparc64.go
libgo/runtime/go-varargs.c