mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
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:
committed by
Adhemerval Zanella
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>
|
2015-06-01 Martin Sebor <msebor@redhat.com>
|
||||||
|
|
||||||
[BZ #18116]
|
[BZ #18116]
|
||||||
|
@ -328,6 +328,10 @@ struct libc_do_syscall_args
|
|||||||
} \
|
} \
|
||||||
(int) resultvar; })
|
(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
|
/* 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
|
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
|
normally. It will never touch errno. This returns just what the kernel
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#ifdef HAVE_CLOCK_GETTIME_VSYSCALL
|
#ifdef HAVE_CLOCK_GETTIME_VSYSCALL
|
||||||
# define HAVE_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
|
# undef INTERNAL_SYSCALL_ERRNO
|
||||||
# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
|
# 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_ARGS_0()
|
||||||
# define LOAD_REGS_0
|
# define LOAD_REGS_0
|
||||||
# define ASM_ARGS_0
|
# define ASM_ARGS_0
|
||||||
|
Reference in New Issue
Block a user