2002-07-15 Bruno Haible * sigsegv.h.in (HAVE_STACK_OVERFLOW_RECOVERY): Define also on FreeBSD. (stackoverflow_context_t): Define as 'struct sigcontext *' on FreeBSD. * handler.c (SIGSEGV_ALL_SIGNALS) [FreeBSD]: Add SIGSEGV; this is the signal that gets sent on stack overflow. (get_vma) [FreeBSD]: New. (reset_onstack_flag) [FreeBSD]: New . 2002-05-07 Paolo Bonzini * sigsegv.h.in [__hpux, hpux]: Define HAVE_SIGSEGV_RECOVERY. * handler.c (UNIX_HPUX) [__hpux, hpux]: New macro. Define the hacks to access CR21. * test1.c (mmap_zeromap): Return the address. (handler): Don't hardcode the correct fault address. (main): Set page to the result of mmap_zeromap. * test2.c (mmap_zeromap): Return the address. (main): Set area1/area2/area3 to the result of mmap_zeromap. 2002-05-06 Bruno Haible * test1.c: Include , for exit(). * test2.c: Likewise. * test3.c: Likewise. 2002-04-28 Bruno Haible * Makefile.devel (ACLOCAL): Remove variable. (ACSELECT): Remove variable. (OTHERMACROS): Remove variable. (m4/*.m4): New rules. (autoconf/aclocal.m4): Construct using aclocal instead of acselect. 2001-08-25 Bruno Haible Upgrade to autoconf-2.52. * autoconf/autoconf: Upgrade to autoconf-2.52. * autoconf/acgeneral.m4: Remove file. * autoconf/acspecific.m4: Remove file. * autoconf/autoconf.m4f: New file, from autoconf-2.52. * autoconf/aclocal.m4: Require autoconf-2.52. (CL_CANONICAL_HOST): Call AC_CANONICAL_HOST. Don't cache the result, AC_CANONICAL_HOST does it itself. Add $SHELL in front of $ac_config_guess and $ac_config_sub. (CL_SIGACTION_REINSTALL): Include , for memset declaration. * Makefile.devel (AUTOCONF_FILES): Remove acgeneral.m4, acspecific.m4. Add autoconf.m4f. (configure): Use autoconf options -A, -l instead of -m. * config.h.in: Don't define HAVE_MEMSET. (MPROTECT_CONST, SETRLIMIT_CONST): Use #undef, not #define, to work around an autoconf bug. 2001-08-05 Bruno Haible * autoconf/acgeneral.m4 (AC_MSG_RESULTPROTO): Remove macro. (AC_LANG_EXTERN): Move to aclocal.m4. * autoconf/aclocal.m4 (AC_LANG_EXTERN): Moved here from acgeneral.m4. (CL_PROTO): Use AC_MSG_RESULT directly, instead of AC_MSG_RESULTPROTO. (CL_SILENT): No need to pushdef AC_MSG_RESULTPROTO. 2001-06-08 Bruno Haible * autoconf/ltmain.sh: Upgrade to libtool-1.4. * autoconf/ltconfig: Remove file. 2001-06-08 Bruno Haible * autoconf/config.guess: Update to GNU version 2001-05-11. * autoconf/config.sub: Likewise. 2001-05-09 Bruno Haible * sigsegv.h.in: Recognize __arm__ as CPU indicator on Linux. * handler.c: Likewise. 2001-03-19 Bruno Haible * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Always define ac_config_guess and ac_config_sub. Then ignore requests for AC_CONFIG_AUX_DIR_DEFAULT or AC_CANONICAL_HOST. 2001-03-19 Bruno Haible * ltconfig, ltmain.sh: Upgrade to libtool-1.3.5. 2001-02-20 Bruno Haible * Makefile.in (libdir, includedir): Use the autoconf determined value, in order to respect the configure arguments. (mandir): Remove unused variable. * Makefile.msvc (mandir): LIkewise. * Makefile.in (install, installdirs, uninstall): Support DESTDIR. 2000-12-08 Bruno Haible * Makefile.in (exec_prefix): Use configure's --exec-prefix argument. 2000-11-15 Bruno Haible * Makefile.msvc: Add support for MFLAGS and DEBUG parameters. 2000-11-12 Bruno Haible * autoconf/config.guess, autoconf/config.sub: Upgrade to newest version from GNU CVS. 2000-11-08 Bruno Haible * aclocal.m4 (CL_SIGNAL_UNBLOCK): Enable 'volatile' for gotsig, wasblocked. (CL_SIGNAL_BLOCK_OTHERS): Enable 'volatile' for gotsig, somewereblocked. (CL_SIGACTION_UNBLOCK): Enable 'volatile' for gotsig, wasblocked. 2000-09-29 Bruno Haible * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Fix bug in 2000-05-23 change. 2000-05-29 Bruno Haible * autoconf/aclocal.m4 (CL_PROG_INSTALL): Fix typo. Reported by Thomas Klausner . 2000-05-25 Bruno Haible * Makefile.msvc: Use 'copy' and 'ren' instead of 'cp' and 'mv'. 2000-05-23 Bruno Haible * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Determine host_cpu, host_vendor, host_os correctly if $host has more than two hyphens. 2000-04-02 Bruno Haible Allow building on filesystems lacking symlinks and hard links. * Makefile.devel (autoconf/aclocal.m4): Replace AC_PROG_LN_S with CL_PROG_LN_S. * configure.in: Add CL_PROG_LN_S. * src/Makefile.in (LN): Remove. 1999-06-18 Bruno Haible * handler.c (user_handler): Define also on WIN32. 1999-06-16 Bruno Haible * sigsegv.h.in (stackoverflow_context_t): More precise definition on Solaris, Irix, OSF/1. 1999-05-30 Bruno Haible * Makefile.in (install-lib): New target. 1999-05-29 Bruno Haible * Makefile.in (install): Make sure the directories $(prefix) and $(exec_prefix) exist. 1999-05-16 Bruno Haible Libtoolify. * autoconf/ltconfig, autoconf/ltmain.sh: New files, from libtool-1.2. * Makefile.devel (OTHERMACROS): New macro. (autoconf/aclocal.m4): Add the contents of $(OTHERMACROS). * configure.in: Call CL_CANONICAL_HOST and AM_PROG_LIBTOOL. * Makefile.in (LIBTOOL, LIBTOOL_COMPILE, LIBTOOL_LINK, LIBTOOL_INSTALL, LIBTOOL_UNINSTALL): New macros. (top_builddir): New macro. (OBJECTS): Change .o to .lo. (all): Change .a to .la. (handler.lo): Renamed from handler.o. Use $(LIBTOOL_COMPILE). (dispatcher.lo): Renamed from dispatcher.o. Use $(LIBTOOL_COMPILE). (libsigsegv.la): Renamed from libsigsegv.a. Use $(LIBTOOL_LINK). (install): Use $(LIBTOOL_INSTALL). Copy ./sigsegv.h not $(srcdir)/sigsegv.h. (uninstall): Use $(LIBTOOL_UNINSTALL). (test1, test2, test3): Change .a to .la. Use $(LIBTOOL_LINK). (clean): Also remove *.lo *.la .libs _libs. (distclean): Also remove libtool. 1999-05-16 Bruno Haible For Linux 2.0.x with glibc2.0. * aclocal.m4 (CL_SIGALTSTACK): Define HAVE_SIGALTSTACK only if the sigaction flags macro SA_ONSTACK is also defined. 1999-05-15 Bruno Haible For DEC OSF/1 3.2. * sigsegv.h.in (HAVE_STACK_OVERFLOW_RECOVERY): Undefine if test3 doesn't work. * Makefile.in (SEDPREPARE0, SEDCOMMAND3): New macros. (sigsegv.h): Also try running test3. 1999-05-09 Bruno Haible * sigsegv.h.in (HAVE_STACK_OVERFLOW_RECOVERY): Also define on Solaris, Irix, OSF/1. * handler.c: Use symbolic UNIX_* macros for various Unix brands. (SIGSEGV_FAULT_HANDLER_ARGLIST, SIGSEGV_ALL_SIGNALS): Define also when HAVE_SIGSEGV_RECOVERY is not defined. Add support for Linux/m68k, Linux/mips, Linux/alpha, Linux/arm. (SIGSEGV_FAULT_CONTEXT, SIGSEGV_FAULT_STACKPOINTER): New macros. (get_vma) [UNIX_LINUX]: No need to initialize prev twice. (reset_onstack_flag) [UNIX_LINUX]: New function. (get_vma, reset_onstack_flag) [UNIX_SUNOS, UNIX_IRIX, UNIX_OSF]: New functions. (sigsegv_leave_handler): If SIGACTION_NEED_UNBLOCK is defined, unblock the signal itself. Call reset_onstack_flag. (stackoverflow_deinstall_handler): Print something if sigaltstack fails. * aclocal.m4 (CL_SIGNAL_UNBLOCK, CL_SIGNAL_BLOCK_OTHERS, CL_SIGACTION_UNBLOCK): Perform the test if either POSIX or BSD signal mask primitives are available. Otherwise, SIGACTION_NEED_UNBLOCK would not be defined on Solaris. 1999-05-07 Bruno Haible * test3.c (main): Make more verbose. Avoid a "make check" failure with "cc" on DEC OSF/1 4.0. * test2.c (barrier): New function. (main): Call it at the right moment. * Makefile.in (SEDPREPARE1, SEDCOMMAND2): Don't use # as literal. Only GNU make understands \#, other `make's don't. 1999-05-02 Bruno Haible Support for catching stack overflow on Unix, using sigaltstack(). * aclocal.m4 (CL_SIGALTSTACK): New macro. * configure.in: Add CL_SIGALTSTACK and CL_RLIMIT. * config.h.in: Add HAVE_SIGALTSTACK, HAVE_SETRLIMIT, RLIMIT_RESOURCE_T, SETRLIMIT_CONST. * Makefile.in (SEDPREPARE1, SEDCOMMAND1, SEDCOMMAND2): New macros. (sigsegv.h): Use them. Depend on config.h. * sigsegv.h.in: Test __linux__ instead of linux. Conditionally define HAVE_STACK_OVERFLOW_RECOVERY for Linux. (sigsegv_handler_t): Add `serious' argument. (stackoverflow_context_t): New type. (stackoverflow_handler_t, stackoverflow_install_handler, stackoverflow_deinstall_handler): Declare unconditionally. (stackoverflow_handler_t): Add `scp' argument. (stackoverflow_install_handler): Change return type to `int'. * handler.c: Test __linux__ instead of linux. Move Win32 section to the end. On Unix, install SIGSEGV handler if HAVE_SIGSEGV_RECOVERY or HAVE_STACK_OVERFLOW_RECOVERY. (vma_struct): New type. (get_vma): New function. (SIGSEGV_FAULT_CONTEXT, SIGSEGV_FAULT_STACKPOINTER): New macros. (stack_top): New variable. (remember_stack_top): New function. (stk_user_handler, stk_extra_stack, stk_extra_stack_size): New variables. (no_user_handler): Remove, use NULL instead. (sigsegv_handler): Extend to support HAVE_STACK_OVERFLOW_RECOVERY. (install_for): Add SA_ONSTACK to sigaction flags if needed. (sigsegv_deinstall_handler): Deinstall handlers only if not needed for stk_user_handler. (stackoverflow_install_handler, stackoverflow_deinstall_handler): New functions. (stack_overflow_handler) [WIN32]: Add context argument. (main_exception_filter): Pass context argument. * test1.c (handler): Add `serious' argument. * test2.c (handler): Likewise. * test3.c (stackoverflow_handler): Add `scp' argument. Use sigsegv_leave_handler instead of complicated #ifdef spaghetti. (main): Call setrlimit, to make sure the recursion doesn't kill the machine. If stackoverflow_install_handler returns -1, bypass the test, because it would crash. 1999-03-15 Bruno Haible * configure.in: Add CL_CC_GCC. * Makefile.in: Use "-x none" option where appropriate. * dispatcher.c: In C++ mode, don't define a function named `delete'. 1999-02-08 Bruno Haible * sigsegv/sigsegv.h.in: Renamed from sigsegv/sigsegv.h. Added "#undef HAVE_SIGSEGV_RECOVERY", commented out. * Makefile.in (sigsegv.h): Try compiling and running test1. If it fails, like on Solaris 2.5 and 2.5.1, uncomment "#undef HAVE_SIGSEGV_RECOVERY". * Makefile.msvc: Update. 1999-01-29 Bruno Haible * sigsegv.h [linux && sparc]: Disable HAVE_SIGSEGV_RECOVERY. It does not work any more.