From 5550816f5962943abd81fbf68901dad575f18c06 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 1 May 2023 09:31:58 +0800 Subject: Work around system restrictions regarding exec * doc/emacs/android.texi (Android Environment): Document `android-use-exec-loader'. * exec/exec1.c (main): Set program group of child process. * src/android.c (android_rewrite_spawn_argv): New function. * src/android.h: Update prototypes. * src/androidfns.c (syms_of_androidfns): New variable `android_use_exec_loader'. * src/callproc.c (emacs_spawn): Rewrite the argument vector to use exec1 if necessary. --- exec/exec1.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'exec') diff --git a/exec/exec1.c b/exec/exec1.c index 835bf8e72b9..d77ca8adf54 100644 --- a/exec/exec1.c +++ b/exec/exec1.c @@ -20,6 +20,7 @@ along with GNU Emacs. If not, see . */ #include #include #include +#include #include #include "exec.h" @@ -41,10 +42,15 @@ main (int argc, char **argv) extern char **environ; int wstatus; + pid1 = getpid (); pid = fork (); if (!pid) { + /* Set the process group used to the parent. */ + if (setpgid (0, pid1)) + perror ("setpgid"); + tracing_execve (argv[2], argv + 2, environ); /* An error occured. Exit with failure. */ -- cgit v1.2.3