[PATCH] ash: special treatment for 'busybox' in standalone shell mode

Ron Yorston rmy at pobox.com
Fri Jul 28 18:50:33 UTC 2017


Denys Vlasenko wrote:
>How about this instead?

Looks good.  It's less intrusive, though introduces a bit more bloat.
My approach also works even if BUSYBOX is disabled in the configuration,
though that isn't a big advantage because busybox isn't very useful when
it's disabled.

However...

>+#  if ENABLE_FEATURE_SH_STANDALONE && ENABLE_FEATURE_TAB_COMPLETION
>+    /*
>+     * Insert "busybox" into applet table as well.
>+     * This makes standalone shell tab-complete it.
>+     */

Building with SH_STANDALONE enabled and TAB_COMPLETION disabled fails
with:

libbb/appletlib.c:776:36: error: conflicting types for ‘busybox_main’
 #   define busybox_main(argc,argv) busybox_main(argv)
                                    ^
libbb/appletlib.c:780:5: note: in expansion of macro ‘busybox_main’
 int busybox_main(int argc UNUSED_PARAM, char **argv)
     ^~~~~~~~~~~~

Dropping the '&& ENABLE_FEATURE_TAB_COMPLETION' allows the build to
succeed.  The resulting binary can run 'busybox' from the shell though
it can't tab-complete it, obviously.

Ron


More information about the busybox mailing list