aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2017-06-21 21:46:03 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2017-06-21 21:46:03 +0000
commita8bc65cd00911ef459e77a7e0b7218ac150065bb (patch)
treec2a5a378324e461624f45283c61d12f031767854
parent8d4b68a7c4091c99c8d591e93efae5748a7ced13 (diff)
downloadgcc-a8bc65cd00911ef459e77a7e0b7218ac150065bb.zip
gcc-a8bc65cd00911ef459e77a7e0b7218ac150065bb.tar.gz
gcc-a8bc65cd00911ef459e77a7e0b7218ac150065bb.tar.bz2
libgo, syscall: fix ptrace implementation on MIPS
On MIPS, the correct structure for PtraceRegs is 'struct pt_regs' which is declared in linux/ptrace.h. Previously no PtraceRegs structure was created on MIPS because 'struct user_regs_struct' doesn't exist there. Fallback to using pt_regs when the PtraceRegs structure is generated in mksysinfo.sh, then adjust syscall_linux_mipsx.go to read the program counter from the correct field. In addition, implement PtraceGetRegs and PtraceSetRegs on all 3 ABI variants. syscall_linux_mips64x.go can now be removed since the ptrace code on all 3 ABIs is identical. Reviewed-on: https://go-review.googlesource.com/46150 From-SVN: r249473
-rw-r--r--libgo/go/syscall/syscall_linux_mips64x.go20
1 files changed, 0 insertions, 20 deletions
diff --git a/libgo/go/syscall/syscall_linux_mips64x.go b/libgo/go/syscall/syscall_linux_mips64x.go
deleted file mode 100644
index c1d51b1..0000000
--- a/libgo/go/syscall/syscall_linux_mips64x.go
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2009 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build linux
-// +build mips64 mips64le
-
-package syscall
-
-func (r *PtraceRegs) PC() uint64 { return r.Regs[64] }
-
-func (r *PtraceRegs) SetPC(pc uint64) { r.Regs[64] = pc }
-
-func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
- return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
-}
-
-func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {
- return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
-}