MS Windows (and mingw) do not offer fsync(),
but they offer the API-compatible _commit().
#include <windows.h>
#endif
+// needed for _commmit and _get_osfhandle
+#if HAVE_IO_H
+#include <io.h>
+#endif
+
+#if !HAVE_FSYNC
+// _commit(fd) is API-compatible with fsync(fd) and has equivalent behaviour
+inline int
+fsync(int fd)
+{
+ return _commit(fd);
+}
+#endif
+
#endif /* _SQUID_MINGW_*/
#endif /* SQUID_OS_MINGW_H */
CXXFLAGS="$CXXFLAGS -mthreads -static-libgcc -static-libstdc++"
dnl Check for Winsock only on MinGW
SQUID_CHECK_WINSOCK_LIB
- AC_CHECK_HEADERS([ws2tcpip.h winsock2.h windows.h],,,[
+ AC_CHECK_HEADERS([ws2tcpip.h winsock2.h windows.h io.h],,,[
#if HAVE_WS2TCPIP_H
#include <ws2tcpip.h>
#endif
])
MINGW_LIBS="-lmingwex"
AC_SUBST(MINGW_LIBS)
+ AC_CHECK_FUNCS([fsync])
],
[freebsd],[