diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/signals/signals.c | 24 |
2 files changed, 26 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f4c0016..5285f49 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2002-06-09 Daniel Jacobowitz <drow@mvista.com> + * signals/signals.c (target_signal_from_host): Fix #ifdef + SIGRTMIN case. + (do_target_signal_to_host): Likewise. + +2002-06-09 Daniel Jacobowitz <drow@mvista.com> + * mips-tdep.c (mips_find_abi_section): New function. (mips_gdbarch_init): Call it. diff --git a/gdb/signals/signals.c b/gdb/signals/signals.c index 643e450..0057e60 100644 --- a/gdb/signals/signals.c +++ b/gdb/signals/signals.c @@ -498,8 +498,11 @@ target_signal_from_host (int hostsig) if (33 <= hostsig && hostsig <= 63) return (enum target_signal) (hostsig - 33 + (int) TARGET_SIGNAL_REALTIME_33); - else if (hostsig == 64) - return TARGET_SIGNAL_REALTIME_64; + else if (hostsig == 32) + return TARGET_SIGNAL_REALTIME_32; + else if (64 <= hostsig && hostsig <= 127) + return (enum target_signal) + (hostsig - 64 + (int) TARGET_SIGNAL_REALTIME_64); else error ("GDB bug: target.c (target_signal_from_host): unrecognized real-time signal"); } @@ -784,8 +787,21 @@ do_target_signal_to_host (enum target_signal oursig, if (retsig >= SIGRTMIN && retsig <= SIGRTMAX) return retsig; } - else if (oursig == TARGET_SIGNAL_REALTIME_64) - return 64; + else if (oursig == TARGET_SIGNAL_REALTIME_32) + { + /* TARGET_SIGNAL_REALTIME_32 isn't contiguous with + TARGET_SIGNAL_REALTIME_33. It is 32 by definition. */ + return 32; + } + else if (oursig >= TARGET_SIGNAL_REALTIME_64 + && oursig <= TARGET_SIGNAL_REALTIME_127) + { + /* This block of signals is continuous, and + TARGET_SIGNAL_REALTIME_64 is 64 by definition. */ + int retsig = + (int) oursig - (int) TARGET_SIGNAL_REALTIME_64 + 64; + return retsig; + } #endif *oursig_ok = 0; return 0; |