From c14874927b499ddfdbb03745bb32bfc778b8595f Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 22 May 2012 16:00:50 -0700 Subject: syscalls.list support for vDSO IFUNCs, use it for x32 gettimeofday and time. --- sysdeps/unix/sysv/linux/dl-vdso.h | 11 +++++++++++ sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list | 2 ++ 2 files changed, 13 insertions(+) (limited to 'sysdeps/unix/sysv/linux') diff --git a/sysdeps/unix/sysv/linux/dl-vdso.h b/sysdeps/unix/sysv/linux/dl-vdso.h index c30671de72..4149bacdce 100644 --- a/sysdeps/unix/sysv/linux/dl-vdso.h +++ b/sysdeps/unix/sysv/linux/dl-vdso.h @@ -33,6 +33,17 @@ /* We don't have a specific file where the symbol can be found. */ \ var.filename = NULL +/* Use this for the known version sets defined below, where we + record their precomputed hash values only once, in this file. */ +#define PREPARE_VERSION_KNOWN(var, vname) \ + PREPARE_VERSION (var, VDSO_NAME_##vname, VDSO_HASH_##vname) + +#define VDSO_NAME_LINUX_2_6 "LINUX_2.6" +#define VDSO_HASH_LINUX_2_6 61765110 +#define VDSO_NAME_LINUX_2_6_15 "LINUX_2.6.15" +#define VDSO_HASH_LINUX_2_6_15 123718565 +#define VDSO_NAME_LINUX_2_6_29 "LINUX_2.6.29" +#define VDSO_HASH_LINUX_2_6_29 123718585 /* Functions for resolving symbols in the VDSO link map. */ extern void *_dl_vdso_vsym (const char *name, diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list b/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list index 7edb6fd618..2cc58af2df 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list +++ b/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list @@ -1,6 +1,8 @@ # File name Caller Syscall name # args Strong name Weak names fallocate - fallocate Ci:iiii fallocate fallocate64 +gettimeofday - gettimeofday:__vdso_gettimeofday@LINUX_2.6 i:pP __gettimeofday gettimeofday posix_fadvise - fadvise64 Vi:iiii posix_fadvise posix_fadvise64 preadv - preadv Ci:ipii preadv preadv64 pwritev - pwritev Ci:ipii pwritev pwritev64 +time - time:__vdso_time@LINUX_2.6 Ei:P time -- cgit 1.4.1