aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2012-05-22 16:00:50 -0700
committerRoland McGrath <roland@hack.frob.com>2012-05-24 13:13:46 -0700
commitc14874927b499ddfdbb03745bb32bfc778b8595f (patch)
treea07ace4f46694be67780cdf4765044f80ac4f729 /sysdeps/unix/sysv
parentd6c33fda03457ca8ca87a562fa2681af16ca4ea5 (diff)
downloadglibc-c14874927b499ddfdbb03745bb32bfc778b8595f.tar
glibc-c14874927b499ddfdbb03745bb32bfc778b8595f.tar.gz
glibc-c14874927b499ddfdbb03745bb32bfc778b8595f.tar.bz2
glibc-c14874927b499ddfdbb03745bb32bfc778b8595f.zip
syscalls.list support for vDSO IFUNCs, use it for x32 gettimeofday and time.
Diffstat (limited to 'sysdeps/unix/sysv')
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso.h11
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list2
2 files changed, 13 insertions, 0 deletions
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