Improve OpenBSD support: Allow faster VMA determination.
[libsigsegv/ericb.git] / NEWS
blob35ed934dd8afc65fb0c9dcc2fbbc8896c97393e5
1 New in 2.10:
3 * Faster distinction between stack overflow and other fault on OpenBSD.
5 New in 2.9:
7 * Correct support for 64-bit ABI on MacOS X 10.5 and newer.
8 * Fix alternate stack overflow on at least Linux for PowerPC64;
9   regression introduced in 2.6.
11 New in 2.8:
13 * Support for Cygwin 1.7. Improved support for Cygwin 1.5.
14   Contributed by Eric Blake.
16 New in 2.7:
18 * Support for platforms that follow POSIX:2008, not POSIX:2001.
19 * Support for MirBSD 10.
20 * Support for IRIX 5.3. Contributed by Eric Blake.
21 * On Linux platforms, libsigsegv now prefers the POSIX way of defining the
22   signal handler over than the traditional one, when both are supported.
23   As a consequence, on Linux/i386 and other Linux platforms, the type
24   'stackoverflow_context_t' is now typedefed to 'ucontext_t *' rather than
25   'struct sigcontext *'.
27 New in 2.6:
29 * sigsegv_leave_handler is changed. Previously it was a normal function with
30   no arguments. Now it is a function that take a non-returning continuation
31   function and three arguments for it as arguments.
32   Where you had code like
33      int my_handler(void* fault_address, int serious)
34      {
35        ...code_before()...;
36        sigsegv_leave_handler();
37        ...code_after()...;
38        longjmp(...);
39      }
40   you now have to write
41      void my_handler_tail(void* arg1, void* arg2, void* arg3)
42      {
43        ...code_after()...;
44        longjmp(...);
45      }
46      int my_handler(void* fault_address, int serious)
47      {
48        ...code_before()...;
49        #if LIBSIGSEGV_VERSION >= 0x0206
50        return sigsegv_leave_handler(my_handler_tail, arg, NULL, NULL);
51        #else
52        sigsegv_leave_handler();
53        my_handler_tail(arg, NULL, NULL);
54        /* NOTREACHED */
55        abort();
56        #endif
57      }
58 * sigsegv_leave_handler now works correctly on MacOS X.
59 * Support for 64-bit ABI on MacOS X 10.5.
60 * Support for building universal binaries on MacOS X.
61 * Improved distinction between stack overflow and other fault on NetBSD,
62   OpenBSD, FreeBSD, Linux, AIX, Solaris. Contributed by Eric Blake.
63 * GNU gnulib now has an autoconf macro for locating libsigsegv:
64   http://www.gnu.org/software/gnulib/MODULES.html#module=libsigsegv
66 New in 2.5:
68 * Support for MacOS X 10.5.
70 New in 2.4:
72 * Support for GCC 4 on more platforms.
73 * Added support for catching stack overflow on NetBSD.
74 * Improved support for catching stack overflow on Linux, Solaris:
75   Works also when /proc is not mounted or lacks read permissions.
77 New in 2.3:
79 * Support for GCC 4 on some platforms contributed by Paolo Bonzini.
80 * Support for MacOS X i386 contributed by Bruno Haible.
81 * Improved support for Woe32 contributed by Doug Currie.
83 New in 2.2:
85 * Support for new versions of MacOS X contributed by Paolo Bonzini.
86 * Improved support for AIX 5, contributed by Bruno Haible.
88 New in 2.1:
90 * Support for MacOS X contributed by Paolo Bonzini.
91 * Support for Cygwin contributed by Paolo Bonzini.
92 * Support for Linux/ia64 and Linux/hppa contributed by Bruno Haible.
93 * Support for OpenBSD/i386 contributed by Bruno Haible.
94 * Support for NetBSD/alpha contributed by Paolo Bonzini.
96 New in 2.0:
98 * Modernized infrastructure.
99 * Added support for catching stack overflow on AIX 4, HP-UX, and BeOS.
100 * Dropped support for NeXTstep.
101 * The function sigsegv_leave_handler() no longer restores the signal mask.
102   This must now be done by the calling handler (either through sigprocmask
103   or through siglongjmp).
105 New in 1.2:
107 * Support for HP-UX contributed by Paolo Bonzini.
109 New in 1.1:
111 * Catching stack overflow now works on some Unix systems:
112   - Linux 2.2.x with glibc-2.1,
113   - Sun Solaris,
114   - DEC OSF/1 4.0,
115   - SGI Irix.