X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Fsignals%2Fsignals.c;h=ad19951846120aa11cdb930bfadde925958ec8c0;hb=960cb5556f18d309e5ac4d082b76b281f5e27dd2;hp=82c63d89978da4f58b4c6b2cb1b2d95df0f8bb8d;hpb=a5ad465accd73e8c7abeda27341b22470ad5d27d;p=binutils-gdb.git diff --git a/gdb/signals/signals.c b/gdb/signals/signals.c index 82c63d89978..ad199518461 100644 --- a/gdb/signals/signals.c +++ b/gdb/signals/signals.c @@ -30,6 +30,20 @@ #include +/* Always use __SIGRTMIN if it's available. SIGRTMIN is the lowest + _available_ realtime signal, not the lowest supported; glibc takes + several for its own use. */ + +#ifndef REALTIME_LO +# if defined(__SIGRTMIN) +# define REALTIME_LO __SIGRTMIN +# define REALTIME_HI __SIGRTMAX +# elif defined(SIGRTMIN) +# define REALTIME_LO __SIGRTMIN +# define REALTIME_HI __SIGRTMAX +# endif +#endif + /* This table must match in order and size the signals in enum target_signal in target.h. */ /* *INDENT-OFF* */ @@ -492,22 +506,6 @@ target_signal_from_host (int hostsig) } #endif -#if defined (SIGRTMIN) - if (hostsig >= SIGRTMIN && hostsig <= SIGRTMAX) - { - /* This block of TARGET_SIGNAL_REALTIME value is in order. */ - if (33 <= hostsig && hostsig <= 63) - return (enum target_signal) - (hostsig - 33 + (int) TARGET_SIGNAL_REALTIME_33); - 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"); - } -#endif return TARGET_SIGNAL_UNKNOWN; } @@ -744,40 +742,12 @@ do_target_signal_to_host (enum target_signal oursig, default: #if defined (REALTIME_LO) - if (oursig >= TARGET_SIGNAL_REALTIME_33 - && oursig <= TARGET_SIGNAL_REALTIME_63) + if (oursig < REALTIME_LO || oursig >= REALTIME_HI) { - /* This block of signals is continuous, and - TARGET_SIGNAL_REALTIME_33 is 33 by definition. */ - int retsig = - (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + 33; - if (retsig >= REALTIME_LO && retsig < REALTIME_HI) - return retsig; - } -#if (REALTIME_LO < 33) - 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; - } -#endif -#if (REALTIME_HI > 64) - 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; - if (retsig >= REALTIME_LO && retsig < REALTIME_HI) - return retsig; + *oursig_ok = 0; + return 0; } - -#endif -#endif -#if defined (SIGRTMIN) if (oursig >= TARGET_SIGNAL_REALTIME_33 && oursig <= TARGET_SIGNAL_REALTIME_63) { @@ -785,8 +755,7 @@ do_target_signal_to_host (enum target_signal oursig, TARGET_SIGNAL_REALTIME_33 is 33 by definition. */ int retsig = (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + 33; - if (retsig >= SIGRTMIN && retsig <= SIGRTMAX) - return retsig; + return retsig; } else if (oursig == TARGET_SIGNAL_REALTIME_32) { @@ -804,6 +773,7 @@ do_target_signal_to_host (enum target_signal oursig, return retsig; } #endif + *oursig_ok = 0; return 0; }