From: Po Lu Date: Mon, 6 May 2024 12:55:49 +0000 (+0800) Subject: Expressly disable large file APIs on Android 4.4 and earlier X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9c8b3ce9f91bceb306af5c030aec94aa3d8e7bec;p=emacs.git Expressly disable large file APIs on Android 4.4 and earlier * 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 . (cherry picked from commit c5b4bd69faf9e9af9d95f7c995fffb80a7fc47c9) --- diff --git a/configure.ac b/configure.ac index de858a9f8ce..7119d184db4 100644 --- a/configure.ac +++ b/configure.ac @@ -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