sim: drop unused gentmap & nltvals.def logic
authorMike Frysinger <vapier@gentoo.org>
Sun, 28 Nov 2021 05:31:57 +0000 (00:31 -0500)
committerMike Frysinger <vapier@gentoo.org>
Sun, 28 Nov 2021 18:24:00 +0000 (13:24 -0500)
Now that all ports have switched to target-newlib-* files, there's
no need for these files & generating things at build time.  So punt
the logic and make target-newlib-syscall a hard requirement.

sim/.gitignore
sim/common/Make-common.in
sim/common/gennltvals.py
sim/common/gentmap.c [deleted file]
sim/common/nltvals.def [deleted file]
sim/mips/Makefile.in

index 0ba781c2234670d4f50de8e1fb8a7b1bceb99d23..bcccc0232a94adc721dceb75a3dea637d55bebe0 100644 (file)
@@ -1,7 +1,5 @@
 ChangeLog
 
-/*/gentmap
 /*/run
 /*/hw-config.h
-/*/targ-*
 /*/version.c
index f834edbec8a8c76153a0c798d061d4fabaf14e72..2d4159393ac58c790af3e919e256fc617bf53122 100644 (file)
@@ -235,18 +235,12 @@ COMMON_OBJS_NAMES = \
        target-newlib-errno.o \
        target-newlib-open.o \
        target-newlib-signal.o \
+       target-newlib-syscall.o \
        version.o
 COMMON_OBJS = $(COMMON_OBJS_NAMES:%=../common/common_libcommon_a-%)
 
 LIB_OBJS = modules.o syscall.o $(COMMON_OBJS) $(SIM_OBJS)
 
-# TODO: Migrate everyone to target-newlib-syscall.o.
-ifeq ($(NL_TARGET),)
-COMMON_OBJS_NAMES += target-newlib-syscall.o
-else
-LIB_OBJS += targ-map.o
-endif
-
 COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS)
 LINK_FOR_BUILD = $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(LDFLAGS_FOR_BUILD) -o $@
 
@@ -266,29 +260,6 @@ run$(EXEEXT): $(SIM_RUN_OBJS) libsim.a $(LIBDEPS)
        $(ECHO_CCLD) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o run$(EXEEXT) \
          $(SIM_RUN_OBJS) libsim.a $(EXTRA_LIBS)
 
-# FIXME: Ideally, callback.o and friends live in a library outside of
-# both the gdb and simulator source trees (e.g. devo/remote.  Not
-# devo/libremote because this directory would contain more than just
-# a library).
-
-gentmap.o: Makefile $(srccom)/gentmap.c $(srccom)/nltvals.def
-       $(ECHO_CC) $(COMPILE_FOR_BUILD) -o $@ -c $(srccom)/gentmap.c $(NL_TARGET)
-
-gentmap: gentmap.o
-       $(ECHO_CC) $(LINK_FOR_BUILD) $<
-
-targ-vals.h targ-map.c: stamp-tvals
-stamp-tvals: gentmap
-       $(ECHO_STAMP) targ-vals.h
-       $(SILENCE) ./gentmap -h >tmp-tvals.h
-       $(SILENCE) $(SHELL) $(srcroot)/move-if-change tmp-tvals.h targ-vals.h
-ifneq ($(NL_TARGET),)
-       $(ECHO_STAMP) targ-tmap.c
-       $(SILENCE) ./gentmap -c >tmp-tmap.c
-       $(SILENCE) $(SHELL) $(srcroot)/move-if-change tmp-tmap.c targ-map.c
-endif
-       $(SILENCE) touch $@
-
 #
 # Rules for building sim-* components.  Triggered by listing the corresponding
 # .o file in the list of simulator targets.
@@ -413,11 +384,7 @@ all_object_files = $(LIB_OBJS) $(SIM_RUN_OBJS)
 generated_files = \
        $(SIM_EXTRA_DEPS) \
        hw-config.h \
-       modules.c \
-       targ-vals.h
-ifneq ($(NL_TARGET),)
-generated_files += targ-map.c
-endif
+       modules.c
 
 # Ensure that generated files are created early.  Use order-only
 # dependencies if available.  They require GNU make 3.80 or newer,
@@ -532,7 +499,6 @@ mostlyclean clean: $(SIM_EXTRA_CLEAN)
                run$(EXEEXT) libsim.a \
                hw-config.h stamp-hw \
                modules.c stamp-modules \
-               gentmap targ-map.c targ-vals.h stamp-tvals \
                tmp-mloop.hin tmp-mloop.h tmp-mloop.cin tmp-mloop.c
 
 distclean maintainer-clean realclean: clean $(SIM_EXTRA_DISTCLEAN)
index 1e98691cb3d512ef7a88bbb73088b5bd55220452..3f2422c42160191f7860727279a5e030b6e8c349 100755 (executable)
@@ -16,9 +16,9 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-"""Helper to generate nltvals.def.
+"""Helper to generate target-newlib-* files.
 
-nltvals.def is a file that describes various newlib/libgloss target values used
+target-newlib-* are files that describe various newlib/libgloss values used
 by the host/target interface.  This needs to be rerun whenever the newlib source
 changes.  Developers manually run it.
 
@@ -99,7 +99,7 @@ def extract_syms(cpp: str, srcdir: Path,
     return ret
 
 
-def gentvals(output_dir: Path, output: TextIO,
+def gentvals(output_dir: Path,
              cpp: str, srctype: str, srcdir: Path,
              headers: Iterable[str],
              pattern: str,
@@ -118,62 +118,37 @@ def gentvals(output_dir: Path, output: TextIO,
 
     syms = extract_syms(cpp, srcdir, headers, pattern, filter)
 
-    # If we have a map file, use it directly.
     target_map = output_dir / f'target-newlib-{srctype}.c'
-    if target_map.exists():
-        old_lines = target_map.read_text().splitlines()
-        start_i = end_i = None
-        for i, line in enumerate(old_lines):
-            if START_MARKER in line:
-                start_i = i
-            if END_MARKER in line:
-                end_i = i
-        assert start_i and end_i
-        new_lines = old_lines[0:start_i + 1]
-        new_lines.extend(
-            f'#ifdef {sym}\n'
-            f'  {{ "{sym}", {sym}, {val} }},\n'
-            f'#endif' for sym, val in sorted(syms.items()))
-        new_lines.extend(old_lines[end_i:])
-        target_map.write_text('\n'.join(new_lines) + '\n')
-        return
-
-    # Fallback to classic nltvals.def.
-    if target is not None:
-        print(f'#ifdef NL_TARGET_{target}', file=output)
-    print(f'#ifdef {srctype}_defs', file=output)
-
-    print('\n'.join(f'/* from {x} */' for x in headers), file=output)
-
-    if target is None:
-        print(f'/* begin {srctype} target macros */', file=output)
-    else:
-        print(f'/* begin {target} {srctype} target macros */', file=output)
-
-    for sym, val in sorted(syms.items()):
-        print(f' {{ "{sym}", {val} }},', file=output)
-
-    print(f'#undef {srctype}_defs', file=output)
-    if target is None:
-        print(f'/* end {srctype} target macros */', file=output)
-    else:
-        print(f'/* end {target} {srctype} target macros */', file=output)
-        print('#endif', file=output)
-    print('#endif', file=output)
+    assert target_map.exists(), f'{target_map}: Missing skeleton'
+    old_lines = target_map.read_text().splitlines()
+    start_i = end_i = None
+    for i, line in enumerate(old_lines):
+        if START_MARKER in line:
+            start_i = i
+        if END_MARKER in line:
+            end_i = i
+    assert start_i and end_i
+    new_lines = old_lines[0:start_i + 1]
+    new_lines.extend(
+        f'#ifdef {sym}\n'
+        f'  {{ "{sym}", {sym}, {val} }},\n'
+        f'#endif' for sym, val in sorted(syms.items()))
+    new_lines.extend(old_lines[end_i:])
+    target_map.write_text('\n'.join(new_lines) + '\n')
 
 
-def gen_common(output_dir: Path, output: TextIO, newlib: Path, cpp: str):
+def gen_common(output_dir: Path, newlib: Path, cpp: str):
     """Generate the common C library constants.
 
     No arch should override these.
     """
-    gentvals(output_dir, output, cpp, 'errno', newlib / 'newlib/libc/include',
+    gentvals(output_dir, cpp, 'errno', newlib / 'newlib/libc/include',
              ('errno.h', 'sys/errno.h'), 'E[A-Z0-9]*')
 
-    gentvals(output_dir, output, cpp, 'signal', newlib / 'newlib/libc/include',
+    gentvals(output_dir, cpp, 'signal', newlib / 'newlib/libc/include',
              ('signal.h', 'sys/signal.h'), r'SIG[A-Z0-9]*', filter=r'SIGSTKSZ')
 
-    gentvals(output_dir, output, cpp, 'open', newlib / 'newlib/libc/include',
+    gentvals(output_dir, cpp, 'open', newlib / 'newlib/libc/include',
              ('fcntl.h', 'sys/fcntl.h', 'sys/_default_fcntl.h'), r'O_[A-Z0-9]*')
 
 
@@ -248,16 +223,15 @@ def gen_target_syscall(output_dir: Path, newlib: Path, cpp: str):
     target_map_h.write_text('\n'.join(new_lines_h) + '\n')
 
 
-def gen_targets(output_dir: Path, output: TextIO, newlib: Path, cpp: str):
+def gen_targets(output_dir: Path, newlib: Path, cpp: str):
     """Generate the target-specific lists."""
     gen_target_syscall(output_dir, newlib, cpp)
 
 
-def gen(output_dir: Path, output: TextIO, newlib: Path, cpp: str):
+def gen(output_dir: Path, newlib: Path, cpp: str):
     """Generate all the things!"""
-    print(FILE_HEADER, file=output)
-    gen_common(output_dir, output, newlib, cpp)
-    gen_targets(output_dir, output, newlib, cpp)
+    gen_common(output_dir, newlib, cpp)
+    gen_targets(output_dir, newlib, cpp)
 
 
 def get_parser() -> argparse.ArgumentParser:
@@ -315,9 +289,7 @@ def main(argv: List[str]) -> int:
     """The main entry point for scripts."""
     opts = parse_args(argv)
 
-    output = (opts.output / 'nltvals.def').open('w', encoding='utf-8')
-
-    gen(opts.output, output, opts.newlib, opts.cpp)
+    gen(opts.output, opts.newlib, opts.cpp)
     return 0
 
 
diff --git a/sim/common/gentmap.c b/sim/common/gentmap.c
deleted file mode 100644 (file)
index 4a55c29..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Generate targ-vals.h and targ-map.c.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-struct tdefs {
-  char *symbol;
-  int value;
-};
-
-static struct tdefs sys_tdefs[] = {
-#define sys_defs
-#include "nltvals.def"
-#undef sys_defs
-  { 0, 0 }
-};
-
-static void
-gen_targ_vals_h (void)
-{
-  struct tdefs *t;
-
-  printf ("/* Target header values needed by the simulator and gdb.  */\n");
-  printf ("/* This file is machine generated by gentmap.c.  */\n\n");
-
-  printf ("#ifndef TARG_VALS_H\n");
-  printf ("#define TARG_VALS_H\n\n");
-
-  printf ("/* syscall values */\n");
-  for (t = &sys_tdefs[0]; t->symbol; ++t)
-    printf ("#define TARGET_%s %d\n", t->symbol, t->value);
-  printf ("\n");
-
-  printf ("#endif /* TARG_VALS_H */\n");
-}
-
-static void
-gen_targ_map_c (void)
-{
-  struct tdefs *t;
-
-  printf ("/* Target value mapping utilities needed by the simulator and gdb.  */\n");
-  printf ("/* This file is machine generated by gentmap.c.  */\n\n");
-
-  printf ("#include \"defs.h\"\n");
-  printf ("#include \"ansidecl.h\"\n");
-  printf ("#include \"sim/callback.h\"\n");
-  printf ("#include \"targ-vals.h\"\n");
-  printf ("\n");
-
-  printf ("/* syscall mapping table */\n");
-  printf ("CB_TARGET_DEFS_MAP cb_init_syscall_map[] = {\n");
-  for (t = &sys_tdefs[0]; t->symbol; ++t)
-    {
-      printf ("#ifdef CB_%s\n", t->symbol);
-      /* Skip the "SYS_" prefix for the name.  */
-      printf ("  { \"%s\", CB_%s, TARGET_%s },\n", t->symbol + 4, t->symbol, t->symbol);
-      printf ("#endif\n");
-    }
-  printf ("  { 0, -1, -1 }\n");
-  printf ("};\n\n");
-}
-
-int
-main (int argc, char *argv[])
-{
-  if (argc != 2)
-    abort ();
-
-  if (strcmp (argv[1], "-h") == 0)
-    gen_targ_vals_h ();
-  else if (strcmp (argv[1], "-c") == 0)
-    gen_targ_map_c ();
-  else
-    abort ();
-
-  exit (0);
-}
diff --git a/sim/common/nltvals.def b/sim/common/nltvals.def
deleted file mode 100644 (file)
index 2425b70..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-/* Newlib/libgloss macro values needed by remote target support.  */
-/* This file is machine generated by gennltvals.py.  */
-#ifdef NL_TARGET_cr16
-#ifdef sys_defs
-/* from syscall.h */
-/* begin cr16 sys target macros */
- { "SYS_ARG", 24 },
- { "SYS_chdir", 12 },
- { "SYS_chmod", 15 },
- { "SYS_chown", 16 },
- { "SYS_close", 0x402 },
- { "SYS_create", 8 },
- { "SYS_execv", 11 },
- { "SYS_execve", 59 },
- { "SYS_exit", 0x410 },
- { "SYS_fork", 2 },
- { "SYS_fstat", 22 },
- { "SYS_getpid", 20 },
- { "SYS_isatty", 21 },
- { "SYS_kill", 60 },
- { "SYS_link", 9 },
- { "SYS_lseek", 0x405 },
- { "SYS_mknod", 14 },
- { "SYS_open", 0x401 },
- { "SYS_pipe", 42 },
- { "SYS_read", 0x403 },
- { "SYS_rename", 0x406 },
- { "SYS_stat", 38 },
- { "SYS_time", 0x300 },
- { "SYS_unlink", 0x407 },
- { "SYS_utime", 201 },
- { "SYS_wait", 202 },
- { "SYS_wait4", 7 },
- { "SYS_write", 0x404 },
-#undef sys_defs
-/* end cr16 sys target macros */
-#endif
-#endif
-#ifdef NL_TARGET_d10v
-#ifdef sys_defs
-/* from syscall.h */
-/* begin d10v sys target macros */
- { "SYS_ARG", 24 },
- { "SYS_chdir", 12 },
- { "SYS_chmod", 15 },
- { "SYS_chown", 16 },
- { "SYS_close", 6 },
- { "SYS_creat", 8 },
- { "SYS_execv", 11 },
- { "SYS_execve", 59 },
- { "SYS_exit", 1 },
- { "SYS_fork", 2 },
- { "SYS_fstat", 22 },
- { "SYS_getpid", 20 },
- { "SYS_isatty", 21 },
- { "SYS_kill", 60 },
- { "SYS_link", 9 },
- { "SYS_lseek", 19 },
- { "SYS_mknod", 14 },
- { "SYS_open", 5 },
- { "SYS_pipe", 42 },
- { "SYS_read", 3 },
- { "SYS_stat", 38 },
- { "SYS_time", 23 },
- { "SYS_unlink", 10 },
- { "SYS_utime", 201 },
- { "SYS_wait", 202 },
- { "SYS_wait4", 7 },
- { "SYS_write", 4 },
-#undef sys_defs
-/* end d10v sys target macros */
-#endif
-#endif
-#ifdef NL_TARGET_mcore
-#ifdef sys_defs
-/* from syscall.h */
-/* begin mcore sys target macros */
- { "SYS_access", 33 },
- { "SYS_close", 6 },
- { "SYS_creat", 8 },
- { "SYS_link", 9 },
- { "SYS_lseek", 19 },
- { "SYS_open", 5 },
- { "SYS_read", 3 },
- { "SYS_time", 13 },
- { "SYS_times", 43 },
- { "SYS_unlink", 10 },
- { "SYS_write", 4 },
-#undef sys_defs
-/* end mcore sys target macros */
-#endif
-#endif
-#ifdef NL_TARGET_riscv
-#ifdef sys_defs
-/* from syscall.h */
-/* begin riscv sys target macros */
- { "SYS_access", 1033 },
- { "SYS_brk", 214 },
- { "SYS_chdir", 49 },
- { "SYS_clock_gettime64", 403 },
- { "SYS_close", 57 },
- { "SYS_dup", 23 },
- { "SYS_exit", 93 },
- { "SYS_exit_group", 94 },
- { "SYS_faccessat", 48 },
- { "SYS_fcntl", 25 },
- { "SYS_fstat", 80 },
- { "SYS_fstatat", 79 },
- { "SYS_getcwd", 17 },
- { "SYS_getdents", 61 },
- { "SYS_getegid", 177 },
- { "SYS_geteuid", 175 },
- { "SYS_getgid", 176 },
- { "SYS_getmainvars", 2011 },
- { "SYS_getpid", 172 },
- { "SYS_gettimeofday", 169 },
- { "SYS_getuid", 174 },
- { "SYS_kill", 129 },
- { "SYS_link", 1025 },
- { "SYS_lseek", 62 },
- { "SYS_lstat", 1039 },
- { "SYS_mkdir", 1030 },
- { "SYS_mmap", 222 },
- { "SYS_mremap", 216 },
- { "SYS_munmap", 215 },
- { "SYS_open", 1024 },
- { "SYS_openat", 56 },
- { "SYS_pread", 67 },
- { "SYS_pwrite", 68 },
- { "SYS_read", 63 },
- { "SYS_rt_sigaction", 134 },
- { "SYS_stat", 1038 },
- { "SYS_time", 1062 },
- { "SYS_times", 153 },
- { "SYS_uname", 160 },
- { "SYS_unlink", 1026 },
- { "SYS_write", 64 },
- { "SYS_writev", 66 },
-#undef sys_defs
-/* end riscv sys target macros */
-#endif
-#endif
-#ifdef NL_TARGET_sh
-#ifdef sys_defs
-/* from syscall.h */
-/* begin sh sys target macros */
- { "SYS_ARG", 24 },
- { "SYS_argc", 172 },
- { "SYS_argn", 174 },
- { "SYS_argnlen", 173 },
- { "SYS_chdir", 12 },
- { "SYS_chmod", 15 },
- { "SYS_chown", 16 },
- { "SYS_close", 6 },
- { "SYS_creat", 8 },
- { "SYS_execv", 11 },
- { "SYS_execve", 59 },
- { "SYS_exit", 1 },
- { "SYS_fork", 2 },
- { "SYS_fstat", 22 },
- { "SYS_ftruncate", 130 },
- { "SYS_getpid", 20 },
- { "SYS_isatty", 21 },
- { "SYS_link", 9 },
- { "SYS_lseek", 19 },
- { "SYS_mknod", 14 },
- { "SYS_open", 5 },
- { "SYS_pipe", 42 },
- { "SYS_read", 3 },
- { "SYS_stat", 38 },
- { "SYS_time", 23 },
- { "SYS_truncate", 129 },
- { "SYS_unlink", 10 },
- { "SYS_utime", 201 },
- { "SYS_wait", 202 },
- { "SYS_wait4", 7 },
- { "SYS_write", 4 },
-#undef sys_defs
-/* end sh sys target macros */
-#endif
-#endif
-#ifdef NL_TARGET_v850
-#ifdef sys_defs
-/* from syscall.h */
-/* begin v850 sys target macros */
- { "SYS_ARG", 24 },
- { "SYS_chdir", 12 },
- { "SYS_chmod", 15 },
- { "SYS_chown", 16 },
- { "SYS_close", 6 },
- { "SYS_creat", 8 },
- { "SYS_execv", 11 },
- { "SYS_execve", 59 },
- { "SYS_exit", 1 },
- { "SYS_fork", 2 },
- { "SYS_fstat", 22 },
- { "SYS_getpid", 20 },
- { "SYS_gettimeofday", 116 },
- { "SYS_isatty", 21 },
- { "SYS_link", 9 },
- { "SYS_lseek", 19 },
- { "SYS_mknod", 14 },
- { "SYS_open", 5 },
- { "SYS_pipe", 42 },
- { "SYS_read", 3 },
- { "SYS_rename", 134 },
- { "SYS_stat", 38 },
- { "SYS_time", 23 },
- { "SYS_times", 43 },
- { "SYS_unlink", 10 },
- { "SYS_utime", 201 },
- { "SYS_wait", 202 },
- { "SYS_wait4", 7 },
- { "SYS_write", 4 },
-#undef sys_defs
-/* end v850 sys target macros */
-#endif
-#endif
-#ifdef sys_defs
-/* from syscall.h */
-/* begin sys target macros */
- { "SYS_argc", 22 },
- { "SYS_argn", 24 },
- { "SYS_argnlen", 23 },
- { "SYS_argv", 13 },
- { "SYS_argvlen", 12 },
- { "SYS_chdir", 14 },
- { "SYS_chmod", 16 },
- { "SYS_close", 3 },
- { "SYS_exit", 1 },
- { "SYS_fstat", 10 },
- { "SYS_getpid", 8 },
- { "SYS_gettimeofday", 19 },
- { "SYS_kill", 9 },
- { "SYS_link", 21 },
- { "SYS_lseek", 6 },
- { "SYS_open", 2 },
- { "SYS_read", 4 },
- { "SYS_reconfig", 25 },
- { "SYS_stat", 15 },
- { "SYS_time", 18 },
- { "SYS_times", 20 },
- { "SYS_unlink", 7 },
- { "SYS_utime", 17 },
- { "SYS_write", 5 },
-#undef sys_defs
-/* end sys target macros */
-#endif
index 8a9241dd680e7b5118caa51adc85b5cb9b5dd8b3..5c669279ae637e45a49f4429683f9ce006fa6078 100644 (file)
@@ -454,7 +454,7 @@ BUILT_SRC_FROM_MULTI = @sim_multi_src@
 SIM_MULTI_IGEN_CONFIGS = @sim_multi_igen_configs@
 
 $(BUILT_SRC_FROM_MULTI): tmp-multi
-tmp-multi: tmp-mach-multi tmp-itable-multi tmp-run-multi targ-vals.h
+tmp-multi: tmp-mach-multi tmp-itable-multi tmp-run-multi
 tmp-mach-multi: $(IGEN_INSN) $(IGEN_DC) $(IGEN) $(IGEN_INCLUDE)
        for t in $(SIM_MULTI_IGEN_CONFIGS); do \
          p=`echo $${t} | sed -e 's/:.*//'` ; \