1999-06-18  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

        * handler.c (user_handler): Define also on WIN32.

1999-06-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

        * sigsegv.h.in (stackoverflow_context_t): More precise definition on
          Solaris, Irix, OSF/1.

1999-05-30  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

        * Makefile.in (install-lib): New target.

1999-05-29  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

        * Makefile.in (install): Make sure the directories $(prefix) and
          $(exec_prefix) exist.

1999-05-16  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>

        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  <bruno@linuix.math.u-bordeaux.fr>

        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  <bruno@linuix.math.u-bordeaux.fr>

        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  <bruno@linuix.math.u-bordeaux.fr>

        * 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  <bruno@linuix.math.u-bordeaux.fr>

        * 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  <bruno@linuix.math.u-bordeaux.fr>

        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  <bruno@linuix.math.u-bordeaux.fr>

        * 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  <bruno@linuix.math.u-bordeaux.fr>

        * 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  <bruno@linuix.math.u-bordeaux.fr>

        * sigsegv.h [linux && sparc]: Disable HAVE_SIGSEGV_RECOVERY. It does
          not work any more.

