2020-10-03 Paul Eggert <eggert@cs.ucla.edu>
+ c-stack: streamline Solaris configuration
+ * lib/c-stack.c: Omit mention of HAVE_SIGALTSTACK, since
+ the code is used only if a test for sigaltstack worked
+ in some other way.
+ * m4/c-stack.m4 (gl_PREREQ_C_STACK): Do not require gl_LIBSIGSEGV;
+ instead, execute gl_LIBSIGSEGV only if needed (because the XSI
+ heuristic does not work).
+ * modules/c-stack (Files): Add m4/libsigsegv.m4, since
+ we no longer require the libsigsegv module.
+ (Depends-on): Depend on havelib, not libsigsegv.
+
c-stack: stop using SIGSTKSZ
It’s been proposed to stop making SIGSTKSZ an integer constant:
https://sourceware.org/pipermail/libc-alpha/2020-September/118028.html
static char const * volatile stack_overflow_message;
#if (USE_LIBSIGSEGV \
- || (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK \
- && HAVE_STACK_OVERFLOW_HANDLING))
+ || (HAVE_DECL_SIGALTSTACK && HAVE_STACK_OVERFLOW_HANDLING))
/* Output an error message, then exit with status EXIT_FAILURE if it
appears to have been a stack overflow, or with a core dump
return 0;
}
-#elif HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK && HAVE_STACK_OVERFLOW_HANDLING
+#elif HAVE_DECL_SIGALTSTACK && HAVE_STACK_OVERFLOW_HANDLING
# if SIGINFO_WORKS
}
#else /* ! (USE_LIBSIGSEGV
- || (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK
- && HAVE_STACK_OVERFLOW_HANDLING)) */
+ || (HAVE_DECL_SIGALTSTACK && HAVE_STACK_OVERFLOW_HANDLING)) */
int
c_stack_action (_GL_ASYNC_SAFE void (*action) (int) _GL_UNUSED)
# Written by Paul Eggert.
-# serial 18
+# serial 19
AC_DEFUN([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC],
[
AC_DEFUN([gl_PREREQ_C_STACK],
[AC_REQUIRE([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC])
- AC_REQUIRE([gl_LIBSIGSEGV])
AC_CHECK_FUNCS_ONCE([sigaltstack])
AC_CHECK_DECLS([sigaltstack], , , [[#include <signal.h>]])
AC_CHECK_HEADERS_ONCE([ucontext.h])
- AC_CHECK_TYPES([stack_t], , , [#include <signal.h>])
+ AC_CHECK_TYPES([stack_t], , , [[#include <signal.h>]])
dnl c-stack does not need -lsigsegv if the system has XSI heuristics.
- if test "$gl_cv_lib_sigsegv" = yes \
- && test "$gl_cv_sys_xsi_stack_overflow_heuristic" != yes; then
- AC_SUBST([LIBCSTACK], [$LIBSIGSEGV])
- AC_SUBST([LTLIBCSTACK], [$LTLIBSIGSEGV])
- fi
+ AS_IF([test "$gl_cv_sys_xsi_stack_overflow_heuristic" != yes],
+ [gl_LIBSIGSEGV
+ AS_IF([test "$gl_cv_lib_sigsegv" = yes],
+ [AC_SUBST([LIBCSTACK], [$LIBSIGSEGV])
+ AC_SUBST([LTLIBCSTACK], [$LTLIBSIGSEGV])])])
])
AC_DEFUN([gl_C_STACK],
lib/c-stack.h
lib/c-stack.c
m4/c-stack.m4
+m4/libsigsegv.m4
Depends-on:
c99
exitfail
getprogname
gettext-h
+havelib
ignore-value
intprops
inttypes
-libsigsegv
mempcpy
raise
sigaction