[PATCH] getdents: Fix mips64 build

Atsushi Nemoto anemo at mba.ocn.ne.jp
Mon Jan 18 14:09:29 UTC 2010


Some archs (such as mips64) do not have getdents64 syscall but have
getdents syscall.  Define alias for it.

This fixes regression from 0.9.30.1.

Backgrounds:
This is once done by commit e8b1c674.  But after the commit 33bcf733
("Use getdents syscall if kernel provide supports for this instead of
relying upon getdents64."), if __ASSUME_GETDENTS32_D_TYPE was defined
the alias for getdents64 is not defined.  The macro
__ASSUME_GETDENTS32_D_TYPE had been effectively ignored until 0.9.30.1
but the commit 0f0f20ab ("Move kernel-features.h header from the
linuxthread directory to a common one...") really enables it.

Signed-off-by: Atsushi Nemoto <anemo at mba.ocn.ne.jp>
---
 libc/sysdeps/linux/common/getdents.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/libc/sysdeps/linux/common/getdents.c b/libc/sysdeps/linux/common/getdents.c
index 6a38772..d21ed9c 100644
--- a/libc/sysdeps/linux/common/getdents.c
+++ b/libc/sysdeps/linux/common/getdents.c
@@ -76,6 +76,10 @@ ssize_t __getdents (int fd, char *buf, size_t nbytes)
 	return retval;
 }
 
+#if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64
+attribute_hidden strong_alias(__getdents,__getdents64)
+#endif
+
 #elif ! defined __UCLIBC_HAS_LFS__ || ! defined __NR_getdents64
 
 ssize_t __getdents (int fd, char *buf, size_t nbytes)
-- 
1.5.6.5



More information about the uClibc mailing list