On Fri, Apr 01, 2022 at 01:26:53AM +0200, Francis Laniel wrote: > Hi. > > First I hope you are fine and the same for your relatives. > I would also like to apologize for the delay between v2 and v3. > > During 2021 summer, Sean Anderson wrote a contribution to add a new shell, > based > on LIL, to U-Boot [1][2]. > While one of the goals of this contribution was to address the fact actual > U-Boot shell, which is based on Busybox hush, is old there was a discussion > about adding a new shell versus updating the actual one [3][4]. > > So, in this series, with Harald Seiler, we updated the actual U-Boot shell to > reflect what is currently in Busybox source code. > Basically, this contribution is about taking a snapshot of Busybox > shell/hush.c > file (as it exists in commit 37460f5da) and adapt it to suit U-Boot needs.
In order to put this through CI and my local testing loop as well, I need: commit 0eae144ef84e7190b3c2da5fbd745468f7d1f7e6 Author: Tom Rini <tr...@konsulko.com> Date: Wed Apr 20 15:28:10 2022 -0400 HACK: Make new HUSH default Signed-off-by: Tom Rini <tr...@konsulko.com> diff --git a/cmd/Kconfig b/cmd/Kconfig index 3454229d9c92..d0fb264e7df1 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -23,12 +23,13 @@ config HUSH_PARSER If disabled, you get the old, much simpler behaviour with a somewhat smaller memory footprint. -menu "Hush flavor to use" +choice + prompt "Hush flavor to use" depends on HUSH_PARSER + default HUSH_2021_PARSER config HUSH_OLD_PARSER bool "Use hush old parser" - default y help This option enables the old flavor of hush based on hush Busybox from 2005. @@ -42,7 +43,7 @@ menu "Hush flavor to use" 2021. For the moment, it is highly experimental and should be used at own risks. -endmenu +endchoice config CMDLINE_EDITING bool "Enable command line editing" diff --git a/common/cli_hush_2021.c b/common/cli_hush_2021.c index 68b2fa4b3fe6..0b1ef6dc642f 100644 --- a/common/cli_hush_2021.c +++ b/common/cli_hush_2021.c @@ -40,12 +40,6 @@ #define USE_FOR_NOMMU(...) __VA_ARGS__ #define USE_FOR_MMU(...) -/* TODO: Drop this before upstreaming */ -#ifdef CONFIG_SYS_PROMPT -#undef CONFIG_SYS_PROMPT -#define CONFIG_SYS_PROMPT "2021> " -#endif /* CONFIG_SYS_PROMPT */ - /* * Size-saving "small" ints (arch-dependent) */ diff --git a/common/cli_hush_upstream.c b/common/cli_hush_upstream.c index e46875847018..2a659dcd4eae 100644 --- a/common/cli_hush_upstream.c +++ b/common/cli_hush_upstream.c @@ -1448,6 +1448,7 @@ static void xxfree(void *ptr) * HUSH_DEBUG >= 2 prints line number in this file where it was detected. */ #if HUSH_DEBUG < 2 +#include <linux/compiler.h> # define msg_and_die_if_script(lineno, ...) msg_and_die_if_script(__VA_ARGS__) # define syntax_error(lineno, msg) syntax_error(msg) # define syntax_error_at(lineno, msg) syntax_error_at(msg) @@ -1465,7 +1466,7 @@ static void die_if_script(void) } } -static void msg_and_die_if_script(unsigned lineno, const char *fmt, ...) +static void __maybe_unused msg_and_die_if_script(unsigned lineno, const char *fmt, ...) { va_list p; @@ -1539,7 +1540,7 @@ static void syntax_error_unexpected_ch(unsigned lineno UNUSED_PARAM, int ch) /* Replace each \x with x in place, return ptr past NUL. */ static char *unbackslash(char *src) { - char *dst = src = strchrnul(src, '\\'); + char *dst = src = (char *)strchrnul(src, '\\'); while (1) { if (*src == '\\') { src++; With everything but the Kconfig part being the same as RFCv2. For the next RFC please: - Include a patch near the end making this new HUSH the default - Include a link to CI running and passing (see https://u-boot.readthedocs.io/en/latest/develop/ci_testing.html for how to get the CI to run for everything) - Include a patch near the end that moves from the updated hush you started with to the current hush, as a way of showing how easy (or hardd!) keeping this in sync moving forward will be. Thanks! -- Tom
signature.asc
Description: PGP signature