aboutsummaryrefslogtreecommitdiffstats
path: root/java/org
diff options
context:
space:
mode:
authorPo Lu2023-01-26 19:54:38 +0800
committerPo Lu2023-01-26 19:54:38 +0800
commit22f7ad1057e1a1e20933e0a1ff2a858ecd9e3fec (patch)
treed4e78a253eb91723411badef5d47e229562e642e /java/org
parent4255d7f0514c5fa1badded6b0bc445ec2d2764c0 (diff)
downloademacs-22f7ad1057e1a1e20933e0a1ff2a858ecd9e3fec.tar.gz
emacs-22f7ad1057e1a1e20933e0a1ff2a858ecd9e3fec.zip
Update Android port
* INSTALL.android: Document how to install sqlite3. * build-aux/ndk-build-helper-1.mk (SYSTEM_LIBRARIES): * build-aux/ndk-build-helper-2.mk (SYSTEM_LIBRARIES): Add liblog and libandroid. * configure.ac (SQLITE3_LIBS, HAVE_SQLITE3) (HAVE_SQLITE3_LOAD_EXTENSION): Support on Android. (APKSIGNER): Look for this new required binary. * cross/ndk-build/ndk-build-shared-library.mk (objname): * cross/ndk-build/ndk-build-static-library.mk (objname): Avoid duplicate rules by prefixing objects with module type. * cross/ndk-build/ndk-build.mk.in (NDK_BUILD_SHARED): Fix definition. * cross/ndk-build/ndk-resolve.mk: (NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)): Handle new system libraries. * doc/emacs/android.texi (Android File System): Document Android 10 system restriction. * java/AndroidManifest.xml.in: Target Android 33, not 28. * java/Makefile.in (SIGN_EMACS_V2, APKSIGNER): New variables. ($(APK_NAME)): Make sure to apply a ``version 2 signature'' to the package as well. * java/org/gnu/emacs/EmacsNative.java (EmacsNative): New argument apiLevel. * java/org/gnu/emacs/EmacsNoninteractive.java (main): * java/org/gnu/emacs/EmacsThread.java (run): Pass API level. * m4/ndk-build.m4 (ndk_package_mape): Add package mapping for sqlite3. * src/Makefile.in (SQLITE3_CFLAGS): New substition. (EMACS_CFLAGS): Add that variable. * src/android.c (android_api_level): New variable. (initEmacs): Set it. (android_file_access_p): Make static. (android_hack_asset_fd): Adjust for restrictions in Android 29 and later. (android_close_on_exec): New function. (android_open): Adjust to not duplicate file descriptor even if CLOEXEC. (android_faccessat): Use fstatat at-func emulation. * src/android.h: Update prototypes. * src/dired.c (file_name_completion_dirp): * src/fileio.c (file_access_p, Faccess_file): Now that sys_faccessat takes care of everything, stop calling android_file_access_p.
Diffstat (limited to 'java/org')
-rw-r--r--java/org/gnu/emacs/EmacsNative.java7
-rw-r--r--java/org/gnu/emacs/EmacsNoninteractive.java3
-rw-r--r--java/org/gnu/emacs/EmacsThread.java5
3 files changed, 11 insertions, 4 deletions
diff --git a/java/org/gnu/emacs/EmacsNative.java b/java/org/gnu/emacs/EmacsNative.java
index a772b965301..7bf8b5f6081 100644
--- a/java/org/gnu/emacs/EmacsNative.java
+++ b/java/org/gnu/emacs/EmacsNative.java
@@ -65,8 +65,11 @@ public class EmacsNative
65 undefined. 65 undefined.
66 66
67 DUMPFILE is the dump file to use, or NULL if Emacs is to load 67 DUMPFILE is the dump file to use, or NULL if Emacs is to load
68 loadup.el itself. */ 68 loadup.el itself.
69 public static native void initEmacs (String argv[], String dumpFile); 69
70 APILEVEL is the version of Android being used. */
71 public static native void initEmacs (String argv[], String dumpFile,
72 int apiLevel);
70 73
71 /* Abort and generate a native core dump. */ 74 /* Abort and generate a native core dump. */
72 public static native void emacsAbort (); 75 public static native void emacsAbort ();
diff --git a/java/org/gnu/emacs/EmacsNoninteractive.java b/java/org/gnu/emacs/EmacsNoninteractive.java
index b4854d8323f..4da82f2f894 100644
--- a/java/org/gnu/emacs/EmacsNoninteractive.java
+++ b/java/org/gnu/emacs/EmacsNoninteractive.java
@@ -177,6 +177,7 @@ public class EmacsNoninteractive
177 EmacsApplication.findDumpFile (context); 177 EmacsApplication.findDumpFile (context);
178 178
179 /* Start Emacs. */ 179 /* Start Emacs. */
180 EmacsNative.initEmacs (args, EmacsApplication.dumpFileName); 180 EmacsNative.initEmacs (args, EmacsApplication.dumpFileName,
181 Build.VERSION.SDK_INT);
181 } 182 }
182}; 183};
diff --git a/java/org/gnu/emacs/EmacsThread.java b/java/org/gnu/emacs/EmacsThread.java
index f5e9d54044a..2724d838d41 100644
--- a/java/org/gnu/emacs/EmacsThread.java
+++ b/java/org/gnu/emacs/EmacsThread.java
@@ -21,6 +21,8 @@ package org.gnu.emacs;
21 21
22import java.lang.Thread; 22import java.lang.Thread;
23 23
24import android.os.Build;
25
24public class EmacsThread extends Thread 26public class EmacsThread extends Thread
25{ 27{
26 /* Whether or not Emacs should be started -Q. */ 28 /* Whether or not Emacs should be started -Q. */
@@ -45,6 +47,7 @@ public class EmacsThread extends Thread
45 args = new String[] { "libandroid-emacs.so", "-Q", }; 47 args = new String[] { "libandroid-emacs.so", "-Q", };
46 48
47 /* Run the native code now. */ 49 /* Run the native code now. */
48 EmacsNative.initEmacs (args, EmacsApplication.dumpFileName); 50 EmacsNative.initEmacs (args, EmacsApplication.dumpFileName,
51 Build.VERSION.SDK_INT);
49 } 52 }
50}; 53};