[git commit] config: disentangle PREFER_APPLETS from SH_STANDALONE and SH_NOFORK

Denys Vlasenko vda.linux at googlemail.com
Fri Jul 22 16:48:38 UTC 2016


commit: https://git.busybox.net/busybox/commit/?id=0fb0045aa9261be1dda49dfdfb95cbc585402a8b
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

On user request.
I thought enabling/disabling them all together is more consistent.
Evidently, some people do want them to be separately selectable.

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 applets/applet_tables.c    | 4 +++-
 include/busybox.h          | 4 +++-
 libbb/vfork_daemon_rexec.c | 5 +++--
 shell/Config.src           | 4 ++--
 4 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/applets/applet_tables.c b/applets/applet_tables.c
index 843f2ec..8401a15 100644
--- a/applets/applet_tables.c
+++ b/applets/applet_tables.c
@@ -143,7 +143,9 @@ int main(int argc, char **argv)
 	printf("};\n");
 	printf("#endif\n\n");
 
-#if ENABLE_FEATURE_PREFER_APPLETS
+#if ENABLE_FEATURE_PREFER_APPLETS \
+ || ENABLE_FEATURE_SH_STANDALONE \
+ || ENABLE_FEATURE_SH_NOFORK
 	printf("const uint8_t applet_flags[] ALIGN1 = {\n");
 	i = 0;
 	while (i < NUM_APPLETS) {
diff --git a/include/busybox.h b/include/busybox.h
index 737627b..6a003d5 100644
--- a/include/busybox.h
+++ b/include/busybox.h
@@ -19,7 +19,9 @@ extern const uint8_t applet_flags[] ALIGN1;
 extern const uint8_t applet_suid[] ALIGN1;
 extern const uint8_t applet_install_loc[] ALIGN1;
 
-#if ENABLE_FEATURE_PREFER_APPLETS
+#if ENABLE_FEATURE_PREFER_APPLETS \
+ || ENABLE_FEATURE_SH_STANDALONE \
+ || ENABLE_FEATURE_SH_NOFORK
 # define APPLET_IS_NOFORK(i) (applet_flags[(i)/4] & (1 << (2 * ((i)%4))))
 # define APPLET_IS_NOEXEC(i) (applet_flags[(i)/4] & (1 << ((2 * ((i)%4))+1)))
 #else
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c
index 1adb5b3..c192829 100644
--- a/libbb/vfork_daemon_rexec.c
+++ b/libbb/vfork_daemon_rexec.c
@@ -68,7 +68,8 @@ pid_t FAST_FUNC xspawn(char **argv)
 	return pid;
 }
 
-#if ENABLE_FEATURE_PREFER_APPLETS
+#if ENABLE_FEATURE_PREFER_APPLETS \
+ || ENABLE_FEATURE_SH_NOFORK
 static jmp_buf die_jmp;
 static void jump(void)
 {
@@ -174,7 +175,7 @@ int FAST_FUNC run_nofork_applet(int applet_no, char **argv)
 
 	return rc & 0xff; /* don't confuse people with "exitcodes" >255 */
 }
-#endif /* FEATURE_PREFER_APPLETS */
+#endif /* FEATURE_PREFER_APPLETS || FEATURE_SH_NOFORK */
 
 int FAST_FUNC spawn_and_wait(char **argv)
 {
diff --git a/shell/Config.src b/shell/Config.src
index b31e62d..e4df359 100644
--- a/shell/Config.src
+++ b/shell/Config.src
@@ -88,7 +88,7 @@ config FEATURE_SH_EXTRA_QUIET
 config FEATURE_SH_STANDALONE
 	bool "Standalone shell"
 	default n
-	depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS
+	depends on (HUSH || ASH)
 	help
 	  This option causes busybox shells to use busybox applets
 	  in preference to executables in the PATH whenever possible. For
@@ -121,7 +121,7 @@ config FEATURE_SH_STANDALONE
 config FEATURE_SH_NOFORK
 	bool "Run 'nofork' applets directly"
 	default n
-	depends on (HUSH || ASH) && FEATURE_PREFER_APPLETS
+	depends on (HUSH || ASH)
 	help
 	  This option causes busybox shells to not execute typical
 	  fork/exec/wait sequence, but call <applet>_main directly,


More information about the busybox-cvs mailing list