]> git.eshelyaron.com Git - emacs.git/commitdiff
Expressly disable large file APIs on Android 4.4 and earlier
authorPo Lu <luangruo@yahoo.com>
Mon, 6 May 2024 12:55:49 +0000 (20:55 +0800)
committerEshel Yaron <me@eshelyaron.com>
Mon, 6 May 2024 16:56:59 +0000 (18:56 +0200)
* configure.ac (CFLAGS): Add -D_FILE_OFFSET_BITS=32 on SDK 20
and earlier that unserviceable functions may not be selected.
Problem reported by Ruth Elburn <ruth@noreply.invalid>.

(cherry picked from commit c5b4bd69faf9e9af9d95f7c995fffb80a7fc47c9)

configure.ac

index de858a9f8ce10412f995ae7b56f0f1775d1f311d..7119d184db4f05d60b31e0f60cab40896724fe77 100644 (file)
@@ -40,7 +40,13 @@ if test "$XCONFIGURE" = "android"; then
   CFLAGS="$ANDROID_CFLAGS -Werror=implicit-function-declaration"
   # Don't explicitly enable support for large files unless Emacs is
   # being built for API 21 or later.  Otherwise, mmap does not work.
+  #
+  # Moreover, 64-bit variants of file IO functions in the C library are
+  # liable to fail with ENOSYS or EINVAL on earlier API versions, and as
+  # such their definitions must be explicitly disabled on NDK releases
+  # that enable them by default.
   AS_IF([test "$ANDROID_SDK" -lt "21"], [
+    CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=32"
     enable_largefile=no
     enable_year2038=no])
 fi