2006-06-23 Bruno Haible * Version 2.4 released. 2006-06-23 Bruno Haible * configure.ac: Bump version number to 2.4. * src/sigsegv.h.in (LIBSIGSEGV_VERSION): Likewise. 2006-06-17 Bruno Haible * src/Makefile.am (noinst_HEADERS): Add fault-netbsd.h. 2006-06-17 Bruno Haible * sigaltstack.m4: Insert 'volatile' and pass a pointer, to defeat GCC 4 optimizations. * sigaltstack-longjmp.m4: Likewise. * sigaltstack-siglongjmp.m4: Likewise. 2006-06-17 Bruno Haible * tests/stackoverflow1.c (recurse): Remove useless cast. * tests/stackoverflow2.c (recurse): Likewise. 2006-06-17 Bruno Haible * src/stackvma-freebsd.c (sigsegv_get_vma): Test whether mincore() works as expected before using it. 2006-03-28 Ralf Wildenhues * m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER) [ linux ]: Avoid warning when "parsing" /etc/ld.so.conf and empty /etc/ld.so.conf.d. 2006-06-13 Bruno Haible Make NetBSD/i386 stack overflow detection work even without mincore. * src/fault-netbsd.h: New file. * configure.ac (CFG_FAULT): Choose it when appropriate. 2006-05-16 Bruno Haible Don't allow the compiler to reorder instructions in the tests. * tests/sigsegv1.c (crashes): Use volatile in pointer access. * tests/sigsegv2.c (main): Likewise. * tests/stackoverflow2.c (main): Likewise. 2006-05-14 Bruno Haible Exploit the mincore() system call where available. * src/stackvma-mincore.c: New file. * src/Makefile.am (EXTRA_DIST): Add it. * src/stackvma.h: Add double-inclusion guard. * src/stackvma-freebsd.c: If mincore() is available, include also stackvma-mincore.c. (sigsegv_get_vma): If mincore() is available, use it as fallback. * src/stackvma-linux.c: If mincore() is available, include also stackvma-mincore.c. (sigsegv_get_vma): If mincore() is available, use it as fallback. * src/stackvma-procfs.c: If mincore() is available, include also stackvma-mincore.c. (sigsegv_get_vma): If mincore() is available, use it as fallback. * configure.ac: Test for mincore. (CFG_STACKVMA): Set to stackvma-mincore.c if nothing else is available. 2006-05-14 Bruno Haible * src/stackvma-simple.c: New file, extracted from handler-unix.c. * src/Makefile.am (EXTRA_DIST): Add it. * src/stackvma-beos.c: Include stackvma-simple.c. (sigsegv_get_vma): Fill the vma's is_near_this field. * src/stackvma-freebsd.c: Include stackvma-simple.c. (sigsegv_get_vma): Fill the vma's is_near_this field. * src/stackvma-linux.c: Include stackvma-simple.c. (sigsegv_get_vma): Fill the vma's is_near_this field. * src/stackvma-mach.c: Include stackvma-simple.c. (sigsegv_get_vma): Fill the vma's is_near_this field. * src/stackvma-procfs.c: Include stackvma-simple.c. (sigsegv_get_vma): Fill the vma's is_near_this field. * src/stackvma.h (vma_struct): Add is_near_this field. * src/handler-unix.c (sigsegv_handler): Use the vma's is_near_this function. 2006-04-28 Bruno Haible * Version 2.3 released. 2006-04-28 Bruno Haible * configure.ac: Bump version number to 2.3. * src/sigsegv.h.in (LIBSIGSEGV_VERSION): Likewise. * build-aux/config.guess, build-aux/config.sub: Update to GNU version 2006-04-26. * build-aux/install-sh: Update from automake-1.9.6. * build-aux/missing: Likewise. * build-aux/ltmain.sh: Update from libtool-1.5.22. * m4/libtool.m4: Likewise. 2006-04-28 Bruno Haible * build-aux: Renamed from autoconf. * configure.ac (AC_CONFIG_AUX_DIR): Set to build-aux. 2006-04-22 Bruno Haible * configure.ac: Renamed from configure.in. 2006-04-21 Bruno Haible * src/machfault-macos-i386.h: Rewritten for Darwin 8.6.1. * configure.in: Change FAULT_CONTEXT for i?86-darwin. 2005-06-21 Paolo Bonzini * configure.in: For handler-macos.c, include mach/thread_status.h. * configure: Regenerate. 2005-06-21 Paolo Bonzini * tests/stackoverflow1.c (recurse): Make more resilient to compiler optimization. (recurse_1): New. * tests/stackoverflow2.c: Likewise. 2005-05-24 Bruno Haible * src/handler-win32.c (main_exception_filter): Copy CONTEXT structure to safe area on the stack. Based on patch by Doug Currie . * src/handler-win32.c (main_exception_filter): Swap arguments passed to stack_overflow_handler. Patch by Doug Currie . * src/handler-win32.c (main_exception_filter): Align %esp on a 16-byte boundary. 2005-03-02 Bruno Haible * Version 2.2 released. 2005-03-02 Bruno Haible * autoconf/config.guess: Update. * autoconf/config.sub: Update. * autoconf/missing: Update from automake-1.9.5. * m4/libtool.m4: Upgrade to libtool-1.5.14 with gettext modifications. * autoconf/ltmain.sh: Likewise. 2005-03-02 Bruno Haible * src/fault-aix5.h: New file. * src/fault-aix5-powerpc.h: New file. * src/Makefile.am (noinst_HEADERS): Add them. * configure.in: Choose them when the POSIX test succeeds on AIX. * src/fault-aix3-powerpc.h: Renamed from src/fault-aix-powerpc.h. * src/fault-aix3.h: Renamed from src/fault-aix.h. * src/Makefile.am (noinst_HEADERS): Update. * configure.in: Update. When cross-compiling, assume the AIX test succeeds only on AIX 3 and AIX 4. 2005-03-01 Bruno Haible * configure.in: Fix test of CFG_MACHFAULT. 2005-02-27 Bruno Haible * configure.in: Skip tests that are not needed on MacOS X >= 10.2. * m4/sigaltstack.m4 (SV_SIGALTSTACK): Don't perform the test on MacOS X >= 10.2. 2005-02-18 Bruno Haible * tests/sigsegv1.c (handler_called): Declare as volatile. * tests/sigsegv2.c (logcount, logdata): Likewise. * tests/stackoverflow1.c (pass): Likewise. * tests/stackoverflow2.c (pass): Likewise. 2005-01-29 Bruno Haible * src/sigsegv.h.in (LIBSIGSEGV_VERSION): New macro. (libsigsegv_version): New declaration. * src/version.c: New file. * src/Makefile.am (libsigsegv_la_SOURCES): Add version.c. * Makefile.msvc (OBJECTS): Add version.obj. (version.obj): New rule. Suggested by Sam Steingold. 2004-08-25 Bruno Haible * m4/libtool.m4: Upgrade to libtool-1.5.6. * autoconf/ltmain.sh: Upgrade to libtool-1.5.6. 2004-08-18 Bruno Haible * configure.in: Bump version number to 2.2. 2004-08-17 Bruno Haible Finish the Mach-based MacOS X support. * src/handler-macos.c: Don't include mach/vm_map.h. Include machfault.h instead of fault.h. (save_exc_state): Remove variable. (save_thread_state): New variable. (terminating_handler): New function. (altstack_handler): Pass the save_thread_state, not the save_exc_state, to the user's handler. (catch_exception_raise): Make it work also for platforms which don't have an exc_state type. Call SIGSEGV_FAULT_ADDRESS with 2 arguments. Don't clobber the exc_state; instead set the thread's program counter to terminating_handler or altstack_handler, depending on the case. Return KERN_SUCCESS at the end. * src/machfault.h: New file. * src/machfault-macos-powerpc.h (SIGSEGV_FAULT_ADDRESS): Add a second argument. * src/machfault-macos-i386.h: New file. * src/Makefile.am (EXTRA_DIST): Add handler-macos.c. (NOINST_HEADERS): Add machfault.h, machfault-macos-i386.h, machfault-macos-powerpc.h. * configure.in (CFG_HANDLER): Initialize to empty. (CFG_MACHFAULT): New substituted variable. On MacOS X PowerPC+i386, use CFG_HANDLER=handler-macos.c unconditionally. (sv_cv_fault_include, sv_cv_have_stack_overflow_recovery): Set correctly also in the handler-macos.c case. 2004-08-16 Bruno Haible Support for MacOS X 10.3 on PowerPC. * src/fault-macosdarwin5-powerpc.h: Renamed from src/fault-macos-powerpc.h. * src/fault-macosdarwin5-powerpc.c: Renamed from src/fault-macos-powerpc.c. * src/fault-macosdarwin7-powerpc.h: New file. * src/fault-macosdarwin7-powerpc.c: New file. * src/Makefile.am (noinst_HEADERS): Update. * configure.in: Test the method for MacOSX/Darwin5 PowerPC only after the method for MacOSX/Darwin7 PowerPC failed. Substitute FAULT_CONTEXT_INCLUDE2. * src/sigsegv.h.in: Insert @FAULT_CONTEXT_INCLUDE2@. * src/Makefile.am (sigsegv.h.msvc): Replace @FAULT_CONTEXT_INCLUDE2@. 2003-12-09 Paolo Bonzini * src/handler-macos.c: Completed; removed dependency on signals. * src/machfault-macos-powerpc.h: Reorganized. 2003-12-08 Paolo Bonzini Bruno Haible * src/handler-macos.c: New file. * src/machfault.h: New file. * src/machfault-macos-powerpc.h: New file. 2003-12-05 Bruno Haible * m4/fault.m4: Tweak indentation. Bump serial number. * m4/getpagesize.m4: Likewise. * m4/mmap-anon.m4: Likewise. * m4/sigaltstack.m4: Likewise. * m4/sigaltstack-longjmp.m4: Likewise. * m4/sigaltstack-siglongjmp.m4: Likewise. 2003-12-05 Paolo Bonzini * aclocal.m4: Regenerate with Automake 1.7h. * configure.in: Drop m4/Makefile from list of generated files. * configure: Regenerate. * Makefile.am (install-data-hook): New name of the install-am target, for Automake 1.8 compatibility. Other -am targets are not affected because Automake does not have anything to do to make them. (AUTOMAKE_OPTIONS): Bump minimum Automake requirement to 1.7h. (SUBDIRS): Remove m4. ($(srcdir)/config.h.msvc): New target for config.h.msvc. * Makefile.in: Regenerate with Automake 1.7h. * m4/Makefile.am: Delete, Automake 1.7h takes care of it. * m4/Makefile.in: Delete. * src/Makefile.am (installdirs): Delete, Automake 1.7h adds it. * src/Makefile.in: Regenerate with Automake 1.7h. * tests/Makefile.in: Regenerate with Automake 1.7h. * autoconf/config.guess: Update from automake-1.7h. * autoconf/config.sub: Likewise. * autoconf/install.sh: Likewise. * autoconf/missing: Likewise. * autoconf/mkinstalldirs: Delete. * m4/fault.m4: autoupdate and manually tweak. * m4/sigaltstack.m4: Likewise. * m4/sigaltstack-longjmp.m4: Likewise. * m4/sigaltstack-siglongjmp.m4: Likewise. * m4/mmap-anon.m4: Likewise. * m4/getpagesize.m4: Likewise. 2003-10-29 Bruno Haible * tests/sigsegv1.c (main): Add a check whether mprotect with PROT_READ_WRITE really works. * tests/sigsegv2.c (main): Likewise. Reported by Ullal Devappa Kini . 2003-08-21 Bruno Haible * Version 2.1 released. 2003-06-24 Paolo Bonzini * m4/fault.m4: Exit if we detect an infinite loop. * aclocal.m4: Regenerate. * configure: Regenerate. 2003-06-18 Bruno Haible * autoconf/install-sh: Update from automake-1.7.5. 2003-05-14 Paolo Bonzini * configure.in: Use signals-bsd.h for OpenBSD and NetBSD too. Support instruction decoding to get fault address for Alphas. * src/fault-netbsd-alpha.h: New file. * src/fault-netbsd-alpha.c: New file. * src/Makefile.am (noinst_HEADERS): Add them. 2003-05-14 Paolo Bonzini * src/dispatcher.c (insert): Fix lossage in 64-bit environments (cast from void* to unsigned int). 2003-05-10 Bruno Haible * tests/Makefile.am (../src/libsigsegv.la): New rule. * Makefile.msvc (handler.obj): Complete the dependencies. (stackoverflow2.exe): New rule. (check): Depend on it. (clean): Remove it. 2003-05-10 Paolo Bonzini Bruno Haible * configure.in: AC_SUBST of CFG_STACKVMA, CFG_LEAVE, CFG_HANDLER. * src/Makefile.am: Add dependencies for the object files. 2003-05-08 Paolo Bonzini * configure.in: Add $srcdir/ to #include statements. Needed when builddir != srcdir. * src/signals-macos.h (SIGSEGV_FOR_ALL_SIGNALS): Add SIGSEGV. 2003-05-03 Paolo Bonzini * configure.in: Tweak 2003-04-26 patch so that it works on mingw32 and Cygwin. 2003-05-02 Bruno Haible * src/handler-unix.c: Add special case for stack handling on IA-64. * src/fault-linux-ia64.h: Complete the port. * configure.in: Improve Linux/IA-64 support. 2003-05-01 Bruno Haible * configure.in: Don't use fault-hurd.h on NetBSD/alpha. It does not work. 2003-05-01 Bruno Haible Support for Linux/HPPA. * fault-linux-hppa.h: Don't include . (SIGSEGV_FAULT_ADDRESS): Change. (SIGSEGV_FAULT_ADDRESS_FROM_SIGINFO): Define it, otherwise the value passed for sip is 0. (SIGSEGV_FAULT_CONTEXT, SIGSEGV_FAULT_STACKPOINTER): Remove macros. * configure.in: Improve Linux/HPPA support. 2003-05-01 Bruno Haible Support for OpenBSD/i386. * src/fault-openbsd.h: New file. * src/fault-openbsd-i386.h: New file. * src/Makefile.am (noinst_HEADERS): Add them. * configure.in: If the POSIX test works and the OS is OpenBSD, use fault-openbsd.h instead of fault-posix.h. 2003-05-01 Bruno Haible * src/fault-hpux-hppa.h: Make it work on machines with 64-bit registers as well. * configure.in: Likewise. 2003-04-29 Bruno Haible * configure.in: Define HAVE_STACKVMA if CFG_STACKVMA is nontrivial. * src/handler-unix.c: Test HAVE_STACKVMA instead of CFG_STACKVMA. * m4/fault.m4 (SV_TRY_FAULT): On HP-UX, always pass 0 as first argument of mmap(). * tests/mmaputil.h (mmap_zeromap): Likewise. 2003-04-28 Bruno Haible * src/stackvma-freebsd.c (sigsegv_get_vma): Fix logic error. 2002-04-17 Paolo Bonzini Support for Cygwin. * configure.in: Treat cygwin* like mingw*. * src/handler-win32.c [CYGWIN] (exception_list, _except_list, debug_get_except_list, cygwin_exception_handler, libsigsegv_exception_handler, do_install_main_exception_filter): New definitions. (install_main_exception_filter): New function. (sigsegv_install_handler, stackoverflow_install_handler): Call it. 2003-04-26 Bruno Haible * configure.in: Don't set sv_cv_have_stack_overflow_recovery=yes if not all of the fault-*.h and stackvma-*.h premises are fulfilled. Reported by Paolo Bonzini for NetBSD/Alpha. 2003-04-03 Bruno Haible * configure.in: Add --enable-relocatable option. * m4/relocatable.m4: New file, from GNU gettext. * m4/Makefile.am (EXTRA_DIST): Add it. * m4/libtool.m4: Update from GNU gettext, based on libtool-1.4.3. * autoconf/ltmain.sh: Likewise. 2003-04-02 Bruno Haible * configure.in: Bump version number to 2.1. * tests/stackoverflow2.c: New file, based on code by Paolo Bonzini. * tests/Makefile.am (TESTS, noinst_PROGRAMS): Add stackoverflow2. 2003-04-02 Paolo Bonzini Bruno Haible Complete the port to MacOS X (Darwin). * m4/fault.m4: Include sys/signal.h. Have an exit status of 3 instead of 1 if fault_address is misdetected. * m4/sigaltstack.m4: Define stack_t to struct sigaltstack if absent. Include . * configure.in: Add check for sys/signal.h. Add support for catching stack overflow on MacOSX. Add support for MacOSX on i386. Provide a fallback for SS_ONSTACK before using it. * src/fault-macos-i386.h: New file. * src/stackvma-mach.c: New file. * src/fault-macos-powerpc.h (SIGSEGV_FAULT_STACKPOINTER): Change. * src/handler-unix.c: Include . (SS_DISABLE): Provide a fallback. * src/leave-sigaltstack.c: Include sys/signal.h. (SS_ONSTACK): Provide a fallback. * src/Makefile.am (noinst_HEADERS): Add fault-macos-i386.h. (EXTRA_DIST): Add stackvma-mach.c. * tests/sigsegv1.c: Abort after 10 handler invocations. (main): Drop SKIP message, now emitted by automake 1.7.x. * tests/sigsegv2.c: Abort after 10 handler invocations. (main): Drop SKIP message, now emitted by automake 1.7.x. * tests/stackoverflow1.c (main): Drop SKIP message, now emitted by automake 1.7.x. 2002-10-14 Bruno Haible * src/fault-none.h: New file. * src/fault.h: Include CFG_FAULT unconditionally. * src/leave-none.c: New file. * src/leave.c: Include CFG_LEAVE unconditionally. * src/stackvma.c: Include CFG_STACKVMA unconditionally. * configure.in (CFG_LEAVE, CFG_STACKVMA): Define always. * src/Makefile.am (noinst_HEADERS): Add fault-none.h. (EXTRA_DIST): Add leave-none.c. Reported by Paolo Bonzini . 2002-09-30 Bruno Haible * src/Makefile.am (noinst_HEADERS): Add fault-hurd.h, fault-linux-m68k.c, fault-macos-powerpc.h, fault-macos-powerpc.c, signals-hurd.h, signals-macos.h. 2002-09-30 Bruno Haible * Makefile.am (check-next): Don't ask for reports from i?86-*-linux* platforms. 2002-09-30 Bruno Haible Better Linux/PowerPC support. * configure.in: Change Linux/PowerPC support. * src/fault-linux-powerpc.h (SIGSEGV_FAULT_ADDRESS): New macro. 2002-09-30 Bruno Haible Better Linux/m68k support. * configure.in: Change Linux/m68k support. * src/fault-linux-m68k.c: New file. * src/fault-linux-m68k.h: Use it. 2002-09-30 Bruno Haible Tentative Hurd support. * configure.in: Add Hurd support. * src/signals-hurd.h: New file. * src/fault-hurd.h: New file. 2002-09-30 Bruno Haible MacOSX/PowerPC support. * configure.in: Add MacOSX/PowerPC support. * src/signals-macos.h: New file. * src/fault-macos-powerpc.c: New file. * src/fault-macos-powerpc.h: New file. 2002-09-16 Bruno Haible * src/fault-posix.h: Don't include . Needed for hppa-linux. Reported by Will Newton . 2002-08-28 Bruno Haible * Version 2.0 released. 2002-07-28 Bruno Haible Big reorganization and rewrite. Every file changed.