]> Savannah Git Hosting - gnulib.git/commitdiff
fdatasync: Fix compilation error on Android 4.3.
authorBruno Haible <bruno@clisp.org>
Thu, 24 Jan 2019 23:15:50 +0000 (00:15 +0100)
committerBruno Haible <bruno@clisp.org>
Fri, 25 Jan 2019 01:14:27 +0000 (02:14 +0100)
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): On platforms other than Solaris,
test whether fdatasync() exists.

ChangeLog
m4/fdatasync.m4

index baa85902977d554305983410245bf0595fcf5bc9..4955af18b7ae115aa60ac25e42497aa94ba116bb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-01-24  Bruno Haible  <bruno@clisp.org>
+
+       fdatasync: Fix compilation error on Android 4.3.
+       * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): On platforms other than Solaris,
+       test whether fdatasync() exists.
+
 2019-01-24  Bruno Haible  <bruno@clisp.org>
 
        unlinkat: Fix compilation error on Android 4.3.
index c2ea85e4dfdc24ddde609aff37945773ed2627bf..fe221cc44b098d211c0d5fcee6277cd2b35c96d1 100644 (file)
@@ -1,4 +1,4 @@
-# fdatasync.m4 serial 4
+# fdatasync.m4 serial 5
 dnl Copyright (C) 2008-2019 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -7,6 +7,7 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_FDATASYNC],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
 
   dnl Using AC_CHECK_FUNCS_ONCE would break our subsequent AC_SEARCH_LIBS
   AC_CHECK_DECLS_ONCE([fdatasync])
@@ -21,12 +22,23 @@ AC_DEFUN([gl_FUNC_FDATASYNC],
       HAVE_FDATASYNC=0
     fi
   else
-    dnl Solaris <= 2.6 has fdatasync() in libposix4.
-    dnl Solaris 7..10 has it in librt.
-    gl_saved_libs=$LIBS
-    AC_SEARCH_LIBS([fdatasync], [rt posix4],
-                   [test "$ac_cv_search_fdatasync" = "none required" ||
-                    LIB_FDATASYNC=$ac_cv_search_fdatasync])
-    LIBS=$gl_saved_libs
+    case "$host_os" in
+      solaris*)
+        dnl Solaris <= 2.6 has fdatasync() in libposix4.
+        dnl Solaris 7..10 has it in librt.
+        gl_saved_libs=$LIBS
+        AC_SEARCH_LIBS([fdatasync], [rt posix4],
+          [test "$ac_cv_search_fdatasync" = "none required" ||
+           LIB_FDATASYNC=$ac_cv_search_fdatasync])
+        LIBS=$gl_saved_libs
+        ;;
+      *)
+        dnl Android 4.3 does not have fdatasync but declares it.
+        AC_CHECK_FUNCS([fdatasync])
+        if test $ac_cv_func_fdatasync = no; then
+          HAVE_FDATASYNC=0
+        fi
+        ;;
+    esac
   fi
 ])