]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
x86: clock_gettime and timespec_get vDSO cleanup
authorAdhemerval Zanella <adhemerval.zanella@linaro.com>
Fri, 17 Apr 2015 17:28:03 +0000 (14:28 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 2 Jun 2015 01:25:02 +0000 (22:25 -0300)
This patch removes the x86 specific timespec_get and clock_gettime
implementation to use generic HAVE_CLOCK_GETTIME_VSYSCALL way.

ChangeLog
sysdeps/unix/sysv/linux/i386/sysdep.h
sysdeps/unix/sysv/linux/timespec_get.c
sysdeps/unix/sysv/linux/x86/clock_gettime.c [deleted file]
sysdeps/unix/sysv/linux/x86/timespec_get.c [deleted file]
sysdeps/unix/sysv/linux/x86_64/sysdep.h

index f750412d58206bf032e3b829913270461c68f698..95b69d05916935a61f30c425137b820e494c28c7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2015-06-01  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+       * sysdeps/unix/sysv/linux/i386/sysdep.h (HAVE_CLOCK_GETTIME_VSYSCALL):
+       Define.
+       (HAVE_GETTIMEOFDAY_VSYSCALL): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/sysdep.h
+       (HAVE_CLOCK_GETTIME_VSYSCALL): Likewise.
+       (HAVE_GETTIMEOFDAY_VSYSCALL): Likewise.
+       * sysdeps/unix/sysv/linux/timespec_get.c: Include errno.h.
+       * sysdeps/unix/sysv/linux/x86/clock_gettime.c: Remove file.
+       * sysdeps/unix/sysv/linux/x86/timespec_get.c: Likewise.
+
 2015-06-01  Martin Sebor  <msebor@redhat.com>
 
        [BZ #18116]
index 7f6fcf3288fb5b0b555ac642b43f2aeaf3a247b0..d76aca50d65280bb901e9820a02b1db78759a33b 100644 (file)
@@ -328,6 +328,10 @@ struct libc_do_syscall_args
       }                                                                              \
     (int) resultvar; })
 
+/* List of system calls which are supported as vsyscalls.  */
+# define HAVE_CLOCK_GETTIME_VSYSCALL    1
+# define HAVE_GETTIMEOFDAY_VSYSCALL     1
+
 /* Define a macro which expands inline into the wrapper code for a system
    call.  This use is for internal calls that do not need to handle errors
    normally.  It will never touch errno.  This returns just what the kernel
index 0e5f513f3de5e299ca696c5452e097b7957f34f5..b42a44ff127488c62c6ed1f12976c11d51c39d12 100644 (file)
@@ -17,6 +17,7 @@
 
 #include <time.h>
 #include <sysdep.h>
+#include <errno.h>
 
 #ifdef HAVE_CLOCK_GETTIME_VSYSCALL
 # define HAVE_VSYSCALL
diff --git a/sysdeps/unix/sysv/linux/x86/clock_gettime.c b/sysdeps/unix/sysv/linux/x86/clock_gettime.c
deleted file mode 100644 (file)
index 98ffb01..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Get the current value of a clock.  Linux/x86 version.
-   Copyright (C) 2015 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <libc-vdso.h>
-
-#ifdef SHARED
-# define SYSCALL_GETTIME(id, tp) \
-  ({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \
-  long int v_ret;                                                        \
-  PTR_DEMANGLE (f);                                                      \
-  v_ret = (*f) (id, tp);                                                 \
-  if (INTERNAL_SYSCALL_ERROR_P (v_ret, )) {                              \
-    __set_errno (INTERNAL_SYSCALL_ERRNO (v_ret, ));                      \
-    v_ret = -1;                                                                  \
-  }                                                                      \
-  v_ret; })
-#endif
-
-#include <sysdeps/unix/sysv/linux/clock_gettime.c>
diff --git a/sysdeps/unix/sysv/linux/x86/timespec_get.c b/sysdeps/unix/sysv/linux/x86/timespec_get.c
deleted file mode 100644 (file)
index b21efce..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* timespec_get -- returns the calendar time based on a given time base.
-   Linux/x86 version.
-   Copyright (C) 2015 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
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <libc-vdso.h>
-
-#ifdef SHARED
-# define INTERNAL_GETTIME(id, tp) \
-  ({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \
-  PTR_DEMANGLE (f);                                                      \
-  (*f) (id, tp); })
-#endif
-
-#include <sysdeps/unix/sysv/linux/timespec_get.c>
index cc6609347e8d904ff8280bffa65ae093d085dea6..bea3192466f5fd426ab47cea9e88d20b5cdef9cc 100644 (file)
 # undef INTERNAL_SYSCALL_ERRNO
 # define INTERNAL_SYSCALL_ERRNO(val, err)      (-(val))
 
+/* List of system calls which are supported as vsyscalls.  */
+# define HAVE_CLOCK_GETTIME_VSYSCALL    1
+# define HAVE_GETTIMEOFDAY_VSYSCALL     1
+
 # define LOAD_ARGS_0()
 # define LOAD_REGS_0
 # define ASM_ARGS_0