[commit: packages/unix] master: Improve detection of `fdatasync(2)` (5d5b747)
git at git.haskell.org
git at git.haskell.org
Tue Apr 19 21:37:23 UTC 2016
Repository : ssh://git@git.haskell.org/unix
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/5d5b74716b696b0f22c37a88ccc5c114b13f0398/unix
>---------------------------------------------------------------
commit 5d5b74716b696b0f22c37a88ccc5c114b13f0398
Author: Herbert Valerio Riedel <hvr at gnu.org>
Date: Wed Dec 16 17:28:40 2015 +0100
Improve detection of `fdatasync(2)`
This attempts a simpler and hopefully more robust test for `fdatasync(2)`
See 94d8824bae10c9d91f56c1aee9c45a90136a1770 / #42 for the previous attempt.
This hopefully addresses #52 in a better way than #53
>---------------------------------------------------------------
5d5b74716b696b0f22c37a88ccc5c114b13f0398
changelog.md | 2 ++
configure.ac | 23 ++++++-----------------
2 files changed, 8 insertions(+), 17 deletions(-)
diff --git a/changelog.md b/changelog.md
index e5733c2..e9c4ece 100644
--- a/changelog.md
+++ b/changelog.md
@@ -9,6 +9,8 @@
* Turn build error into compile warnings for exotic `struct stat`
configurations (GHC #8859).
+ * Improve detection of `fdatasync(2)` (GHC #11137)
+
## 2.7.1.0 *Dec 2014*
* Bundled with GHC 7.10.1
diff --git a/configure.ac b/configure.ac
index c363e10..24ea3a5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -71,23 +71,12 @@ AC_CHECK_FUNCS([mkstemps mkdtemp])
# Functions for file synchronization and allocation control
AC_CHECK_FUNCS([fsync])
-# A more comprehensive check that fdatasync exits
-# Necessary for platforms that have fdatasync in headers but have no
-# implementation
-dnl Originally provided by user copiousfreetime for the beanstalkd project
-dnl {{{ make sure that fdatasync exits
-AC_CACHE_CHECK([for fdatasync],[ac_cv_func_fdatasync],[
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include <unistd.h>
-]],[[
-fdatasync(4);
-]])],
-[ac_cv_func_fdatasync=yes],
-[ac_cv_func_fdatasync=no])
-])
-AS_IF([test "x${ac_cv_func_fdatasync}" = "xyes"],
- [AC_DEFINE([HAVE_FDATASYNC],[1],[If the system defines fdatasync])])
-dnl }}}
+# On OSX linking against 'fdatasync' succeeds, but that doesn't pick
+# the expected the POSIX 'fdatasync' function. So make sure that we
+# also have a function declaration in scope, in addition to being able
+# to link against 'fdatasync'.
+AC_CHECK_DECLS([fdatasync],[AC_CHECK_FUNCS([fdatasync])])
+
AC_CHECK_FUNCS([posix_fadvise posix_fallocate])
More information about the ghc-commits
mailing list