public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: gdb-patches@sourceware.org
Subject: [PATCH 2/2] sim: nltvals: pull target signal out into a dedicated source file
Date: Sun, 31 Oct 2021 04:41:21 -0400	[thread overview]
Message-ID: <20211031084121.26732-2-vapier@gentoo.org> (raw)
In-Reply-To: <20211031084121.26732-1-vapier@gentoo.org>

Like we just did for pulling out the errno map, pull out the signal
map into a dedicated common file.  All newlib ports are using the
same signal map which makes it easy.
---
 sim/Makefile.in                   |  19 +++++
 sim/common/Make-common.in         |   1 +
 sim/common/gentmap.c              |  24 ------
 sim/common/local.mk               |   1 +
 sim/common/nltvals.def            |  41 ---------
 sim/common/target-newlib-signal.c | 136 ++++++++++++++++++++++++++++++
 6 files changed, 157 insertions(+), 65 deletions(-)
 create mode 100644 sim/common/target-newlib-signal.c

diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in
index 5db835713e7c..d6b34d521229 100644
--- a/sim/common/Make-common.in
+++ b/sim/common/Make-common.in
@@ -232,6 +232,7 @@ COMMON_OBJS_NAMES = \
 	portability.o \
 	sim-load.o \
 	target-newlib-errno.o \
+	target-newlib-signal.o \
 	version.o
 COMMON_OBJS = $(COMMON_OBJS_NAMES:%=../common/common_libcommon_a-%)
 
diff --git a/sim/common/gentmap.c b/sim/common/gentmap.c
index 8e6e3aeda325..fbc290185b52 100644
--- a/sim/common/gentmap.c
+++ b/sim/common/gentmap.c
@@ -16,13 +16,6 @@ static struct tdefs sys_tdefs[] = {
   { 0, 0 }
 };
 
-static struct tdefs signal_tdefs[] = {
-#define signal_defs
-#include "nltvals.def"
-#undef signal_defs
-  { 0, 0 }
-};
-
 static struct tdefs open_tdefs[] = {
 #define open_defs
 #include "nltvals.def"
@@ -46,11 +39,6 @@ gen_targ_vals_h (void)
     printf ("#define TARGET_%s %d\n", t->symbol, t->value);
   printf ("\n");
 
-  printf ("/* signal values */\n");
-  for (t = &signal_tdefs[0]; t->symbol; ++t)
-    printf ("#define TARGET_%s %d\n", t->symbol, t->value);
-  printf ("\n");
-
   printf ("/* open flag values */\n");
   for (t = &open_tdefs[0]; t->symbol; ++t)
     printf ("#define TARGET_%s 0x%x\n", t->symbol, t->value);
@@ -69,7 +57,6 @@ gen_targ_map_c (void)
 
   printf ("#include \"defs.h\"\n");
   printf ("#include <fcntl.h>\n");
-  printf ("#include <signal.h>\n");
   printf ("#include \"ansidecl.h\"\n");
   printf ("#include \"sim/callback.h\"\n");
   printf ("#include \"targ-vals.h\"\n");
@@ -87,17 +74,6 @@ gen_targ_map_c (void)
   printf ("  { 0, -1, -1 }\n");
   printf ("};\n\n");
 
-  printf ("/* signals mapping table */\n");
-  printf ("CB_TARGET_DEFS_MAP cb_init_signal_map[] = {\n");
-  for (t = &signal_tdefs[0]; t->symbol; ++t)
-    {
-      printf ("#ifdef %s\n", t->symbol);
-      printf ("  { \"%s\", %s, TARGET_%s },\n", t->symbol, t->symbol, t->symbol);
-      printf ("#endif\n");
-    }
-  printf ("  { 0, -1, -1 }\n");
-  printf ("};\n\n");
-
   printf ("/* open flags mapping table */\n");
   printf ("CB_TARGET_DEFS_MAP cb_init_open_map[] = {\n");
   for (t = &open_tdefs[0]; t->symbol; ++t)
diff --git a/sim/common/local.mk b/sim/common/local.mk
index 71a931715c2d..bf5eda0b0d3b 100644
--- a/sim/common/local.mk
+++ b/sim/common/local.mk
@@ -37,6 +37,7 @@ noinst_LIBRARIES += %D%/libcommon.a
 	%D%/portability.c \
 	%D%/sim-load.c \
 	%D%/target-newlib-errno.c \
+	%D%/target-newlib-signal.c \
 	%D%/version.c
 
 %D%/version.c: %D%/version.c-stamp ; @true
diff --git a/sim/common/nltvals.def b/sim/common/nltvals.def
index 5e72e596ee80..6d44d03ea5b4 100644
--- a/sim/common/nltvals.def
+++ b/sim/common/nltvals.def
@@ -1,46 +1,5 @@
 /* Newlib/libgloss macro values needed by remote target support.  */
 /* This file is machine generated by gennltvals.py.  */
-#ifdef signal_defs
-/* from signal.h */
-/* from sys/signal.h */
-/* begin signal target macros */
- { "SIGABRT", 6 },
- { "SIGALRM", 14 },
- { "SIGBUS", 10 },
- { "SIGCHLD", 20 },
- { "SIGCLD", 20 },
- { "SIGCONT", 19 },
- { "SIGEMT", 7 },
- { "SIGFPE", 8 },
- { "SIGHUP", 1 },
- { "SIGILL", 4 },
- { "SIGINT", 2 },
- { "SIGIO", 23 },
- { "SIGIOT", 6 },
- { "SIGKILL", 9 },
- { "SIGLOST", 29 },
- { "SIGPIPE", 13 },
- { "SIGPOLL", 23 },
- { "SIGPROF", 27 },
- { "SIGQUIT", 3 },
- { "SIGSEGV", 11 },
- { "SIGSTOP", 17 },
- { "SIGSYS", 12 },
- { "SIGTERM", 15 },
- { "SIGTRAP", 5 },
- { "SIGTSTP", 18 },
- { "SIGTTIN", 21 },
- { "SIGTTOU", 22 },
- { "SIGURG", 16 },
- { "SIGUSR1", 30 },
- { "SIGUSR2", 31 },
- { "SIGVTALRM", 26 },
- { "SIGWINCH", 28 },
- { "SIGXCPU", 24 },
- { "SIGXFSZ", 25 },
-#undef signal_defs
-/* end signal target macros */
-#endif
 #ifdef open_defs
 /* from fcntl.h */
 /* from sys/fcntl.h */
diff --git a/sim/common/target-newlib-signal.c b/sim/common/target-newlib-signal.c
new file mode 100644
index 000000000000..b886bfa93b9f
--- /dev/null
+++ b/sim/common/target-newlib-signal.c
@@ -0,0 +1,136 @@
+/* Target errno mappings for newlib/libgloss environment.
+   Copyright 1995-2021 Free Software Foundation, Inc.
+   Contributed by Mike Frysinger.
+
+   This file is part of simulators.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* This must come before any other includes.  */
+#include "defs.h"
+
+#include <signal.h>
+
+#include "sim/callback.h"
+
+/* This file is kept up-to-date via the gennltvals.py script.  Do not edit
+   anything between the START & END comment blocks below.  */
+
+CB_TARGET_DEFS_MAP cb_init_signal_map[] = {
+  /* gennltvals: START */
+#ifdef SIGABRT
+  { "SIGABRT", SIGABRT, 6 },
+#endif
+#ifdef SIGALRM
+  { "SIGALRM", SIGALRM, 14 },
+#endif
+#ifdef SIGBUS
+  { "SIGBUS", SIGBUS, 10 },
+#endif
+#ifdef SIGCHLD
+  { "SIGCHLD", SIGCHLD, 20 },
+#endif
+#ifdef SIGCLD
+  { "SIGCLD", SIGCLD, 20 },
+#endif
+#ifdef SIGCONT
+  { "SIGCONT", SIGCONT, 19 },
+#endif
+#ifdef SIGEMT
+  { "SIGEMT", SIGEMT, 7 },
+#endif
+#ifdef SIGFPE
+  { "SIGFPE", SIGFPE, 8 },
+#endif
+#ifdef SIGHUP
+  { "SIGHUP", SIGHUP, 1 },
+#endif
+#ifdef SIGILL
+  { "SIGILL", SIGILL, 4 },
+#endif
+#ifdef SIGINT
+  { "SIGINT", SIGINT, 2 },
+#endif
+#ifdef SIGIO
+  { "SIGIO", SIGIO, 23 },
+#endif
+#ifdef SIGIOT
+  { "SIGIOT", SIGIOT, 6 },
+#endif
+#ifdef SIGKILL
+  { "SIGKILL", SIGKILL, 9 },
+#endif
+#ifdef SIGLOST
+  { "SIGLOST", SIGLOST, 29 },
+#endif
+#ifdef SIGPIPE
+  { "SIGPIPE", SIGPIPE, 13 },
+#endif
+#ifdef SIGPOLL
+  { "SIGPOLL", SIGPOLL, 23 },
+#endif
+#ifdef SIGPROF
+  { "SIGPROF", SIGPROF, 27 },
+#endif
+#ifdef SIGQUIT
+  { "SIGQUIT", SIGQUIT, 3 },
+#endif
+#ifdef SIGSEGV
+  { "SIGSEGV", SIGSEGV, 11 },
+#endif
+#ifdef SIGSTOP
+  { "SIGSTOP", SIGSTOP, 17 },
+#endif
+#ifdef SIGSYS
+  { "SIGSYS", SIGSYS, 12 },
+#endif
+#ifdef SIGTERM
+  { "SIGTERM", SIGTERM, 15 },
+#endif
+#ifdef SIGTRAP
+  { "SIGTRAP", SIGTRAP, 5 },
+#endif
+#ifdef SIGTSTP
+  { "SIGTSTP", SIGTSTP, 18 },
+#endif
+#ifdef SIGTTIN
+  { "SIGTTIN", SIGTTIN, 21 },
+#endif
+#ifdef SIGTTOU
+  { "SIGTTOU", SIGTTOU, 22 },
+#endif
+#ifdef SIGURG
+  { "SIGURG", SIGURG, 16 },
+#endif
+#ifdef SIGUSR1
+  { "SIGUSR1", SIGUSR1, 30 },
+#endif
+#ifdef SIGUSR2
+  { "SIGUSR2", SIGUSR2, 31 },
+#endif
+#ifdef SIGVTALRM
+  { "SIGVTALRM", SIGVTALRM, 26 },
+#endif
+#ifdef SIGWINCH
+  { "SIGWINCH", SIGWINCH, 28 },
+#endif
+#ifdef SIGXCPU
+  { "SIGXCPU", SIGXCPU, 24 },
+#endif
+#ifdef SIGXFSZ
+  { "SIGXFSZ", SIGXFSZ, 25 },
+#endif
+  /* gennltvals: END */
+  { NULL, -1, -1 },
+};
-- 
2.33.0


      reply	other threads:[~2021-10-31  8:41 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-31  8:41 [PATCH 1/2] sim: nltvals: pull target errno " Mike Frysinger
2021-10-31  8:41 ` Mike Frysinger [this message]

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=20211031084121.26732-2-vapier@gentoo.org \
    --to=vapier@gentoo.org \
    --cc=gdb-patches@sourceware.org \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).