GCC 6 patch RFA: libgo: Remove syscall.Ustat

Message ID CAOyqgcXuEgZABCfsesi2fOSTK05qBhAGb36UDKLS2bfPW_TD+g@mail.gmail.com
State New
Headers show
Series
  • GCC 6 patch RFA: libgo: Remove syscall.Ustat
Related show

Commit Message

Ian Lance Taylor June 25, 2018, 10:02 p.m.
Since it looks like there might be a 6.5 release, here is backport of

https://gcc.gnu.org/ml/gcc-patches/2018-06/msg01420.html

to GCC 6 branch.  This removes the syscall.Ustat function from libgo,
since the ustat function is being removed from new versions of glibc.

Bootstrapped and ran Go tests on x86_64-pc-linux-gnu.  OK for GCC 6 branch?

Ian

Comments

Jakub Jelinek June 25, 2018, 10:05 p.m. | #1
On Mon, Jun 25, 2018 at 03:02:02PM -0700, Ian Lance Taylor wrote:
> Since it looks like there might be a 6.5 release, here is backport of


Yes, 6.5 is going to be the last release from the gcc-6-branch.

> https://gcc.gnu.org/ml/gcc-patches/2018-06/msg01420.html

> 

> to GCC 6 branch.  This removes the syscall.Ustat function from libgo,

> since the ustat function is being removed from new versions of glibc.

> 

> Bootstrapped and ran Go tests on x86_64-pc-linux-gnu.  OK for GCC 6 branch?


Yes, thanks.

	Jakub

Patch

Index: libgo/Makefile.am
===================================================================
--- libgo/Makefile.am	(revision 262106)
+++ libgo/Makefile.am	(working copy)
@@ -1989,17 +1989,6 @@  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
Index: libgo/configure.ac
===================================================================
--- libgo/configure.ac	(revision 262106)
+++ libgo/configure.ac	(working copy)
@@ -519,24 +519,6 @@  AC_CHECK_HEADERS([linux/filter.h linux/i
 #endif
 ])
 
-AC_CACHE_CHECK([whether <ustat.h> can be used],
-[libgo_cv_c_ustat_h],
-[CFLAGS_hold=$CFLAGS
-CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE $OSCFLAGS"
-AC_COMPILE_IFELSE(
-[AC_LANG_SOURCE([
-#include <sys/types.h>
-#ifdef HAVE_LINUX_FILTER_H
-#include <linux/filter.h>
-#endif
-#include <ustat.h>
-])], [libgo_cv_c_ustat_h=yes], [libgo_cv_c_ustat_h=no])
-CFLAGS=$CFLAGS_hold])
-if test $libgo_cv_c_ustat_h = yes; then
-  AC_DEFINE(HAVE_USTAT_H, 1,
-    [Define to 1 if you have the <ustat.h> header file and it works.])
-fi
-
 AM_CONDITIONAL(HAVE_SYS_MMAN_H, test "$ac_cv_header_sys_mman_h" = yes)
 
 AC_CHECK_FUNCS(strerror_r strsignal wait4 mincore setenv unsetenv dl_iterate_phdr)
Index: libgo/go/syscall/libcall_linux_ustat.go
===================================================================
--- libgo/go/syscall/libcall_linux_ustat.go	(revision 262106)
+++ libgo/go/syscall/libcall_linux_ustat.go	(nonexistent)
@@ -1,11 +0,0 @@ 
-// 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
Index: libgo/mksysinfo.sh
===================================================================
--- libgo/mksysinfo.sh	(revision 262106)
+++ libgo/mksysinfo.sh	(working copy)
@@ -142,9 +142,6 @@  cat > sysinfo.c <<EOF
 #if defined(HAVE_SYS_SYSINFO_H)
 #include <sys/sysinfo.h>
 #endif
-#if defined(HAVE_USTAT_H)
-#include <ustat.h>
-#endif
 #if defined(HAVE_UTIME_H)
 #include <utime.h>
 #endif
@@ -1350,20 +1347,6 @@  grep '^type _sysinfo ' gen-sysinfo.go |
       -e 's/mem_unit/Unit/' \
     >> ${OUT}
 
-# The ustat struct.
-grep '^type _ustat ' gen-sysinfo.go | \
-    sed -e 's/_ustat/Ustat_t/' \
-      -e 's/f_tfree/Tfree/' \
-      -e 's/f_tinode/Tinoe/' \
-      -e 's/f_fname/Fname/' \
-      -e 's/f_fpack/Fpack/' \
-    >> ${OUT}
-# Force it to be defined, as on some older GNU/Linux systems the
-# header file fails when using with <linux/filter.h>.
-if ! grep 'type _ustat ' gen-sysinfo.go >/dev/null 2>&1; then
-  echo 'type Ustat_t struct { Tfree int32; Tinoe uint64; Fname [5+1]int8; Fpack [5+1]int8; }' >> ${OUT}
-fi
-
 # The utimbuf struct.
 grep '^type _utimbuf ' gen-sysinfo.go | \
     sed -e 's/_utimbuf/Utimbuf/' \