OSX does have fdatasync defined as part of the libsystem_kernel.dylib library. The problem is that there is no header on OSX that actually provides the function. There is another issue where I redefined PRIuMAX to "llu" and PRIdMAX to "lld" on OSX. This was necessary because the build was picking up the lib/stdint.h provided with coreutils. In there we ended up defining uintmax_t as a uint64_t. #elif defined GL_UINT64_T # define uintmax_t uint64_t #else However by default on OSX, PRIdMAX is defined as "jd" and PRIuMAX is defined as "ju." I have added a hack to get coreutils to compile cleanly on OSX. Hope this helps. -Herb