GNU C Library master sources branch master updated. glibc-2.28.9000-464-g646ce7e

jsm28@sourceware.org jsm28@sourceware.org
Tue Dec 18 13:36:00 GMT 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  646ce7e0be9218f644ab50681b4d5a13d1050dd4 (commit)
      from  80190d2b0e3f48d973724218f37d2da5bf1a20ab (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=646ce7e0be9218f644ab50681b4d5a13d1050dd4

commit 646ce7e0be9218f644ab50681b4d5a13d1050dd4
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue Dec 18 13:35:39 2018 +0000

    Remove __ASSUME_ST_INO_64_BIT.
    
    kernel-features.h has a macro __ASSUME_ST_INO_64_BIT, with a comment
    "However, SH is lame, and still does not have a 64-bit inode field.".
    
    The macro is, in fact, defined to 0 by Alpha as well as SH.  The Alpha
    case is, however, trivially useless: none of the files that test
    __ASSUME_ST_INO_64_BIT are built for Alpha (which gained kernel
    support for stat64 syscalls, with a 64-bit st_ino field, in Linux
    2.6.4; the define to 0 for Alpha in glibc predates that).
    
    The SH kernel gained support for a 64-bit st_ino in struct stat64 in
    commit 760bcb1deec13c50e20399c84cb6a8ea41cc2820 ("sh: Fix fstatat64()
    syscall."), which is in Linux 2.6.22 and later.  So the redefinition
    of __ASSUME_ST_INO_64_BIT to 0 is of no use for SH either; three of
    the files testing it do so immediately after a stat64-family syscall
    has been used, which will always have set the 64-bit st_ino correctly
    (in addition to the 32-bit __st_ino), while the relevant code
    __xstat32_conv executes only after such a syscall in the function
    calling __xstat32_conv.
    
    Thus this patch removes __ASSUME_ST_INO_64_BIT and code testing it.
    Removing the useless [!__ASSUME_ST_INO_64_BIT] code in __xstat32_conv
    renders the [_HAVE_STAT64___ST_INO] and [!_HAVE_STAT64___ST_INO] cases
    around it identical, so that conditional is also removed.
    
    Tested compilation with build-many-glibcs.py for its Alpha and SH
    configurations; also ran the glibc testsuite for x86_64 and x86.
    
    	* sysdeps/unix/sysv/linux/kernel-features.h
    	(__ASSUME_ST_INO_64_BIT): Remove macro definition.
    	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
    	(__ASSUME_ST_INO_64_BIT): Do not undefine and define.
    	* sysdeps/unix/sysv/linux/sh/kernel-features.h
    	(__ASSUME_ST_INO_64_BIT): Likewise.
    	* sysdeps/unix/sysv/linux/fxstat64.c: Do not include
    	<kernel-features.h>.
    	(___fxstat64) [_HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT]:
    	Remove conditional code.
    	* sysdeps/unix/sysv/linux/lxstat64.c: Do not include
    	<kernel-features.h>.
    	(___lxstat64) [_HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT]:
    	Remove conditional code.
    	* sysdeps/unix/sysv/linux/xstat64.c: Do not include
    	<kernel-features.h>.
    	(___xstat64) [_HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT]:
    	Remove conditional code.
    	* sysdeps/unix/sysv/linux/xstatconv.c: Do not include
    	<kernel-features.h>.
    	(__xstat32_conv) [_HAVE_STAT64___ST_INO]: Remove conditional code.
    	[!_HAVE_STAT64___ST_INO]: Make code unconditional.

diff --git a/ChangeLog b/ChangeLog
index f459021..a276503 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2018-12-18  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h
+	(__ASSUME_ST_INO_64_BIT): Remove macro definition.
+	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
+	(__ASSUME_ST_INO_64_BIT): Do not undefine and define.
+	* sysdeps/unix/sysv/linux/sh/kernel-features.h
+	(__ASSUME_ST_INO_64_BIT): Likewise.
+	* sysdeps/unix/sysv/linux/fxstat64.c: Do not include
+	<kernel-features.h>.
+	(___fxstat64) [_HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT]:
+	Remove conditional code.
+	* sysdeps/unix/sysv/linux/lxstat64.c: Do not include
+	<kernel-features.h>.
+	(___lxstat64) [_HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT]:
+	Remove conditional code.
+	* sysdeps/unix/sysv/linux/xstat64.c: Do not include
+	<kernel-features.h>.
+	(___xstat64) [_HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT]:
+	Remove conditional code.
+	* sysdeps/unix/sysv/linux/xstatconv.c: Do not include
+	<kernel-features.h>.
+	(__xstat32_conv) [_HAVE_STAT64___ST_INO]: Remove conditional code.
+	[!_HAVE_STAT64___ST_INO]: Make code unconditional.
+
 2018-12-18  Stefan Liebler  <stli@linux.ibm.com>
 
 	* sysdeps/s390/multiarch/ifunc-resolve.h
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
index 402d257..a1b2430 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
@@ -22,9 +22,6 @@
 
 #include_next <kernel-features.h>
 
-#undef __ASSUME_ST_INO_64_BIT
-#define __ASSUME_ST_INO_64_BIT 0
-
 /* There never has been support for fstat64.  */
 #undef __ASSUME_STATFS64
 #define __ASSUME_STATFS64 0
diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
index b0c5271..fa267a3 100644
--- a/sysdeps/unix/sysv/linux/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/fxstat64.c
@@ -25,7 +25,6 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
-#include <kernel-features.h>
 #include <statx_cp.h>
 
 /* Get information about the file FD in BUF.  */
@@ -43,10 +42,6 @@ ___fxstat64 (int vers, int fd, struct stat64 *buf)
   if (result == 0)
     __cp_stat64_statx (buf, &tmp);
 #endif
-#if defined _HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT
-  if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
-    buf->st_ino = buf->__st_ino;
-#endif
   return result;
 }
 
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 0ac1616..911eb96 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -37,10 +37,6 @@
    introduced.  If somebody cares these values can afterwards be
    corrected.  */
 
-/* The changed st_ino field appeared in 2.4.0-test6.  However, SH is lame,
-   and still does not have a 64-bit inode field.  */
-#define __ASSUME_ST_INO_64_BIT		1
-
 /* The statfs64 syscalls are available in 2.5.74 (but not for alpha).  */
 #define __ASSUME_STATFS64	1
 
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
index d05fa14..3894182 100644
--- a/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
@@ -24,18 +24,12 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
-#include <kernel-features.h>
-
 /* Get information about the file NAME in BUF.  */
 int
 ___lxstat64 (int vers, const char *name, struct stat64 *buf)
 {
   int result;
   result = INLINE_SYSCALL (lstat64, 2, name, buf);
-#if defined _HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT
-  if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
-    buf->st_ino = buf->__st_ino;
-#endif
   return result;
 }
 
diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h
index 8b9ff0c..1e37582 100644
--- a/sysdeps/unix/sysv/linux/sh/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h
@@ -36,10 +36,6 @@
 
 #include_next <kernel-features.h>
 
-/* SH does not have a 64-bit inode field.  */
-#undef __ASSUME_ST_INO_64_BIT
-#define __ASSUME_ST_INO_64_BIT	0
-
 /* SH4 ABI does not really require argument alignment for 64-bits, but
    the kernel interface for p{read,write}64 adds a dummy long argument
    before the offset.  */
diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
index afc9ba2..78c8c61 100644
--- a/sysdeps/unix/sysv/linux/xstat64.c
+++ b/sysdeps/unix/sysv/linux/xstat64.c
@@ -24,8 +24,6 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
-#include <kernel-features.h>
-
 /* Get information about the file NAME in BUF.  */
 
 int
@@ -33,10 +31,6 @@ ___xstat64 (int vers, const char *name, struct stat64 *buf)
 {
   int result;
   result = INLINE_SYSCALL (stat64, 2, name, buf);
-#if defined _HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT
-  if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
-    buf->st_ino = buf->__st_ino;
-#endif
   return result;
 }
 
diff --git a/sysdeps/unix/sysv/linux/xstatconv.c b/sysdeps/unix/sysv/linux/xstatconv.c
index 3c32da7..36da273 100644
--- a/sysdeps/unix/sysv/linux/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/xstatconv.c
@@ -19,7 +19,6 @@
 #include <errno.h>
 #include <sys/stat.h>
 #include <kernel_stat.h>
-#include <kernel-features.h>
 
 #ifdef STAT_IS_KERNEL_STAT
 
@@ -189,24 +188,10 @@ __xstat32_conv (int vers, struct stat64 *kbuf, struct stat *buf)
 #ifdef _HAVE_STAT___PAD1
 	buf->__pad1 = 0;
 #endif
-#ifdef _HAVE_STAT64___ST_INO
-# if !__ASSUME_ST_INO_64_BIT
-	if (kbuf->st_ino == 0)
-	  buf->st_ino = kbuf->__st_ino;
-	else
-# endif
-	  {
-	    buf->st_ino = kbuf->st_ino;
-	    if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino)
-		&& buf->st_ino != kbuf->st_ino)
-	      return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
-	  }
-#else
 	buf->st_ino = kbuf->st_ino;
 	if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino)
 	    && buf->st_ino != kbuf->st_ino)
 	  return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
-#endif
 	buf->st_mode = kbuf->st_mode;
 	buf->st_nlink = kbuf->st_nlink;
 	buf->st_uid = kbuf->st_uid;

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                       |   25 +++++++++++++++++++++++
 sysdeps/unix/sysv/linux/alpha/kernel-features.h |    3 --
 sysdeps/unix/sysv/linux/fxstat64.c              |    5 ----
 sysdeps/unix/sysv/linux/kernel-features.h       |    4 ---
 sysdeps/unix/sysv/linux/lxstat64.c              |    6 -----
 sysdeps/unix/sysv/linux/sh/kernel-features.h    |    4 ---
 sysdeps/unix/sysv/linux/xstat64.c               |    6 -----
 sysdeps/unix/sysv/linux/xstatconv.c             |   15 -------------
 8 files changed, 25 insertions(+), 43 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources



More information about the Glibc-cvs mailing list