This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v2 02/12] linux: Update x86 vDSO symbols
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Thu, 12 Dec 2019 15:16:04 -0300
- Subject: [PATCH v2 02/12] linux: Update x86 vDSO symbols
- References: <20191212181614.31782-1-adhemerval.zanella@linaro.org>
Changes from previous version:
- Assume HAVE_TIME_VSYSCALL on x86 time implementation.
--
Add the missing time and clock_getres vDSO symbol names on x86.
For time, the iFUNC already uses expected name so it affects only
the static build.
The clock_getres is a new implementation added on Linux 5.3
(f66501dc53e72).
Checked on x86-linux-gnu and i686-linux-gnu.
---
sysdeps/unix/sysv/linux/i386/sysdep.h | 2 ++
sysdeps/unix/sysv/linux/x86/time.c | 2 --
sysdeps/unix/sysv/linux/x86_64/sysdep.h | 2 ++
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 7066ddc214..b2e750d490 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -315,6 +315,8 @@ struct libc_do_syscall_args
/* List of system calls which are supported as vsyscalls. */
# define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_clock_gettime"
# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
+# define HAVE_TIME_VSYSCALL "__vdso_time"
+# define HAVE_CLOCK_GETRES_VSYSCALL "__vdso_clock_getres"
/* 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
diff --git a/sysdeps/unix/sysv/linux/x86/time.c b/sysdeps/unix/sysv/linux/x86/time.c
index 74bae4b07a..0aee73826b 100644
--- a/sysdeps/unix/sysv/linux/x86/time.c
+++ b/sysdeps/unix/sysv/linux/x86/time.c
@@ -23,11 +23,9 @@
static time_t
time_vsyscall (time_t *t)
{
-#ifdef HAVE_TIME_VSYSCALL
time_t ret = INLINE_VSYSCALL (time, 1, t);
if (ret != -1)
return ret;
-#endif
return INLINE_SYSCALL_CALL (time, t);
}
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index 475b7d991a..965fd4b851 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -376,7 +376,9 @@
/* List of system calls which are supported as vsyscalls. */
# define HAVE_CLOCK_GETTIME_VSYSCALL "__vdso_clock_gettime"
# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
+# define HAVE_TIME_VSYSCALL "__vdso_time"
# define HAVE_GETCPU_VSYSCALL "__vdso_getcpu"
+# define HAVE_CLOCK_GETRES_VSYSCALL "__vdso_clock_getres"
# define SINGLE_THREAD_BY_GLOBAL 1
--
2.17.1