Blame SOURCES/libsodium-1.0.18/m4/ax_check_catchable_abrt.m4
|
rdobuilder |
775784 |
# SYNOPSIS
|
|
rdobuilder |
775784 |
#
|
|
rdobuilder |
775784 |
# AX_CHECK_CATCHABLE_ABRT
|
|
rdobuilder |
775784 |
#
|
|
rdobuilder |
775784 |
# DESCRIPTION
|
|
rdobuilder |
775784 |
#
|
|
rdobuilder |
775784 |
# Check whether SIGABRT can be caught using signal handlers.
|
|
rdobuilder |
775784 |
|
|
rdobuilder |
775784 |
#serial 1
|
|
rdobuilder |
775784 |
|
|
rdobuilder |
775784 |
AC_DEFUN([AX_CHECK_CATCHABLE_ABRT], [dnl
|
|
rdobuilder |
775784 |
AC_PREREQ(2.64)
|
|
rdobuilder |
775784 |
AS_VAR_PUSHDEF([CACHEVAR], [ax_cv_check_[]_AC_LANG_ABBREV[]CATCHABLE_ABRT])dnl
|
|
rdobuilder |
775784 |
AC_CACHE_CHECK([whether SIGABRT can be caught when using the _AC_LANG compiler], CACHEVAR, [
|
|
rdobuilder |
775784 |
AC_RUN_IFELSE([
|
|
rdobuilder |
775784 |
AC_LANG_PROGRAM([[
|
|
rdobuilder |
775784 |
#include <signal.h>
|
|
rdobuilder |
775784 |
#include <stdlib.h>
|
|
rdobuilder |
775784 |
|
|
rdobuilder |
775784 |
#ifndef SIGABRT
|
|
rdobuilder |
775784 |
# error SIGABRT is not defined
|
|
rdobuilder |
775784 |
#endif
|
|
rdobuilder |
775784 |
|
|
rdobuilder |
775784 |
static void sigabrt_handler_3(int _)
|
|
rdobuilder |
775784 |
{
|
|
rdobuilder |
775784 |
exit(0);
|
|
rdobuilder |
775784 |
}
|
|
rdobuilder |
775784 |
|
|
rdobuilder |
775784 |
static void sigabrt_handler_2(int _)
|
|
rdobuilder |
775784 |
{
|
|
rdobuilder |
775784 |
signal(SIGABRT, sigabrt_handler_3);
|
|
rdobuilder |
775784 |
abort();
|
|
rdobuilder |
775784 |
exit(1);
|
|
rdobuilder |
775784 |
}
|
|
rdobuilder |
775784 |
|
|
rdobuilder |
775784 |
static void sigabrt_handler_1(int _)
|
|
rdobuilder |
775784 |
{
|
|
rdobuilder |
775784 |
signal(SIGABRT, sigabrt_handler_2);
|
|
rdobuilder |
775784 |
abort();
|
|
rdobuilder |
775784 |
exit(1);
|
|
rdobuilder |
775784 |
}
|
|
rdobuilder |
775784 |
]], [[
|
|
rdobuilder |
775784 |
signal(SIGABRT, sigabrt_handler_1);
|
|
rdobuilder |
775784 |
abort();
|
|
rdobuilder |
775784 |
exit(1);
|
|
rdobuilder |
775784 |
]])],
|
|
rdobuilder |
775784 |
[AS_VAR_SET(CACHEVAR, [yes])],
|
|
rdobuilder |
775784 |
[AS_VAR_SET(CACHEVAR, [no])],
|
|
rdobuilder |
775784 |
[AS_VAR_SET(CACHEVAR, [unknown])]
|
|
rdobuilder |
775784 |
)
|
|
rdobuilder |
775784 |
])
|
|
rdobuilder |
775784 |
AS_VAR_IF(CACHEVAR, yes,
|
|
rdobuilder |
775784 |
[AC_DEFINE([HAVE_CATCHABLE_ABRT], [1], [Define if SIGABRT can be caught using signal handlers])],
|
|
rdobuilder |
775784 |
[AC_MSG_WARN([On this platform, SIGABRT cannot be caught using signal handlers.])]
|
|
rdobuilder |
775784 |
)
|
|
rdobuilder |
775784 |
AS_VAR_POPDEF([CACHEVAR])dnl
|
|
rdobuilder |
775784 |
])
|