changeset 40132:6bcaf5dcb02b

fdatasync: Fix compilation error on Android 4.3. * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): On platforms other than Solaris, test whether fdatasync() exists.
author Bruno Haible <bruno@clisp.org>
date Fri, 25 Jan 2019 00:15:50 +0100
parents 9c7eed94d112
children 11b97647fb11
files ChangeLog m4/fdatasync.m4
diffstat 2 files changed, 26 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jan 25 00:08:52 2019 +0100
+++ b/ChangeLog	Fri Jan 25 00:15:50 2019 +0100
@@ -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.
--- a/m4/fdatasync.m4	Fri Jan 25 00:08:52 2019 +0100
+++ b/m4/fdatasync.m4	Fri Jan 25 00:15:50 2019 +0100
@@ -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 @@
 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 @@
       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
 ])