--- readdir.c.orig 2009-11-08 13:59:03.000000000 -0800 +++ readdir.c 2009-11-08 13:59:22.000000000 -0800 @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD: src/lib/libc/gen/rea #include <errno.h> #include <string.h> #include <pthread.h> +#include <unistd.h> #include "un-namespace.h" #include "libc_private.h" @@ -61,8 +62,13 @@ _readdir_unlocked(dirp, skip) dirp->dd_loc = 0; } if (dirp->dd_loc == 0 && !(dirp->dd_flags & __DTF_READALL)) { +#if __DARWIN_64_BIT_INO_T + dirp->dd_size = __getdirentries64(dirp->dd_fd, + dirp->dd_buf, dirp->dd_len, &dirp->dd_td->seekoff); +#else /* !__DARWIN_64_BIT_INO_T */ dirp->dd_size = _getdirentries(dirp->dd_fd, dirp->dd_buf, dirp->dd_len, &dirp->dd_seek); +#endif /* __DARWIN_64_BIT_INO_T */ if (dirp->dd_size <= 0) return (NULL); }