about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/libc-vdso.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/libc-vdso.h')
-rw-r--r--sysdeps/unix/sysv/linux/libc-vdso.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/libc-vdso.h b/sysdeps/unix/sysv/linux/libc-vdso.h
index 2e63aa1bba..792ac39d85 100644
--- a/sysdeps/unix/sysv/linux/libc-vdso.h
+++ b/sysdeps/unix/sysv/linux/libc-vdso.h
@@ -21,6 +21,13 @@
 
 #define VDSO_SYMBOL(__name) __vdso_##__name
 
+/* Adjust the return IFUNC value from a vDSO symbol accordingly required
+   by the ELFv1 ABI.  It is used by the architecture to create an ODP
+   entry since the kernel vDSO does not provide it.  */
+#ifndef VDSO_IFUNC_RET
+# define VDSO_IFUNC_RET(__value) (__value)
+#endif
+
 #ifdef HAVE_CLOCK_GETTIME_VSYSCALL
 extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
   attribute_hidden;