c-stack: work around libsigsegv 2.8 bug
authorIan Beckwith <ianb@erislabs.net>
Sat, 23 Oct 2010 22:09:58 +0000 (23:09 +0100)
committerIan Beckwith <ianb@erislabs.net>
Sat, 23 Oct 2010 22:09:58 +0000 (23:09 +0100)
* lib/c-stack.c (SIGSTKSZ): Increase size to avoid alternate stack
overflow on at least PowerPC64.

Signed-off-by: Eric Blake <eblake@redhat.com>
(cherry picked from commit b86f488e783121f54dbd44e17741fa3b29e9be9b)

ChangeLog
NEWS.stable
lib/c-stack.c

index fdb1dde..5cec4fb 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-16  Bruno Haible  <bruno@clisp.org>
 
        nextafter: Fix configure check.
index 99571ad..34d39d4 100644 (file)
@@ -18,6 +18,7 @@ with the following additional commits:
     * [61241ea]->[25d72f8] termios: Update documentation.
     * [94617c2]->[a964f9e] Fix date in ChangeLog.
     * [3f75f63]->[7966020] nextafter: Fix configure check.
+    * [b86f488]->[] c-stack: work around libsigsegv 2.8 bug
 __NEXTCOMMITMARKER__
 
 ----------------------------------------------------------------------
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>