I didn't notice anything broken. I just stumbled upon this bug while reviewing the code.
Alexandre On Sun, May 29, 2011 at 8:09 PM, Alexandre Raymond <cerb...@gmail.com> wrote: > Sure, I'm fine with that. I wasn't sure how much detail you actually > wanted in this commit message :) > > Alexandre > > On Sun, May 29, 2011 at 7:36 PM, Andreas Färber <andreas.faer...@web.de> > wrote: >> Am 30.05.2011 um 00:22 schrieb Alexandre Raymond: >> >>> Under darwin (OS X 10.6.7), a symbol exists for the fdatasync() method >>> but it is not supported because _POSIX_SYNCHRONIZED_IO is set to '-1'. >> >> Question: How did you notice? Did anything break that we could mention, or >> did you just review the code? >> >>> Enable fdatasync() only if _POSIX_SYNCHRONIZED_IO is '>0', as per >>> The Open Group Base Specifications Issue 7. >> >> Not quite what I meant. ;) Would you be okay with the following: >> >> configure: Fix check for fdatasync() >> >> Under Darwin, a symbol exists for the fdatasync() function, but it is >> not supported. Yada yada. _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'. >> >> Andreas >> >>> Signed-off-by: Alexandre Raymond <cerb...@gmail.com> >>> --- >>> configure | 8 +++++++- >>> 1 files changed, 7 insertions(+), 1 deletions(-) >>> >>> diff --git a/configure b/configure >>> index a318d37..b21ef75 100755 >>> --- a/configure >>> +++ b/configure >>> @@ -2477,7 +2477,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 >>> -- >>> 1.7.5 >>> >> >> >