- 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)
65 lines
1.9 KiB
Text
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")
|