---- a/coreutils/chroot.c
-+++ b/coreutils/chroot.c
-@@ -41,5 +41,7 @@ int chroot_main(int argc UNUSED_PARAM, c
- /*argv[2] = NULL; - already is */
- }
-
-- BB_EXECVP_or_die(argv);
-+ execvp(argv[0], argv);
-+ xfunc_error_retval = (errno == ENOENT) ? 127 : 126;
-+ bb_perror_msg_and_die("can't execute '%s'", argv[0]);
- }
---- a/include/libbb.h
-+++ b/include/libbb.h
-@@ -896,13 +896,11 @@ int exists_execable(const char *filename
- * but it may exec busybox and call applet instead of searching PATH.
- */
- #if ENABLE_FEATURE_PREFER_APPLETS
-+int bb_execv_applet(const char *name, char *const argv[], char *const envp[]) FAST_FUNC;
- int BB_EXECVP(const char *file, char *const argv[]) FAST_FUNC;
--#define BB_EXECLP(prog,cmd,...) \
-- do { \
-- if (find_applet_by_name(prog) >= 0) \
-- execlp(bb_busybox_exec_path, cmd, __VA_ARGS__); \
-- execlp(prog, cmd, __VA_ARGS__); \
-- } while (0)
-+int bb_execlp(const char *file, const char *arg, ...) FAST_FUNC;
-+#define BB_EXECVP(prog,cmd) bb_execvp(prog,cmd)
-+#define BB_EXECLP(prog,cmd,...) bb_execlp(prog,cmd, __VA_ARGS__)
- #else
- #define BB_EXECVP(prog,cmd) execvp(prog,cmd)
- #define BB_EXECLP(prog,cmd,...) execlp(prog,cmd,__VA_ARGS__)
-@@ -1683,6 +1681,7 @@ extern const char bb_path_wtmp_file[];
+ static void
+-tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) char *cmd, char **argv, char **envp)
++tryexec(char *cmd, char **argv, char **envp)
+ {
+-#if ENABLE_FEATURE_SH_STANDALONE
+- if (applet_no >= 0) {
+- if (APPLET_IS_NOEXEC(applet_no)) {
+- clearenv();
+- while (*envp)
+- putenv(*envp++);
+- run_applet_no_and_exit(applet_no, argv);
+- }
+- /* re-exec ourselves with the new arguments */
+- execve(bb_busybox_exec_path, argv, envp);
+- /* If they called chroot or otherwise made the binary no longer
+- * executable, fall through */
+- }
+-#endif
+-
+ repeat:
+ #ifdef SYSV
+ do {
+@@ -7465,24 +7450,21 @@ shellexec(char **argv, const char *path,
+ int e;
+ char **envp;
+ int exerrno;
+-#if ENABLE_FEATURE_SH_STANDALONE
+- int applet_no = -1;
+-#endif