From: Mike Frysinger Date: Wed, 7 Jul 2021 03:37:56 +0000 (-0400) Subject: sim: nltvals: pull target open flags out into a dedicated source file X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=670817b94710b751f032d5b89a3026428ce9c397;p=binutils-gdb.git sim: nltvals: pull target open flags out into a dedicated source file Like we just did for pulling out the errno & signal maps, pull out the open flag map into a dedicated common file. All newlib ports are using the same map which makes it easy. --- diff --git a/sim/Makefile.in b/sim/Makefile.in index 6bb96bfbfa6..f6bf4168ad1 100644 --- a/sim/Makefile.in +++ b/sim/Makefile.in @@ -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-open.$(OBJEXT) \ common/common_libcommon_a-target-newlib-signal.$(OBJEXT) \ common/common_libcommon_a-version.$(OBJEXT) common_libcommon_a_OBJECTS = $(am_common_libcommon_a_OBJECTS) @@ -846,6 +847,7 @@ common_libcommon_a_SOURCES = \ common/portability.c \ common/sim-load.c \ common/target-newlib-errno.c \ + common/target-newlib-open.c \ common/target-newlib-signal.c \ common/version.c @@ -1021,6 +1023,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-open.$(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) \ @@ -1146,6 +1150,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-open.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@ @@ -1239,6 +1244,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-open.o: common/target-newlib-open.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-open.o -MD -MP -MF common/$(DEPDIR)/common_libcommon_a-target-newlib-open.Tpo -c -o common/common_libcommon_a-target-newlib-open.o `test -f 'common/target-newlib-open.c' || echo '$(srcdir)/'`common/target-newlib-open.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) common/$(DEPDIR)/common_libcommon_a-target-newlib-open.Tpo common/$(DEPDIR)/common_libcommon_a-target-newlib-open.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/target-newlib-open.c' object='common/common_libcommon_a-target-newlib-open.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-open.o `test -f 'common/target-newlib-open.c' || echo '$(srcdir)/'`common/target-newlib-open.c + +common/common_libcommon_a-target-newlib-open.obj: common/target-newlib-open.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-open.obj -MD -MP -MF common/$(DEPDIR)/common_libcommon_a-target-newlib-open.Tpo -c -o common/common_libcommon_a-target-newlib-open.obj `if test -f 'common/target-newlib-open.c'; then $(CYGPATH_W) 'common/target-newlib-open.c'; else $(CYGPATH_W) '$(srcdir)/common/target-newlib-open.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) common/$(DEPDIR)/common_libcommon_a-target-newlib-open.Tpo common/$(DEPDIR)/common_libcommon_a-target-newlib-open.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/target-newlib-open.c' object='common/common_libcommon_a-target-newlib-open.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-open.obj `if test -f 'common/target-newlib-open.c'; then $(CYGPATH_W) 'common/target-newlib-open.c'; else $(CYGPATH_W) '$(srcdir)/common/target-newlib-open.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 diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in index d6b34d52122..e5c3484c047 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-open.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 2c7288bd605..4a55c296694 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 open_tdefs[] = { -#define open_defs -#include "nltvals.def" -#undef open_defs - { 0, 0 } -}; - static void gen_targ_vals_h (void) { @@ -51,7 +44,6 @@ gen_targ_map_c (void) printf ("/* This file is machine generated by gentmap.c. */\n\n"); printf ("#include \"defs.h\"\n"); - printf ("#include \n"); printf ("#include \"ansidecl.h\"\n"); printf ("#include \"sim/callback.h\"\n"); printf ("#include \"targ-vals.h\"\n"); @@ -68,18 +60,6 @@ gen_targ_map_c (void) } 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) - { - printf ("#define TARGET_%s 0x%x\n", t->symbol, t->value); - 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"); } int diff --git a/sim/common/local.mk b/sim/common/local.mk index bf5eda0b0d3..fdbdca444b3 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-open.c \ %D%/target-newlib-signal.c \ %D%/version.c diff --git a/sim/common/nltvals.def b/sim/common/nltvals.def index 6d44d03ea5b..54035cef698 100644 --- a/sim/common/nltvals.def +++ b/sim/common/nltvals.def @@ -1,30 +1,5 @@ /* Newlib/libgloss macro values needed by remote target support. */ /* This file is machine generated by gennltvals.py. */ -#ifdef open_defs -/* from fcntl.h */ -/* from sys/fcntl.h */ -/* from sys/_default_fcntl.h */ -/* begin open target macros */ - { "O_ACCMODE", (0|1|2) }, - { "O_APPEND", 0x0008 }, - { "O_CLOEXEC", 0x40000 }, - { "O_CREAT", 0x0200 }, - { "O_DIRECT", 0x80000 }, - { "O_DIRECTORY", 0x200000 }, - { "O_EXCL", 0x0800 }, - { "O_EXEC", 0x400000 }, - { "O_NOCTTY", 0x8000 }, - { "O_NOFOLLOW", 0x100000 }, - { "O_NONBLOCK", 0x4000 }, - { "O_RDONLY", 0 }, - { "O_RDWR", 2 }, - { "O_SEARCH", 0x400000 }, - { "O_SYNC", 0x2000 }, - { "O_TRUNC", 0x0400 }, - { "O_WRONLY", 1 }, -#undef open_defs -/* end open target macros */ -#endif #ifdef NL_TARGET_cr16 #ifdef sys_defs /* from syscall.h */ diff --git a/sim/common/target-newlib-open.c b/sim/common/target-newlib-open.c new file mode 100644 index 00000000000..8198109f5cd --- /dev/null +++ b/sim/common/target-newlib-open.c @@ -0,0 +1,85 @@ +/* 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 . */ + +/* This must come before any other includes. */ +#include "defs.h" + +#include + +#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_open_map[] = { + /* gennltvals: START */ +#ifdef O_ACCMODE + { "O_ACCMODE", O_ACCMODE, (0|1|2) }, +#endif +#ifdef O_APPEND + { "O_APPEND", O_APPEND, 0x0008 }, +#endif +#ifdef O_CLOEXEC + { "O_CLOEXEC", O_CLOEXEC, 0x40000 }, +#endif +#ifdef O_CREAT + { "O_CREAT", O_CREAT, 0x0200 }, +#endif +#ifdef O_DIRECT + { "O_DIRECT", O_DIRECT, 0x80000 }, +#endif +#ifdef O_DIRECTORY + { "O_DIRECTORY", O_DIRECTORY, 0x200000 }, +#endif +#ifdef O_EXCL + { "O_EXCL", O_EXCL, 0x0800 }, +#endif +#ifdef O_EXEC + { "O_EXEC", O_EXEC, 0x400000 }, +#endif +#ifdef O_NOCTTY + { "O_NOCTTY", O_NOCTTY, 0x8000 }, +#endif +#ifdef O_NOFOLLOW + { "O_NOFOLLOW", O_NOFOLLOW, 0x100000 }, +#endif +#ifdef O_NONBLOCK + { "O_NONBLOCK", O_NONBLOCK, 0x4000 }, +#endif +#ifdef O_RDONLY + { "O_RDONLY", O_RDONLY, 0 }, +#endif +#ifdef O_RDWR + { "O_RDWR", O_RDWR, 2 }, +#endif +#ifdef O_SEARCH + { "O_SEARCH", O_SEARCH, 0x400000 }, +#endif +#ifdef O_SYNC + { "O_SYNC", O_SYNC, 0x2000 }, +#endif +#ifdef O_TRUNC + { "O_TRUNC", O_TRUNC, 0x0400 }, +#endif +#ifdef O_WRONLY + { "O_WRONLY", O_WRONLY, 1 }, +#endif + /* gennltvals: END */ + { NULL, -1, -1 }, +};