Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Hannes Domani via gdb-patches" <gdb-patches@sourceware.org>
To: Gdb-patches <gdb-patches@sourceware.org>
Subject: Re: [RFAv3 2/6] Improve process exit status macros on MinGW
Date: Mon, 06 Jan 2020 17:47:00 -0000	[thread overview]
Message-ID: <271718487.11947642.1578332826544@mail.yahoo.com> (raw)
In-Reply-To: <271718487.11947642.1578332826544.ref@mail.yahoo.com>

 While locally fixing a merge-conflict I noticed the following:

Am Freitag, 3. Januar 2020, 20:59:45 MEZ hat Pedro Alves <palves@redhat.com> Folgendes geschrieben:

> Here's the updated patch.  I confirmed that it builds on MinGW-W64
> using my Fedora's cross cross compiler, but I didn't try to run
> the resulting GDB (since I'm not on Windows).

> diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c
> index ca9b81df298..58f8838b885 100644
> --- a/gdb/windows-tdep.c
> +++ b/gdb/windows-tdep.c
> @@ -35,6 +35,57 @@
> #include "solib-target.h"
> #include "gdbcore.h"
>
> +/* Windows signal numbers differ between MinGW flavors and between
> +  those and Cygwin.  The below enumeration was gleaned from the
> +  respective headers; the ones marked with MinGW64/Cygwin are defined
> +  only by MinGW64 and Cygwin, not by mingw.org's MinGW.  FIXME: We
> +  should really have distinct MinGW vs Cygwin OSABIs, and two
> +  separate enums, selected at runtime.  */
> +
> +enum
> +  {
> +  WINDOWS_SIGHUP = 1,    /* MinGW64/Cygwin */
> +  WINDOWS_SIGINT = 2,
> +  WINDOWS_SIGQUIT = 3,    /* MinGW64/Cygwin */
> +  WINDOWS_SIGILL = 4,
> +  WINDOWS_SIGTRAP = 5,    /* MinGW64/Cygwin */
> +#ifdef __CYGWIN__
> +  WINDOWS_SGABRT = 6,
> +#else
> +  WINDOWS_SIGIOT = 6,    /* MinGW64 */
> +#endif
> +  WINDOWS_SIGEMT = 7,    /* MinGW64/Cygwin */
> +  WINDOWS_SIGFPE = 8,
> +  WINDOWS_SIGKILL = 9,    /* MinGW64/Cygwin */
> +  WINDOWS_SIGBUS = 10,    /* MinGW64/Cygwin */
> +  WINDOWS_SIGSEGV = 11,
> +  WINDOWS_SIGSYS = 12,    /* MinGW64/Cygwin */
> +  WINDOWS_SIGPIPE = 13,/* MinGW64/Cygwin */
> +  WINDOWS_SIGALRM = 14,/* MinGW64/Cygwin */
> +  WINDOWS_SIGTERM = 15,
> +#ifdef __CYGWIN__
> +  WINDOWS_SIGURG = 16,
> +  WINDOWS_SIGSTOP = 17,
> +  WINDOWS_SIGTSTP = 18,
> +  WINDOWS_SIGCONT = 19,
> +  WINDOWS_SIGCHLD = 20,
> +  WINDOWS_SIGTTIN = 21,
> +  WINDOWS_SIGTTOU = 22,
> +  WINDOWS_SIGIO = 23,
> +  WINDOWS_SIGXCPU = 24,
> +  WINDOWS_SIGXFSZ = 25,
> +  WINDOWS_SIGVTALRM = 26,
> +  WINDOWS_SIGPROF = 27,
> +  WINDOWS_SIGWINCH = 28,
> +  WINDOWS_SIGLOST = 29,
> +  WINDOWS_SIGUSR1 = 30,
> +  WINDOWS_SIGUSR2 = 31
> +#else
> +  WINDOWS_SIGBREAK = 21,
> +  WINDOWS_SIGABRT = 22
> +#endif
> +  };

For __CYGWIN__ it's WINDOWS_SGABRT, otherwise it's WINDOWS_SIGABRT.

> +
> struct cmd_list_element *info_w32_cmdlist;
>
> typedef struct thread_information_block_32
> @@ -461,6 +512,83 @@ init_w32_command_list (void)
>     }
> }
>
> +/* Implementation of `gdbarch_gdb_signal_to_target'.  */
> +
> +static int
> +windows_gdb_signal_to_target (struct gdbarch *gdbarch, enum gdb_signal signal)
> +{
> +  switch (signal)
> +    {
> +    case GDB_SIGNAL_0:
> +      return 0;
> +    case GDB_SIGNAL_HUP:
> +      return WINDOWS_SIGHUP;
> +    case GDB_SIGNAL_INT:
> +      return WINDOWS_SIGINT;
> +    case GDB_SIGNAL_QUIT:
> +      return WINDOWS_SIGQUIT;
> +    case GDB_SIGNAL_ILL:
> +      return WINDOWS_SIGILL;
> +    case GDB_SIGNAL_TRAP:
> +      return WINDOWS_SIGTRAP;
> +    case GDB_SIGNAL_ABRT:
> +      return WINDOWS_SIGABRT;

I don't think this compiles for cygwin.

> +    case GDB_SIGNAL_EMT:
> +      return WINDOWS_SIGEMT;
> +    case GDB_SIGNAL_FPE:
> +      return WINDOWS_SIGFPE;
> +    case GDB_SIGNAL_KILL:
> +      return WINDOWS_SIGKILL;
> +    case GDB_SIGNAL_BUS:
> +      return WINDOWS_SIGBUS;
> +    case GDB_SIGNAL_SEGV:
> +      return WINDOWS_SIGSEGV;
> +    case GDB_SIGNAL_SYS:
> +      return WINDOWS_SIGSYS;
> +    case GDB_SIGNAL_PIPE:
> +      return WINDOWS_SIGPIPE;
> +    case GDB_SIGNAL_ALRM:
> +      return WINDOWS_SIGALRM;
> +    case GDB_SIGNAL_TERM:
> +      return WINDOWS_SIGTERM;
> +#ifdef __CYGWIN__
> +    case GDB_SIGNAL_URG:
> +      return WINDOWS_SIGURG;
> +    case GDB_SIGNAL_STOP:
> +      return WINDOWS_SIGSTOP;
> +    case GDB_SIGNAL_TSTP:
> +      return WINDOWS_SIGTSTP;
> +    case GDB_SIGNAL_CONT:
> +      return WINDOWS_SIGCONT;
> +    case GDB_SIGNAL_CHLD:
> +      return WINDOWS_SIGCHLD;
> +    case GDB_SIGNAL_TTIN:
> +      return WINDOWS_SIGTTIN;
> +    case GDB_SIGNAL_TTOU:
> +      return WINDOWS_SIGTTOU;
> +    case GDB_SIGNAL_IO:
> +      return WINDOWS_SIGIO;
> +    case GDB_SIGNAL_XCPU:
> +      return WINDOWS_SIGXCPU;
> +    case GDB_SIGNAL_XFSZ:
> +      return WINDOWS_SIGXFSZ;
> +    case GDB_SIGNAL_VTALRM:
> +      return WINDOWS_SIGVTALRM;
> +    case GDB_SIGNAL_PROF:
> +      return WINDOWS_SIGPROF;
> +    case GDB_SIGNAL_WINCH:
> +      return WINDOWS_SIGWINCH;
> +    case GDB_SIGNAL_PWR:
> +      return WINDOWS_SIGLOST;
> +    case GDB_SIGNAL_USR1:
> +      return WINDOWS_SIGUSR1;
> +    case GDB_SIGNAL_USR2:
> +      return WINDOWS_SIGUSR2;
> +#endif    /* __CYGWIN__ */
> +    }
> +  return -1;
> +}
> +
> /* To be called from the various GDB_OSABI_CYGWIN handlers for the
>     various Windows architectures and machine types.  */
>
> @@ -477,6 +605,8 @@ windows_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
>   set_gdbarch_iterate_over_objfiles_in_search_order
>     (gdbarch, windows_iterate_over_objfiles_in_search_order);
>
> +  set_gdbarch_gdb_signal_to_target (gdbarch, windows_gdb_signal_to_target);
> +
>   set_solib_ops (gdbarch, &solib_target_so_ops);
> }
>
>
> base-commit: 44f81a76542dbeada2541a05de191ae0ac0fbc2c
> --
> 2.14.5


       reply	other threads:[~2020-01-06 17:47 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <271718487.11947642.1578332826544.ref@mail.yahoo.com>
2020-01-06 17:47 ` Hannes Domani via gdb-patches [this message]
2020-01-06 18:23   ` Eli Zaretskii
2019-05-04 16:18 [RFAv3 0/6] Implement | (pipe) command Philippe Waroquiers
2019-05-04 16:18 ` [RFAv3 2/6] Improve process exit status macros on MinGW Philippe Waroquiers
2019-05-27 17:33   ` Pedro Alves
2019-05-27 18:38     ` Eli Zaretskii
2019-05-29 12:38       ` Pedro Alves
2019-05-29 15:03         ` Eli Zaretskii
2019-05-30 10:26         ` Philippe Waroquiers
2019-12-17 17:00     ` Eli Zaretskii
2019-12-17 17:51       ` Pedro Alves
2019-12-18 17:08         ` Eli Zaretskii
2019-12-18 17:42           ` Pedro Alves
2019-12-18 18:33             ` Eli Zaretskii
2019-12-25 15:57               ` Eli Zaretskii
2020-01-03 19:59                 ` Pedro Alves
2020-01-03 20:08                   ` Pedro Alves
2020-01-03 20:34                   ` Eli Zaretskii
2020-01-06 11:57                     ` Pedro Alves
2020-01-06 16:17                       ` Eli Zaretskii
2020-01-06 18:51                         ` Pedro Alves
2020-01-06 19:26                           ` Eli Zaretskii
2020-01-06 18:59                   ` Hannes Domani via gdb-patches
2020-01-06 19:34                     ` Eli Zaretskii
2020-01-06 19:38                       ` Hannes Domani via gdb-patches
2020-01-06 19:55                         ` Eli Zaretskii
2020-01-03 17:04               ` Pedro Alves

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=271718487.11947642.1578332826544@mail.yahoo.com \
    --to=gdb-patches@sourceware.org \
    --cc=ssbssa@yahoo.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox