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
next parent 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