[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r4572 - in glibc-package/branches/eglibc-2.13/debian: . patches patches/alpha



Author: aurel32
Date: 2011-03-11 17:05:38 +0000 (Fri, 11 Mar 2011)
New Revision: 4572

Added:
   glibc-package/branches/eglibc-2.13/debian/patches/alpha/submitted-fxstatat.patch
Modified:
   glibc-package/branches/eglibc-2.13/debian/changelog
   glibc-package/branches/eglibc-2.13/debian/patches/series
Log:
  * Add patches/alpha/submitted-fxstatat.patch to implement __fxstat() 
    using the (not so) new fstatat64 syscall on alpha.



Modified: glibc-package/branches/eglibc-2.13/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.13/debian/changelog	2011-03-07 17:37:08 UTC (rev 4571)
+++ glibc-package/branches/eglibc-2.13/debian/changelog	2011-03-11 17:05:38 UTC (rev 4572)
@@ -134,6 +134,8 @@
     on GNU/kFreeBSD.
   * Add patches/s390/submitted-iconv-z9-109.diff to fix FTBFS on s390
     with recent binutils.
+  * Add patches/alpha/submitted-fxstatat.patch to implement __fxstat() 
+    using the (not so) new fstatat64 syscall on alpha.
 
   [ Samuel Thibault ]
   * Add patches/any/cvs-glro_dl_debug_mask.diff to fix build without

Added: glibc-package/branches/eglibc-2.13/debian/patches/alpha/submitted-fxstatat.patch
===================================================================
--- glibc-package/branches/eglibc-2.13/debian/patches/alpha/submitted-fxstatat.patch	                        (rev 0)
+++ glibc-package/branches/eglibc-2.13/debian/patches/alpha/submitted-fxstatat.patch	2011-03-11 17:05:38 UTC (rev 4572)
@@ -0,0 +1,57 @@
+2011-03-11  Aurelien Jarno  <aurelien@aurel32.net>
+
+	* sysdeps/unix/sysv/linux/alpha/fxstatat.c(__fxstatat): use fstatat64
+	syscall when available.
+
+--- a/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
++++ b/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
+@@ -35,6 +35,32 @@
+ int
+ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+ {
++  int result;
++  INTERNAL_SYSCALL_DECL (err);
++
++#ifdef __NR_fstatat64
++# ifndef __ASSUME_ATFCTS
++  if (__have_atfcts >= 0)
++# endif
++    {
++      result = INTERNAL_SYSCALL (fstatat64, err, 4, fd, file, st, flag);
++# ifndef __ASSUME_ATFCTS
++      if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1)
++	   && INTERNAL_SYSCALL_ERRNO (result, err) == ENOSYS)
++	__have_atfcts = -1;
++      else
++# endif
++	if (!__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1))
++	  return 0;
++	else
++	  {
++	    __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
++	    return -1;
++	  }
++    }
++#endif
++
++#ifndef __ASSUME_ATFCTS
+   if (flag & ~AT_SYMLINK_NOFOLLOW)
+     {
+       __set_errno (EINVAL);
+@@ -68,7 +94,7 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+     }
+ 
+   INTERNAL_SYSCALL_DECL (err);
+-  int result, errno_out;
++  int errno_out;
+   struct kernel_stat kst;
+ 
+ #if __ASSUME_STAT64_SYSCALL > 0
+@@ -114,6 +140,7 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+   __atfct_seterrno (errno_out, fd, buf);
+ 
+   return -1;
++#endif
+ }
+ libc_hidden_def (__fxstatat)
+ strong_alias (__fxstatat, __fxstatat64);

Modified: glibc-package/branches/eglibc-2.13/debian/patches/series
===================================================================
--- glibc-package/branches/eglibc-2.13/debian/patches/series	2011-03-07 17:37:08 UTC (rev 4571)
+++ glibc-package/branches/eglibc-2.13/debian/patches/series	2011-03-11 17:05:38 UTC (rev 4572)
@@ -51,6 +51,7 @@
 alpha/submitted-stackinfo.diff
 alpha/submitted-statfs.diff
 alpha/submitted-libm-hidden.diff
+alpha/submitted-fxstatat.patch
 
 amd64/local-biarch.diff
 amd64/local-clone.diff


Reply to: