diff --git a/configure.in b/configure.in index 09885dbbae7..4ea978c268e 100644 --- a/configure.in +++ b/configure.in @@ -2073,6 +2073,13 @@ MYSQL_TYPE_QSORT AC_FUNC_UTIME_NULL AC_FUNC_VPRINTF +AC_CHECK_DECLS([fdatasync],,, +[ +#ifdef HAVE_UNISTD_H +# include +#endif +]) + AC_CHECK_FUNCS(alarm bfill bmove bsearch bzero \ chsize cuserid fchmod fcntl \ fconvert fdatasync fesetround finite fpresetsticky fpsetmask fsync ftruncate \ diff --git a/mysys/my_sync.c b/mysys/my_sync.c index d6ca4f1c1df..7acbccec345 100644 --- a/mysys/my_sync.c +++ b/mysys/my_sync.c @@ -58,7 +58,7 @@ int my_sync(File fd, myf my_flags) /* Some file systems don't support F_FULLFSYNC and fail above: */ DBUG_PRINT("info",("fcntl(F_FULLFSYNC) failed, falling back")); #endif -#if defined(HAVE_FDATASYNC) +#if defined(HAVE_FDATASYNC) && HAVE_DECL_FDATASYNC res= fdatasync(fd); #elif defined(HAVE_FSYNC) res= fsync(fd); diff --git a/storage/innobase/include/ut0dbg.h b/storage/innobase/include/ut0dbg.h index a317f35f4be..06dead7fc03 100644 --- a/storage/innobase/include/ut0dbg.h +++ b/storage/innobase/include/ut0dbg.h @@ -39,7 +39,7 @@ extern ibool panic_shutdown; void ut_dbg_panic(void); # define UT_DBG_PANIC ut_dbg_panic() /* Stop threads in ut_a(). */ -# define UT_DBG_STOP while (0) /* We do not do this on NetWare */ +# define UT_DBG_STOP do {} while (0) /* We do not do this on NetWare */ #else /* __NETWARE__ */ # if defined(__WIN__) || defined(__INTEL_COMPILER) # undef UT_DBG_USE_ABORT @@ -71,7 +71,7 @@ ut_dbg_stop_thread( /* Abort the execution. */ # define UT_DBG_PANIC abort() /* Stop threads (null operation) */ -# define UT_DBG_STOP while (0) +# define UT_DBG_STOP do {} while (0) # else /* UT_DBG_USE_ABORT */ /* Abort the execution. */ # define UT_DBG_PANIC \