This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.24-423-ga094117


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  a09411756fd935482a81e99dc3f3eae99843d012 (commit)
      from  b36528936449d2e800db8833869d108a20653c96 (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=a09411756fd935482a81e99dc3f3eae99843d012

commit a09411756fd935482a81e99dc3f3eae99843d012
Author: Steve Ellcey <sellcey@caviumnetworks.com>
Date:   Tue Nov 29 08:06:47 2016 -0800

    Use XSTAT_IS_XSTAT64 in generic xstat functions
    
    	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c: Do not define
    	fxstat if XSTAT_IS_XSTAT64 is set to non-zero.
    	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c: Ditto for
    	fxstatat.
    	* sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c: Ditto for
    	lxstat.
    	* sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c: Ditto for xstat.
    
    	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c: New file.
    	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c: New file.
    	* sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c: Make __lxstat
    	an alias of __lxstat64 if XSTAT_IS_XSTAT64 is set to non-zero.
    	* sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c: Ditto for
    	__xstat.

diff --git a/ChangeLog b/ChangeLog
index 7a70c49..92c96c1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2016-11-29  Yury Norov  <ynorov@caviumnetworks.com>
+	    Steve Ellcey  <sellcey@caviumnetworks.com>
+
+	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c: Do not define
+	fxstat if XSTAT_IS_XSTAT64 is set to non-zero.
+	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c: Ditto for
+	fxstatat.
+	* sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c: Ditto for
+	lxstat.
+	* sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c: Ditto for xstat.
+	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c: New file.
+	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c: New file.
+	* sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c: Make __lxstat
+	an alias of __lxstat64 if XSTAT_IS_XSTAT64 is set to non-zero.
+	* sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c: Ditto for
+	__xstat.
+
 2016-11-29  Florian Weimer  <fweimer@redhat.com>
 
 	* sysdeps/powerpc/powerpc64/setjmp-common.S (__GI___sigsetjmp):
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
index dd52011..0a689a8 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
@@ -25,6 +25,7 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
+#if !XSTAT_IS_XSTAT64
 #include "overflow.h"
 
 /* Get information about the file FD in BUF.  */
@@ -43,3 +44,4 @@ __fxstat (int vers, int fd, struct stat *buf)
 
 hidden_def (__fxstat)
 weak_alias (__fxstat, _fxstat);
+#endif
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c
similarity index 54%
copy from sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
copy to sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c
index fdd2cb0..bb97a70 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2011-2016 Free Software Foundation, Inc.
+/* __fxstat64 () implementation.
+   Copyright (C) 2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
@@ -16,28 +17,20 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include <errno.h>
-#include <stddef.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <kernel_stat.h>
+/* Hide the prototypes for __fxstat and _fxstat so that GCC will not
+   complain about the different function signatures if they are aliased
+   to  __fxstat64.  If XSTAT_IS_XSTAT64 is set to non-zero then the stat and
+   stat64 structures have an identical layout but different type names.  */
 
-#include <sysdep.h>
-#include <sys/syscall.h>
+#define __fxstat __fxstat_disable
+#define _fxstat _fxstat_disable
 
-#include "overflow.h"
+#include <sysdeps/unix/sysv/linux/fxstat64.c>
 
-/* Get information about the file NAME in BUF.  */
-int
-__xstat (int vers, const char *name, struct stat *buf)
-{
-  if (vers == _STAT_VER_KERNEL)
-    {
-      int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0);
-      return rc ?: stat_overflow (buf);
-    }
-
-  errno = EINVAL;
-  return -1;
-}
-hidden_def (__xstat)
+#undef __fxstat
+#undef _fxstat
+#if XSTAT_IS_XSTAT64
+weak_alias (__fxstat64, __fxstat)
+weak_alias (__fxstat64, _fxstat)
+hidden_ver (__fxstat64, __fxstat)
+#endif
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
index dc7f934..aaed6db 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
@@ -26,6 +26,7 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
+#if !XSTAT_IS_XSTAT64
 #include "overflow.h"
 
 /* Get information about the file NAME in BUF.  */
@@ -42,3 +43,4 @@ __fxstatat (int vers, int fd, const char *file, struct stat *buf, int flag)
   return -1;
 }
 libc_hidden_def (__fxstatat)
+#endif
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c
similarity index 55%
copy from sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
copy to sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c
index fdd2cb0..dac2ad1 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2011-2016 Free Software Foundation, Inc.
+/* __fxstatat64 () implementation.
+   Copyright (C) 2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
@@ -16,28 +17,21 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include <errno.h>
-#include <stddef.h>
-#include <fcntl.h>
+/* Hide the prototype for __fxstatat so that GCC will not complain about
+   the different function signature if it is aliased to  __fxstatat64.
+   If XSTAT_IS_XSTAT64 is set to non-zero then the stat and stat64 structures
+   have an identical layout but different type names.  */
+
+#define __fxstatat __fxstatat_disable
+
 #include <sys/stat.h>
-#include <kernel_stat.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-
-#include "overflow.h"
-
-/* Get information about the file NAME in BUF.  */
-int
-__xstat (int vers, const char *name, struct stat *buf)
-{
-  if (vers == _STAT_VER_KERNEL)
-    {
-      int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0);
-      return rc ?: stat_overflow (buf);
-    }
-
-  errno = EINVAL;
-  return -1;
-}
-hidden_def (__xstat)
+#undef _STAT_VER_LINUX
+#define _STAT_VER_LINUX _STAT_VER_KERNEL
+
+#include <sysdeps/unix/sysv/linux/fxstatat64.c>
+
+#undef __fxstatat
+#if XSTAT_IS_XSTAT64
+weak_alias (__fxstatat64, __fxstatat)
+libc_hidden_ver (__fxstatat64, __fxstatat)
+#endif
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
index 395f98b..dd0338b 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
@@ -25,6 +25,7 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
+#if !XSTAT_IS_XSTAT64
 #include "overflow.h"
 
 /* Get information about the file NAME in BUF.  */
@@ -41,3 +42,4 @@ __lxstat (int vers, const char *name, struct stat *buf)
   return -1;
 }
 hidden_def (__lxstat)
+#endif
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
index e1c15a8..7407c6b 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
@@ -16,6 +16,13 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* Hide the prototype for __lxstat so that GCC will not complain about
+   the different function signature if it is aliased to  __lxstat64.
+   If XSTAT_IS_XSTAT64 is set to non-zero then the stat and stat64
+   structures have an identical layout but different type names.  */
+
+#define __lxstat __lxstat_disable
+
 #include <errno.h>
 #include <stddef.h>
 #include <fcntl.h>
@@ -36,3 +43,9 @@ __lxstat64 (int vers, const char *name, struct stat64 *buf)
   return -1;
 }
 hidden_def (__lxstat64)
+
+#undef __lxstat
+#if XSTAT_IS_XSTAT64
+strong_alias (__lxstat64, __lxstat)
+hidden_ver (__lxstat64, __lxstat)
+#endif
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
index fdd2cb0..b776e31 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
@@ -25,6 +25,7 @@
 #include <sysdep.h>
 #include <sys/syscall.h>
 
+#if !XSTAT_IS_XSTAT64
 #include "overflow.h"
 
 /* Get information about the file NAME in BUF.  */
@@ -41,3 +42,4 @@ __xstat (int vers, const char *name, struct stat *buf)
   return -1;
 }
 hidden_def (__xstat)
+#endif
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
index 2252337..e710931 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
@@ -16,6 +16,13 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+/* Hide the prototype for __xstat so that GCC will not complain about
+   the different function signature if it is aliased to  __xstat64.
+   If XSTAT_IS_XSTAT64 is set to non-zero then the stat and stat64
+   structures have an identical layout but different type names.  */
+
+#define __xstat __xstat_disable
+
 #include <errno.h>
 #include <stddef.h>
 #include <fcntl.h>
@@ -36,3 +43,9 @@ __xstat64 (int vers, const char *name, struct stat64 *buf)
   return -1;
 }
 hidden_def (__xstat64)
+
+#undef __xstat
+#if XSTAT_IS_XSTAT64
+strong_alias (__xstat64, __xstat)
+hidden_ver (__xstat64, __xstat)
+#endif

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

Summary of changes:
 ChangeLog                                          |   17 ++++++++
 .../unix/sysv/linux/generic/wordsize-32/fxstat.c   |    2 +
 .../sysv/linux/generic/wordsize-32/fxstat64.c}     |   37 +++++++---------
 .../unix/sysv/linux/generic/wordsize-32/fxstatat.c |    2 +
 .../generic/wordsize-32/{xstat.c => fxstatat64.c}  |   44 ++++++++-----------
 .../unix/sysv/linux/generic/wordsize-32/lxstat.c   |    2 +
 .../unix/sysv/linux/generic/wordsize-32/lxstat64.c |   13 ++++++
 .../unix/sysv/linux/generic/wordsize-32/xstat.c    |    2 +
 .../unix/sysv/linux/generic/wordsize-32/xstat64.c  |   13 ++++++
 9 files changed, 86 insertions(+), 46 deletions(-)
 copy sysdeps/{tile/nptl/bits/semaphore.h => unix/sysv/linux/generic/wordsize-32/fxstat64.c} (55%)
 copy sysdeps/unix/sysv/linux/generic/wordsize-32/{xstat.c => fxstatat64.c} (55%)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]