shells: make hush test optional, rename ASH_BUILTIN_foo -> ASH_foo
authorDenys Vlasenko <vda.linux@googlemail.com>
Tue, 10 Jan 2017 14:13:30 +0000 (15:13 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Tue, 10 Jan 2017 14:13:30 +0000 (15:13 +0100)
This makes hash and ash more symmetrical wrt config menu and config
options.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
16 files changed:
configs/TEST_nommu_defconfig
configs/TEST_noprintf_defconfig
configs/TEST_rh9_defconfig
configs/android2_defconfig
configs/android_502_defconfig
configs/android_defconfig
configs/android_ndk_defconfig
configs/cygwin_defconfig
configs/freebsd_defconfig
coreutils/Kbuild.src
coreutils/echo.c
coreutils/printf.c
coreutils/test.c
shell/ash.c
shell/hush.c
testsuite/mdev.tests

index 08351a294baab147a8179ce6d7b3e6ad8fd61a9f..d9ec41cd00dc5d2b7a15bcc66b69e9ab1b3aea29 100644 (file)
@@ -879,9 +879,9 @@ CONFIG_FEATURE_SH_IS_HUSH=y
 # CONFIG_ASH_JOB_CONTROL is not set
 # CONFIG_ASH_ALIAS is not set
 # CONFIG_ASH_GETOPTS is not set
-# CONFIG_ASH_BUILTIN_ECHO is not set
-# CONFIG_ASH_BUILTIN_PRINTF is not set
-# CONFIG_ASH_BUILTIN_TEST is not set
+# CONFIG_ASH_ECHO is not set
+# CONFIG_ASH_PRINTF is not set
+# CONFIG_ASH_TEST is not set
 # CONFIG_ASH_CMDCMD is not set
 # CONFIG_ASH_MAIL is not set
 # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
index 70dacece0446215c002639f479e263d64f6f4c2d..c7330ed5d931fb663d5a64d1d2327b9f0ecf1141 100644 (file)
@@ -873,9 +873,9 @@ CONFIG_SV_DEFAULT_SERVICE_DIR=""
 # CONFIG_ASH_JOB_CONTROL is not set
 # CONFIG_ASH_ALIAS is not set
 # CONFIG_ASH_GETOPTS is not set
-# CONFIG_ASH_BUILTIN_ECHO is not set
-# CONFIG_ASH_BUILTIN_PRINTF is not set
-# CONFIG_ASH_BUILTIN_TEST is not set
+# CONFIG_ASH_ECHO is not set
+# CONFIG_ASH_PRINTF is not set
+# CONFIG_ASH_TEST is not set
 # CONFIG_ASH_CMDCMD is not set
 # CONFIG_ASH_MAIL is not set
 # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
index 4a5fad3244e56a1e66bf2f55aeb2fdc0b2b201a0..86e13cd53ff2b298e498dd134a312c0467e9b9c6 100644 (file)
@@ -893,9 +893,9 @@ CONFIG_ASH_BASH_COMPAT=y
 CONFIG_ASH_JOB_CONTROL=y
 CONFIG_ASH_ALIAS=y
 CONFIG_ASH_GETOPTS=y
-CONFIG_ASH_BUILTIN_ECHO=y
-CONFIG_ASH_BUILTIN_PRINTF=y
-CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_ECHO=y
+CONFIG_ASH_PRINTF=y
+CONFIG_ASH_TEST=y
 CONFIG_ASH_CMDCMD=y
 # CONFIG_ASH_MAIL is not set
 CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
index 754f612c68a9b862ee91ba7efea74995084226aa..9338f66ac33520ef20fbd09120481e917ffd261f 100644 (file)
@@ -936,9 +936,9 @@ CONFIG_SOFTLIMIT=y
 # CONFIG_ASH_JOB_CONTROL is not set
 # CONFIG_ASH_ALIAS is not set
 # CONFIG_ASH_GETOPTS is not set
-# CONFIG_ASH_BUILTIN_ECHO is not set
-# CONFIG_ASH_BUILTIN_PRINTF is not set
-# CONFIG_ASH_BUILTIN_TEST is not set
+# CONFIG_ASH_ECHO is not set
+# CONFIG_ASH_PRINTF is not set
+# CONFIG_ASH_TEST is not set
 # CONFIG_ASH_CMDCMD is not set
 # CONFIG_ASH_MAIL is not set
 # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
index 8ea6c295d876c346264173ec6a757273f889e980..31606344028962009614c9b808abc9dfa9bae24b 100644 (file)
@@ -1081,9 +1081,9 @@ CONFIG_ASH_BASH_COMPAT=y
 CONFIG_ASH_JOB_CONTROL=y
 CONFIG_ASH_ALIAS=y
 CONFIG_ASH_GETOPTS=y
-CONFIG_ASH_BUILTIN_ECHO=y
-CONFIG_ASH_BUILTIN_PRINTF=y
-CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_ECHO=y
+CONFIG_ASH_PRINTF=y
+CONFIG_ASH_TEST=y
 CONFIG_ASH_HELP=y
 CONFIG_ASH_CMDCMD=y
 # CONFIG_ASH_MAIL is not set
index 30e888ac7a866b8794ad7e5f995e99ac16674469..cd3490c4e6f6d5610c47593dc11b9e435bbad16f 100644 (file)
@@ -968,9 +968,9 @@ CONFIG_SOFTLIMIT=y
 # CONFIG_ASH_JOB_CONTROL is not set
 # CONFIG_ASH_ALIAS is not set
 # CONFIG_ASH_GETOPTS is not set
-# CONFIG_ASH_BUILTIN_ECHO is not set
-# CONFIG_ASH_BUILTIN_PRINTF is not set
-# CONFIG_ASH_BUILTIN_TEST is not set
+# CONFIG_ASH_ECHO is not set
+# CONFIG_ASH_PRINTF is not set
+# CONFIG_ASH_TEST is not set
 # CONFIG_ASH_CMDCMD is not set
 # CONFIG_ASH_MAIL is not set
 # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
index 716ec9a5dfad1b5120c5a7cc198ab5c0430ec986..f2773be46f4d21fdf031b5c00370661eec10e244 100644 (file)
@@ -996,9 +996,9 @@ CONFIG_SOFTLIMIT=y
 # CONFIG_ASH_JOB_CONTROL is not set
 # CONFIG_ASH_ALIAS is not set
 # CONFIG_ASH_GETOPTS is not set
-# CONFIG_ASH_BUILTIN_ECHO is not set
-# CONFIG_ASH_BUILTIN_PRINTF is not set
-# CONFIG_ASH_BUILTIN_TEST is not set
+# CONFIG_ASH_ECHO is not set
+# CONFIG_ASH_PRINTF is not set
+# CONFIG_ASH_TEST is not set
 # CONFIG_ASH_HELP is not set
 # CONFIG_ASH_CMDCMD is not set
 # CONFIG_ASH_MAIL is not set
index b856482f6510950aefbbb2b6198a733365744adb..816f76e65b1c7bbc61083e6cb89e30237b1c6afc 100644 (file)
@@ -936,9 +936,9 @@ CONFIG_ASH_BASH_COMPAT=y
 CONFIG_ASH_JOB_CONTROL=y
 CONFIG_ASH_ALIAS=y
 CONFIG_ASH_GETOPTS=y
-CONFIG_ASH_BUILTIN_ECHO=y
-CONFIG_ASH_BUILTIN_PRINTF=y
-CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_ECHO=y
+CONFIG_ASH_PRINTF=y
+CONFIG_ASH_TEST=y
 CONFIG_ASH_CMDCMD=y
 # CONFIG_ASH_MAIL is not set
 CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
index 4f14d3be9ee274abae2d9e3ff4daad74f1def38a..d223b7230bafff3e21a194c93663488b5585091c 100644 (file)
@@ -912,9 +912,9 @@ CONFIG_ASH=y
 # CONFIG_ASH_JOB_CONTROL is not set
 # CONFIG_ASH_ALIAS is not set
 # CONFIG_ASH_GETOPTS is not set
-# CONFIG_ASH_BUILTIN_ECHO is not set
-# CONFIG_ASH_BUILTIN_PRINTF is not set
-# CONFIG_ASH_BUILTIN_TEST is not set
+# CONFIG_ASH_ECHO is not set
+# CONFIG_ASH_PRINTF is not set
+# CONFIG_ASH_TEST is not set
 # CONFIG_ASH_CMDCMD is not set
 # CONFIG_ASH_MAIL is not set
 # CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
index d0b3f629b98cd466ffa1d332390dc334dca0b65b..a805b64fed65c48631aaffcd72bf6260208a5ed2 100644 (file)
@@ -16,9 +16,3 @@ lib-$(CONFIG_CRONTAB)       += cat.o   # crontab -l
 lib-$(CONFIG_ADDUSER)       += chown.o # used by adduser
 lib-$(CONFIG_ADDGROUP)      += chown.o # used by addgroup
 lib-$(CONFIG_FTPD)          += ls.o    # used by ftpd
-
-lib-$(CONFIG_ASH_BUILTIN_ECHO) += echo.o
-lib-$(CONFIG_HUSH_ECHO)     += echo.o
-
-lib-$(CONFIG_ASH_BUILTIN_PRINTF) += printf.o
-lib-$(CONFIG_HUSH_PRINTF)   += printf.o
index d0dba650d4bf42955bcd0f61ea02f4fdc953e6c4..a7e4ca9acfaf762863fca8354a52990a44eaaa78 100644 (file)
 //config:config FEATURE_FANCY_ECHO
 //config:      bool "Enable -n and -e options"
 //config:      default y
-//config:      depends on ECHO || ASH_BUILTIN_ECHO || HUSH_ECHO
+//config:      depends on ECHO || ASH_ECHO || HUSH_ECHO
 
 //applet:IF_ECHO(APPLET_NOFORK(echo, echo, BB_DIR_BIN, BB_SUID_DROP, echo))
 
 //kbuild:lib-$(CONFIG_ECHO) += echo.o
 
+//kbuild:lib-$(CONFIG_ASH_ECHO)  += echo.o
+//kbuild:lib-$(CONFIG_HUSH_ECHO) += echo.o
+
 /* BB_AUDIT SUSv3 compliant -- unless configured as fancy echo. */
 /* http://www.opengroup.org/onlinepubs/007904975/utilities/echo.html */
 
index 6c8e115d85b36e91e89a32a633ec3b5b2d0ac884..bc22e0ee7a488c47114e63a43a062a8803964269 100644 (file)
@@ -49,6 +49,9 @@
 
 //kbuild:lib-$(CONFIG_PRINTF) += printf.o
 
+//kbuild:lib-$(CONFIG_ASH_PRINTF)  += printf.o
+//kbuild:lib-$(CONFIG_HUSH_PRINTF) += printf.o
+
 //usage:#define printf_trivial_usage
 //usage:       "FORMAT [ARG]..."
 //usage:#define printf_full_usage "\n\n"
@@ -417,7 +420,7 @@ int printf_main(int argc UNUSED_PARAM, char **argv)
        if (argv[1] && argv[1][0] == '-' && argv[1][1] == '-' && !argv[1][2])
                argv++;
        if (!argv[1]) {
-               if (ENABLE_ASH_BUILTIN_PRINTF
+               if (ENABLE_ASH_PRINTF
                 && applet_name[0] != 'p'
                ) {
                        bb_error_msg("usage: printf FORMAT [ARGUMENT...]");
index 288f66508bb22eaf09c91ff88676cf3c1fb4dd66..edc625f57a4ba8986f911c661b579f4420101c44 100644 (file)
 //config:config FEATURE_TEST_64
 //config:      bool "Extend test to 64 bit"
 //config:      default y
-//config:      depends on TEST || TEST1 || TEST2 || ASH_BUILTIN_TEST || HUSH
+//config:      depends on TEST || TEST1 || TEST2 || ASH_TEST || HUSH_TEST
 //config:      help
 //config:        Enable 64-bit support in test.
 
 //applet:IF_TEST(APPLET_NOFORK(test, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
-//applet:IF_TEST1(APPLET_NOFORK([,  test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
-//applet:IF_TEST2(APPLET_NOFORK([[, test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
+//applet:IF_TEST1(APPLET_NOFORK([,   test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
+//applet:IF_TEST2(APPLET_NOFORK([[,  test, BB_DIR_USR_BIN, BB_SUID_DROP, test))
 
-//kbuild:lib-$(CONFIG_TEST) += test.o test_ptr_hack.o
+//kbuild:lib-$(CONFIG_TEST)  += test.o test_ptr_hack.o
 //kbuild:lib-$(CONFIG_TEST1) += test.o test_ptr_hack.o
 //kbuild:lib-$(CONFIG_TEST2) += test.o test_ptr_hack.o
-//kbuild:lib-$(CONFIG_ASH_BUILTIN_TEST) += test.o test_ptr_hack.o
-//kbuild:lib-$(CONFIG_HUSH) += test.o test_ptr_hack.o
-//kbuild:lib-$(CONFIG_SH_IS_HUSH) += test.o test_ptr_hack.o
-//kbuild:lib-$(CONFIG_BASH_IS_HUSH) += test.o test_ptr_hack.o
+
+//kbuild:lib-$(CONFIG_ASH_TEST)  += test.o test_ptr_hack.o
+//kbuild:lib-$(CONFIG_HUSH_TEST) += test.o test_ptr_hack.o
 
 /* "test --help" is special-cased to ignore --help */
 //usage:#define test_trivial_usage NOUSAGE_STR
@@ -843,7 +842,7 @@ int test_main(int argc, char **argv)
        const char *arg0;
 
        arg0 = bb_basename(argv[0]);
-       if ((ENABLE_TEST1 || ENABLE_TEST2 || ENABLE_ASH_BUILTIN_TEST || ENABLE_HUSH)
+       if ((ENABLE_TEST1 || ENABLE_TEST2 || ENABLE_ASH_TEST || ENABLE_HUSH_TEST)
         && (arg0[0] == '[')
        ) {
                --argc;
index 20ed9652c28ea8a562fa8ae8527796dc65ebc739..7c1204a473f56a53f5ecb9ffb169de7de7367143 100644 (file)
 //config:        are checked for mtime changes, and "you have mail"
 //config:        message is printed if change is detected.
 //config:
-//config:config ASH_BUILTIN_ECHO
+//config:config ASH_ECHO
 //config:      bool "echo builtin"
 //config:      default y
 //config:      depends on ASH || SH_IS_ASH || BASH_IS_ASH
 //config:
-//config:config ASH_BUILTIN_PRINTF
+//config:config ASH_PRINTF
 //config:      bool "printf builtin"
 //config:      default y
 //config:      depends on ASH || SH_IS_ASH || BASH_IS_ASH
 //config:
-//config:config ASH_BUILTIN_TEST
+//config:config ASH_TEST
 //config:      bool "test builtin"
 //config:      default y
 //config:      depends on ASH || SH_IS_ASH || BASH_IS_ASH
@@ -9292,13 +9292,13 @@ static int ulimitcmd(int, char **) FAST_FUNC;
 #define BUILTIN_SPEC_REG_ASSG   "7"
 
 /* Stubs for calling non-FAST_FUNC's */
-#if ENABLE_ASH_BUILTIN_ECHO
+#if ENABLE_ASH_ECHO
 static int FAST_FUNC echocmd(int argc, char **argv)   { return echo_main(argc, argv); }
 #endif
-#if ENABLE_ASH_BUILTIN_PRINTF
+#if ENABLE_ASH_PRINTF
 static int FAST_FUNC printfcmd(int argc, char **argv) { return printf_main(argc, argv); }
 #endif
-#if ENABLE_ASH_BUILTIN_TEST
+#if ENABLE_ASH_TEST
 static int FAST_FUNC testcmd(int argc, char **argv)   { return test_main(argc, argv); }
 #endif
 
@@ -9306,7 +9306,7 @@ static int FAST_FUNC testcmd(int argc, char **argv)   { return test_main(argc, a
 static const struct builtincmd builtintab[] = {
        { BUILTIN_SPEC_REG      "."       , dotcmd     },
        { BUILTIN_SPEC_REG      ":"       , truecmd    },
-#if ENABLE_ASH_BUILTIN_TEST
+#if ENABLE_ASH_TEST
        { BUILTIN_REGULAR       "["       , testcmd    },
 # if ENABLE_ASH_BASH_COMPAT
        { BUILTIN_REGULAR       "[["      , testcmd    },
@@ -9325,7 +9325,7 @@ static const struct builtincmd builtintab[] = {
        { BUILTIN_REGULAR       "command" , commandcmd },
 #endif
        { BUILTIN_SPEC_REG      "continue", breakcmd   },
-#if ENABLE_ASH_BUILTIN_ECHO
+#if ENABLE_ASH_ECHO
        { BUILTIN_REGULAR       "echo"    , echocmd    },
 #endif
        { BUILTIN_SPEC_REG      "eval"    , NULL       }, /*evalcmd() has a differing prototype*/
@@ -9354,7 +9354,7 @@ static const struct builtincmd builtintab[] = {
        { BUILTIN_NOSPEC        "let"     , letcmd     },
 #endif
        { BUILTIN_ASSIGN        "local"   , localcmd   },
-#if ENABLE_ASH_BUILTIN_PRINTF
+#if ENABLE_ASH_PRINTF
        { BUILTIN_REGULAR       "printf"  , printfcmd  },
 #endif
        { BUILTIN_NOSPEC        "pwd"     , pwdcmd     },
@@ -9366,7 +9366,7 @@ static const struct builtincmd builtintab[] = {
 #if ENABLE_ASH_BASH_COMPAT
        { BUILTIN_SPEC_REG      "source"  , dotcmd     },
 #endif
-#if ENABLE_ASH_BUILTIN_TEST
+#if ENABLE_ASH_TEST
        { BUILTIN_REGULAR       "test"    , testcmd    },
 #endif
        { BUILTIN_SPEC_REG      "times"   , timescmd   },
@@ -9385,15 +9385,15 @@ static const struct builtincmd builtintab[] = {
 /* Should match the above table! */
 #define COMMANDCMD (builtintab + \
        /* . : */       2 + \
-       /* [ */         1 * ENABLE_ASH_BUILTIN_TEST + \
-       /* [[ */        1 * ENABLE_ASH_BUILTIN_TEST * ENABLE_ASH_BASH_COMPAT + \
+       /* [ */         1 * ENABLE_ASH_TEST + \
+       /* [[ */        1 * ENABLE_ASH_TEST * ENABLE_ASH_BASH_COMPAT + \
        /* alias */     1 * ENABLE_ASH_ALIAS + \
        /* bg */        1 * ENABLE_ASH_JOB_CONTROL + \
        /* break cd cddir  */   3)
 #define EVALCMD (COMMANDCMD + \
        /* command */   1 * ENABLE_ASH_CMDCMD + \
        /* continue */  1 + \
-       /* echo */      1 * ENABLE_ASH_BUILTIN_ECHO + \
+       /* echo */      1 * ENABLE_ASH_ECHO + \
        0)
 #define EXECCMD (EVALCMD + \
        /* eval */      1)
index 9e508fc6ddd12ebb1126c9fbe9d99e04b9f0b173..c0325cf5e416901c684ea9d3547b57d3846e938d 100644 (file)
 //config:      default y
 //config:      depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
 //config:
+//config:config HUSH_TEST
+//config:      bool "test builtin"
+//config:      default y
+//config:      depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
+//config:
 //config:config HUSH_HELP
 //config:      bool "help builtin"
 //config:      default y
@@ -942,7 +947,9 @@ static int builtin_set(char **argv) FAST_FUNC;
 #endif
 static int builtin_shift(char **argv) FAST_FUNC;
 static int builtin_source(char **argv) FAST_FUNC;
+#if ENABLE_HUSH_TEST
 static int builtin_test(char **argv) FAST_FUNC;
+#endif
 #if ENABLE_HUSH_TRAP
 static int builtin_trap(char **argv) FAST_FUNC;
 #endif
@@ -1061,7 +1068,9 @@ static const struct built_in_command bltins1[] = {
 #endif
 };
 static const struct built_in_command bltins2[] = {
+#if ENABLE_HUSH_TEST
        BLTIN("["        , builtin_test    , NULL),
+#endif
 #if ENABLE_HUSH_ECHO
        BLTIN("echo"     , builtin_echo    , NULL),
 #endif
@@ -1069,7 +1078,9 @@ static const struct built_in_command bltins2[] = {
        BLTIN("printf"   , builtin_printf  , NULL),
 #endif
        BLTIN("pwd"      , builtin_pwd     , NULL),
+#if ENABLE_HUSH_TEST
        BLTIN("test"     , builtin_test    , NULL),
+#endif
 };
 
 
@@ -8791,6 +8802,7 @@ static int FAST_FUNC builtin_true(char **argv UNUSED_PARAM)
        return 0;
 }
 
+#if ENABLE_HUSH_TEST || ENABLE_HUSH_ECHO || ENABLE_HUSH_PRINTF || ENABLE_HUSH_KILL
 static int run_applet_main(char **argv, int (*applet_main_func)(int argc, char **argv))
 {
        int argc = 0;
@@ -8800,11 +8812,13 @@ static int run_applet_main(char **argv, int (*applet_main_func)(int argc, char *
        }
        return applet_main_func(argc, argv - argc);
 }
-
+#endif
+#if ENABLE_HUSH_TEST
 static int FAST_FUNC builtin_test(char **argv)
 {
        return run_applet_main(argv, test_main);
 }
+#endif
 #if ENABLE_HUSH_ECHO
 static int FAST_FUNC builtin_echo(char **argv)
 {
index 59873011a0f925540bbc8cd6794eb5680bc0bd48..8515aff319d5e390bf3431db5acdee7089d8cfad 100755 (executable)
@@ -168,7 +168,7 @@ SKIP=
 # continuing to use directory structure from prev test
 rm -rf mdev.testdir/dev/*
 echo "sda 0:0 644 @echo @echo TEST" >mdev.testdir/etc/mdev.conf
-optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_EXEC FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME FEATURE_SH_IS_ASH ASH_BUILTIN_ECHO
+optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_EXEC FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME FEATURE_SH_IS_ASH ASH_ECHO
 testing "mdev command" \
        "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
        ls -lnR mdev.testdir/dev | $FILTER_LS" \