diff options
author | Alexandre Raymond <cerbere@gmail.com> | 2011-05-29 18:22:48 -0400 |
---|---|---|
committer | Andreas Färber <andreas.faerber@web.de> | 2011-06-14 03:08:57 +0200 |
commit | d1722a27f552a22561104210e0afad4577878e53 (patch) | |
tree | 451add40b98cc90768d67736d9589204cc90a893 /configure | |
parent | dfa5294fce3e035192b283fe0b6fd08be48d78da (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-x | configure | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -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 |