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