diff options
author | John Baldwin <jhb@FreeBSD.org> | 2016-07-23 13:23:37 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2016-07-23 13:23:37 +0000 |
commit | fc899d47235dd75ba7b19051752e87292f75b37d (patch) | |
tree | 34bda6726a04cbf085dc12350828af35a824a518 /devel/gdb/files/commit-bc7b765 | |
parent | ea3d3f386c1c42ad7a30118b6d8587e877ebad0c (diff) | |
download | ports-fc899d47235dd75ba7b19051752e87292f75b37d.tar.gz ports-fc899d47235dd75ba7b19051752e87292f75b37d.zip |
Notes
Diffstat (limited to 'devel/gdb/files/commit-bc7b765')
-rw-r--r-- | devel/gdb/files/commit-bc7b765 | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/devel/gdb/files/commit-bc7b765 b/devel/gdb/files/commit-bc7b765 new file mode 100644 index 000000000000..5791ffeaa694 --- /dev/null +++ b/devel/gdb/files/commit-bc7b765 @@ -0,0 +1,102 @@ +commit bc7b765ab71f967eb2a9c3da111d7529eec46fbe +Author: John Baldwin <jhb@FreeBSD.org> +Date: Sun Jul 3 11:56:21 2016 -0700 + + Pass SIGLIBRT directly to child processes. + + FreeBSD's librt uses SIGLIBRT as an internal signal to implement + SIGEV_THREAD sigevent notifications. Similar to SIGLWP or SIGCANCEL + this signal should be passed through to child processes by default. + + include/ChangeLog: + + * signals.def: Add GDB_SIGNAL_LIBRT. + + gdb/ChangeLog: + + * common/signals.c (gdb_signal_from_host): Handle SIGLIBRT. + (do_gdb_signal_to_host): Likewise. + * infrun.c (_initialize_infrun): Pass GDB_SIGNAL_LIBRT through to + programs. + * proc-events.c (signal_table): Add entry for SIGLIBRT. + +diff --git gdb/common/signals.c gdb/common/signals.c +index 45c0c73..f84935d 100644 +--- gdb/common/signals.c ++++ gdb/common/signals.c +@@ -331,6 +331,10 @@ gdb_signal_from_host (int hostsig) + if (hostsig == SIGINFO) + return GDB_SIGNAL_INFO; + #endif ++#if defined (SIGLIBRT) ++ if (hostsig == SIGLIBRT) ++ return GDB_SIGNAL_LIBRT; ++#endif + + #if defined (REALTIME_LO) + if (hostsig >= REALTIME_LO && hostsig < REALTIME_HI) +@@ -584,6 +588,10 @@ do_gdb_signal_to_host (enum gdb_signal oursig, + case GDB_SIGNAL_INFO: + return SIGINFO; + #endif ++#if defined (SIGLIBRT) ++ case GDB_SIGNAL_LIBRT: ++ return SIGLIBRT; ++#endif + + default: + #if defined (REALTIME_LO) +diff --git gdb/infrun.c gdb/infrun.c +index 70a0790..257ac8a 100644 +--- gdb/infrun.c ++++ gdb/infrun.c +@@ -9409,6 +9409,8 @@ leave it stopped or free to run as needed."), + signal_print[GDB_SIGNAL_WAITING] = 0; + signal_stop[GDB_SIGNAL_CANCEL] = 0; + signal_print[GDB_SIGNAL_CANCEL] = 0; ++ signal_stop[GDB_SIGNAL_LIBRT] = 0; ++ signal_print[GDB_SIGNAL_LIBRT] = 0; + + /* Update cached state. */ + signal_cache_update (-1); +diff --git gdb/proc-events.c gdb/proc-events.c +index b291d31..daa6f58 100644 +--- gdb/proc-events.c ++++ gdb/proc-events.c +@@ -1536,6 +1536,9 @@ static struct trans signal_table[] = + #ifdef SIGAIO + { SIGAIO, "SIGAIO", "Asynchronous I/O signal" }, + #endif ++#ifdef SIGLIBRT ++ { SIGLIBRT, "SIGLIBRT", "Used by librt" }, ++#endif + + /* FIXME: add real-time signals. */ + }; +diff --git include/gdb/ChangeLog include/gdb/ChangeLog +index f05ba4b..05f127e 100644 +--- include/gdb/ChangeLog ++++ include/gdb/ChangeLog +@@ -1,3 +1,7 @@ ++2016-07-15 John Baldwin <jhb@FreeBSD.org> ++ ++ * signals.def: Add GDB_SIGNAL_LIBRT. ++ + 2016-01-06 Mike Frysinger <vapier@gentoo.org> + + * remote-sim.h (sim_open): Mark argv const. +diff --git include/gdb/signals.def include/gdb/signals.def +index 61cc88c..2b30e71 100644 +--- include/gdb/signals.def ++++ include/gdb/signals.def +@@ -194,7 +194,9 @@ SET (GDB_EXC_EMULATION, 148, "EXC_EMULATION", "Emulation instruction") + SET (GDB_EXC_SOFTWARE, 149, "EXC_SOFTWARE", "Software generated exception") + SET (GDB_EXC_BREAKPOINT, 150, "EXC_BREAKPOINT", "Breakpoint") + ++SET (GDB_SIGNAL_LIBRT, 151, "SIGLIBRT", "librt internal signal") ++ + /* 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_LAST, 152, NULL, "GDB_SIGNAL_LAST") |