Update to 2.6:
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: http://www.gnu.org/software/gnulib/MODULES.html#module=libsigsegv
This commit is contained in:
parent
065d2513aa
commit
583efeb690
4 changed files with 6 additions and 62 deletions
|
@ -1,8 +1,7 @@
|
|||
# $NetBSD: Makefile,v 1.6 2008/08/23 15:56:28 wiz Exp $
|
||||
# $NetBSD: Makefile,v 1.7 2008/09/06 13:52:29 wiz Exp $
|
||||
#
|
||||
|
||||
DISTNAME= libsigsegv-2.5
|
||||
PKGREVISION= 1
|
||||
DISTNAME= libsigsegv-2.6
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= ${MASTER_SITE_GNU:=libsigsegv/}
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
$NetBSD: distinfo,v 1.5 2008/08/23 15:56:28 wiz Exp $
|
||||
$NetBSD: distinfo,v 1.6 2008/09/06 13:52:29 wiz Exp $
|
||||
|
||||
SHA1 (libsigsegv-2.5.tar.gz) = 84cf08a9aae4c4d884333421018d8127592e8c2b
|
||||
RMD160 (libsigsegv-2.5.tar.gz) = 1776563a76de4286461a779cfd2b3b47533db05e
|
||||
Size (libsigsegv-2.5.tar.gz) = 380512 bytes
|
||||
SHA1 (patch-aa) = 4786b1362d9277d4b654e8978514a7cd454eeaaa
|
||||
SHA1 (patch-ab) = eb0ca641f4355add51c5f599318ba78463a70046
|
||||
SHA1 (libsigsegv-2.6.tar.gz) = 15ca1dd9574012b8c4c4d2bf6ba945546114b0b5
|
||||
RMD160 (libsigsegv-2.6.tar.gz) = 145fe89e3f16737b271768374e001b2b5156f99d
|
||||
Size (libsigsegv-2.6.tar.gz) = 348689 bytes
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
$NetBSD: patch-aa,v 1.1 2006/07/24 13:39:26 joerg Exp $
|
||||
|
||||
--- configure.orig 2006-07-24 13:19:19.000000000 +0000
|
||||
+++ configure
|
||||
@@ -18825,7 +18825,7 @@ done
|
||||
|
||||
|
||||
case "$host_os" in
|
||||
- sunos4* | freebsd* | openbsd* | netbsd*)
|
||||
+ sunos4* | freebsd* | openbsd* | netbsd* | dragonfly*)
|
||||
CFG_SIGNALS=signals-bsd.h ;;
|
||||
hpux*)
|
||||
CFG_SIGNALS=signals-hpux.h ;;
|
||||
@@ -22583,7 +22583,7 @@ if test -z "$CFG_FAULT" && test "$sv_cv_
|
||||
fi
|
||||
if test -z "$CFG_FAULT" && test "$sv_cv_fault_bsd" = yes; then
|
||||
case "$host_os" in
|
||||
- freebsd*)
|
||||
+ freebsd* | dragonfly*)
|
||||
case "$host_cpu" in
|
||||
i?86 | x86_64)
|
||||
CFG_FAULT=fault-freebsd-i386.h
|
||||
@@ -23072,7 +23072,7 @@ if test $sv_cv_procfsvma = yes; then
|
||||
else
|
||||
case "$host_os" in
|
||||
linux*) CFG_STACKVMA=stackvma-linux.c ;;
|
||||
- freebsd*) CFG_STACKVMA=stackvma-freebsd.c ;;
|
||||
+ freebsd* | dragonfly*) CFG_STACKVMA=stackvma-freebsd.c ;;
|
||||
beos*) CFG_STACKVMA=stackvma-beos.c ;;
|
||||
macos* | darwin*) CFG_STACKVMA=stackvma-mach.c ;;
|
||||
esac
|
|
@ -1,22 +0,0 @@
|
|||
$NetBSD: patch-ab,v 1.1 2008/08/23 15:56:28 wiz Exp $
|
||||
|
||||
--- src/stackvma-mincore.c.orig 2006-05-15 14:01:12.000000000 +0200
|
||||
+++ src/stackvma-mincore.c
|
||||
@@ -227,7 +227,7 @@ mincore_is_near_this (unsigned long addr
|
||||
unsigned long testaddr = addr - (vma->start - addr);
|
||||
if (testaddr > addr) /* overflow? */
|
||||
testaddr = 0;
|
||||
- return is_unmapped (testaddr, addr);
|
||||
+ return is_unmapped (testaddr, vma->start - 1);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -246,7 +246,7 @@ mincore_is_near_this (unsigned long addr
|
||||
unsigned long testaddr = addr + (addr - vma->end);
|
||||
if (testaddr < addr) /* overflow? */
|
||||
testaddr = ~0UL;
|
||||
- return is_unmapped (addr, testaddr);
|
||||
+ return is_unmapped (vma->end, testaddr);
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue