diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/syscall/exec_libc2.go | 9 | ||||
| -rwxr-xr-x | src/syscall/mksyscall.pl | 6 | ||||
| -rw-r--r-- | src/syscall/zsyscall_darwin_amd64.go | 1 | ||||
| -rw-r--r-- | src/syscall/zsyscall_darwin_arm64.go | 1 | ||||
| -rw-r--r-- | src/syscall/zsyscall_openbsd_386.go | 1 | ||||
| -rw-r--r-- | src/syscall/zsyscall_openbsd_amd64.go | 1 | ||||
| -rw-r--r-- | src/syscall/zsyscall_openbsd_arm.go | 1 | ||||
| -rw-r--r-- | src/syscall/zsyscall_openbsd_arm64.go | 1 | ||||
| -rw-r--r-- | src/syscall/zsyscall_openbsd_ppc64.go | 1 | ||||
| -rw-r--r-- | src/syscall/zsyscall_openbsd_riscv64.go | 1 |
10 files changed, 6 insertions, 17 deletions
diff --git a/src/syscall/exec_libc2.go b/src/syscall/exec_libc2.go index a0579627a3..5de09dfe99 100644 --- a/src/syscall/exec_libc2.go +++ b/src/syscall/exec_libc2.go @@ -59,7 +59,6 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr r1 uintptr nextfd int i int - err error pgrp _C_int cred *Credential ngroups, groups uintptr @@ -99,8 +98,12 @@ func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr // Enable tracing if requested. if sys.Ptrace { - if err = ptrace(PTRACE_TRACEME, 0, 0, 0); err != nil { - err1 = err.(Errno) + if runtime.GOOS == "ios" { + err1 = ENOSYS + goto childerror + } + _, _, err1 = rawSyscall6(abi.FuncPCABI0(libc_ptrace_trampoline), PTRACE_TRACEME, 0, 0, 0, 0, 0) + if err1 != 0 { goto childerror } } diff --git a/src/syscall/mksyscall.pl b/src/syscall/mksyscall.pl index b46a3f9438..6be94c9c44 100755 --- a/src/syscall/mksyscall.pl +++ b/src/syscall/mksyscall.pl @@ -141,12 +141,6 @@ while(<>) { # without reading the header. $text .= "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"; - if ((($darwin || ($openbsd && $libc)) && $func =~ /^ptrace(Ptr)?$/)) { - # The ptrace function is called from forkAndExecInChild where stack - # growth is forbidden. - $text .= "//go:nosplit\n" - } - # Go function header. my $out_decl = @out ? sprintf(" (%s)", join(', ', @out)) : ""; $text .= sprintf "func %s(%s)%s {\n", $func, join(', ', @in), $out_decl; diff --git a/src/syscall/zsyscall_darwin_amd64.go b/src/syscall/zsyscall_darwin_amd64.go index 8812fb12cd..fe4a264ed2 100644 --- a/src/syscall/zsyscall_darwin_amd64.go +++ b/src/syscall/zsyscall_darwin_amd64.go @@ -2011,7 +2011,6 @@ func libc_fstatat64_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -//go:nosplit func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { if runtime.GOOS == "ios" { panic("unimplemented") diff --git a/src/syscall/zsyscall_darwin_arm64.go b/src/syscall/zsyscall_darwin_arm64.go index 22b096349d..8fd7392d5b 100644 --- a/src/syscall/zsyscall_darwin_arm64.go +++ b/src/syscall/zsyscall_darwin_arm64.go @@ -2011,7 +2011,6 @@ func libc_fstatat_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -//go:nosplit func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { if runtime.GOOS == "ios" { panic("unimplemented") diff --git a/src/syscall/zsyscall_openbsd_386.go b/src/syscall/zsyscall_openbsd_386.go index c8cf7f231b..d914e19da0 100644 --- a/src/syscall/zsyscall_openbsd_386.go +++ b/src/syscall/zsyscall_openbsd_386.go @@ -1839,7 +1839,6 @@ func libc_exit_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -//go:nosplit func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := syscall6(abi.FuncPCABI0(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { diff --git a/src/syscall/zsyscall_openbsd_amd64.go b/src/syscall/zsyscall_openbsd_amd64.go index 9188756a87..5efe4cd868 100644 --- a/src/syscall/zsyscall_openbsd_amd64.go +++ b/src/syscall/zsyscall_openbsd_amd64.go @@ -1839,7 +1839,6 @@ func libc_exit_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -//go:nosplit func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := syscall6(abi.FuncPCABI0(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { diff --git a/src/syscall/zsyscall_openbsd_arm.go b/src/syscall/zsyscall_openbsd_arm.go index ecdfa63672..db8ea482ef 100644 --- a/src/syscall/zsyscall_openbsd_arm.go +++ b/src/syscall/zsyscall_openbsd_arm.go @@ -1839,7 +1839,6 @@ func libc_exit_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -//go:nosplit func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := syscall6(abi.FuncPCABI0(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { diff --git a/src/syscall/zsyscall_openbsd_arm64.go b/src/syscall/zsyscall_openbsd_arm64.go index d28d3c5e1e..673791c824 100644 --- a/src/syscall/zsyscall_openbsd_arm64.go +++ b/src/syscall/zsyscall_openbsd_arm64.go @@ -1839,7 +1839,6 @@ func libc_exit_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -//go:nosplit func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := syscall6(abi.FuncPCABI0(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { diff --git a/src/syscall/zsyscall_openbsd_ppc64.go b/src/syscall/zsyscall_openbsd_ppc64.go index 0e6828bcaf..7e0dc88a4c 100644 --- a/src/syscall/zsyscall_openbsd_ppc64.go +++ b/src/syscall/zsyscall_openbsd_ppc64.go @@ -1839,7 +1839,6 @@ func libc_exit_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -//go:nosplit func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := syscall6(abi.FuncPCABI0(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { diff --git a/src/syscall/zsyscall_openbsd_riscv64.go b/src/syscall/zsyscall_openbsd_riscv64.go index 920147074d..7b5a89ceac 100644 --- a/src/syscall/zsyscall_openbsd_riscv64.go +++ b/src/syscall/zsyscall_openbsd_riscv64.go @@ -1839,7 +1839,6 @@ func libc_exit_trampoline() // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -//go:nosplit func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { _, _, e1 := syscall6(abi.FuncPCABI0(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { |
