Sha256: 919bca92fa15b908724974e82df78ec8d8d3d32324966118c6a503e6c6ca5fa8

Contents?: true

Size: 1.46 KB

Versions: 6

Compression:

Stored size: 1.46 KB

Contents

# SYNOPSIS
#
#   AX_CHECK_CATCHABLE_SEGV
#
# DESCRIPTION
#
#  Check whether segmentation violations can be caught using signal handlers.

#serial 1

AC_DEFUN([AX_CHECK_CATCHABLE_SEGV], [dnl
    AC_PREREQ(2.64)
    AS_VAR_PUSHDEF([CACHEVAR], [ax_cv_check_[]_AC_LANG_ABBREV[]CATCHABLE_SEGV])dnl
    AC_CACHE_CHECK([whether segmentation violations can be caught when using the _AC_LANG compiler], CACHEVAR, [
        AC_RUN_IFELSE([
            AC_LANG_PROGRAM([[
#include <signal.h>
#include <stdlib.h>
static void sig(int _) { exit(0); }
            ]], [[
volatile unsigned char * volatile x = (volatile unsigned char *) malloc(8);
size_t i;

signal(SIGSEGV, sig);
signal(SIGBUS, sig);
#if !defined(__SANITIZE_ADDRESS__) && !defined(__EMSCRIPTEN__)
for (i = 0; i < 10000000; i += 1024) { x[-i] = x[i] = (unsigned char) i; }
#endif
free((void *) x);
exit(1)
            ]])],
            [AS_VAR_SET(CACHEVAR, [yes])],
            [AS_VAR_SET(CACHEVAR, [no])],
            [AS_VAR_SET(CACHEVAR, [unknown])]
        )
    ])
    AS_VAR_IF(CACHEVAR, yes,
        [AC_DEFINE([HAVE_CATCHABLE_SEGV], [1], [Define if segmentation violations can be caught using signal handlers])],
        [AC_MSG_WARN([On this platform, segmentation violations cannot be caught using signal handlers. This is expected if you enabled a tool such as Address Sanitizer (-fsanitize=address), but be aware that using Address Sanitizer may also significantly reduce performance.])]
    )
    AS_VAR_POPDEF([CACHEVAR])dnl
])

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
laag-libsodium-1.0.16.2 vendor/github.com/jedisct1/libsodium/m4/ax_check_catchable_segv.m4
laag-libsodium-1.0.16.0 vendor/github.com/jedisct1/libsodium/m4/ax_check_catchable_segv.m4
rbnacl-libsodium-1.0.16 vendor/libsodium/m4/ax_check_catchable_segv.m4
rbnacl-libsodium-1.0.15.1 vendor/libsodium/m4/ax_check_catchable_segv.m4
rbnacl-libsodium-1.0.15 vendor/libsodium/m4/ax_check_catchable_segv.m4
rbnacl-libsodium-1.0.13 vendor/libsodium/m4/ax_check_catchable_segv.m4