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.
This commit is contained in:
parent
44c9249978
commit
1395ef2107
12
ChangeLog
12
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]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include <time.h>
|
||||
#include <sysdep.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef HAVE_CLOCK_GETTIME_VSYSCALL
|
||||
# define HAVE_VSYSCALL
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue