config: disentangle PREFER_APPLETS from SH_STANDALONE and SH_NOFORK
No binary (build failed)
—
(log yok)
| @@ -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) { | |
| @@ -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 | |
| @@ -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) | |
| { | |
| @@ -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, | |