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:
wiz 2008-09-06 13:52:29 +00:00
parent 065d2513aa
commit 583efeb690
4 changed files with 6 additions and 62 deletions

View file

@ -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/}

View file

@ -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

View file

@ -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

View file

@ -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