aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorAlexandre Raymond <cerbere@gmail.com>2011-05-29 18:22:48 -0400
committerAndreas Färber <andreas.faerber@web.de>2011-06-14 03:08:57 +0200
commitd1722a27f552a22561104210e0afad4577878e53 (patch)
tree451add40b98cc90768d67736d9589204cc90a893 /configure
parentdfa5294fce3e035192b283fe0b6fd08be48d78da (diff)
configure: Fix check for fdatasync()
Under Darwin, a symbol exists for the fdatasync() function, so that our link test succeeds. However _POSIX_SYNCHRONIZED_IO is set to '-1'. According to POSIX:2008, a value of -1 means the feature is not supported. A value of 0 means supported at compilation time, and a value greater 0 means supported at both compilation and run time. Enable fdatasync() only if _POSIX_SYNCHRONIZED_IO is '>0'. Signed-off-by: Alexandre Raymond <cerbere@gmail.com> Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure8
1 files changed, 7 insertions, 1 deletions
diff --git a/configure b/configure
index c931ae860a..6101f4e491 100755
--- a/configure
+++ b/configure
@@ -2461,7 +2461,13 @@ fi
fdatasync=no
cat > $TMPC << EOF
#include <unistd.h>
-int main(void) { return fdatasync(0); }
+int main(void) {
+#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0
+return fdatasync(0);
+#else
+#abort Not supported
+#endif
+}
EOF
if compile_prog "" "" ; then
fdatasync=yes