diff --git a/0001-Port-alternate-signal-stack-to-upcoming-glibc-2.34.patch b/0001-Port-alternate-signal-stack-to-upcoming-glibc-2.34.patch new file mode 100644 index 0000000..a820f81 --- /dev/null +++ b/0001-Port-alternate-signal-stack-to-upcoming-glibc-2.34.patch @@ -0,0 +1,40 @@ +From f97e07ea807cc6d38774a3888a15091b20645ac6 Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Tue, 9 Mar 2021 11:22:59 -0800 +Subject: [PATCH] Port alternate signal stack to upcoming glibc 2.34 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* src/sysdep.c (sigsegv_stack): Increase size to 64 KiB and align +it to max_align_t. This copies from Gnulib’s c-stack.c, and works +around a portability bug in draft glibc 2.34, which no longer +defines SIGSTKSZ when _GNU_SOURCE is defined. +--- + src/sysdep.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/sysdep.c b/src/sysdep.c +index 941b4e2fa2..24d8832b2f 100644 +--- a/src/sysdep.c ++++ b/src/sysdep.c +@@ -1785,7 +1785,15 @@ handle_arith_signal (int sig) + + /* Alternate stack used by SIGSEGV handler below. */ + +-static unsigned char sigsegv_stack[SIGSTKSZ]; ++/* Storage for the alternate signal stack. ++ 64 KiB is not too large for Emacs, and is large enough ++ for all known platforms. Smaller sizes may run into trouble. ++ For example, libsigsegv 2.6 through 2.8 have a bug where some ++ architectures use more than the Linux default of an 8 KiB alternate ++ stack when deciding if a fault was caused by stack overflow. */ ++static max_align_t sigsegv_stack[(64 * 1024 ++ + sizeof (max_align_t) - 1) ++ / sizeof (max_align_t)]; + + + /* Return true if SIGINFO indicates a stack overflow. */ +-- +2.33.0 + diff --git a/emacs.spec b/emacs.spec index 1b39062..8581c64 100644 --- a/emacs.spec +++ b/emacs.spec @@ -29,6 +29,8 @@ Patch4: emacs-libdir-vs-systemd.patch Patch5: https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-04/txt0tY7uKvJKS.txt#./emacs-modula2.patch # cherry picked from 216c65b135c2b0be7e048cdc6683873b03b99b9a Patch6: Use-a-64KB-page-size-for-pdump.patch +# cherry picked from f97e07ea807cc6d38774a3888a15091b20645ac +Patch7: 0001-Port-alternate-signal-stack-to-upcoming-glibc-2.34.patch BuildRequires: gcc BuildRequires: atk-devel @@ -198,6 +200,7 @@ Development header files for Emacs. %patch4 -p1 -b .libdir-vs-systemd %patch5 -p1 %patch6 -p1 +%patch7 -p1 autoconf grep -v "tetris.elc" lisp/Makefile.in > lisp/Makefile.in.new \