← Commit list

0fb0045aa

Denys Vlasenko
Denys Vlasenko
2016-07-22
SUCCESS Duration: 196s

Subject

config: disentangle PREFER_APPLETS from SH_STANDALONE and SH_NOFORK

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

applets/applet_tables.c+3 -1
@@ -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) {
include/busybox.h+3 -1
@@ -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
libbb/vfork_daemon_rexec.c+3 -2
@@ -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)
{
shell/Config.src+2 -2
@@ -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,