Apparently arm64 GNU/Linux does not provide ustat, and the linker
warns about it when using glibc.  This patch to libgo avoids providing
syscall.Ustat on arm64 GNU/Linux, since it will apparently never work.

Since I was touching Makefile.am I rebuilt with automake 1.11.6, the
new GCC standard.

Bootstrapped and tested on x86_64-unknown-linux-gnu, which admittedly
proves little, but at least syscall.Ustat still works there.
Committed to mainline.

Ian
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE     (revision 227758)
+++ gcc/go/gofrontend/MERGE     (working copy)
@@ -1,4 +1,4 @@
-1d9d92ab09996d2f7795481d2876a21194502b89
+ae60deadd72b3b29df98cee61deed68f251f0122
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/Makefile.am
===================================================================
--- libgo/Makefile.am   (revision 227696)
+++ libgo/Makefile.am   (working copy)
@@ -1742,6 +1742,17 @@ else
 syscall_lsf_file =
 endif
 
+# GNU/Linux specific ustat support.
+if LIBGO_IS_LINUX
+if LIBGO_IS_ARM64
+syscall_ustat_file =
+else
+syscall_ustat_file = go/syscall/libcall_linux_ustat.go
+endif
+else
+syscall_ustat_file =
+endif
+
 # GNU/Linux specific utimesnano support.
 if LIBGO_IS_LINUX
 syscall_utimesnano_file = go/syscall/libcall_linux_utimesnano.go
@@ -1780,6 +1791,7 @@ go_base_syscall_files = \
        $(syscall_uname_file) \
        $(syscall_netlink_file) \
        $(syscall_lsf_file) \
+       $(syscall_ustat_file) \
        $(syscall_utimesnano_file) \
        $(GO_LIBCALL_OS_FILE) \
        $(GO_LIBCALL_OS_ARCH_FILE) \
Index: libgo/go/syscall/libcall_linux.go
===================================================================
--- libgo/go/syscall/libcall_linux.go   (revision 227696)
+++ libgo/go/syscall/libcall_linux.go   (working copy)
@@ -408,6 +408,3 @@ func Unlinkat(dirfd int, path string) (e
 
 //sys  Unshare(flags int) (err error)
 //unshare(flags _C_int) _C_int
-
-//sys  Ustat(dev int, ubuf *Ustat_t) (err error)
-//ustat(dev _dev_t, ubuf *Ustat_t) _C_int
Index: libgo/go/syscall/libcall_linux_ustat.go
===================================================================
--- libgo/go/syscall/libcall_linux_ustat.go     (revision 0)
+++ libgo/go/syscall/libcall_linux_ustat.go     (working copy)
@@ -0,0 +1,11 @@
+// Copyright 2015 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.
+
+// GNU/Linux library ustat call.
+// This is not supported on some kernels, such as arm64.
+
+package syscall
+
+//sys  Ustat(dev int, ubuf *Ustat_t) (err error)
+//ustat(dev _dev_t, ubuf *Ustat_t) _C_int

Reply via email to