From bc7b765ab71f967eb2a9c3da111d7529eec46fbe Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Sun, 3 Jul 2016 11:56:21 -0700 Subject: 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. --- gdb/common/signals.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gdb/common/signals.c') diff --git a/gdb/common/signals.c b/gdb/common/signals.c index 45c0c73..f84935d 100644 --- a/gdb/common/signals.c +++ b/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) -- cgit v1.1