This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFC] sigsetjmp/siglongjmp on cygwin
- To: bje at cygnus dot com
- Subject: Re: [RFC] sigsetjmp/siglongjmp on cygwin
- From: Andrew Cagney <ac131313 at cygnus dot com>
- Date: Fri, 10 Aug 2001 03:25:22 -0400
- Cc: Keith Seitz <keiths at cygnus dot com>, Eli Zaretskii <eliz at is dot elta dot co dot il>, Mark Kettenis <kettenis at science dot uva dot nl>, gdb-patches at sources dot redhat dot com
- References: <Pine.GSO.4.33.0108011357170.26158-100000@makita.cygnus.com>
Ben,
Since you know a thing or two about autoconf
(http://sources.redhat.com/autobook/ ;-) would you mind giving an
opinion on the below.
The full thread is at:
http://sources.redhat.com/ml/gdb-patches/2001-08/msg00012.html
Andrew
> Hi,
>
> I would like to discuss what to do about siglongjmp/sigsetjmp. These
> functions were recently added to configure.in:
>
> 2001-07-12 Mark Kettenis <kettenis@gnu.org>
>
> * configure.in: Add check for sigsetjmp.
>
> To make a long story short, I spent a lot of time trying to track this
> down. The crux of it is that sigsetjmp/siglongjmp _do_ exist on cygwin,
> but they are not reliable. I don't know why, but they are not.
>
> Until the above change, cygwin used setjmp/longjmp, and this patch will
> force gdb to use them again.
>
> I'm open to better ways of dealing with this.
> Keith
>
> Possible ChangeLog
> 2001-08-01 Keith Seitz <keiths@redhat.com>
>
> * configure.in: Don't use sigsetjmp/siglongjmp on
> cygwin, even if it is available: it doesn't work.
> * configure: Regenerate.
>
> Possible Patch
> Index: configure.in
> ===================================================================
> RCS file: /cvs/src/src/gdb/configure.in,v
> retrieving revision 1.66
> diff -u -p -r1.66 configure.in
> --- configure.in 2001/07/12 13:48:45 1.66
> +++ configure.in 2001/08/01 21:01:29
> @@ -137,11 +137,16 @@ AC_FUNC_ALLOCA
>
> # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
> # since sigsetjmp might only be defined as a macro.
> +# Cygwin has sigsetjmp/siglongjmp, but it doesn't seem to work...
> AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
> [AC_TRY_COMPILE([
> #include <setjmp.h>
> ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
> -gdb_cv_func_sigsetjmp=yes, gdb_cv_func_sigsetjmp=no)])
> +[case "${host}" in
> + *cygwin*) gdb_cv_func_sigsetjmp=no ;;
> + *) gdb_cv_func_sigsetjmp=yes ;;
> +esac
> +], gdb_cv_func_sigsetjmp=no)])
> if test $gdb_cv_func_sigsetjmp = yes; then
> AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
> fi
>
>
>
>