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.20-423-g90aa3d0


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  90aa3d09450903859e2845399729775b19bde50c (commit)
      from  4c0c0e2aeffe050b78ab515ae54a051dc7a1e2da (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=90aa3d09450903859e2845399729775b19bde50c

commit 90aa3d09450903859e2845399729775b19bde50c
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Mon Dec 22 21:42:03 2014 +0000

    Make __ASSUME_UTIMES hppa-specific.
    
    This patch makes __ASSUME_UTIMES hppa-specific, removing mentions of
    the macro from architecture-independent code and code for other
    architectures.  (All other architectures either have the utimes
    syscall in all relevant kernel versions, or use the asm-generic
    interface so only have utimensat and won't get the utimes syscall.)  A
    similar approach is used to that used for futimesat for MicroBlaze: if
    the kernel is recent enough that the utimes syscall can be assumed to
    be present, use the implementation in terms of the utimes syscall, and
    otherwise use the linux/generic implementation in terms of utimensat.
    
    Tested x86_64 that the disassembly of installed shared libraries is
    unchanged by the patch.  Not tested for hppa.
    
    	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMES): Do
    	not define.
    	* sysdeps/unix/sysv/linux/utimes.c: Do not include
    	<kernel-features.h>.
    	(__utimes) [__NR_utimes]: Make code unconditional.
    	(__utimes) [!__ASSUME_UTIMES]: Remove conditional code.
    	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
    	(__ASSUME_UTIMES): Do not undefine.
    	* sysdeps/unix/sysv/linux/tile/kernel-features.h
    	(__ASSUME_UTIMES): Likewise.
    	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
    	(__ASSUME_UTIMES): Define for [__LINUX_KERNEL_VERSION >= 0x030e00]
    	instead of undefining for [__LINUX_KERNEL_VERSION < 0x030e00].
    	* sysdeps/unix/sysv/linux/hppa/utimes.c: New file.

diff --git a/ChangeLog b/ChangeLog
index 21c1ea2..97eaebb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2014-12-22  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMES): Do
+	not define.
+	* sysdeps/unix/sysv/linux/utimes.c: Do not include
+	<kernel-features.h>.
+	(__utimes) [__NR_utimes]: Make code unconditional.
+	(__utimes) [!__ASSUME_UTIMES]: Remove conditional code.
+	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+	(__ASSUME_UTIMES): Do not undefine.
+	* sysdeps/unix/sysv/linux/tile/kernel-features.h
+	(__ASSUME_UTIMES): Likewise.
+	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
+	(__ASSUME_UTIMES): Define for [__LINUX_KERNEL_VERSION >= 0x030e00]
+	instead of undefining for [__LINUX_KERNEL_VERSION < 0x030e00].
+	* sysdeps/unix/sysv/linux/hppa/utimes.c: New file.
+
 2014-12-22  Steve Ellcey  <sellcey@imgtec.com>
 
 	* sysdeps/mips/memcpy.S: Fix preprocessor indentation.
diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
index bd94fe1..b9963e3 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
@@ -29,6 +29,3 @@
 #define __ASSUME_SENDMMSG_SYSCALL       1
 
 #include_next <kernel-features.h>
-
-/* asm-generic architectures do not have the utimes syscall.  */
-#undef __ASSUME_UTIMES
diff --git a/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
index 25c3e36..cf0c574 100644
--- a/sysdeps/unix/sysv/linux/hppa/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
@@ -32,9 +32,9 @@
 # define __ASSUME_SENDMMSG_SYSCALL	1
 #endif
 
-#include_next <kernel-features.h>
-
-/* hppa did not get the utimes syscall until 3.14.  */
-#if __LINUX_KERNEL_VERSION < 0x030e00
-# undef __ASSUME_UTIMES
+/* Support for the utimes syscall was added in 3.14.  */
+#if __LINUX_KERNEL_VERSION >= 0x030e00
+# define __ASSUME_UTIMES		1
 #endif
+
+#include_next <kernel-features.h>
diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h b/sysdeps/unix/sysv/linux/hppa/utimes.c
similarity index 58%
copy from sysdeps/unix/sysv/linux/aarch64/kernel-features.h
copy to sysdeps/unix/sysv/linux/hppa/utimes.c
index bd94fe1..f62dd05 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/hppa/utimes.c
@@ -1,8 +1,5 @@
-/* Set flags signalling availability of kernel features based on given
-   kernel version number.
-
-   Copyright (C) 2009-2014 Free Software Foundation, Inc.
-
+/* Implement utimes for hppa.
+   Copyright (C) 2014 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
@@ -19,16 +16,15 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include <linux/version.h>
-
-/* AArch64 support starts with 3.7.0, guaranteeing many kernel
-   features.  */
-
-#define __ASSUME_ACCEPT4_SYSCALL        1
-#define __ASSUME_RECVMMSG_SYSCALL       1
-#define __ASSUME_SENDMMSG_SYSCALL       1
+/* hppa has the utimensat syscall in all supported kernel versions but
+   gained the utimes syscall later, so use the linux-generic
+   implementation of utimes in terms of the utimensat syscall unless
+   the utimes syscall is known to be available.  */
 
-#include_next <kernel-features.h>
+#include <kernel-features.h>
 
-/* asm-generic architectures do not have the utimes syscall.  */
-#undef __ASSUME_UTIMES
+#ifdef __ASSUME_UTIMES
+# include <sysdeps/unix/sysv/linux/utimes.c>
+#else
+# include <sysdeps/unix/sysv/linux/generic/utimes.c>
+#endif
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 85fc2f1..5409c53 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -61,12 +61,6 @@
 /* The statfs64 syscalls are available in 2.5.74 (but not for alpha).  */
 #define __ASSUME_STATFS64	1
 
-/* The utimes syscall has been available for some architectures
-   forever.  For x86 it was introduced after 2.5.75, for x86-64,
-   ppc, and ppc64 it was introduced in 2.6.0-test3, for s390 it was
-   introduced in 2.6.21-rc5.  */
-#define __ASSUME_UTIMES	1
-
 /* pselect/ppoll were introduced just after 2.6.16-rc1.  On x86_64 and
    SH this appeared first in 2.6.19-rc1, on ia64 in 2.6.22-rc1.  */
 #define __ASSUME_PSELECT	1
diff --git a/sysdeps/unix/sysv/linux/tile/kernel-features.h b/sysdeps/unix/sysv/linux/tile/kernel-features.h
index 78aacac..3dc0dfc 100644
--- a/sysdeps/unix/sysv/linux/tile/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/tile/kernel-features.h
@@ -28,9 +28,6 @@
 
 #include_next <kernel-features.h>
 
-/* asm-generic architectures do not have the utimes syscall.  */
-#undef __ASSUME_UTIMES
-
 /* Define this if your 32-bit syscall API requires 64-bit register
    pairs to start with an even-number register.  */
 #define __ASSUME_ALIGNED_REGISTER_PAIRS	1
diff --git a/sysdeps/unix/sysv/linux/utimes.c b/sysdeps/unix/sysv/linux/utimes.c
index 2bcebeb..5bea069 100644
--- a/sysdeps/unix/sysv/linux/utimes.c
+++ b/sysdeps/unix/sysv/linux/utimes.c
@@ -20,40 +20,16 @@
 #include <utime.h>
 #include <sys/time.h>
 #include <sysdep.h>
-#include <kernel-features.h>
 
 
+/* Consider moving to syscalls.list.  */
+
 /* Change the access time of FILE to TVP[0] and
    the modification time of FILE to TVP[1].  */
 int
 __utimes (const char *file, const struct timeval tvp[2])
 {
-#ifdef __NR_utimes
-  int result = INLINE_SYSCALL (utimes, 2, file, tvp);
-# ifndef __ASSUME_UTIMES
-  if (result != -1 || errno != ENOSYS)
-# endif
-    return result;
-#endif
-
-  /* The utimes() syscall does not exist or is not available in the
-     used kernel.  Use utime().  For this we have to convert to the
-     data format utime() expects.  */
-#ifndef __ASSUME_UTIMES
-  struct utimbuf buf;
-  struct utimbuf *times;
-
-  if (tvp != NULL)
-    {
-      times = &buf;
-      buf.actime = tvp[0].tv_sec + tvp[0].tv_usec / 1000000;
-      buf.modtime = tvp[1].tv_sec + tvp[1].tv_usec / 1000000;
-    }
-  else
-    times = NULL;
-
-  return INLINE_SYSCALL (utime, 2, file, times);
-#endif
+  return INLINE_SYSCALL (utimes, 2, file, tvp);
 }
 
 weak_alias (__utimes, utimes)

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

Summary of changes:
 ChangeLog                                          |   17 +++++++++++
 sysdeps/unix/sysv/linux/aarch64/kernel-features.h  |    3 --
 sysdeps/unix/sysv/linux/hppa/kernel-features.h     |   10 +++---
 .../{microblaze/futimesat.c => hppa/utimes.c}      |   16 +++++-----
 sysdeps/unix/sysv/linux/kernel-features.h          |    6 ----
 sysdeps/unix/sysv/linux/tile/kernel-features.h     |    3 --
 sysdeps/unix/sysv/linux/utimes.c                   |   30 ++------------------
 7 files changed, 33 insertions(+), 52 deletions(-)
 copy sysdeps/unix/sysv/linux/{microblaze/futimesat.c => hppa/utimes.c} (66%)


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]