diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.com> | 2015-04-17 14:28:03 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2015-06-01 22:25:02 -0300 |
commit | 1395ef210722633a1f10a5e6acb29da13933d0c6 (patch) | |
tree | b94140cbf65b13b5d9964f1c3eab638e8090c192 | |
parent | 44c924997806580c2e90d350275e270a3d365186 (diff) | |
download | glibc-1395ef210722633a1f10a5e6acb29da13933d0c6.tar.gz glibc-1395ef210722633a1f10a5e6acb29da13933d0c6.tar.xz glibc-1395ef210722633a1f10a5e6acb29da13933d0c6.zip |
x86: clock_gettime and timespec_get vDSO cleanup
This patch removes the x86 specific timespec_get and clock_gettime implementation to use generic HAVE_CLOCK_GETTIME_VSYSCALL way.
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/sysdep.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/timespec_get.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86/clock_gettime.c | 34 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86/timespec_get.c | 29 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/sysdep.h | 4 |
6 files changed, 21 insertions, 63 deletions
diff --git a/ChangeLog b/ChangeLog index f750412d58..95b69d0591 100644 --- 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] diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h index 7f6fcf3288..d76aca50d6 100644 --- a/sysdeps/unix/sysv/linux/i386/sysdep.h +++ b/sysdeps/unix/sysv/linux/i386/sysdep.h @@ -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 diff --git a/sysdeps/unix/sysv/linux/timespec_get.c b/sysdeps/unix/sysv/linux/timespec_get.c index 0e5f513f3d..b42a44ff12 100644 --- a/sysdeps/unix/sysv/linux/timespec_get.c +++ b/sysdeps/unix/sysv/linux/timespec_get.c @@ -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 index 98ffb01b8d..0000000000 --- a/sysdeps/unix/sysv/linux/x86/clock_gettime.c +++ /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 index b21efcea82..0000000000 --- a/sysdeps/unix/sysv/linux/x86/timespec_get.c +++ /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> diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h index cc6609347e..bea3192466 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h +++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h @@ -252,6 +252,10 @@ # 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 |