1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-08-08 17:22:05 +03:00
Files
gnulib/modules/sigsegv
Bruno Haible 1450747216 Rename module stdint to stdint-h.
* modules/stdint-h: Renamed from modules/stdint.
* modules/stdint-h-tests: Renamed from modules/stdint-tests.
* modules/stdint-h-c++-tests: Renamed from modules/stdint-c++-tests.
* tests/test-stdint-h.c: Renamed from tests/test-stdint.c.
* tests/test-stdint-h-c++.cc: Renamed from tests/test-stdint-c++.cc.
* tests/test-stdint-h-c++2.cc: Renamed from tests/test-stdint-c++2.cc.
* doc/posix-headers/stdint.texi: Update.
* doc/gnulib-readme.texi: Update.
* doc/gnulib.texi: Update.
* modules/* (Depends-on): Update.
* modules/stdint: New file.
2024-12-27 23:35:41 +01:00

101 lines
2.6 KiB
Plaintext

Description:
A simplified variant of GNU libsigsegv.
It implements the most important features of GNU libsigsegv: catching SIGSEGV
and catching stack overflow. It does *not* implement the 'sigsegv_dispatcher'
type (which is not multithread-safe).
It supports all modern Unix-like platforms: Linux, Hurd, FreeBSD, NetBSD,
OpenBSD, macOS, AIX, Solaris, Cygwin, Haiku, even IRIX. It does *not* support
HP-UX, Minix, native Windows; on these platforms the module compiles and
provides a <sigsegv.h> header file, but it does not define HAVE_SIGSEGV_RECOVERY
and HAVE_STACK_OVERFLOW_RECOVERY.
Unlike GNU libsigsegv, which consists of many .h and .c files, this module
compiles to just two object files, rather than a library.
Files:
lib/sigsegv.in.h
lib/sigsegv.c
lib/stackvma.h
lib/stackvma.c
m4/mmap-anon.m4
m4/musl.m4
m4/sigaltstack.m4
m4/stack-direction.m4
m4/libsigsegv.m4
m4/sigsegv.m4
Depends-on:
gen-header
havelib
host-cpu-c-abi
stdint-h
getpagesize
configure.ac:
AC_REQUIRE([gl_SIGSEGV])
if test $gl_sigsegv_uses_libsigsegv = yes; then
GL_GENERATE_SIGSEGV_H=false
else
GL_GENERATE_SIGSEGV_H=true
fi
gl_CONDITIONAL_HEADER([sigsegv.h])
AC_PROG_MKDIR_P
if $GL_GENERATE_SIGSEGV_H; then
dnl Persuade glibc <sys/ucontext.h> to declare macros designating register
dnl indices: REG_RSP on x86_64, REG_ESP on i386.
dnl Persuade Solaris OpenIndiana <ucontext.h> to include <sys/regset.h>,
dnl which declares macros designating register indices, such as ESP on i386.
dnl Persuade Solaris OpenIndiana <unistd.h> to declare mincore().
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
gl_MUSL_LIBC
AC_REQUIRE([AC_CANONICAL_HOST])
case "$host_os" in
solaris2.11)
AC_DEFINE([SOLARIS11], [1], [Define on Solaris 11 and its derivates.])
;;
esac
gl_FUNC_MMAP_ANON
dnl Stack direction.
SV_STACK_DIRECTION
dnl Catching stack overflow requires an alternate signal stack.
dnl The old "install a guard page" trick would be unreliable, because
dnl we don't know where exactly to place the guard page.
SV_SIGALTSTACK
AC_CHECK_FUNCS_ONCE([getrlimit])
fi
Makefile.am:
BUILT_SOURCES += $(SIGSEGV_H)
if GL_GENERATE_SIGSEGV_H
sigsegv.h: sigsegv.in.h $(top_builddir)/config.status
@NMD@ $(AM_V_GEN)$(MKDIR_P) '%reldir%'
$(gl_V_at)$(SED_HEADER_TO_AT_t) $(srcdir)/sigsegv.in.h
$(AM_V_at)mv $@-t $@
else
sigsegv.h: $(top_builddir)/config.status
rm -f $@
endif
MOSTLYCLEANFILES += sigsegv.h sigsegv.h-t
if GL_GENERATE_SIGSEGV_H
lib_SOURCES += sigsegv.c stackvma.c
endif
Include:
<sigsegv.h>
Link:
$(LTLIBSIGSEGV) when linking with libtool, $(LIBSIGSEGV) otherwise
License:
GPLv2+
Maintainer:
Bruno Haible