freebsd-ports/devel/gdb/files/patch-sigev
John Baldwin bc869246e9 Update to 7.9.
- Move changes that have been adopted upstream after 7.9 into extra patches
  named after the commit to GDB's master branch.  This includes previous
  patches such as the signal trampoline detection fixes and XSAVE support
  as well as well as new fixes such as fixing 'gcore' to not require procfs.
- The tui-io.c patch previously needed with new readline has been accepted
  upstream.
- The remaining patches have been updated to apply cleanly.
- The threads target has been fixed to actually pass register requests for
  LWP-backed threads down to the ptrace backends without detouring via
  libthread_db which actually fixes AVX with threads.

PR:		199451
Differential Revision:	https://reviews.freebsd.org/D2293
Approved by:	bapt, luca.pizzamiglio@gmail.com (maintainer)
2015-04-29 13:53:45 +00:00

65 lines
1.9 KiB
Text

diff --git gdb/common/signals.c gdb/common/signals.c
index d4cf953..019371e 100644
--- gdb/common/signals.c
+++ gdb/common/signals.c
@@ -41,6 +41,12 @@ struct gdbarch;
# endif
#endif
+#ifdef __FreeBSD__
+# ifndef SIGLIBRT
+# define SIGLIBRT 33 /* Older versions do not define the constant */
+# endif
+#endif
+
/* This table must match in order and size the signals in enum
gdb_signal. */
@@ -332,6 +338,11 @@ gdb_signal_from_host (int hostsig)
return GDB_SIGNAL_INFO;
#endif
+#if defined (SIGLIBRT)
+ if ( hostsig == SIGLIBRT )
+ return GDB_SIGNAL_FBSD_LIBRT;
+#endif
+
#if defined (REALTIME_LO)
if (hostsig >= REALTIME_LO && hostsig < REALTIME_HI)
{
@@ -585,6 +596,11 @@ do_gdb_signal_to_host (enum gdb_signal oursig,
return SIGINFO;
#endif
+#if defined (SIGLIBRT)
+ case GDB_SIGNAL_FBSD_LIBRT:
+ return SIGLIBRT;
+#endif
+
default:
#if defined (REALTIME_LO)
retsig = 0;
diff --git gdb/infrun.c gdb/infrun.c
index 11dcc0e..6ec4d0b 100644
--- gdb/infrun.c
+++ gdb/infrun.c
@@ -7715,6 +7715,8 @@ leave it stopped or free to run as needed."),
signal_print[GDB_SIGNAL_WINCH] = 0;
signal_stop[GDB_SIGNAL_PRIO] = 0;
signal_print[GDB_SIGNAL_PRIO] = 0;
+ signal_stop[GDB_SIGNAL_FBSD_LIBRT] = 0;
+ signal_print[GDB_SIGNAL_FBSD_LIBRT] = 0;
/* These signals are used internally by user-level thread
implementations. (See signal(5) on Solaris.) Like the above
diff --git include/gdb/signals.def include/gdb/signals.def
index 3f49980..857c69d 100644
--- include/gdb/signals.def
+++ include/gdb/signals.def
@@ -197,4 +197,5 @@ SET (GDB_EXC_BREAKPOINT, 150, "EXC_BREAKPOINT", "Breakpoint")
/* If you are adding a new signal, add it just above this comment. */
/* Last and unused enum value, for sizing arrays, etc. */
-SET (GDB_SIGNAL_LAST, 151, NULL, "GDB_SIGNAL_LAST")
+SET (GDB_SIGNAL_FBSD_LIBRT, 151, "SIGLIBRT", "GDB_SIGNAL_FBSD_LIBRT")
+SET (GDB_SIGNAL_LAST, 152, NULL, "GDB_SIGNAL_MAGIC")