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: