From 4e67035e5e610907786ef4aa7af704599bd5aec9 Mon Sep 17 00:00:00 2001 From: vxtls <187420201+vxtls@users.noreply.github.com> Date: Tue, 3 Mar 2026 12:56:14 -0500 Subject: [PATCH] fix(bash-4.4.23-1): make SIGRETURN robust on linux when VOID_SIGHANDLER probe mismatches --- .../patches/fix-sigreturn-on-linux.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 steps-guix/bash-4.4.23-1/patches/fix-sigreturn-on-linux.patch diff --git a/steps-guix/bash-4.4.23-1/patches/fix-sigreturn-on-linux.patch b/steps-guix/bash-4.4.23-1/patches/fix-sigreturn-on-linux.patch new file mode 100644 index 00000000..9276b854 --- /dev/null +++ b/steps-guix/bash-4.4.23-1/patches/fix-sigreturn-on-linux.patch @@ -0,0 +1,19 @@ +SPDX-License-Identifier: GPL-3.0-or-later + +Fix SIGRETURN for Linux builds when VOID_SIGHANDLER probe is inaccurate. + +On modern Linux toolchains, signal handlers return void. If VOID_SIGHANDLER +is not defined during configure probing, SIGRETURN expands to return(n), +which fails in void handlers (e.g. eval.c: alrm_catcher). + +--- bash-4.4/sig.h ++++ bash-4.4/sig.h +@@ -34,7 +34,7 @@ + #define sighandler RETSIGTYPE + typedef RETSIGTYPE SigHandler __P((int)); + +-#if defined (VOID_SIGHANDLER) ++#if defined (VOID_SIGHANDLER) || defined (__linux__) + # define SIGRETURN(n) return + #else + # define SIGRETURN(n) return(n)