[04/16] linux: Update x86 vDSO symbols

Message ID 20191217214728.2886-4-adhemerval.zanella@linaro.org
State Dropped
Headers

Commit Message

Adhemerval Zanella Dec. 17, 2019, 9:47 p.m. UTC
  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      | 4 ----
 sysdeps/unix/sysv/linux/x86_64/sysdep.h | 2 ++
 3 files changed, 4 insertions(+), 4 deletions(-)
  

Comments

Siddhesh Poyarekar Jan. 2, 2020, 12:07 p.m. UTC | #1
On 18/12/19 3:17 am, Adhemerval Zanella wrote:
> 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      | 4 ----
>  sysdeps/unix/sysv/linux/x86_64/sysdep.h | 2 ++
>  3 files changed, 4 insertions(+), 4 deletions(-)
> 

OK.

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
  

Patch

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 85a9fc8a08..67188a2ceb 100644
--- a/sysdeps/unix/sysv/linux/x86/time.c
+++ b/sysdeps/unix/sysv/linux/x86/time.c
@@ -23,11 +23,7 @@ 
 static time_t
 time_vsyscall (time_t *t)
 {
-#ifdef HAVE_TIME_VSYSCALL
   return INLINE_VSYSCALL (time, 1, t);
-#else
-  return INLINE_SYSCALL_CALL (time, t);
-#endif
 }
 
 #ifdef SHARED
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