sim: nltvals: pull target signal out into a dedicated source file
authorMike Frysinger <vapier@gentoo.org>
Wed, 7 Jul 2021 02:43:10 +0000 (22:43 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sun, 31 Oct 2021 08:39:13 +0000 (04:39 -0400)
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
sim/common/Make-common.in
sim/common/gentmap.c
sim/common/local.mk
sim/common/nltvals.def
sim/common/target-newlib-signal.c [new file with mode: 0644]

index e0be7cfb33806c33c29d66202b8a125b2e64b72d..6bb96bfbfa648181b3515d218c84fe0c0deb34be 100644 (file)
@@ -254,6 +254,7 @@ am_common_libcommon_a_OBJECTS =  \
        common/common_libcommon_a-portability.$(OBJEXT) \
        common/common_libcommon_a-sim-load.$(OBJEXT) \
        common/common_libcommon_a-target-newlib-errno.$(OBJEXT) \
+       common/common_libcommon_a-target-newlib-signal.$(OBJEXT) \
        common/common_libcommon_a-version.$(OBJEXT)
 common_libcommon_a_OBJECTS = $(am_common_libcommon_a_OBJECTS)
 igen_libigen_a_AR = $(AR) $(ARFLAGS)
@@ -845,6 +846,7 @@ common_libcommon_a_SOURCES = \
        common/portability.c \
        common/sim-load.c \
        common/target-newlib-errno.c \
+       common/target-newlib-signal.c \
        common/version.c
 
 @SIM_ENABLE_IGEN_TRUE@igen_libigen_a_SOURCES = \
@@ -1019,6 +1021,8 @@ common/common_libcommon_a-sim-load.$(OBJEXT): common/$(am__dirstamp) \
        common/$(DEPDIR)/$(am__dirstamp)
 common/common_libcommon_a-target-newlib-errno.$(OBJEXT):  \
        common/$(am__dirstamp) common/$(DEPDIR)/$(am__dirstamp)
+common/common_libcommon_a-target-newlib-signal.$(OBJEXT):  \
+       common/$(am__dirstamp) common/$(DEPDIR)/$(am__dirstamp)
 common/common_libcommon_a-version.$(OBJEXT): common/$(am__dirstamp) \
        common/$(DEPDIR)/$(am__dirstamp)
 
@@ -1142,6 +1146,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-portability.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-sim-load.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-target-newlib-errno.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-target-newlib-signal.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common_libcommon_a-version.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@igen/$(DEPDIR)/filter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@igen/$(DEPDIR)/filter_host.Po@am__quote@
@@ -1234,6 +1239,20 @@ common/common_libcommon_a-target-newlib-errno.obj: common/target-newlib-errno.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o common/common_libcommon_a-target-newlib-errno.obj `if test -f 'common/target-newlib-errno.c'; then $(CYGPATH_W) 'common/target-newlib-errno.c'; else $(CYGPATH_W) '$(srcdir)/common/target-newlib-errno.c'; fi`
 
+common/common_libcommon_a-target-newlib-signal.o: common/target-newlib-signal.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT common/common_libcommon_a-target-newlib-signal.o -MD -MP -MF common/$(DEPDIR)/common_libcommon_a-target-newlib-signal.Tpo -c -o common/common_libcommon_a-target-newlib-signal.o `test -f 'common/target-newlib-signal.c' || echo '$(srcdir)/'`common/target-newlib-signal.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) common/$(DEPDIR)/common_libcommon_a-target-newlib-signal.Tpo common/$(DEPDIR)/common_libcommon_a-target-newlib-signal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='common/target-newlib-signal.c' object='common/common_libcommon_a-target-newlib-signal.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o common/common_libcommon_a-target-newlib-signal.o `test -f 'common/target-newlib-signal.c' || echo '$(srcdir)/'`common/target-newlib-signal.c
+
+common/common_libcommon_a-target-newlib-signal.obj: common/target-newlib-signal.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT common/common_libcommon_a-target-newlib-signal.obj -MD -MP -MF common/$(DEPDIR)/common_libcommon_a-target-newlib-signal.Tpo -c -o common/common_libcommon_a-target-newlib-signal.obj `if test -f 'common/target-newlib-signal.c'; then $(CYGPATH_W) 'common/target-newlib-signal.c'; else $(CYGPATH_W) '$(srcdir)/common/target-newlib-signal.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) common/$(DEPDIR)/common_libcommon_a-target-newlib-signal.Tpo common/$(DEPDIR)/common_libcommon_a-target-newlib-signal.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='common/target-newlib-signal.c' object='common/common_libcommon_a-target-newlib-signal.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o common/common_libcommon_a-target-newlib-signal.obj `if test -f 'common/target-newlib-signal.c'; then $(CYGPATH_W) 'common/target-newlib-signal.c'; else $(CYGPATH_W) '$(srcdir)/common/target-newlib-signal.c'; fi`
+
 common/common_libcommon_a-version.o: common/version.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(common_libcommon_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT common/common_libcommon_a-version.o -MD -MP -MF common/$(DEPDIR)/common_libcommon_a-version.Tpo -c -o common/common_libcommon_a-version.o `test -f 'common/version.c' || echo '$(srcdir)/'`common/version.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) common/$(DEPDIR)/common_libcommon_a-version.Tpo common/$(DEPDIR)/common_libcommon_a-version.Po
index 5db835713e7c0d3c9281efbde57b576fd7e82cdc..d6b34d521229300132db46be9d44d729825f2a81 100644 (file)
@@ -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-%)
 
index 8e6e3aeda325060f022dd0bc398aab496215c5b7..fbc290185b523454feab232a76cf91653691e993 100644 (file)
@@ -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)
index 71a931715c2d23ee85141a8955b9169897e185c9..bf5eda0b0d3b20b1a3196f571ecd5aef55310eee 100644 (file)
@@ -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
index 5e72e596ee80d7d4e0154a7b9cde892c839f0268..6d44d03ea5b486a512eb7337b66f391d01bcdc72 100644 (file)
@@ -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 (file)
index 0000000..b886bfa
--- /dev/null
@@ -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 },
+};