summaryrefslogtreecommitdiff
path: root/libpthread/linuxthreads/sysdeps
diff options
context:
space:
mode:
authorCarmelo Amoroso <carmelo.amoroso@st.com>2008-09-09 12:01:37 +0000
committerCarmelo Amoroso <carmelo.amoroso@st.com>2008-09-09 12:01:37 +0000
commit33bcf733559a1108049c1d33ea8fafce0150e5f8 (patch)
tree571fd5ac0719f1a2fa010427085b1582df25e764 /libpthread/linuxthreads/sysdeps
parent1cf466022bd863dd8f529d6da52480f445fceb96 (diff)
Use getdents syscall if kernel provide supports for this
instead of relying upon getdents64. Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Diffstat (limited to 'libpthread/linuxthreads/sysdeps')
-rw-r--r--libpthread/linuxthreads/sysdeps/pthread/kernel-features.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/libpthread/linuxthreads/sysdeps/pthread/kernel-features.h b/libpthread/linuxthreads/sysdeps/pthread/kernel-features.h
index 424922ec0..88a71828b 100644
--- a/libpthread/linuxthreads/sysdeps/pthread/kernel-features.h
+++ b/libpthread/linuxthreads/sysdeps/pthread/kernel-features.h
@@ -62,6 +62,14 @@
# define __ASSUME_VFORK_SYSCALL 1
#endif
+/* Starting with version 2.6.4-rc1 the getdents syscall returns d_type
+ * information as well and in between 2.6.5 and 2.6.8 most compat wrappers
+ * were fixed too. Except s390{,x} which was fixed in 2.6.11. */
+#if (__LINUX_KERNEL_VERSION >= 0x020608 && !defined __s390__) \
+ || (__LINUX_KERNEL_VERSION >= 0x02060b && defined __s390__)
+# define __ASSUME_GETDENTS32_D_TYPE 1
+#endif
+
/* These features were surely available with 2.4.12. */
#if __LINUX_KERNEL_VERSION >= 132108 && defined __mc68000__
# define __ASSUME_MMAP2_SYSCALL 1