Port alternate signal stack to upcoming glibc 2.34
* 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.
This commit is contained in:
parent
c6ed17cc70
commit
f97e07ea80
1 changed files with 9 additions and 1 deletions
10
src/sysdep.c
10
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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue