Commit ec9dc45b by Ian Lance Taylor

Use _nuname on 32-bit Solaris 2/x86.

From-SVN: r170761
parent d8b878dc
...@@ -1201,6 +1201,18 @@ else ...@@ -1201,6 +1201,18 @@ else
syscall_socket_epoll_file = syscall_socket_epoll_file =
endif endif
# Support for uname.
if LIBGO_IS_SOLARIS
if LIBGO_IS_386
# 32-bit Solaris 2/x86 needs _nuname, handled in syscall_solaris_386.go.
syscall_uname_file =
else # !LIBGO_IS_386 && LIBGO_IS_SOLARIS
syscall_uname_file = syscalls/syscall_uname.go
endif
else # !LIBGO_IS_SOLARIS
syscall_uname_file = syscalls/syscall_uname.go
endif
syscall_arch.go: s-syscall_arch; @true syscall_arch.go: s-syscall_arch; @true
s-syscall_arch: Makefile s-syscall_arch: Makefile
rm -f syscall_arch.go.tmp rm -f syscall_arch.go.tmp
...@@ -1222,6 +1234,7 @@ go_syscall_files = \ ...@@ -1222,6 +1234,7 @@ go_syscall_files = \
$(syscall_socket_os_file) \ $(syscall_socket_os_file) \
$(syscall_socket_epoll_file) \ $(syscall_socket_epoll_file) \
$(syscall_syscall_file) \ $(syscall_syscall_file) \
$(syscall_uname_file) \
syscalls/syscall_unix.go \ syscalls/syscall_unix.go \
syscalls/stringbyte.go \ syscalls/stringbyte.go \
syscalls/syscall_$(GOOS).go \ syscalls/syscall_$(GOOS).go \
......
...@@ -1563,6 +1563,12 @@ go_testing_script_files = \ ...@@ -1563,6 +1563,12 @@ go_testing_script_files = \
# Support for epoll. # Support for epoll.
@LIBGO_IS_LINUX_TRUE@syscall_socket_epoll_file = syscalls/socket_epoll.go @LIBGO_IS_LINUX_TRUE@syscall_socket_epoll_file = syscalls/socket_epoll.go
@LIBGO_IS_386_FALSE@@LIBGO_IS_SOLARIS_TRUE@syscall_uname_file = syscalls/syscall_uname.go
# Support for uname.
# 32-bit Solaris 2/x86 needs _nuname, handled in syscall_solaris_386.go.
@LIBGO_IS_386_TRUE@@LIBGO_IS_SOLARIS_TRUE@syscall_uname_file =
@LIBGO_IS_SOLARIS_FALSE@syscall_uname_file = syscalls/syscall_uname.go
go_syscall_files = \ go_syscall_files = \
$(syscall_errstr_file) \ $(syscall_errstr_file) \
$(syscall_errstr_decl_file) \ $(syscall_errstr_decl_file) \
...@@ -1575,6 +1581,7 @@ go_syscall_files = \ ...@@ -1575,6 +1581,7 @@ go_syscall_files = \
$(syscall_socket_os_file) \ $(syscall_socket_os_file) \
$(syscall_socket_epoll_file) \ $(syscall_socket_epoll_file) \
$(syscall_syscall_file) \ $(syscall_syscall_file) \
$(syscall_uname_file) \
syscalls/syscall_unix.go \ syscalls/syscall_unix.go \
syscalls/stringbyte.go \ syscalls/stringbyte.go \
syscalls/syscall_$(GOOS).go \ syscalls/syscall_$(GOOS).go \
......
...@@ -15,3 +15,6 @@ func libc_ptrace(request int, pid Pid_t, addr uintptr, data *byte) int __asm__ ( ...@@ -15,3 +15,6 @@ func libc_ptrace(request int, pid Pid_t, addr uintptr, data *byte) int __asm__ (
var dummy *byte var dummy *byte
const sizeofPtr uintptr = uintptr(unsafe.Sizeof(dummy)) const sizeofPtr uintptr = uintptr(unsafe.Sizeof(dummy))
// 32-bit Solaris 2/x86 needs to use _nuname internally, cf. <sys/utsname.h>.
func libc_uname(buf *Utsname) (errno int) __asm__("_nuname")
// 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
func libc_uname(buf *Utsname) (errno int) __asm__("uname")
...@@ -15,8 +15,6 @@ const ENONE = 0 ...@@ -15,8 +15,6 @@ const ENONE = 0
func GetErrno() int func GetErrno() int
func SetErrno(int) func SetErrno(int)
func libc_uname(buf *Utsname) (errno int) __asm__("uname")
func Uname(buf *Utsname) (errno int) { func Uname(buf *Utsname) (errno int) {
r := libc_uname(buf) r := libc_uname(buf)
if r < 0 { if r < 0 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment