summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2014-04-16 02:33:29 -0400
committerRich Felker <dalias@aerifal.cx>2014-04-16 02:33:29 -0400
commit58e75db47160bc7bcac2ae98a7a8660b8fce35c9 (patch)
treefc8059d8f3289b50dff67ccce6224ca6e3348741 /arch
parent0d0c2f40344640a2a6942dda156509593f51db5d (diff)
downloadmusl-58e75db47160bc7bcac2ae98a7a8660b8fce35c9.tar.gz
musl-58e75db47160bc7bcac2ae98a7a8660b8fce35c9.tar.bz2
musl-58e75db47160bc7bcac2ae98a7a8660b8fce35c9.tar.xz
musl-58e75db47160bc7bcac2ae98a7a8660b8fce35c9.zip
add working vdso clock_gettime support, including static linking
the vdso symbol lookup code is based on the original 2011 patch by Nicholas J. Kain, with some streamlining, pointer arithmetic fixes, and one symbol version matching fix. on the consumer side (clock_gettime), per-arch macros for the particular symbol name and version to lookup are added in syscall_arch.h, and no vdso code is pulled in on archs which do not define these macros. at this time, vdso is enabled only on x86_64. the vdso support at the dynamic linker level is no longer useful to libc, but is left in place for the sake of debuggers (which may need the vdso in the link map to find its functions) and possibly use with dlsym.
Diffstat (limited to 'arch')
-rw-r--r--arch/x86_64/syscall_arch.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86_64/syscall_arch.h b/arch/x86_64/syscall_arch.h
index a85c440c..a7a7b5a6 100644
--- a/arch/x86_64/syscall_arch.h
+++ b/arch/x86_64/syscall_arch.h
@@ -60,3 +60,7 @@ static __inline long __syscall6(long n, long a1, long a2, long a3, long a4, long
"d"(a3), "r"(r10), "r"(r8), "r"(r9) : "rcx", "r11", "memory");
return ret;
}
+
+#define VDSO_USEFUL
+#define VDSO_CGT_SYM "__vdso_clock_gettime"
+#define VDSO_CGT_VER "LINUX_2.6"