Avoid test failures with ASAN.
[libsigsegv.git] / NEWS
blob6ae915e2d34d4f112bf93724ab04181eb07fdc7d
1 New in 2.15:
3 * Added support for Linux/PowerPC (32-bit) with musl libc.
5 * Added support for macOS/x86_64 with clang 15.
7 * Optimize distinction between stack overflow and other fault on AIX 7.
9 New in 2.14:
11 * Added support for 64-bit Cygwin.
13 * Improved support for Linux/LoongArch64.
15 * Improved support for Solaris OpenIndiana.
17 * Added support for MidnightBSD.
19 * Improved support for OpenBSD/PowerPC64.
21 New in 2.13:
23 * Added support for macOS/arm64.
25 * Added support for Solaris OpenIndiana.
27 * Added support for catching stack overflow on Solaris 11/SPARC.
29 * Added support for catching stack overflow on 64-bit Haiku.
31 * Provide a correct value for SIGSTKSZ on 64-bit Solaris/x86. The one defined
32   by this system is too small.
34 * Improved support for Linux/RISC-V, Linux/nds32.
36 * Improved support for Android.
38 * Improved support for FreeBSD/x86, FreeBSD/x86_64, FreeBSD/arm, FreeBSD/arm64.
40 * Improved support for 64-bit ABI on Solaris/x86_64.
42 New in 2.12:
44 * Added support for catching stack overflow on Hurd/i386.
46 * Added support for catching stack overflow on Haiku.
48 * Corrected distinction between stack overflow and other fault on AIX.
50 * Reliability improvements on Linux, FreeBSD, NetBSD.
52 * NOTE: Support for Cygwin and native Windows is currently not up-to-date.
54 New in 2.11:
56 * Added support for catching stack overflow on Linux/SPARC.
58 * Provide a correct value for SIGSTKSZ on 64-bit AIX and on HP-UX. The one
59   defined by these systems is too small.
61 * Updated build infrastructure.
63 * Compilation now requires the <stdint.h> include file. Platforms which
64   don't have this include file (such as IRIX) are no longer supported.
66 * NOTE: Support for Cygwin and native Windows is currently not up-to-date.
68 New in 2.10:
70 * Support for Linux/S390.
71   <sigsegv.h> now defines a macro SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
72   It is either 1 or pagesize. Its meaning is that
73     - The fault address passed to a SIGSEGV handler has been rounded down
74       to a multiple of SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
75     - The address and length arguments of sigsegv_register function calls
76       must be multiples of SIGSEGV_FAULT_ADDRESS_ALIGNMENT.
77 * Faster distinction between stack overflow and other fault on OpenBSD.
79 New in 2.9:
81 * Correct support for 64-bit ABI on MacOS X 10.5 and newer.
82 * Fix alternate stack overflow on at least Linux for PowerPC64;
83   regression introduced in 2.6.
85 New in 2.8:
87 * Support for Cygwin 1.7. Improved support for Cygwin 1.5.
88   Contributed by Eric Blake.
90 New in 2.7:
92 * Support for platforms that follow POSIX:2008, not POSIX:2001.
93 * Support for MirBSD 10.
94 * Support for IRIX 5.3. Contributed by Eric Blake.
95 * On Linux platforms, libsigsegv now prefers the POSIX way of defining the
96   signal handler over than the traditional one, when both are supported.
97   As a consequence, on Linux/i386 and other Linux platforms, the type
98   'stackoverflow_context_t' is now typedefed to 'ucontext_t *' rather than
99   'struct sigcontext *'.
101 New in 2.6:
103 * sigsegv_leave_handler is changed. Previously it was a normal function with
104   no arguments. Now it is a function that take a non-returning continuation
105   function and three arguments for it as arguments.
106   Where you had code like
107      int my_handler(void* fault_address, int serious)
108      {
109        ...code_before()...;
110        sigsegv_leave_handler();
111        ...code_after()...;
112        longjmp(...);
113      }
114   you now have to write
115      void my_handler_tail(void* arg1, void* arg2, void* arg3)
116      {
117        ...code_after()...;
118        longjmp(...);
119      }
120      int my_handler(void* fault_address, int serious)
121      {
122        ...code_before()...;
123        #if LIBSIGSEGV_VERSION >= 0x0206
124        return sigsegv_leave_handler(my_handler_tail, arg, NULL, NULL);
125        #else
126        sigsegv_leave_handler();
127        my_handler_tail(arg, NULL, NULL);
128        /* NOTREACHED */
129        abort();
130        #endif
131      }
132 * sigsegv_leave_handler now works correctly on MacOS X.
133 * Support for 64-bit ABI on MacOS X 10.5.
134 * Support for building universal binaries on MacOS X.
135 * Improved distinction between stack overflow and other fault on NetBSD,
136   OpenBSD, FreeBSD, Linux, AIX, Solaris. Contributed by Eric Blake.
137 * GNU gnulib now has an autoconf macro for locating libsigsegv:
138   https://www.gnu.org/software/gnulib/MODULES.html#module=libsigsegv
140 New in 2.5:
142 * Support for MacOS X 10.5.
144 New in 2.4:
146 * Support for GCC 4 on more platforms.
147 * Added support for catching stack overflow on NetBSD.
148 * Improved support for catching stack overflow on Linux, Solaris:
149   Works also when /proc is not mounted or lacks read permissions.
151 New in 2.3:
153 * Support for GCC 4 on some platforms contributed by Paolo Bonzini.
154 * Support for MacOS X i386 contributed by Bruno Haible.
155 * Improved support for Woe32 contributed by Doug Currie.
157 New in 2.2:
159 * Support for new versions of MacOS X contributed by Paolo Bonzini.
160 * Improved support for AIX 5, contributed by Bruno Haible.
162 New in 2.1:
164 * Support for MacOS X contributed by Paolo Bonzini.
165 * Support for Cygwin contributed by Paolo Bonzini.
166 * Support for Linux/ia64 and Linux/hppa contributed by Bruno Haible.
167 * Support for OpenBSD/i386 contributed by Bruno Haible.
168 * Support for NetBSD/alpha contributed by Paolo Bonzini.
170 New in 2.0:
172 * Modernized infrastructure.
173 * Added support for catching stack overflow on AIX 4, HP-UX, and BeOS.
174 * Dropped support for NeXTstep.
175 * The function sigsegv_leave_handler() no longer restores the signal mask.
176   This must now be done by the calling handler (either through sigprocmask
177   or through siglongjmp).
179 New in 1.2:
181 * Support for HP-UX contributed by Paolo Bonzini.
183 New in 1.1:
185 * Catching stack overflow now works on some Unix systems:
186   - Linux 2.2.x with glibc-2.1,
187   - Sun Solaris,
188   - DEC OSF/1 4.0,
189   - SGI Irix.