From: Hongxu Jia Date: Mon, 21 Jul 2025 08:21:01 +0000 (+0800) Subject: bash: upgrade 5.2.37 -> 5.3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=208e98f471b2329d07c216d135d238a1f74f0a2e;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git bash: upgrade 5.2.37 -> 5.3 Refresh patch to 5.3 - mkbuiltins_have_stringize.patch Drop backport patch - 0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch - fix-filesubst-errexit.patch Signed-off-by: Hongxu Jia Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch b/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch deleted file mode 100644 index 4e73edb9b3d..00000000000 --- a/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch +++ /dev/null @@ -1,223 +0,0 @@ -From e4b9493ae4923595ec3ca67f85322129fb3056cf Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Mon, 30 Oct 2023 12:16:07 -0400 -Subject: [PATCH] changes to SIGINT handler while waiting for a child; skip - vertical whitespace after translating an integer - -Upstream-Status: Backport from -[https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=fe24a6a55e8850298b496c5b9d82f1866eba190e] - -[Adjust and drop some codes to be applicable the tree] - -Signed-off-by: Xiangyu Chen ---- - general.c | 5 +++-- - jobs.c | 24 ++++++++++++++++-------- - tests/redir.right | 4 ++-- - tests/redir11.sub | 2 ++ - tests/type.right | 16 ++++++++-------- - tests/type.tests | 24 ++++++++++++------------ - 6 files changed, 43 insertions(+), 32 deletions(-) - -diff --git a/general.c b/general.c -index bda39f4..94a5339 100644 ---- a/general.c -+++ b/general.c -@@ -264,8 +264,9 @@ legal_number (string, result) - if (errno || ep == string) - return 0; /* errno is set on overflow or underflow */ - -- /* Skip any trailing whitespace, since strtoimax does not. */ -- while (whitespace (*ep)) -+ /* Skip any trailing whitespace, since strtoimax does not, using the same -+ test that strtoimax uses for leading whitespace. */ -+ while (isspace ((unsigned char) *ep)) - ep++; - - /* If *string is not '\0' but *ep is '\0' on return, the entire string -diff --git a/jobs.c b/jobs.c -index d3e4ab0..903cf9c 100644 ---- a/jobs.c -+++ b/jobs.c -@@ -2718,6 +2718,10 @@ wait_for_background_pids (ps) - #define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids - static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER; - -+/* The current SIGINT handler as set by restore_sigint_handler. Only valid -+ immediately after restore_sigint_handler, used for continuations. */ -+static SigHandler *cur_sigint_handler = INVALID_SIGNAL_HANDLER; -+ - static int wait_sigint_received; - static int child_caught_sigint; - -@@ -2735,6 +2739,7 @@ wait_sigint_cleanup () - static void - restore_sigint_handler () - { -+ cur_sigint_handler = old_sigint_handler; - if (old_sigint_handler != INVALID_SIGNAL_HANDLER) - { - set_signal_handler (SIGINT, old_sigint_handler); -@@ -2758,8 +2763,7 @@ wait_sigint_handler (sig) - restore_sigint_handler (); - /* If we got a SIGINT while in `wait', and SIGINT is trapped, do - what POSIX.2 says (see builtins/wait.def for more info). */ -- if (this_shell_builtin && this_shell_builtin == wait_builtin && -- signal_is_trapped (SIGINT) && -+ if (signal_is_trapped (SIGINT) && - ((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler)) - { - trap_handler (SIGINT); /* set pending_traps[SIGINT] */ -@@ -2782,6 +2786,8 @@ wait_sigint_handler (sig) - { - set_exit_status (128+SIGINT); - restore_sigint_handler (); -+ if (cur_sigint_handler == INVALID_SIGNAL_HANDLER) -+ set_sigint_handler (); /* XXX - only do this in one place */ - kill (getpid (), SIGINT); - } - -@@ -2926,11 +2932,13 @@ wait_for (pid, flags) - { - SigHandler *temp_sigint_handler; - -- temp_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); -- if (temp_sigint_handler == wait_sigint_handler) -- internal_debug ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap); -- else -- old_sigint_handler = temp_sigint_handler; -+ temp_sigint_handler = old_sigint_handler; -+ old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); -+ if (old_sigint_handler == wait_sigint_handler) -+ { -+ internal_debug ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap); -+ old_sigint_handler = temp_sigint_handler; -+ } - waiting_for_child = 0; - if (old_sigint_handler == SIG_IGN) - set_signal_handler (SIGINT, old_sigint_handler); -@@ -4141,7 +4149,7 @@ set_job_status_and_cleanup (job) - SIGINT (if we reset the sighandler to the default). - In this case, we have to fix things up. What a crock. */ - if (temp_handler == trap_handler && signal_is_trapped (SIGINT) == 0) -- temp_handler = trap_to_sighandler (SIGINT); -+ temp_handler = trap_to_sighandler (SIGINT); - restore_sigint_handler (); - if (temp_handler == SIG_DFL) - termsig_handler (SIGINT); /* XXX */ -diff --git a/tests/redir.right b/tests/redir.right -index 8db1041..9e1403c 100644 ---- a/tests/redir.right -+++ b/tests/redir.right -@@ -154,10 +154,10 @@ foo - 1 - 7 - after: 42 --./redir11.sub: line 53: $(ss= declare -i ss): ambiguous redirect -+./redir11.sub: line 55: $(ss= declare -i ss): ambiguous redirect - after: 42 - a+=3 - foo - foo --./redir11.sub: line 75: 42: No such file or directory -+./redir11.sub: line 77: 42: No such file or directory - 42 -diff --git a/tests/redir11.sub b/tests/redir11.sub -index d417cdb..ca9854c 100644 ---- a/tests/redir11.sub -+++ b/tests/redir11.sub -@@ -34,6 +34,8 @@ a=4 b=7 ss=4 declare -i ss - a=4 b=7 foo - echo after: $a - -+exec 7>&- 4>&- -+ - unset a - a=4 echo foo 2>&1 >&$(foo) | { grep -q 'Bad file' || echo 'redir11 bad 3'; } - a=1 echo foo 2>&1 >&$(foo) | { grep -q 'Bad file' || echo 'redir11 bad 4'; } -diff --git a/tests/type.right b/tests/type.right -index bbc228e..c0c1c8b 100644 ---- a/tests/type.right -+++ b/tests/type.right -@@ -24,15 +24,15 @@ func () - } - while - while is a shell keyword --./type.tests: line 56: type: m: not found --alias m='more' --alias m='more' --m is aliased to `more' -+./type.tests: line 56: type: morealias: not found -+alias morealias='more' -+alias morealias='more' -+morealias is aliased to `more' - alias --alias m='more' --alias m='more' --alias m='more' --m is aliased to `more' -+alias morealias='more' -+alias morealias='more' -+alias morealias='more' -+morealias is aliased to `more' - builtin - builtin is a shell builtin - /bin/sh -diff --git a/tests/type.tests b/tests/type.tests -index fd39c18..ddc1540 100644 ---- a/tests/type.tests -+++ b/tests/type.tests -@@ -25,8 +25,6 @@ type -r ${THIS_SH} - type notthere - command -v notthere - --alias m=more -- - unset -f func 2>/dev/null - func() { echo this is func; } - -@@ -49,24 +47,26 @@ command -V func - command -v while - command -V while - -+alias morealias=more -+ - # the following two lines should produce the same output - # post-3.0 patch makes command -v silent, as posix specifies - # first test with alias expansion off (should all fail or produce no output) --type -t m --type m --command -v m -+type -t morealias -+type morealias -+command -v morealias - alias -p --alias m -+alias morealias - - # then test with alias expansion on - shopt -s expand_aliases --type m --type -t m --command -v m -+type morealias -+type -t morealias -+command -v morealias - alias -p --alias m -+alias morealias - --command -V m -+command -V morealias - shopt -u expand_aliases - - command -v builtin -@@ -76,7 +76,7 @@ command -V /bin/sh - - unset -f func - type func --unalias m -+unalias morealias - type m - - hash -r diff --git a/meta/recipes-extended/bash/bash/fix-filesubst-errexit.patch b/meta/recipes-extended/bash/bash/fix-filesubst-errexit.patch deleted file mode 100644 index c5082ee3558..00000000000 --- a/meta/recipes-extended/bash/bash/fix-filesubst-errexit.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 16951b74971c7fd38fd036dac1410a9e53cbe736 Mon Sep 17 00:00:00 2001 -From: Chet Ramey -Date: Fri, 7 Apr 2023 00:28:46 -0700 -Subject: [PATCH] $( ---- - builtins/evalstring.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/builtins/evalstring.c b/builtins/evalstring.c -index 53a7c0b..c5075cc 100644 ---- a/builtins/evalstring.c -+++ b/builtins/evalstring.c -@@ -753,7 +753,7 @@ open_redir_file (r, fnp) - fd = open(fn, O_RDONLY); - if (fd < 0) - { -- file_error (fn); -+ internal_error ("%s: %s", fn, strerror (errno)); - free (fn); - if (fnp) - *fnp = 0; diff --git a/meta/recipes-extended/bash/bash/mkbuiltins_have_stringize.patch b/meta/recipes-extended/bash/bash/mkbuiltins_have_stringize.patch index eb29e7d836d..4ee754e32b9 100644 --- a/meta/recipes-extended/bash/bash/mkbuiltins_have_stringize.patch +++ b/meta/recipes-extended/bash/bash/mkbuiltins_have_stringize.patch @@ -1,6 +1,6 @@ -From d11685286144c2e5630545e435d11387b2908fd0 Mon Sep 17 00:00:00 2001 +From ed7515a5c07addaa3338a24efb36b74fbd1844dc Mon Sep 17 00:00:00 2001 From: Christopher Larson -Date: Wed, 14 Nov 2012 07:55:09 -0700 +Date: Mon, 21 Jul 2025 13:52:00 +0800 Subject: [PATCH] bash: fix mkbuiltins build failure On hosts with FORTIFY_SOURCES, stringize support is required, as it's used by @@ -18,19 +18,27 @@ stringize support, or to not define STRING() at all when FORTIFY_SOURCES is defined, letting the unistd.h one be used, instead. Upstream-Status: Pending + +Signed-off-by: Christopher Larson + +Rebase to 5.3 +Signed-off-by: Hongxu Jia --- builtins/mkbuiltins.c | 1 + 1 file changed, 1 insertion(+) diff --git a/builtins/mkbuiltins.c b/builtins/mkbuiltins.c -index f505ebd..b5b2eed 100644 +index c4cacdf..05d1db1 100644 --- a/builtins/mkbuiltins.c +++ b/builtins/mkbuiltins.c -@@ -28,6 +28,7 @@ - # define HAVE_STDLIB_H - - # define HAVE_RENAME -+# define HAVE_STRINGIZE +@@ -24,6 +24,7 @@ + #else /* CROSS_COMPILING */ + /* A conservative set of defines based on POSIX/SUS3/XPG6 */ + # include ++# define HAVE_STRINGIZE #endif /* CROSS_COMPILING */ #if defined (HAVE_UNISTD_H) +-- +2.34.1 + diff --git a/meta/recipes-extended/bash/bash_5.2.37.bb b/meta/recipes-extended/bash/bash_5.3.bb similarity index 80% rename from meta/recipes-extended/bash/bash_5.2.37.bb rename to meta/recipes-extended/bash/bash_5.3.bb index 2c0645cbd9a..c241ea6d3b7 100644 --- a/meta/recipes-extended/bash/bash_5.2.37.bb +++ b/meta/recipes-extended/bash/bash_5.3.bb @@ -11,11 +11,9 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \ file://run-ptest \ file://run-bash-ptests \ file://fix-run-builtins.patch \ - file://0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch \ - file://fix-filesubst-errexit.patch \ " -SRC_URI[tarball.sha256sum] = "9599b22ecd1d5787ad7d3b7bf0c59f312b3396d1e281175dd1f8a4014da621ff" +SRC_URI[tarball.sha256sum] = "62dd49c44c399ed1b3f7f731e87a782334d834f08e098a35f2c87547d5dbb269" DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"