1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
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 <stdint.h> 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.
<sigsegv.h> 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.
|