New in 2.15: * Added support for Linux/PowerPC (32-bit) with musl libc. * Added support for macOS/x86_64 with clang 15. * Optimize distinction between stack overflow and other fault on AIX 7. New in 2.14: * Added support for 64-bit Cygwin. * Improved support for Linux/LoongArch64. * Improved support for Solaris OpenIndiana. * Added support for MidnightBSD. * Improved support for OpenBSD/PowerPC64. New in 2.13: * Added support for macOS/arm64. * Added support for Solaris OpenIndiana. * Added support for catching stack overflow on Solaris 11/SPARC. * Added support for catching stack overflow on 64-bit Haiku. * Provide a correct value for SIGSTKSZ on 64-bit Solaris/x86. The one defined by this system is too small. * Improved support for Linux/RISC-V, Linux/nds32. * Improved support for Android. * Improved support for FreeBSD/x86, FreeBSD/x86_64, FreeBSD/arm, FreeBSD/arm64. * Improved support for 64-bit ABI on Solaris/x86_64. New in 2.12: * Added support for catching stack overflow on Hurd/i386. * Added support for catching stack overflow on Haiku. * Corrected distinction between stack overflow and other fault on AIX. * Reliability improvements on Linux, FreeBSD, NetBSD. * NOTE: Support for Cygwin and native Windows is currently not up-to-date. New in 2.11: * Added support for catching stack overflow on Linux/SPARC. * Provide a correct value for SIGSTKSZ on 64-bit AIX and on HP-UX. The one defined by these systems is too small. * Updated build infrastructure. * Compilation now requires the include file. Platforms which don't have this include file (such as IRIX) are no longer supported. * NOTE: Support for Cygwin and native Windows is currently not up-to-date. New in 2.10: * Support for Linux/S390. now defines a macro SIGSEGV_FAULT_ADDRESS_ALIGNMENT. It is either 1 or pagesize. Its meaning is that - The fault address passed to a SIGSEGV handler has been rounded down to a multiple of SIGSEGV_FAULT_ADDRESS_ALIGNMENT. - The address and length arguments of sigsegv_register function calls must be multiples of SIGSEGV_FAULT_ADDRESS_ALIGNMENT. * Faster distinction between stack overflow and other fault on OpenBSD. New in 2.9: * Correct support for 64-bit ABI on MacOS X 10.5 and newer. * Fix alternate stack overflow on at least Linux for PowerPC64; regression introduced in 2.6. New in 2.8: * Support for Cygwin 1.7. Improved support for Cygwin 1.5. Contributed by Eric Blake. New in 2.7: * Support for platforms that follow POSIX:2008, not POSIX:2001. * Support for MirBSD 10. * Support for IRIX 5.3. Contributed by Eric Blake. * On Linux platforms, libsigsegv now prefers the POSIX way of defining the signal handler over than the traditional one, when both are supported. As a consequence, on Linux/i386 and other Linux platforms, the type 'stackoverflow_context_t' is now typedefed to 'ucontext_t *' rather than 'struct sigcontext *'. New in 2.6: * sigsegv_leave_handler is changed. Previously it was a normal function with no arguments. Now it is a function that take a non-returning continuation function and three arguments for it as arguments. Where you had code like int my_handler(void* fault_address, int serious) { ...code_before()...; sigsegv_leave_handler(); ...code_after()...; longjmp(...); } you now have to write void my_handler_tail(void* arg1, void* arg2, void* arg3) { ...code_after()...; longjmp(...); } int my_handler(void* fault_address, int serious) { ...code_before()...; #if LIBSIGSEGV_VERSION >= 0x0206 return sigsegv_leave_handler(my_handler_tail, arg, NULL, NULL); #else sigsegv_leave_handler(); my_handler_tail(arg, NULL, NULL); /* NOTREACHED */ abort(); #endif } * sigsegv_leave_handler now works correctly on MacOS X. * Support for 64-bit ABI on MacOS X 10.5. * Support for building universal binaries on MacOS X. * Improved distinction between stack overflow and other fault on NetBSD, OpenBSD, FreeBSD, Linux, AIX, Solaris. Contributed by Eric Blake. * GNU gnulib now has an autoconf macro for locating libsigsegv: https://www.gnu.org/software/gnulib/MODULES.html#module=libsigsegv New in 2.5: * Support for MacOS X 10.5. New in 2.4: * Support for GCC 4 on more platforms. * Added support for catching stack overflow on NetBSD. * Improved support for catching stack overflow on Linux, Solaris: Works also when /proc is not mounted or lacks read permissions. New in 2.3: * Support for GCC 4 on some platforms contributed by Paolo Bonzini. * Support for MacOS X i386 contributed by Bruno Haible. * Improved support for Woe32 contributed by Doug Currie. New in 2.2: * Support for new versions of MacOS X contributed by Paolo Bonzini. * Improved support for AIX 5, contributed by Bruno Haible. New in 2.1: * Support for MacOS X contributed by Paolo Bonzini. * Support for Cygwin contributed by Paolo Bonzini. * Support for Linux/ia64 and Linux/hppa contributed by Bruno Haible. * Support for OpenBSD/i386 contributed by Bruno Haible. * Support for NetBSD/alpha contributed by Paolo Bonzini. New in 2.0: * Modernized infrastructure. * Added support for catching stack overflow on AIX 4, HP-UX, and BeOS. * Dropped support for NeXTstep. * The function sigsegv_leave_handler() no longer restores the signal mask. This must now be done by the calling handler (either through sigprocmask or through siglongjmp). New in 1.2: * Support for HP-UX contributed by Paolo Bonzini. New in 1.1: * Catching stack overflow now works on some Unix systems: - Linux 2.2.x with glibc-2.1, - Sun Solaris, - DEC OSF/1 4.0, - SGI Irix.