sysdeps: Add clock_gettime64 vDSO
Commit Message
Add support for the clock_gettim64 vDSO calls.
2019-09-18 Alistair Francis <alistair.francis@wdc.com>
* sysdeps/unix/sysv/linux/init-first.c: Add clock_gettime64
vDSO.
* sysdeps/unix/sysv/linux/libc-vdso.h: Likewise.
---
sysdeps/unix/sysv/linux/init-first.c | 10 ++++++++++
sysdeps/unix/sysv/linux/libc-vdso.h | 4 ++++
2 files changed, 14 insertions(+)
@@ -24,6 +24,11 @@
int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
attribute_hidden;
#endif
+/* vDSO symbol used on clock_gettime64 implementation. */
+#ifdef HAVE_CLOCK_GETTIME64_VSYSCALL
+int (*VDSO_SYMBOL(clock_gettime64)) (clockid_t, struct __timespec64 *)
+ attribute_hidden;
+#endif
/* vDSO symbol used on clock_getres implementation. */
#ifdef HAVE_CLOCK_GETRES_VSYSCALL
int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *)
@@ -52,6 +57,11 @@ __libc_vdso_platform_setup (void)
= get_vdso_mangle_symbol (HAVE_CLOCK_GETTIME_VSYSCALL);
#endif
+#ifdef HAVE_CLOCK_GETTIME64_VSYSCALL
+ VDSO_SYMBOL(clock_gettime64)
+ = get_vdso_mangle_symbol (HAVE_CLOCK_GETTIME64_VSYSCALL);
+#endif
+
#ifdef HAVE_CLOCK_GETRES_VSYSCALL
VDSO_SYMBOL(clock_getres)
= get_vdso_mangle_symbol (HAVE_CLOCK_GETRES_VSYSCALL);
@@ -32,6 +32,10 @@
extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
attribute_hidden;
#endif
+#ifdef HAVE_CLOCK_GETTIME64_VSYSCALL
+extern int (*VDSO_SYMBOL(clock_gettime64)) (clockid_t, struct __timespec64 *)
+ attribute_hidden;
+#endif
#ifdef HAVE_CLOCK_GETRES_VSYSCALL
extern int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *)
attribute_hidden;