[04/16] linux: Update x86 vDSO symbols

Message ID 20191217214728.2886-4-adhemerval.zanella@linaro.org
State New
Headers show
Series
  • [v2,01/16] linux: Fix vDSO macros build with time64 interfaces
Related show

Commit Message

Adhemerval Zanella Dec. 17, 2019, 9:47 p.m.
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(-)

-- 
2.17.1

Comments

Siddhesh Poyarekar Jan. 2, 2020, 12:07 p.m. | #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