diff mbox

libgo patch committed: Don't provide ustat on arm64 GNU/Linux

Message ID CAOyqgcXv7NuNtfS+tHsvE_afu9SQTg=Wa46gfCmBeTPUkUjA+Q@mail.gmail.com
State New
Headers show

Commit Message

Ian Lance Taylor Sept. 15, 2015, 3:43 a.m. UTC
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

Comments

Andreas Schwab Sept. 15, 2015, 7:10 a.m. UTC | #1
Ian Lance Taylor <iant@golang.org> writes:

> 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.

ustat is obsolete and should not be used any more.

Andreas.
diff mbox

Patch

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