In MSVC builds, 'stat' fails when called on files larger than
2GB. Call '_stat64' instead to work around this.
* src/remake.c (STAT): Define to '_stat64' for MSVC builds.
(name_mtime) [WINDOWS32]: Use STAT instead of 'stat'.
Suggested by Makoto Kato <m_kato@ga2.so-net.ne.jp>.
#endif
#ifdef WINDOWS32
#include <io.h>
+#include <sys/stat.h>
+#if defined(_MSC_VER) && _MSC_VER > 1200
+/* VC7 or later supprots _stat64 to access 64-bit file size. */
+#define STAT _stat64
+#else
+#define STAT stat
+#endif
#endif
name_mtime (const char *name)
{
FILE_TIMESTAMP mtime;
+#if defined(WINDOWS32)
+ struct STAT st;
+#else
struct stat st;
+#endif
int e;
#if defined(WINDOWS32)
tend = &tem[0];
}
+#if defined(WINDOWS32)
+ e = STAT (tem, &st);
+#else
e = stat (tem, &st);
+#endif
if (e == 0 && !_S_ISDIR (st.st_mode) && tend < tem + (p - name - 1))
{
errno = ENOTDIR;