diff options
Diffstat (limited to 'meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch')
-rw-r--r-- | meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch b/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch deleted file mode 100644 index 883b8a2075..0000000000 --- a/meta/recipes-devtools/m4/m4/0001-c-stack-stop-using-SIGSTKSZ.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 69238f15129f35eb4756ad8e2004e0d7907cb175 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 30 Apr 2021 17:40:36 -0700 -Subject: [PATCH] c-stack: stop using SIGSTKSZ - -This patch is required with glibc 2.34+ -based on gnulib [1] - -[1] https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=f9e2b20a12a230efa30f1d479563ae07d276a94b - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - lib/c-stack.c | 22 +++++++++++++--------- - 1 file changed, 13 insertions(+), 9 deletions(-) - -diff --git a/lib/c-stack.c b/lib/c-stack.c -index 5353c08..863f764 100644 ---- a/lib/c-stack.c -+++ b/lib/c-stack.c -@@ -51,13 +51,14 @@ - typedef struct sigaltstack stack_t; - #endif - #ifndef SIGSTKSZ --# define SIGSTKSZ 16384 --#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384 -+#define get_sigstksz() (16384) -+#elif HAVE_LIBSIGSEGV - /* libsigsegv 2.6 through 2.8 have a bug where some architectures use - more than the Linux default of an 8k alternate stack when deciding - if a fault was caused by stack overflow. */ --# undef SIGSTKSZ --# define SIGSTKSZ 16384 -+#define get_sigstksz() ((SIGSTKSZ) < 16384 ? 16384 : (SIGSTKSZ)) -+#else -+#define get_sigstksz() ((SIGSTKSZ)) - #endif - - #include <stdlib.h> -@@ -131,7 +132,8 @@ die (int signo) - /* Storage for the alternate signal stack. */ - static union - { -- char buffer[SIGSTKSZ]; -+ /* allocate buffer with size from get_sigstksz() */ -+ char *buffer; - - /* These other members are for proper alignment. There's no - standard way to guarantee stack alignment, but this seems enough -@@ -203,10 +205,11 @@ c_stack_action (void (*action) (int)) - program_error_message = _("program error"); - stack_overflow_message = _("stack overflow"); - -+ alternate_signal_stack.buffer = malloc(get_sigstksz()); - /* Always install the overflow handler. */ - if (stackoverflow_install_handler (overflow_handler, - alternate_signal_stack.buffer, -- sizeof alternate_signal_stack.buffer)) -+ get_sigstksz())) - { - errno = ENOTSUP; - return -1; -@@ -279,14 +282,15 @@ c_stack_action (void (*action) (int)) - stack_t st; - struct sigaction act; - st.ss_flags = 0; -+ alternate_signal_stack.buffer = malloc(get_sigstksz()); - # if SIGALTSTACK_SS_REVERSED - /* Irix mistakenly treats ss_sp as the upper bound, rather than - lower bound, of the alternate stack. */ -- st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ - sizeof (void *); -- st.ss_size = sizeof alternate_signal_stack.buffer - sizeof (void *); -+ st.ss_sp = alternate_signal_stack.buffer + get_sigstksz() - sizeof (void *); -+ st.ss_size = get_sigstksz() - sizeof (void *); - # else - st.ss_sp = alternate_signal_stack.buffer; -- st.ss_size = sizeof alternate_signal_stack.buffer; -+ st.ss_size = get_sigstksz(); - # endif - r = sigaltstack (&st, NULL); - if (r != 0) --- -2.31.1 - |