3 * Support for Linux/S390.
4 <sigsegv.h> now defines a macro SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
5 It is either 1 or pagesize. Its meaning is that
6 - The fault address passed to a SIGSEGV handler has been rounded down
7 to a multiple of SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
8 - The address and length arguments of sigsegv_register function calls
9 must be multiples of SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
10 * Faster distinction between stack overflow and other fault on OpenBSD.
14 * Correct support for 64-bit ABI on MacOS X 10.5 and newer.
15 * Fix alternate stack overflow on at least Linux for PowerPC64;
16 regression introduced in 2.6.
20 * Support for Cygwin 1.7. Improved support for Cygwin 1.5.
21 Contributed by Eric Blake.
25 * Support for platforms that follow POSIX:2008, not POSIX:2001.
26 * Support for MirBSD 10.
27 * Support for IRIX 5.3. Contributed by Eric Blake.
28 * On Linux platforms, libsigsegv now prefers the POSIX way of defining the
29 signal handler over than the traditional one, when both are supported.
30 As a consequence, on Linux/i386 and other Linux platforms, the type
31 'stackoverflow_context_t' is now typedefed to 'ucontext_t *' rather than
32 'struct sigcontext *'.
36 * sigsegv_leave_handler is changed. Previously it was a normal function with
37 no arguments. Now it is a function that take a non-returning continuation
38 function and three arguments for it as arguments.
39 Where you had code like
40 int my_handler(void* fault_address, int serious)
43 sigsegv_leave_handler();
48 void my_handler_tail(void* arg1, void* arg2, void* arg3)
53 int my_handler(void* fault_address, int serious)
56 #if LIBSIGSEGV_VERSION >= 0x0206
57 return sigsegv_leave_handler(my_handler_tail, arg, NULL, NULL);
59 sigsegv_leave_handler();
60 my_handler_tail(arg, NULL, NULL);
65 * sigsegv_leave_handler now works correctly on MacOS X.
66 * Support for 64-bit ABI on MacOS X 10.5.
67 * Support for building universal binaries on MacOS X.
68 * Improved distinction between stack overflow and other fault on NetBSD,
69 OpenBSD, FreeBSD, Linux, AIX, Solaris. Contributed by Eric Blake.
70 * GNU gnulib now has an autoconf macro for locating libsigsegv:
71 http://www.gnu.org/software/gnulib/MODULES.html#module=libsigsegv
75 * Support for MacOS X 10.5.
79 * Support for GCC 4 on more platforms.
80 * Added support for catching stack overflow on NetBSD.
81 * Improved support for catching stack overflow on Linux, Solaris:
82 Works also when /proc is not mounted or lacks read permissions.
86 * Support for GCC 4 on some platforms contributed by Paolo Bonzini.
87 * Support for MacOS X i386 contributed by Bruno Haible.
88 * Improved support for Woe32 contributed by Doug Currie.
92 * Support for new versions of MacOS X contributed by Paolo Bonzini.
93 * Improved support for AIX 5, contributed by Bruno Haible.
97 * Support for MacOS X contributed by Paolo Bonzini.
98 * Support for Cygwin contributed by Paolo Bonzini.
99 * Support for Linux/ia64 and Linux/hppa contributed by Bruno Haible.
100 * Support for OpenBSD/i386 contributed by Bruno Haible.
101 * Support for NetBSD/alpha contributed by Paolo Bonzini.
105 * Modernized infrastructure.
106 * Added support for catching stack overflow on AIX 4, HP-UX, and BeOS.
107 * Dropped support for NeXTstep.
108 * The function sigsegv_leave_handler() no longer restores the signal mask.
109 This must now be done by the calling handler (either through sigprocmask
110 or through siglongjmp).
114 * Support for HP-UX contributed by Paolo Bonzini.
118 * Catching stack overflow now works on some Unix systems:
119 - Linux 2.2.x with glibc-2.1,