diff -u -r ../ruby-2.6.1/process.c ./process.c --- ../ruby-2.6.1/process.c 2018-12-22 10:23:06.000000000 +0000 +++ ./process.c 2019-02-16 09:27:04.713434722 +0000 @@ -1569,9 +1569,9 @@ *argv = (char *)prog; *--argv = (char *)"sh"; if (envp) - execve("/bin/sh", argv, envp); /* async-signal-safe */ + execve("@TERMUX_PREFIX@/bin/sh", argv, envp); /* async-signal-safe */ else - execv("/bin/sh", argv); /* async-signal-safe (since SUSv4) */ + execv("@TERMUX_PREFIX@/bin/sh", argv); /* async-signal-safe (since SUSv4) */ } #else @@ -1639,9 +1639,9 @@ } #else if (envp_str) - execle("/bin/sh", "sh", "-c", str, (char *)NULL, RB_IMEMO_TMPBUF_PTR(envp_str)); /* async-signal-safe */ + execle("@TERMUX_PREFIX@/bin/sh", "sh", "-c", str, (char *)NULL, RB_IMEMO_TMPBUF_PTR(envp_str)); /* async-signal-safe */ else - execl("/bin/sh", "sh", "-c", str, (char *)NULL); /* async-signal-safe (since SUSv4) */ + execl("@TERMUX_PREFIX@/bin/sh", "sh", "-c", str, (char *)NULL); /* async-signal-safe (since SUSv4) */ #endif /* _WIN32 */ return errno; } @@ -1744,7 +1744,7 @@ if (status == -1 && errno == ENOEXEC) { *argv = (char *)prog; *--argv = (char *)"sh"; - status = spawnv(P_NOWAIT, "/bin/sh", (const char **)argv); + status = spawnv(P_NOWAIT, "@TERMUX_PREFIX@/bin/sh", (const char **)argv); after_exec(); if (status == -1) errno = ENOEXEC; } @@ -1782,7 +1782,7 @@ char *shell = dln_find_exe_r("sh", 0, fbuf, sizeof(fbuf)); before_exec(); - status = spawnl(P_NOWAIT, (shell ? shell : "/bin/sh"), "sh", "-c", str, (char*)NULL); + status = spawnl(P_NOWAIT, (shell ? shell : "@TERMUX_PREFIX@/bin/sh"), "sh", "-c", str, (char*)NULL); after_exec(); return status; }