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.16-ports-merge-266-gad845c0


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  ad845c0be95fe3635af0147f0665b110286e68a5 (commit)
      from  5dbf56af7e7aa3fdeb9dc01f2bfa9a5a4b91ffcb (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ad845c0be95fe3635af0147f0665b110286e68a5

commit ad845c0be95fe3635af0147f0665b110286e68a5
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Mon Aug 27 19:36:04 2012 +0000

    Remove __ASSUME_STAT64_SYSCALL.

diff --git a/ChangeLog b/ChangeLog
index 4a5c31d..f72f4b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,38 @@
+2012-08-27  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h
+	(__ASSUME_STAT64_SYSCALL): Remove all definitions.
+	* sysdeps/unix/sysv/linux/fxstat64.c [!__ASSUME_STAT64_SYSCALL]:
+	Remove conditional code.
+	[__ASSUME_STAT64_SYSCALL]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/fxstatat64.c [!__ASSUME_STAT64_SYSCALL]:
+	Remove conditional code.
+	[__ASSUME_STAT64_SYSCALL]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/i386/fxstat.c
+	[!__ASSUME_STAT64_SYSCALL]: Remove conditional code.
+	[__ASSUME_STAT64_SYSCALL]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/i386/fxstatat.c
+	[!__ASSUME_STAT64_SYSCALL]: Remove conditional code.
+	[__ASSUME_STAT64_SYSCALL]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/i386/lxstat.c
+	[!__ASSUME_STAT64_SYSCALL]: Remove conditional code.
+	[__ASSUME_STAT64_SYSCALL]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/i386/xstat.c [!__ASSUME_STAT64_SYSCALL]:
+	Remove conditional code.
+	[__ASSUME_STAT64_SYSCALL]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/lxstat64.c [!__ASSUME_STAT64_SYSCALL]:
+	Remove conditional code.
+	[__ASSUME_STAT64_SYSCALL]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c: Do not include
+	<kernel-features.h>.
+	[__NR_stat64 && !__ASSUME_STAT64_SYSCALL] (__have_no_stat64):
+	Remove.
+	* sysdeps/unix/sysv/linux/xstat64.c [!__ASSUME_STAT64_SYSCALL]:
+	Remove conditional code.
+	[__ASSUME_STAT64_SYSCALL]: Make code unconditional.
+	* sysdeps/unix/sysv/linux/xstatconv.c [!__ASSUME_STAT64_SYSCALL]:
+	Remove conditional.
+
 2012-08-27  Mike Frysinger  <vapier@gentoo.org>
 
 	[BZ #5400]
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index f9f616f..1fae5f7 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,8 @@
+2012-08-27  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/arm/kernel-features.h
+	(__ASSUME_STAT64_SYSCALL): Remove.
+
 2012-08-23  Steve McIntyre  <steve.mcintyre@linaro.org>
 
 	* sysdeps/unix/sysv/linux/arm/ldsodefs.h (VALID_FLOAT_ABI): Define
diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa
index 97b6c57..2de923a 100644
--- a/ports/ChangeLog.hppa
+++ b/ports/ChangeLog.hppa
@@ -1,3 +1,8 @@
+2012-08-27  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
+	(__ASSUME_STAT64_SYSCALL): Remove.
+
 2012-08-20  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
diff --git a/ports/ChangeLog.m68k b/ports/ChangeLog.m68k
index b438631..5163cf3 100644
--- a/ports/ChangeLog.m68k
+++ b/ports/ChangeLog.m68k
@@ -1,3 +1,8 @@
+2012-08-27  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
+	(__ASSUME_STAT64_SYSCALL): Remove.
+
 2012-08-21  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips
index 8d919d0..8c41753 100644
--- a/ports/ChangeLog.mips
+++ b/ports/ChangeLog.mips
@@ -1,3 +1,8 @@
+2012-08-27  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/mips/kernel-features.h
+	(__ASSUME_STAT64_SYSCALL): Remove.
+
 2012-08-27  Guido Guenther  <agx@sigxcpu.org>
 
 	* sysdeps/mips/fpu_control.h (_FPU_RESERVED): Set bit 23.
diff --git a/ports/ChangeLog.tile b/ports/ChangeLog.tile
index 10acc1e..0be6192 100644
--- a/ports/ChangeLog.tile
+++ b/ports/ChangeLog.tile
@@ -1,3 +1,8 @@
+2012-08-27  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/tile/kernel-features.h
+	(__ASSUME_STAT64_SYSCALL): Remove.
+
 2012-08-21  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/tile/kernel-features.h
diff --git a/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h b/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h
index 34ed474..e13443d 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -20,10 +20,6 @@
 /* The utimes syscall was added before 2.6.1.  */
 #define __ASSUME_UTIMES	1
 
-/* On ARM the stat64/lstat64/fstat64 syscalls were introduced in
-   2.3.35.  */
-#define __ASSUME_STAT64_SYSCALL	1
-
 /* The signal frame layout changed in 2.6.18.  */
 #if __LINUX_KERNEL_VERSION >= 132626
 # define __ASSUME_SIGFRAME_V2	1
diff --git a/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h
index d5bec07..fb0e9c9 100644
--- a/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h
+++ b/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h
@@ -23,7 +23,6 @@
    and expect the final version here.  */
 #define __ASSUME_32BITUIDS		1
 #define __ASSUME_TRUNCATE64_SYSCALL	1
-#define __ASSUME_STAT64_SYSCALL		1
 #define __ASSUME_IPC64			1
 #define __ASSUME_ST_INO_64_BIT		1
 #define __ASSUME_GETDENTS64_SYSCALL	1
diff --git a/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
index 3df653c..dbc7724 100644
--- a/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+++ b/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
@@ -17,9 +17,6 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
-/* These features were surely available with 2.4.12.  */
-#define __ASSUME_STAT64_SYSCALL	1
-
 /* Many syscalls were added in 2.6.10 for m68k.  */
 #define __ASSUME_UTIMES	1
 
diff --git a/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h b/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h
index d318a31..62c1604 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -25,12 +25,6 @@
 /* MIPS had the utimes syscall by 2.6.0.  */
 #define __ASSUME_UTIMES		1
 
-/* MIPS o32 had the stat64 syscalls by 2.6.0, but for n32 and n64 the
-   plain stat syscalls are 64-bit.  */
-#if _MIPS_SIM == _ABIO32
-# define __ASSUME_STAT64_SYSCALL	1
-#endif
-
 /* Support for the eventfd2 and signalfd4 syscalls was added in 2.6.27.  */
 #if __LINUX_KERNEL_VERSION >= 0x02061c
 # define __ASSUME_EVENTFD2	1
diff --git a/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h b/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h
index cebfac4..106af62 100644
--- a/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h
+++ b/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h
@@ -18,7 +18,6 @@
 
 
 /* TILE glibc support starts with 2.6.36, guaranteeing many kernel features. */
-#define __ASSUME_STAT64_SYSCALL		1
 #define __ASSUME_UTIMES			1
 #define __ASSUME_O_CLOEXEC		1
 #define __ASSUME_SOCK_CLOEXEC		1
diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
index dc78647..b2ad48b 100644
--- a/sysdeps/unix/sysv/linux/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/fxstat64.c
@@ -1,5 +1,5 @@
-/* fxstat64 using old-style Unix fstat system call.
-   Copyright (C) 1997-2002, 2003, 2006 Free Software Foundation, Inc.
+/* fxstat64 using Linux fstat64 system call.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,57 +27,18 @@
 
 #include <kernel-features.h>
 
-#if __ASSUME_STAT64_SYSCALL == 0
-# include <xstatconv.h>
-#endif
-
-#ifdef __NR_fstat64
-# if  __ASSUME_STAT64_SYSCALL == 0
-/* The variable is shared between all wrappers around *stat64 calls.  */
-extern int __have_no_stat64;
-# endif
-#endif
-
 /* Get information about the file FD in BUF.  */
 
 int
 ___fxstat64 (int vers, int fd, struct stat64 *buf)
 {
   int result;
-#if __ASSUME_STAT64_SYSCALL > 0
   result = INLINE_SYSCALL (fstat64, 2, fd, CHECK_1 (buf));
-# if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+#if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
     buf->st_ino = buf->__st_ino;
-# endif
-  return result;
-#else
-  struct kernel_stat kbuf;
-# if defined __NR_fstat64
-  if (! __have_no_stat64)
-    {
-      int saved_errno = errno;
-      result = INLINE_SYSCALL (fstat64, 2, fd, CHECK_1 (buf));
-
-      if (result != -1 || errno != ENOSYS)
-	{
-#  if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
-	  if (!result && buf->__st_ino != (__ino_t)buf->st_ino)
-	    buf->st_ino = buf->__st_ino;
-#  endif
-	  return result;
-	}
-
-      __set_errno (saved_errno);
-      __have_no_stat64 = 1;
-    }
-# endif
-  result = INLINE_SYSCALL (fstat, 2, fd, __ptrvalue (&kbuf));
-  if (result == 0)
-    result = __xstat64_conv (vers, &kbuf, buf);
-
-  return result;
 #endif
+  return result;
 }
 
 #include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
index fff9444..4aa60df 100644
--- a/sysdeps/unix/sysv/linux/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/fxstatat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,18 +29,6 @@
 
 #include <kernel-features.h>
 
-#if __ASSUME_STAT64_SYSCALL == 0
-# include <xstatconv.h>
-#endif
-
-#ifdef __NR_stat64
-# if  __ASSUME_STAT64_SYSCALL == 0
-/* The variable is shared between all wrappers around *stat64 calls.
-   This is the definition.  */
-extern int __have_no_stat64;
-# endif
-#endif
-
 /* Get information about the file NAME in BUF.  */
 
 int
@@ -110,7 +98,6 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
       file = buf;
     }
 
-# if __ASSUME_STAT64_SYSCALL > 0
   if (flag & AT_SYMLINK_NOFOLLOW)
     result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file),
 			       CHECK_1 (st));
@@ -119,51 +106,12 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
 			       CHECK_1 (st));
   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
     {
-#  if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+# if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
       if (st->__st_ino != (__ino_t) st->st_ino)
 	st->st_ino = st->__st_ino;
-#  endif
+# endif
       return result;
     }
-# else
-  struct kernel_stat kst;
-#  ifdef __NR_stat64
-  if (! __have_no_stat64)
-    {
-      if (flag & AT_SYMLINK_NOFOLLOW)
-	result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file),
-				   CHECK_1 (st));
-      else
-	result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file),
-				   CHECK_1 (st));
-
-      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
-	{
-#   if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
-	  if (st->__st_ino != (__ino_t) st->st_ino)
-	    st->st_ino = st->__st_ino;
-#   endif
-	  return result;
-	}
-      if (INTERNAL_SYSCALL_ERRNO (result, err) != ENOSYS)
-	goto fail;
-
-      __have_no_stat64 = 1;
-    }
-#  endif
-
-  if (flag & AT_SYMLINK_NOFOLLOW)
-    result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&kst));
-  else
-    result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&kst));
-
-  if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
-    return __xstat64_conv (vers, &kst, st);
-
- fail:
-# endif
   __atfct_seterrno (INTERNAL_SYSCALL_ERRNO (result, err), fd, buf);
 
   return -1;
diff --git a/sysdeps/unix/sysv/linux/i386/fxstat.c b/sysdeps/unix/sysv/linux/i386/fxstat.c
index 5077780..a1a950e 100644
--- a/sysdeps/unix/sysv/linux/i386/fxstat.c
+++ b/sysdeps/unix/sysv/linux/i386/fxstat.c
@@ -1,6 +1,5 @@
 /* fxstat using old-style Unix fstat system call.
-   Copyright (C) 1991,1995-1998,2000,2002,2003,2006
-	Free Software Foundation, Inc.
+   Copyright (C) 1991-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -34,26 +33,15 @@
 
 #include <xstatconv.h>
 
-#ifdef __NR_stat64
-# if  __ASSUME_STAT64_SYSCALL == 0
-/* The variable is shared between all wrappers around *stat64 calls.  */
-extern int __have_no_stat64;
-# endif
-#endif
-
 /* Get information about the file FD in BUF.  */
 int
 __fxstat (int vers, int fd, struct stat *buf)
 {
-#if __ASSUME_STAT64_SYSCALL == 0
-  struct kernel_stat kbuf;
-#endif
   int result;
 
   if (vers == _STAT_VER_KERNEL)
     return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 ((struct kernel_stat *) buf));
 
-#if __ASSUME_STAT64_SYSCALL > 0
   {
     struct stat64 buf64;
 
@@ -62,33 +50,6 @@ __fxstat (int vers, int fd, struct stat *buf)
       result = __xstat32_conv (vers, &buf64, buf);
     return result;
   }
-#else
-
-# if defined __NR_stat64
-  /* To support 32 bit UIDs, we have to use stat64.  The normal stat call only returns
-     16 bit UIDs.  */
-  if (! __have_no_stat64)
-    {
-      struct stat64 buf64;
-
-      result = INLINE_SYSCALL (fstat64, 2, fd, __ptrvalue (&buf64));
-
-      if (result == 0)
-	result = __xstat32_conv (vers, &buf64, buf);
-
-      if (result != -1 || errno != ENOSYS)
-	return result;
-
-      __have_no_stat64 = 1;
-    }
-# endif
-
-  result = INLINE_SYSCALL (fstat, 2, fd, __ptrvalue (&kbuf));
-  if (result == 0)
-    result = __xstat_conv (vers, &kbuf, buf);
-
-  return result;
-#endif  /* __ASSUME_STAT64_SYSCALL  */
 }
 
 hidden_def (__fxstat)
diff --git a/sysdeps/unix/sysv/linux/i386/fxstatat.c b/sysdeps/unix/sysv/linux/i386/fxstatat.c
index 7aae336..d1e81e0 100644
--- a/sysdeps/unix/sysv/linux/i386/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/i386/fxstatat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -35,13 +35,6 @@
 
 #include <xstatconv.h>
 
-#ifdef __NR_stat64
-# if __ASSUME_STAT64_SYSCALL == 0
-/* The variable is shared between all wrappers around *stat64 calls.  */
-extern int __have_no_stat64;
-# endif
-#endif
-
 
 /* Get information about the file NAME relative to FD in ST.  */
 int
@@ -106,9 +99,6 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
       file = buf;
     }
 
-# if __ASSUME_STAT64_SYSCALL == 0
-  struct kernel_stat kst;
-# endif
   if (vers == _STAT_VER_KERNEL)
     {
       if (flag & AT_SYMLINK_NOFOLLOW)
@@ -120,8 +110,6 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
       goto out;
     }
 
-# if __ASSUME_STAT64_SYSCALL > 0
-
   if (flag & AT_SYMLINK_NOFOLLOW)
     result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file),
 			       __ptrvalue (&st64));
@@ -130,38 +118,6 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
 			       __ptrvalue (&st64));
   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
     return __xstat32_conv (vers, &st64, st);
-# else
-#  if defined __NR_stat64
-  /* To support 32 bit UIDs, we have to use stat64.  The normal stat
-     call only returns 16 bit UIDs.  */
-  if (! __have_no_stat64)
-    {
-      if (flag & AT_SYMLINK_NOFOLLOW)
-	result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file),
-				   __ptrvalue (&st64));
-      else
-	result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file),
-				   __ptrvalue (&st64));
-
-      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
-	result = __xstat32_conv (vers, &st64, st);
-
-      if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)
-	  || INTERNAL_SYSCALL_ERRNO (result, err) != ENOSYS)
-	goto out;
-
-      __have_no_stat64 = 1;
-    }
-#  endif
-  if (flag & AT_SYMLINK_NOFOLLOW)
-    result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&kst));
-  else
-    result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
-			       __ptrvalue (&kst));
-  if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
-    return __xstat_conv (vers, &kst, st);
-# endif  /* __ASSUME_STAT64_SYSCALL  */
 
  out:
   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c
index 8994e17..2b1ecaa 100644
--- a/sysdeps/unix/sysv/linux/i386/lxstat.c
+++ b/sysdeps/unix/sysv/linux/i386/lxstat.c
@@ -1,6 +1,5 @@
 /* lxstat using old-style Unix lstat system call.
-   Copyright (C) 1991,1995,1996,1997,1998,2000,2002,2003,2006
-	Free Software Foundation, Inc.
+   Copyright (C) 1991-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -34,27 +33,16 @@
 
 #include <xstatconv.h>
 
-#ifdef __NR_stat64
-# if  __ASSUME_STAT64_SYSCALL == 0
-/* The variable is shared between all wrappers around *stat64 calls.  */
-extern int __have_no_stat64;
-# endif
-#endif
-
 
 /* Get information about the file NAME in BUF.  */
 int
 __lxstat (int vers, const char *name, struct stat *buf)
 {
-#if __ASSUME_STAT64_SYSCALL == 0
-  struct kernel_stat kbuf;
-#endif
   int result;
 
   if (vers == _STAT_VER_KERNEL)
     return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), CHECK_1 ((struct kernel_stat *) buf));
 
-#if __ASSUME_STAT64_SYSCALL > 0
   {
     struct stat64 buf64;
 
@@ -63,32 +51,6 @@ __lxstat (int vers, const char *name, struct stat *buf)
       result = __xstat32_conv (vers, &buf64, buf);
     return result;
   }
-#else
-
-# if defined __NR_stat64
-  /* To support 32 bit UIDs, we have to use stat64.  The normal stat call only returns
-     16 bit UIDs.  */
-  if (! __have_no_stat64)
-    {
-      struct stat64 buf64;
-      result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), __ptrvalue (&buf64));
-
-      if (result == 0)
-	result = __xstat32_conv (vers, &buf64, buf);
-
-      if (result != -1 || errno != ENOSYS)
-	return result;
-
-      __have_no_stat64 = 1;
-    }
-# endif
-
-  result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
-  if (result == 0)
-    result = __xstat_conv (vers, &kbuf, buf);
-
-  return result;
-#endif
 }
 
 hidden_def (__lxstat)
diff --git a/sysdeps/unix/sysv/linux/i386/xstat.c b/sysdeps/unix/sysv/linux/i386/xstat.c
index 236ec74..0fe7a9d 100644
--- a/sysdeps/unix/sysv/linux/i386/xstat.c
+++ b/sysdeps/unix/sysv/linux/i386/xstat.c
@@ -1,6 +1,5 @@
 /* xstat using old-style Unix stat system call.
-   Copyright (C) 1991,95,96,97,98,2000,2002,2003,2006
-	Free Software Foundation, Inc.
+   Copyright (C) 1991-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -34,27 +33,16 @@
 
 #include <xstatconv.h>
 
-#ifdef __NR_stat64
-# if __ASSUME_STAT64_SYSCALL == 0
-/* The variable is shared between all wrappers around *stat64 calls.  */
-extern int __have_no_stat64;
-# endif
-#endif
-
 
 /* Get information about the file NAME in BUF.  */
 int
 __xstat (int vers, const char *name, struct stat *buf)
 {
-#if __ASSUME_STAT64_SYSCALL == 0
-  struct kernel_stat kbuf;
-#endif
   int result;
 
   if (vers == _STAT_VER_KERNEL)
     return INLINE_SYSCALL (stat, 2, CHECK_STRING (name), CHECK_1 ((struct kernel_stat *) buf));
 
-#if __ASSUME_STAT64_SYSCALL > 0
   {
     struct stat64 buf64;
 
@@ -63,31 +51,6 @@ __xstat (int vers, const char *name, struct stat *buf)
       result = __xstat32_conv (vers, &buf64, buf);
     return result;
   }
-#else
-# if defined __NR_stat64
-  /* To support 32 bit UIDs, we have to use stat64.  The normal stat call only returns
-     16 bit UIDs.  */
-  if (! __have_no_stat64)
-    {
-      struct stat64 buf64;
-
-      result = INLINE_SYSCALL (stat64, 2, CHECK_STRING (name), __ptrvalue (&buf64));
-
-      if (result == 0)
-	result = __xstat32_conv (vers, &buf64, buf);
-
-      if (result != -1 || errno != ENOSYS)
-	return result;
-
-      __have_no_stat64 = 1;
-    }
-# endif
-  result = INLINE_SYSCALL (stat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
-  if (result == 0)
-    result = __xstat_conv (vers, &kbuf, buf);
-
-  return result;
-#endif  /* __ASSUME_STAT64_SYSCALL  */
 }
 hidden_def (__xstat)
 weak_alias (__xstat, _xstat);
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 281faad..33fca5c 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -40,23 +40,6 @@
 /* The sendfile syscall was introduced in 2.2.0.  */
 #define __ASSUME_SENDFILE		1
 
-/* On x86 the stat64/lstat64/fstat64 syscalls were introduced in 2.3.34.  */
-#ifdef __i386__
-# define __ASSUME_STAT64_SYSCALL	1
-#endif
-
-/* On sparc the stat64/lstat64/fstat64 syscalls were introduced in
-   2.3.35.  */
-#if defined __sparc__ && !defined __arch64__
-# define __ASSUME_STAT64_SYSCALL	1
-#endif
-
-/* I know for sure that these are in 2.3.35 on powerpc. But PowerPC64 does not
-   support separate 64-bit syscalls, already 64-bit.  */
-#if defined __powerpc__ && !defined __powerpc64__
-# define __ASSUME_STAT64_SYSCALL	1
-#endif
-
 /* Linux 2.3.39 introduced IPC64.  Except for powerpc.  Linux 2.4.0 on
    PPC introduced a correct IPC64.  But PowerPC64 does not support a
    separate 64-bit syscall, already 64-bit.  */
@@ -64,11 +47,6 @@
 # define __ASSUME_IPC64		1
 #endif
 
-/* SH kernels got stat64 during 2.4.0-test.  */
-#ifdef __sh__
-# define __ASSUME_STAT64_SYSCALL	1
-#endif
-
 /* 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.  */
 #ifndef __sh__
@@ -98,11 +76,6 @@
 # define __ASSUME_UTIMES	1
 #endif
 
-/* On sparc64 stat64/lstat64/fstat64 syscalls were introduced in 2.6.12.  */
-#if defined __sparc__ && defined __arch64__
-# define __ASSUME_STAT64_SYSCALL	1
-#endif
-
 /* pselect/ppoll were introduced just after 2.6.16-rc1.  Due to the way
    the kernel versions are advertised we can only rely on 2.6.17 to have
    the code.  On x86_64 and SH this appeared first in 2.6.19-rc1,
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
index c6920b4..765b195 100644
--- a/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
@@ -1,5 +1,5 @@
-/* lxstat64 using old-style Unix lstat system call.
-   Copyright (C) 1997-2002,2003,2006 Free Software Foundation, Inc.
+/* lxstat64 using Linux lstat64 system call.
+   Copyright (C) 1997-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,56 +27,17 @@
 
 #include <kernel-features.h>
 
-#if __ASSUME_STAT64_SYSCALL == 0
-# include <xstatconv.h>
-#endif
-
-#ifdef __NR_lstat64
-# if  __ASSUME_STAT64_SYSCALL == 0
-/* The variable is shared between all wrappers around *stat64 calls.  */
-extern int __have_no_stat64;
-# endif
-#endif
-
 /* Get information about the file NAME in BUF.  */
 int
 ___lxstat64 (int vers, const char *name, struct stat64 *buf)
 {
   int result;
-#ifdef __ASSUME_STAT64_SYSCALL
   result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), CHECK_1 (buf));
-# if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+#if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
     buf->st_ino = buf->__st_ino;
-# endif
-  return result;
-#else
-  struct kernel_stat kbuf;
-# ifdef __NR_lstat64
-  if (! __have_no_stat64)
-    {
-      int saved_errno = errno;
-      result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), CHECK_1 (buf));
-
-      if (result != -1 || errno != ENOSYS)
-	{
-#  if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
-	  if (!result && buf->__st_ino != (__ino_t) buf->st_ino)
-	    buf->st_ino = buf->__st_ino;
-#  endif
-	  return result;
-	}
-
-      __set_errno (saved_errno);
-      __have_no_stat64 = 1;
-    }
-# endif
-  result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
-  if (result == 0)
-    result = __xstat64_conv (vers, &kbuf, buf);
-
-  return result;
 #endif
+  return result;
 }
 
 #include <shlib-compat.h>
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c b/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c
index 71a51cc..c3b00cb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c
@@ -1,10 +1 @@
-#include <kernel-features.h>
-
 #include "../../i386/xstat.c"
-
-#ifdef __NR_stat64
-# if __ASSUME_STAT64_SYSCALL == 0
-/* The variable is shared between all wrappers around *stat{,64} calls.  */
-int __have_no_stat64;
-# endif
-#endif
diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
index c83d2b7..dd0f996 100644
--- a/sysdeps/unix/sysv/linux/xstat64.c
+++ b/sysdeps/unix/sysv/linux/xstat64.c
@@ -1,5 +1,5 @@
-/* xstat64 using old-style Unix stat system call.
-   Copyright (C) 1991,1995-2002,2003,2006 Free Software Foundation, Inc.
+/* xstat64 using Linux stat64 system call.
+   Copyright (C) 1991-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,59 +27,18 @@
 
 #include <kernel-features.h>
 
-#if __ASSUME_STAT64_SYSCALL == 0
-# include <xstatconv.h>
-#endif
-
-#ifdef __NR_stat64
-# if  __ASSUME_STAT64_SYSCALL == 0
-/* The variable is shared between all wrappers around *stat64 calls.
-   This is the definition.  */
-int __have_no_stat64;
-# endif
-#endif
-
 /* Get information about the file NAME in BUF.  */
 
 int
 ___xstat64 (int vers, const char *name, struct stat64 *buf)
 {
   int result;
-#if __ASSUME_STAT64_SYSCALL > 0
   result = INLINE_SYSCALL (stat64, 2, CHECK_STRING (name), CHECK_1 (buf));
-# if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+#if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
     buf->st_ino = buf->__st_ino;
-# endif
-  return result;
-#else
-  struct kernel_stat kbuf;
-# if defined __NR_stat64
-  if (! __have_no_stat64)
-    {
-      int saved_errno = errno;
-      result = INLINE_SYSCALL (stat64, 2, CHECK_STRING (name), CHECK_1 (buf));
-
-      if (result != -1 || errno != ENOSYS)
-	{
-#  if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
-	  if (!result && buf->__st_ino != (__ino_t) buf->st_ino)
-	    buf->st_ino = buf->__st_ino;
-#  endif
-	  return result;
-	}
-
-      __set_errno (saved_errno);
-      __have_no_stat64 = 1;
-    }
-# endif
-
-  result = INLINE_SYSCALL (stat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
-  if (result == 0)
-    result = __xstat64_conv (vers, &kbuf, buf);
-
-  return result;
 #endif
+  return result;
 }
 
 
diff --git a/sysdeps/unix/sysv/linux/xstatconv.c b/sysdeps/unix/sysv/linux/xstatconv.c
index bf1dae0..2e5a1a1 100644
--- a/sysdeps/unix/sysv/linux/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/xstatconv.c
@@ -1,6 +1,5 @@
 /* Convert between the kernel's `struct stat' format, and libc's.
-   Copyright (C) 1991,1995-1997,2000,2002,2003,2007
-   Free Software Foundation, Inc.
+   Copyright (C) 1991-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +31,7 @@ struct kernel_stat;
 #include <string.h>
 
 
-#if !defined __ASSUME_STAT64_SYSCALL || defined XSTAT_IS_XSTAT64
+#ifdef XSTAT_IS_XSTAT64
 int
 __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
 {

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

Summary of changes:
 ChangeLog                                          |   35 ++++++++++++
 ports/ChangeLog.arm                                |    5 ++
 ports/ChangeLog.hppa                               |    5 ++
 ports/ChangeLog.m68k                               |    5 ++
 ports/ChangeLog.mips                               |    5 ++
 ports/ChangeLog.tile                               |    5 ++
 .../sysdeps/unix/sysv/linux/arm/kernel-features.h  |    4 --
 .../sysdeps/unix/sysv/linux/hppa/kernel-features.h |    1 -
 .../sysdeps/unix/sysv/linux/m68k/kernel-features.h |    3 -
 .../sysdeps/unix/sysv/linux/mips/kernel-features.h |    6 --
 .../sysdeps/unix/sysv/linux/tile/kernel-features.h |    1 -
 sysdeps/unix/sysv/linux/fxstat64.c                 |   47 ++---------------
 sysdeps/unix/sysv/linux/fxstatat64.c               |   58 +-------------------
 sysdeps/unix/sysv/linux/i386/fxstat.c              |   41 +--------------
 sysdeps/unix/sysv/linux/i386/fxstatat.c            |   46 +---------------
 sysdeps/unix/sysv/linux/i386/lxstat.c              |   40 +-------------
 sysdeps/unix/sysv/linux/i386/xstat.c               |   39 +-------------
 sysdeps/unix/sysv/linux/kernel-features.h          |   27 ---------
 sysdeps/unix/sysv/linux/lxstat64.c                 |   47 ++---------------
 sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c      |    9 ---
 sysdeps/unix/sysv/linux/xstat64.c                  |   49 ++---------------
 sysdeps/unix/sysv/linux/xstatconv.c                |    5 +-
 22 files changed, 81 insertions(+), 402 deletions(-)


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]