[RFC PATCH v3 00/23] Modernize U-Boot shell
Tom Rini
trini at konsulko.com
Thu Apr 21 14:20:28 CEST 2022
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 <trini at konsulko.com>
Date: Wed Apr 20 15:28:10 2022 -0400
HACK: Make new HUSH default
Signed-off-by: Tom Rini <trini at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20220421/ece75c2f/attachment.sig>
More information about the U-Boot
mailing list