[Patch] (2/n) newlib: Move vasniprintf.c to ELIX 1 (was: Build-dependency issues with ELIX_LEVEL)
Tobias Burnus <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
Attached is a revised version of the patch in the first email in the thread. Found when looking for referenced but not provided functions with nvptx, which sets ELIX Level to 1. libc/stdio/vdiprintf.c's _vdiprintf_r calls _vasniprintf_r The file is compiled with ELIX Level 1. The function _vasniprintf_r is provided either via * libc/stdio/vasniprintf.c which calls _svfiprintf_r * libc/stdio/vasnprintf.c (only '#ifdef _NANO_FORMATTED_IO') which calls _svfprintf_r We can ignore the second file as no NANO function calls it. Thus, only the first file (vasniprintf.c) remains. The _svfiprintf_r / _svfiprintf_r are provided by libc/stdio/(nano-)vfprintf.c Those files are also available with ELIX Level 1. Solution: Also build vasniprintf.c with ELIX Level 1 instead of building it with ELIX Level 4. The change should be save as the only library call I see in that file (vasniprintf.c) is to vfprintf.c. And on the caller side, the call to _vasniprintf_r is not guarded by any #if. Thus, no new dependencies should get introduced by this change. OK? Comments? Tobias (Makefile.inc patch + regenerated Makefile.in as separate patch) ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
0001-newlib-Move-vasniprintf.c-to-ELIX-1.patch
(text/x-patch, 1.2 KB)
From 17cf1375e4f0e5ad02fdaccfd0735536629f014c Mon Sep 17 00:00:00 2001 From: Tobias Burnus <[email protected]> Date: Wed, 30 Mar 2022 12:17:45 +0200 Subject: [PATCH] newlib: Move vasniprintf.c to ELIX 1 vdiprintf.c is ELIX Level 1 and calls _vasniprintf_r, which is in vasniprintf.c (before ELIX Level 4 now in 1). The latter only calls _svfiprintf_r which is provided by vfprintf.c (also ELIX Level 1). --- newlib/libc/stdio/Makefile.inc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/newlib/libc/stdio/Makefile.inc b/newlib/libc/stdio/Makefile.inc index 2126ceaf5..c2b79641e 100644 --- a/newlib/libc/stdio/Makefile.inc +++ b/newlib/libc/stdio/Makefile.inc @@ -34,5 +34,6 @@ libc_a_SOURCES += \ %D%/vsiprintf.c \ %D%/vsiscanf.c \ - %D%/vsniprintf.c + %D%/vsniprintf.c \ + %D%/vasniprintf.c endif @@ -130,5 +131,5 @@ endif !NEWLIB_NANO_FORMATTED_IO endif !ELIX_LEVEL_1 -## The following are EL/IX level 2 interfaces +## The following are EL/IX level 4 interfaces if ELIX_LEVEL_1 %C%_ELIX_4_SOURCES = @@ -193,6 +194,5 @@ if !NEWLIB_NANO_FORMATTED_IO %C%_ELIX_4_SOURCES += \ %D%/asniprintf.c \ - %D%/diprintf.c \ - %D%/vasniprintf.c + %D%/diprintf.c endif !NEWLIB_NANO_FORMATTED_IO endif !ELIX_LEVEL_3 -- 2.25.1
re-gen-Makefile.in.diff
(text/x-patch, 11.2 KB)
newlib/Makefile.in | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/newlib/Makefile.in b/newlib/Makefile.in index 41e41412b..719c8c295 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -238,7 +238,8 @@ check_PROGRAMS = @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/viscanf.c \ @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/vsiprintf.c \ @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/vsiscanf.c \ -@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/vsniprintf.c +@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/vsniprintf.c \ +@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/vasniprintf.c @HAVE_STDIO_DIR_TRUE@am__append_13 = libc/stdio/clearerr.c \ @HAVE_STDIO_DIR_TRUE@ libc/stdio/fclose.c libc/stdio/fdopen.c \ @@ -294,8 +295,7 @@ check_PROGRAMS = @ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@am__append_15 = \ @ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/asniprintf.c \ -@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/diprintf.c \ -@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/vasniprintf.c +@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/diprintf.c @ELIX_LEVEL_1_FALSE@@HAVE_STDIO64_DIR_TRUE@am__append_16 = \ @ELIX_LEVEL_1_FALSE@@HAVE_STDIO64_DIR_TRUE@ libc/stdio64/fdopen64.c \ @@ -1145,7 +1145,8 @@ am__objects_5 = libc/stdlib/libc_a-rpmatch.$(OBJEXT) \ @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-viscanf.$(OBJEXT) \ @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-vsiprintf.$(OBJEXT) \ @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-vsiscanf.$(OBJEXT) \ -@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-vsniprintf.$(OBJEXT) +@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-vsniprintf.$(OBJEXT) \ +@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-vasniprintf.$(OBJEXT) @ELIX_LEVEL_1_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@am__objects_12 = libc/stdio/libc_a-asiprintf.$(OBJEXT) \ @ELIX_LEVEL_1_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-vasiprintf.$(OBJEXT) @ELIX_LEVEL_1_FALSE@@HAVE_STDIO_DIR_TRUE@am__objects_13 = libc/stdio/libc_a-asprintf.$(OBJEXT) \ @@ -1158,8 +1159,7 @@ am__objects_5 = libc/stdlib/libc_a-rpmatch.$(OBJEXT) \ @ELIX_LEVEL_1_FALSE@@HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-vasprintf.$(OBJEXT) \ @ELIX_LEVEL_1_FALSE@@HAVE_STDIO_DIR_TRUE@ $(am__objects_12) @ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@am__objects_14 = libc/stdio/libc_a-asniprintf.$(OBJEXT) \ -@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-diprintf.$(OBJEXT) \ -@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-vasniprintf.$(OBJEXT) +@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@ libc/stdio/libc_a-diprintf.$(OBJEXT) @ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@am__objects_15 = libc/stdio/libc_a-asnprintf.$(OBJEXT) \ @ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-clearerr_u.$(OBJEXT) \ @ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@@HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-dprintf.$(OBJEXT) \ @@ -5535,6 +5535,8 @@ libc/stdio/libc_a-vsiscanf.$(OBJEXT): libc/stdio/$(am__dirstamp) \ libc/stdio/$(DEPDIR)/$(am__dirstamp) libc/stdio/libc_a-vsniprintf.$(OBJEXT): libc/stdio/$(am__dirstamp) \ libc/stdio/$(DEPDIR)/$(am__dirstamp) +libc/stdio/libc_a-vasniprintf.$(OBJEXT): libc/stdio/$(am__dirstamp) \ + libc/stdio/$(DEPDIR)/$(am__dirstamp) libc/stdio/libc_a-clearerr.$(OBJEXT): libc/stdio/$(am__dirstamp) \ libc/stdio/$(DEPDIR)/$(am__dirstamp) libc/stdio/libc_a-fclose.$(OBJEXT): libc/stdio/$(am__dirstamp) \ @@ -5804,8 +5806,6 @@ libc/stdio/libc_a-asniprintf.$(OBJEXT): libc/stdio/$(am__dirstamp) \ libc/stdio/$(DEPDIR)/$(am__dirstamp) libc/stdio/libc_a-diprintf.$(OBJEXT): libc/stdio/$(am__dirstamp) \ libc/stdio/$(DEPDIR)/$(am__dirstamp) -libc/stdio/libc_a-vasniprintf.$(OBJEXT): libc/stdio/$(am__dirstamp) \ - libc/stdio/$(DEPDIR)/$(am__dirstamp) libc/stdio64/$(am__dirstamp): @$(MKDIR_P) libc/stdio64 @: > libc/stdio64/$(am__dirstamp) @@ -22741,6 +22741,20 @@ libc/stdio/libc_a-vsniprintf.obj: libc/stdio/vsniprintf.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c -o libc/stdio/libc_a-vsniprintf.obj `if test -f 'libc/stdio/vsniprintf.c'; then $(CYGPATH_W) 'libc/stdio/vsniprintf.c'; else $(CYGPATH_W) '$(srcdir)/libc/stdio/vsniprintf.c'; fi` +libc/stdio/libc_a-vasniprintf.o: libc/stdio/vasniprintf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/stdio/libc_a-vasniprintf.o -MD -MP -MF libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Tpo -c -o libc/stdio/libc_a-vasniprintf.o `test -f 'libc/stdio/vasniprintf.c' || echo '$(srcdir)/'`libc/stdio/vasniprintf.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Tpo libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libc/stdio/vasniprintf.c' object='libc/stdio/libc_a-vasniprintf.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) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c -o libc/stdio/libc_a-vasniprintf.o `test -f 'libc/stdio/vasniprintf.c' || echo '$(srcdir)/'`libc/stdio/vasniprintf.c + +libc/stdio/libc_a-vasniprintf.obj: libc/stdio/vasniprintf.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/stdio/libc_a-vasniprintf.obj -MD -MP -MF libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Tpo -c -o libc/stdio/libc_a-vasniprintf.obj `if test -f 'libc/stdio/vasniprintf.c'; then $(CYGPATH_W) 'libc/stdio/vasniprintf.c'; else $(CYGPATH_W) '$(srcdir)/libc/stdio/vasniprintf.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Tpo libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libc/stdio/vasniprintf.c' object='libc/stdio/libc_a-vasniprintf.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) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c -o libc/stdio/libc_a-vasniprintf.obj `if test -f 'libc/stdio/vasniprintf.c'; then $(CYGPATH_W) 'libc/stdio/vasniprintf.c'; else $(CYGPATH_W) '$(srcdir)/libc/stdio/vasniprintf.c'; fi` + libc/stdio/libc_a-clearerr.o: libc/stdio/clearerr.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/stdio/libc_a-clearerr.o -MD -MP -MF libc/stdio/$(DEPDIR)/libc_a-clearerr.Tpo -c -o libc/stdio/libc_a-clearerr.o `test -f 'libc/stdio/clearerr.c' || echo '$(srcdir)/'`libc/stdio/clearerr.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/stdio/$(DEPDIR)/libc_a-clearerr.Tpo libc/stdio/$(DEPDIR)/libc_a-clearerr.Po @@ -24617,20 +24631,6 @@ libc/stdio/libc_a-diprintf.obj: libc/stdio/diprintf.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c -o libc/stdio/libc_a-diprintf.obj `if test -f 'libc/stdio/diprintf.c'; then $(CYGPATH_W) 'libc/stdio/diprintf.c'; else $(CYGPATH_W) '$(srcdir)/libc/stdio/diprintf.c'; fi` -libc/stdio/libc_a-vasniprintf.o: libc/stdio/vasniprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/stdio/libc_a-vasniprintf.o -MD -MP -MF libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Tpo -c -o libc/stdio/libc_a-vasniprintf.o `test -f 'libc/stdio/vasniprintf.c' || echo '$(srcdir)/'`libc/stdio/vasniprintf.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Tpo libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libc/stdio/vasniprintf.c' object='libc/stdio/libc_a-vasniprintf.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) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c -o libc/stdio/libc_a-vasniprintf.o `test -f 'libc/stdio/vasniprintf.c' || echo '$(srcdir)/'`libc/stdio/vasniprintf.c - -libc/stdio/libc_a-vasniprintf.obj: libc/stdio/vasniprintf.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/stdio/libc_a-vasniprintf.obj -MD -MP -MF libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Tpo -c -o libc/stdio/libc_a-vasniprintf.obj `if test -f 'libc/stdio/vasniprintf.c'; then $(CYGPATH_W) 'libc/stdio/vasniprintf.c'; else $(CYGPATH_W) '$(srcdir)/libc/stdio/vasniprintf.c'; fi` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Tpo libc/stdio/$(DEPDIR)/libc_a-vasniprintf.Po -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libc/stdio/vasniprintf.c' object='libc/stdio/libc_a-vasniprintf.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) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -c -o libc/stdio/libc_a-vasniprintf.obj `if test -f 'libc/stdio/vasniprintf.c'; then $(CYGPATH_W) 'libc/stdio/vasniprintf.c'; else $(CYGPATH_W) '$(srcdir)/libc/stdio/vasniprintf.c'; fi` - libc/stdio64/libc_a-fdopen64.o: libc/stdio64/fdopen64.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libc_a_CPPFLAGS) $(CPPFLAGS) $(libc_a_CFLAGS) $(CFLAGS) -MT libc/stdio64/libc_a-fdopen64.o -MD -MP -MF libc/stdio64/$(DEPDIR)/libc_a-fdopen64.Tpo -c -o libc/stdio64/libc_a-fdopen64.o `test -f 'libc/stdio64/fdopen64.c' || echo '$(srcdir)/'`libc/stdio64/fdopen64.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) libc/stdio64/$(DEPDIR)/libc_a-fdopen64.Tpo libc/stdio64/$(DEPDIR)/libc_a-fdopen64.Po