]> git.eshelyaron.com Git - emacs.git/commitdiff
Update Android port
authorPo Lu <luangruo@yahoo.com>
Wed, 8 Mar 2023 13:18:50 +0000 (21:18 +0800)
committerPo Lu <luangruo@yahoo.com>
Wed, 8 Mar 2023 13:18:50 +0000 (21:18 +0800)
* src/fileio.c (Fcopy_file): On Android, ignore ENOSYS and
ENOTSUP when restoring file times, as the system call used is
supported by many kernels.

src/fileio.c

index 88582704d7e522c260481a153433015be9531ebe..99f710ccbf0bd751e96b13cc274099cd4f85b68f 100644 (file)
@@ -2495,7 +2495,17 @@ permissions.  */)
       struct timespec ts[2];
       ts[0] = get_stat_atime (&st);
       ts[1] = get_stat_mtime (&st);
-      if (futimens (ofd, ts) != 0)
+      if (futimens (ofd, ts) != 0
+         /* Various versions of the Android C library are missing
+            futimens, which leads a gnulib fallback to be installed
+            that uses fdutimens instead.  However, fdutimens is not
+            supported on many Android kernels, so just silently fail
+            if errno is ENOTSUP or ENOSYS.  */
+#if defined HAVE_ANDROID && !defined ANDROID_STUBIFY
+         && errno != ENOTSUP
+         && errno != ENOSYS
+#endif
+         )
        xsignal2 (Qfile_date_error,
                  build_string ("Cannot set file date"), newname);
     }