Probe for fdatasync()
authorBlue Swirl <blauwirbel@gmail.com>
Sun, 20 Sep 2009 06:56:26 +0000 (06:56 +0000)
committerBlue Swirl <blauwirbel@gmail.com>
Sun, 20 Sep 2009 06:56:26 +0000 (06:56 +0000)
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
configure
cutils.c

index d752009..62dccd2 100755 (executable)
--- a/configure
+++ b/configure
@@ -1625,6 +1625,18 @@ if compile_prog "" "" ; then
     need_offsetof=no
 fi
 
+##########################################
+# check if we have fdatasync
+
+fdatasync=no
+cat > $TMPC << EOF
+#include <unistd.h>
+int main(void) { return fdatasync(0); }
+EOF
+if compile_prog "" "" ; then
+    fdatasync=yes
+fi
+
 # End of CC checks
 # After here, no more $cc or $ld runs
 
@@ -1738,6 +1750,7 @@ echo "Install blobs     $blobs"
 echo "KVM support       $kvm"
 echo "fdt support       $fdt"
 echo "preadv support    $preadv"
+echo "fdatasync         $fdatasync"
 
 if test $sdl_too_old = "yes"; then
 echo "-> Your SDL version is too old - please upgrade to have SDL support"
@@ -1928,6 +1941,9 @@ fi
 if test "$need_offsetof" = "yes" ; then
   echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak
 fi
+if test "$fdatasync" = "yes" ; then
+  echo "CONFIG_FDATASYNC=y" >> $config_host_mak
+fi
 
 # XXX: suppress that
 if [ "$bsd" = "yes" ] ; then
index 7a22346..2365e68 100644 (file)
--- a/cutils.c
+++ b/cutils.c
@@ -124,7 +124,7 @@ int qemu_fls(int i)
  */
 int qemu_fdatasync(int fd)
 {
-#ifdef _POSIX_SYNCHRONIZED_IO
+#ifdef CONFIG_FDATASYNC
     return fdatasync(fd);
 #else
     return fsync(fd);