The MSVC compilers don't have <dirent.h> and associated functions. Here's a preliminary patch that will at least avoid to include a non-existent header file.
2011-09-11 Bruno Haible <br...@clisp.org> dirent: Don't assume <dirent.h> exists. * lib/dirent.in.h: Include <dirent.h> only if HAVE_DIRENT_H is 1. * m4/dirent_h.m4 (gl_DIRENT_H): Set HAVE_DIRENT_H. * modules/dirent (Makefile.am): Substitute HAVE_DIRENT_H. * doc/posix-headers/dirent.texi: Mention the MSVC problem. --- doc/posix-headers/dirent.texi.orig Sun Sep 11 21:07:30 2011 +++ doc/posix-headers/dirent.texi Sun Sep 11 18:26:01 2011 @@ -14,4 +14,7 @@ Portability problems not fixed by Gnulib: @itemize +@item +This header file is missing on some platforms: +MSVC 9. @end itemize --- lib/dirent.in.h.orig Sun Sep 11 21:07:30 2011 +++ lib/dirent.in.h Sun Sep 11 18:26:01 2011 @@ -22,7 +22,9 @@ @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ -#@INCLUDE_NEXT@ @NEXT_DIRENT_H@ +#if @HAVE_DIRENT_H@ +# @INCLUDE_NEXT@ @NEXT_DIRENT_H@ +#endif #ifndef _@GUARD_PREFIX@_DIRENT_H #define _@GUARD_PREFIX@_DIRENT_H --- m4/dirent_h.m4.orig Sun Sep 11 21:07:31 2011 +++ m4/dirent_h.m4 Sun Sep 11 18:26:01 2011 @@ -1,4 +1,4 @@ -# dirent_h.m4 serial 14 +# dirent_h.m4 serial 15 dnl Copyright (C) 2008-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -14,6 +14,12 @@ dnl <dirent.h> is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([dirent.h]) + if test $ac_cv_header_dirent_h = yes; then + HAVE_DIRENT_H=1 + else + HAVE_DIRENT_H=0 + fi + AC_SUBST([HAVE_DIRENT_H]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. --- modules/dirent.orig Sun Sep 11 21:07:31 2011 +++ modules/dirent Sun Sep 11 21:07:01 2011 @@ -24,6 +24,7 @@ $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|${gl_include_guard_prefix}|g' \ + -e 's|@''HAVE_DIRENT_H''@|$(HAVE_DIRENT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -- In memoriam Georgi Markov <http://en.wikipedia.org/wiki/Georgi_Markov>