[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