From 04cc7d7c136f99982541145e155c8281dc57dc1b Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor <ian@gcc.gnu.org>
Date: Tue, 25 Oct 2011 18:06:32 +0000
Subject: [PATCH] Solaris/Irix compatibility patches.

From-SVN: r180440
---
 libgo/go/syscall/exec_stubs.go              |  4 ++++
 libgo/go/syscall/exec_unix.go               |  3 ---
 libgo/go/syscall/libcall_irix.go            |  8 ++++++++
 libgo/go/syscall/libcall_linux.go           |  6 ++++++
 libgo/go/syscall/libcall_posix.go           |  3 ---
 libgo/go/syscall/libcall_solaris_386.go     |  3 +++
 libgo/go/syscall/libcall_solaris_amd64.go   | 10 ++++++++++
 libgo/go/syscall/libcall_solaris_sparc.go   |  8 ++++++++
 libgo/go/syscall/libcall_solaris_sparc64.go | 10 ++++++++++
 9 files changed, 49 insertions(+), 6 deletions(-)
 create mode 100644 libgo/go/syscall/libcall_irix.go
 create mode 100644 libgo/go/syscall/libcall_solaris_amd64.go
 create mode 100644 libgo/go/syscall/libcall_solaris_sparc.go
 create mode 100644 libgo/go/syscall/libcall_solaris_sparc64.go

diff --git a/libgo/go/syscall/exec_stubs.go b/libgo/go/syscall/exec_stubs.go
index ce5dabe1e3b2..02b9ec34cf3b 100644
--- a/libgo/go/syscall/exec_stubs.go
+++ b/libgo/go/syscall/exec_stubs.go
@@ -17,3 +17,7 @@ func Exec(argv0 string, argv []string, envv []string) (err int) {
 func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, errno int) {
 	return -1, ENOSYS;
 }
+
+func raw_ptrace(request int, pid int, addr *byte, data *byte) int {
+	return ENOSYS
+}
diff --git a/libgo/go/syscall/exec_unix.go b/libgo/go/syscall/exec_unix.go
index 765f4d12fd51..96dfa4d847ce 100644
--- a/libgo/go/syscall/exec_unix.go
+++ b/libgo/go/syscall/exec_unix.go
@@ -16,9 +16,6 @@ import (
 //sysnb	raw_fork() (pid Pid_t, errno int)
 //fork() Pid_t
 
-//sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (errno int)
-//ptrace(request int, pid Pid_t, addr *byte, data *byte) _C_long
-
 //sysnb raw_setsid() (errno int)
 //setsid() Pid_t
 
diff --git a/libgo/go/syscall/libcall_irix.go b/libgo/go/syscall/libcall_irix.go
new file mode 100644
index 000000000000..ae4535597138
--- /dev/null
+++ b/libgo/go/syscall/libcall_irix.go
@@ -0,0 +1,8 @@
+// Copyright 2011 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.
+
+package syscall
+
+//sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (errno int)
+//ptrace(request int, pid Pid_t, addr *byte, data *byte) _C_long
diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
index a469873c0547..58422e16e8be 100644
--- a/libgo/go/syscall/libcall_linux.go
+++ b/libgo/go/syscall/libcall_linux.go
@@ -29,6 +29,9 @@ func Futimes(fd int, tv []Timeval) (errno int) {
 //sys	ptrace(request int, pid int, addr uintptr, data uintptr) (errno int)
 //ptrace(request int, pid Pid_t, addr *byte, data *byte) _C_long
 
+//sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (errno int)
+//ptrace(request int, pid Pid_t, addr *byte, data *byte) _C_long
+
 func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, errno int) {
 	// The peek requests are machine-size oriented, so we wrap it
 	// to retrieve arbitrary-length data.
@@ -192,6 +195,9 @@ func PtraceDetach(pid int) (errno int) { return ptrace(PTRACE_DETACH, pid, 0, 0)
 //sys	Fchownat(dirfd int, path string, uid int, gid int, flags int) (errno int)
 //fchownat(dirfd int, path *byte, owner Uid_t, group Gid_t, flags int) int
 
+//sys	Flock(fd int, how int) (errno int)
+//flock(fd int, how int) int
+
 // FIXME: mksysinfo statfs
 // //sys	Fstatfs(fd int, buf *Statfs_t) (errno int)
 // //fstatfs(fd int, buf *Statfs_t) int
diff --git a/libgo/go/syscall/libcall_posix.go b/libgo/go/syscall/libcall_posix.go
index b83c2b5d97ec..0baec6276f13 100644
--- a/libgo/go/syscall/libcall_posix.go
+++ b/libgo/go/syscall/libcall_posix.go
@@ -199,9 +199,6 @@ func FDZero(set *FdSet) {
 //sys	Fdatasync(fd int) (errno int)
 //fdatasync(fd int) int
 
-//sys	Flock(fd int, how int) (errno int)
-//flock(fd int, how int) int
-
 //sys	Fsync(fd int) (errno int)
 //fsync(fd int) int
 
diff --git a/libgo/go/syscall/libcall_solaris_386.go b/libgo/go/syscall/libcall_solaris_386.go
index a008a221db25..9c4e966f1ae9 100644
--- a/libgo/go/syscall/libcall_solaris_386.go
+++ b/libgo/go/syscall/libcall_solaris_386.go
@@ -7,3 +7,6 @@ package syscall
 // 32-bit Solaris 2/x86 needs to use _nuname internally, cf. <sys/utsname.h>.
 //sysnb	Uname(buf *Utsname) (errno int)
 //_nuname(buf *Utsname) int
+
+//sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (errno int)
+//ptrace(request int, pid Pid_t, addr *byte, data *byte) _C_long
diff --git a/libgo/go/syscall/libcall_solaris_amd64.go b/libgo/go/syscall/libcall_solaris_amd64.go
new file mode 100644
index 000000000000..f0d335dbb677
--- /dev/null
+++ b/libgo/go/syscall/libcall_solaris_amd64.go
@@ -0,0 +1,10 @@
+// Copyright 2011 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.
+
+package syscall
+
+// 64-bit ptrace(3C) doesn't exist
+func raw_ptrace(request int, pid int, addr *byte, data *byte) int {
+	return ENOSYS
+}
diff --git a/libgo/go/syscall/libcall_solaris_sparc.go b/libgo/go/syscall/libcall_solaris_sparc.go
new file mode 100644
index 000000000000..ae4535597138
--- /dev/null
+++ b/libgo/go/syscall/libcall_solaris_sparc.go
@@ -0,0 +1,8 @@
+// Copyright 2011 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.
+
+package syscall
+
+//sysnb raw_ptrace(request int, pid int, addr *byte, data *byte) (errno int)
+//ptrace(request int, pid Pid_t, addr *byte, data *byte) _C_long
diff --git a/libgo/go/syscall/libcall_solaris_sparc64.go b/libgo/go/syscall/libcall_solaris_sparc64.go
new file mode 100644
index 000000000000..f0d335dbb677
--- /dev/null
+++ b/libgo/go/syscall/libcall_solaris_sparc64.go
@@ -0,0 +1,10 @@
+// Copyright 2011 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.
+
+package syscall
+
+// 64-bit ptrace(3C) doesn't exist
+func raw_ptrace(request int, pid int, addr *byte, data *byte) int {
+	return ENOSYS
+}
-- 
GitLab