diff options
| author | Po Lu | 2024-07-14 12:46:23 +0800 |
|---|---|---|
| committer | Po Lu | 2024-07-14 12:46:23 +0800 |
| commit | b00fc31dd1d4543f8b017e8d7fef7686cd430bcc (patch) | |
| tree | bc88bc250ff41feed860c4d2c90a3a2990de09d3 /src | |
| parent | 04bf3172f03497eef6985311c90fd6557ace42b2 (diff) | |
| download | emacs-b00fc31dd1d4543f8b017e8d7fef7686cd430bcc.tar.gz emacs-b00fc31dd1d4543f8b017e8d7fef7686cd430bcc.zip | |
Do not set LD_LIBRARY_PATH during Android initialization
* doc/emacs/android.texi (Android Environment): Adjust
documentation to match.
* java/org/gnu/emacs/EmacsNoninteractive.java (main1): New
function. Remove initialization of EmacsNative hither.
(main): Acquire an ApplicationInfo or LoadedApk, as the case may
be on the host system, derive a ClassLoader from the result, and
load and call `main1' from within this class loader.
* src/android-emacs.c (main):
* src/android.c (setEmacsParams): Do not override
LD_LIBRARY_PATH or set EMACS_LD_LIBRARY_PATH. This enables
Emacs to execute subprocesses in certain "fortified" Android
systems, amongst other things.
Diffstat (limited to 'src')
| -rw-r--r-- | src/android-emacs.c | 11 | ||||
| -rw-r--r-- | src/android.c | 11 |
2 files changed, 2 insertions, 20 deletions
diff --git a/src/android-emacs.c b/src/android-emacs.c index d68734da1bd..28b46ca1a4b 100644 --- a/src/android-emacs.c +++ b/src/android-emacs.c | |||
| @@ -37,7 +37,7 @@ main (int argc, char **argv) | |||
| 37 | { | 37 | { |
| 38 | char **args; | 38 | char **args; |
| 39 | int i; | 39 | int i; |
| 40 | char *bootclasspath, *emacs_class_path, *ld_library_path; | 40 | char *bootclasspath, *emacs_class_path; |
| 41 | 41 | ||
| 42 | /* Allocate enough to hold the arguments to app_process. */ | 42 | /* Allocate enough to hold the arguments to app_process. */ |
| 43 | args = alloca ((10 + argc) * sizeof *args); | 43 | args = alloca ((10 + argc) * sizeof *args); |
| @@ -63,15 +63,6 @@ main (int argc, char **argv) | |||
| 63 | return 1; | 63 | return 1; |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | /* Restore LD_LIBRARY_PATH to its original value, the app library | ||
| 67 | directory, to guarantee that it is possible for Java to find the | ||
| 68 | Emacs C code later. */ | ||
| 69 | |||
| 70 | ld_library_path = getenv ("EMACS_LD_LIBRARY_PATH"); | ||
| 71 | |||
| 72 | if (ld_library_path) | ||
| 73 | setenv ("LD_LIBRARY_PATH", ld_library_path, 1); | ||
| 74 | |||
| 75 | if (asprintf (&bootclasspath, "-Djava.class.path=%s", | 66 | if (asprintf (&bootclasspath, "-Djava.class.path=%s", |
| 76 | emacs_class_path) < 0) | 67 | emacs_class_path) < 0) |
| 77 | { | 68 | { |
diff --git a/src/android.c b/src/android.c index f90ebc04925..3c96867a6b5 100644 --- a/src/android.c +++ b/src/android.c | |||
| @@ -1338,7 +1338,7 @@ NATIVE_NAME (setEmacsParams) (JNIEnv *env, jobject object, | |||
| 1338 | 1338 | ||
| 1339 | int pipefd[2]; | 1339 | int pipefd[2]; |
| 1340 | pthread_t thread; | 1340 | pthread_t thread; |
| 1341 | const char *java_string; | 1341 | const char *java_string, *tem; |
| 1342 | struct stat statb; | 1342 | struct stat statb; |
| 1343 | 1343 | ||
| 1344 | #ifdef THREADS_ENABLED | 1344 | #ifdef THREADS_ENABLED |
| @@ -1491,15 +1491,6 @@ NATIVE_NAME (setEmacsParams) (JNIEnv *env, jobject object, | |||
| 1491 | EmacsNoninteractive can be found. */ | 1491 | EmacsNoninteractive can be found. */ |
| 1492 | setenv ("EMACS_CLASS_PATH", android_class_path, 1); | 1492 | setenv ("EMACS_CLASS_PATH", android_class_path, 1); |
| 1493 | 1493 | ||
| 1494 | /* Set LD_LIBRARY_PATH to an appropriate value. */ | ||
| 1495 | setenv ("LD_LIBRARY_PATH", android_lib_dir, 1); | ||
| 1496 | |||
| 1497 | /* EMACS_LD_LIBRARY_PATH records the location of the app library | ||
| 1498 | directory. android-emacs refers to this, since users have valid | ||
| 1499 | reasons for changing LD_LIBRARY_PATH to a value that precludes | ||
| 1500 | the possibility of Java locating libemacs later. */ | ||
| 1501 | setenv ("EMACS_LD_LIBRARY_PATH", android_lib_dir, 1); | ||
| 1502 | |||
| 1503 | /* If the system is Android 5.0 or later, set LANG to en_US.utf8, | 1494 | /* If the system is Android 5.0 or later, set LANG to en_US.utf8, |
| 1504 | which is understood by the C library. In other instances set it | 1495 | which is understood by the C library. In other instances set it |
| 1505 | to C, a meaningless value, for good measure. */ | 1496 | to C, a meaningless value, for good measure. */ |