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 f750412..95b69d0 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 7f6fcf3..d76aca5 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 0e5f513..b42a44f 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 cc66093..bea3192 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