This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Cygwin build failure following [PATCH 3/3 v5] Demangler crash handler
- From: "Pierre Muller" <pierre dot muller at ics-cnrs dot unistra dot fr>
- To: "'Gary Benson'" <gbenson at redhat dot com>, <gdb-patches at sourceware dot org>
- Cc: "'Andrew Burgess'" <aburgess at broadcom dot com>, "'Doug Evans'" <xdje42 at gmail dot com>, "'Eli Zaretskii'" <eliz at gnu dot org>, "'Florian Weimer'" <fw at deneb dot enyo dot de>, "'Mark Kettenis'" <mark dot kettenis at xs4all dot nl>, "'Pedro Alves'" <palves at redhat dot com>, "'Tom Tromey'" <tromey at redhat dot com>, "'Corinna Vinschen'" <vinschen at redhat dot com>
- Date: Sun, 13 Jul 2014 18:11:11 +0200
- Subject: Cygwin build failure following [PATCH 3/3 v5] Demangler crash handler
- Authentication-results: sourceware.org; auth=none
- References: <20140609152229 dot GA27494 at blade dot nx> <20140609152434 dot GD27494 at blade dot nx>
Hi Gary,
I think your patch generates
build failure on cygwin32:
../../../binutils-gdb/gdb/cp-support.c: In function 'gdb_demangle':
../../../binutils-gdb/gdb/cp-support.c:1560:21: erreur: 'SA_ONSTACK'
undeclared (first use in this function)
sa.sa_flags = SA_ONSTACK;
^
../../../binutils-gdb/gdb/cp-support.c:1560:21: note: each undeclared
identifier is reported only once for each function it appears in
Makefile:1075: recipe for target 'cp-support.o' failed
The reason is that SA_ONSTACK
is not defined in cygwin's /usr/include/signal.h header
whereas SA_RESTART is defined in signal header,
and HAVE_SIGACTION is set in config.h
> +#if defined (HAVE_SIGACTION) && defined (SA_RESTART)
> + sa.sa_handler = gdb_demangle_signal_handler;
> + sigemptyset (&sa.sa_mask);
> + sa.sa_flags = SA_ONSTACK;
> + sigaction (SIGSEGV, &sa, &old_sa);
> +#else
> + ofunc = (void (*)()) signal (SIGSEGV,
> gdb_demangle_signal_handler);
> +#endif
A simple patch would probably be to add a separate check
#ifdef SA_ONSTACK
sa.sa_flags = SA_O?STACK;
#endif
But I honestly don't know enough about
Cygwin signal emulation to know if this is a correct fix or not.
Maybe Corinna Vinschen can comment on this?
Pierre Muller