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>
This commit is contained in:
parent
dfa5294fce
commit
d1722a27f5
8
configure
vendored
8
configure
vendored
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user