c-stack: work around libsigsegv 2.8 bug
authorEric Blake <eblake@redhat.com>
Thu, 21 Oct 2010 16:29:13 +0000 (10:29 -0600)
committerEric Blake <eblake@redhat.com>
Thu, 21 Oct 2010 16:49:47 +0000 (10:49 -0600)
* lib/c-stack.c (SIGSTKSZ): Increase size to avoid alternate stack
overflow on at least PowerPC64.

Signed-off-by: Eric Blake <eblake@redhat.com>
ChangeLog
lib/c-stack.c

index 30d89ea..a265b14 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-10-21  Eric Blake  <eblake@redhat.com>
+
+       c-stack: work around libsigsegv 2.8 bug
+       * lib/c-stack.c (SIGSTKSZ): Increase size to avoid alternate stack
+       overflow on at least PowerPC64.
+
 2010-10-17  Bruno Haible  <bruno@clisp.org>
 
        userspec: Drop redundant file.
index 4657548..0cf6b05 100644 (file)
@@ -53,6 +53,12 @@ typedef struct sigaltstack stack_t;
 #endif
 #ifndef SIGSTKSZ
 # define SIGSTKSZ 16384
+#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
+/* 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
 #endif
 
 #include <stdlib.h>