[PATCH 2/2 v2] libc/stdio: fix undefined reference to __ssputws_r/__sswprint_r
Jeff Johnston
jjohnstn@redhat.com
Wed May 7 01:42:19 GMT 2025
Hi Alexey,
I don't understand why you are seeing svfwprintf.c compiled in your case no
matter what the nano setting is. The file
is listed under the else section of the check: if NEWLIB_NANO_FORMATTED_IO
so when
this flag is set to true, it shouldn't be included. I did an
aarch64-none-elf build configured with --enable-nano-formatted-io
and there is no svfwprintf object file in the libc/stdio directory nor in
the final libc.a.
Is there any chance there is something broken with your build or link?
-- Jeff J.
On Tue, May 6, 2025 at 2:46 AM Alexey Lapshin <alexey.lapshin@espressif.com>
wrote:
> *Issue*
> When compile a simple C++ hello world, we got undefined reference to
> `__ssputws_r' error with NEWLIB_NANO_FORMATTED_IO after upgrading to
> newlib-4.4 in risc-v toolchain:
>
> svfwprintf.c:(.text._svfwprintf_r+0x8e): undefined reference to
> `__ssputws_r'
>
> *Cause*
> This is because commit
> "v{fs}printf/v{fs}wprintf: create external output helpers"
> <
> https://cygwin.com/git/?p=newlib-cygwin.git;a=commit;h=61ccd3f94f92bcfc0940f0595ea5b3b72bce3c6d
> >
> introduces a new file ssputws_r.c/sswprint_r.c for a wide-char-oriented
> helper function. But these files were not included to build when
> newlib_nano_formatted_io is enabled.
>
> The problem is that the function __ssputws_r() is used by svfwprintf(),
> which is compiled no matter whether newlib_nano_formated_io is enabled.
> And the same thing for __sswprint_r()
>
> *Fix*
> This patch fix the issue by building ssputws_r.c and sswprint_r.c
> regardless
> of whether newlib_nano_formatted_io is enabled.
>
> *Problem of the previous fix*
> Note that we also reverts a previouls patch that tries to fix the same
> link error:
> <
> https://cygwin.com/git/?p=newlib-cygwin.git;a=commitdiff;h=3b97a5ec67a5a52c130158bb143949cd842de305
> >
> Because we got other errors after applying this patch:
>
> undefined reference to `putwc'
> ...
> undefined reference to `getwc'
> ...
> undefined reference to `swprintf'
>
> The previous patch removes wchar_t functions from
> NEWLIB_NANO_FORMATTED_IO, but in the newlib/README says:
>
> > --enable-newlib-nano-formatted-io
> > This option does not affect wide-char formatted I/O functions
>
> Thus I think we shouldn't remove wchar_t functions from
> newlib_nano_formated_io.
>
> Similar bug report:
> *
> https://inbox.sourceware.org/newlib/ed0b48da6c6c4beaacd9fad63efaddc0@syntacore.com/t
>
> Signed-off-by: Hau Hsu <hau.hsu@sifive.com>
> ---
> newlib/Makefile.in | 77 +++++++++++++++++-----------------
> newlib/libc/stdio/Makefile.inc | 6 +--
> 2 files changed, 41 insertions(+), 42 deletions(-)
>
> diff --git a/newlib/Makefile.in b/newlib/Makefile.in
> index 53b0f0920..629d80773 100644
> --- a/newlib/Makefile.in
> +++ b/newlib/Makefile.in
> @@ -243,9 +243,7 @@ check_PROGRAMS =
> @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/sprint_r.c \
> @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/swprint_r.c \
> @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/ssputs_r.c \
> -@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/ssputws_r.c \
> -@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/ssprint_r.c \
> -@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/sswprint_r.c
> +@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/ssprint_r.c
>
> @HAVE_STDIO_DIR_TRUE@am__append_12 = libc/stdio/clearerr.c \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/fclose.c libc/stdio/fdopen.c \
> @@ -278,6 +276,8 @@ check_PROGRAMS =
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/setvbuf.c \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/snprintf.c \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/sprintf.c libc/stdio/sscanf.c \
> +@HAVE_STDIO_DIR_TRUE@ libc/stdio/ssputws_r.c \
> +@HAVE_STDIO_DIR_TRUE@ libc/stdio/sswprint_r.c \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/stdio.c \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/svfiwprintf.c \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/svfiwscanf.c \
> @@ -1203,9 +1203,7 @@ am__objects_5 = libc/stdlib/libc_a-rpmatch.$(OBJEXT)
> \
> @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/libc_a-sprint_r.$(OBJEXT) \
> @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/libc_a-swprint_r.$(OBJEXT) \
> @HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/libc_a-ssputs_r.$(OBJEXT) \
> -@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/libc_a-ssputws_r.$(OBJEXT) \
> -@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/libc_a-ssprint_r.$(OBJEXT) \
> -@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/libc_a-sswprint_r.$(OBJEXT)
> +@HAVE_STDIO_DIR_TRUE@@NEWLIB_NANO_FORMATTED_IO_FALSE@
> libc/stdio/libc_a-ssprint_r.$(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) \
> @@ -1329,6 +1327,8 @@ am__objects_5 = libc/stdlib/libc_a-rpmatch.$(OBJEXT)
> \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-snprintf.$(OBJEXT) \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-sprintf.$(OBJEXT) \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-sscanf.$(OBJEXT) \
> +@HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-ssputws_r.$(OBJEXT) \
> +@HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-sswprint_r.$(OBJEXT) \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-stdio.$(OBJEXT) \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-svfiwprintf.$(OBJEXT) \
> @HAVE_STDIO_DIR_TRUE@ libc/stdio/libc_a-svfiwscanf.$(OBJEXT) \
> @@ -3972,7 +3972,6 @@ pdfdir = @pdfdir@
> prefix = @prefix@
> program_transform_name = @program_transform_name@
> psdir = @psdir@
> -runstatedir = @runstatedir@
> sbindir = @sbindir@
> shared_machine_dir = @shared_machine_dir@
> sharedstatedir = @sharedstatedir@
> @@ -6036,12 +6035,8 @@ libc/stdio/libc_a-swprint_r.$(OBJEXT):
> libc/stdio/$(am__dirstamp) \
> libc/stdio/$(DEPDIR)/$(am__dirstamp)
> libc/stdio/libc_a-ssputs_r.$(OBJEXT): libc/stdio/$(am__dirstamp) \
> libc/stdio/$(DEPDIR)/$(am__dirstamp)
> -libc/stdio/libc_a-ssputws_r.$(OBJEXT): libc/stdio/$(am__dirstamp) \
> - libc/stdio/$(DEPDIR)/$(am__dirstamp)
> libc/stdio/libc_a-ssprint_r.$(OBJEXT): libc/stdio/$(am__dirstamp) \
> libc/stdio/$(DEPDIR)/$(am__dirstamp)
> -libc/stdio/libc_a-sswprint_r.$(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) \
> @@ -6150,6 +6145,10 @@ libc/stdio/libc_a-sprintf.$(OBJEXT):
> libc/stdio/$(am__dirstamp) \
> libc/stdio/$(DEPDIR)/$(am__dirstamp)
> libc/stdio/libc_a-sscanf.$(OBJEXT): libc/stdio/$(am__dirstamp) \
> libc/stdio/$(DEPDIR)/$(am__dirstamp)
> +libc/stdio/libc_a-ssputws_r.$(OBJEXT): libc/stdio/$(am__dirstamp) \
> + libc/stdio/$(DEPDIR)/$(am__dirstamp)
> +libc/stdio/libc_a-sswprint_r.$(OBJEXT): libc/stdio/$(am__dirstamp) \
> + libc/stdio/$(DEPDIR)/$(am__dirstamp)
> libc/stdio/libc_a-stdio.$(OBJEXT): libc/stdio/$(am__dirstamp) \
> libc/stdio/$(DEPDIR)/$(am__dirstamp)
> libc/stdio/libc_a-svfiwprintf.$(OBJEXT): libc/stdio/$(am__dirstamp) \
> @@ -24305,20 +24304,6 @@ libc/stdio/libc_a-ssputs_r.obj:
> libc/stdio/ssputs_r.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-ssputs_r.obj `if test -f
> 'libc/stdio/ssputs_r.c'; then $(CYGPATH_W) 'libc/stdio/ssputs_r.c'; else
> $(CYGPATH_W) '$(srcdir)/libc/stdio/ssputs_r.c'; fi`
>
> -libc/stdio/libc_a-ssputws_r.o: libc/stdio/ssputws_r.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-ssputws_r.o -MD -MP -MF
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Tpo -c -o
> libc/stdio/libc_a-ssputws_r.o `test -f 'libc/stdio/ssputws_r.c' || echo
> '$(srcdir)/'`libc/stdio/ssputws_r.c
> -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Tpo
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Po
> -@AMDEP_TRUE@@am__fastdepCC_FALSE@
> $(AM_V_CC)source='libc/stdio/ssputws_r.c'
> object='libc/stdio/libc_a-ssputws_r.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-ssputws_r.o `test -f
> 'libc/stdio/ssputws_r.c' || echo '$(srcdir)/'`libc/stdio/ssputws_r.c
> -
> -libc/stdio/libc_a-ssputws_r.obj: libc/stdio/ssputws_r.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-ssputws_r.obj -MD -MP -MF
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Tpo -c -o
> libc/stdio/libc_a-ssputws_r.obj `if test -f 'libc/stdio/ssputws_r.c'; then
> $(CYGPATH_W) 'libc/stdio/ssputws_r.c'; else $(CYGPATH_W)
> '$(srcdir)/libc/stdio/ssputws_r.c'; fi`
> -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Tpo
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Po
> -@AMDEP_TRUE@@am__fastdepCC_FALSE@
> $(AM_V_CC)source='libc/stdio/ssputws_r.c'
> object='libc/stdio/libc_a-ssputws_r.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-ssputws_r.obj `if test
> -f 'libc/stdio/ssputws_r.c'; then $(CYGPATH_W) 'libc/stdio/ssputws_r.c';
> else $(CYGPATH_W) '$(srcdir)/libc/stdio/ssputws_r.c'; fi`
> -
> libc/stdio/libc_a-ssprint_r.o: libc/stdio/ssprint_r.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-ssprint_r.o -MD -MP -MF
> libc/stdio/$(DEPDIR)/libc_a-ssprint_r.Tpo -c -o
> libc/stdio/libc_a-ssprint_r.o `test -f 'libc/stdio/ssprint_r.c' || echo
> '$(srcdir)/'`libc/stdio/ssprint_r.c
> @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-ssprint_r.Tpo
> libc/stdio/$(DEPDIR)/libc_a-ssprint_r.Po
> @@ -24333,20 +24318,6 @@ libc/stdio/libc_a-ssprint_r.obj:
> libc/stdio/ssprint_r.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-ssprint_r.obj `if test
> -f 'libc/stdio/ssprint_r.c'; then $(CYGPATH_W) 'libc/stdio/ssprint_r.c';
> else $(CYGPATH_W) '$(srcdir)/libc/stdio/ssprint_r.c'; fi`
>
> -libc/stdio/libc_a-sswprint_r.o: libc/stdio/sswprint_r.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-sswprint_r.o -MD -MP -MF
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Tpo -c -o
> libc/stdio/libc_a-sswprint_r.o `test -f 'libc/stdio/sswprint_r.c' || echo
> '$(srcdir)/'`libc/stdio/sswprint_r.c
> -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Tpo
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Po
> -@AMDEP_TRUE@@am__fastdepCC_FALSE@
> $(AM_V_CC)source='libc/stdio/sswprint_r.c'
> object='libc/stdio/libc_a-sswprint_r.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-sswprint_r.o `test -f
> 'libc/stdio/sswprint_r.c' || echo '$(srcdir)/'`libc/stdio/sswprint_r.c
> -
> -libc/stdio/libc_a-sswprint_r.obj: libc/stdio/sswprint_r.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-sswprint_r.obj -MD -MP -MF
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Tpo -c -o
> libc/stdio/libc_a-sswprint_r.obj `if test -f 'libc/stdio/sswprint_r.c';
> then $(CYGPATH_W) 'libc/stdio/sswprint_r.c'; else $(CYGPATH_W)
> '$(srcdir)/libc/stdio/sswprint_r.c'; fi`
> -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Tpo
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Po
> -@AMDEP_TRUE@@am__fastdepCC_FALSE@
> $(AM_V_CC)source='libc/stdio/sswprint_r.c'
> object='libc/stdio/libc_a-sswprint_r.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-sswprint_r.obj `if test
> -f 'libc/stdio/sswprint_r.c'; then $(CYGPATH_W) 'libc/stdio/sswprint_r.c';
> else $(CYGPATH_W) '$(srcdir)/libc/stdio/sswprint_r.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
> @@ -25103,6 +25074,34 @@ libc/stdio/libc_a-sscanf.obj: libc/stdio/sscanf.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-sscanf.obj `if test -f
> 'libc/stdio/sscanf.c'; then $(CYGPATH_W) 'libc/stdio/sscanf.c'; else
> $(CYGPATH_W) '$(srcdir)/libc/stdio/sscanf.c'; fi`
>
> +libc/stdio/libc_a-ssputws_r.o: libc/stdio/ssputws_r.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-ssputws_r.o -MD -MP -MF
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Tpo -c -o
> libc/stdio/libc_a-ssputws_r.o `test -f 'libc/stdio/ssputws_r.c' || echo
> '$(srcdir)/'`libc/stdio/ssputws_r.c
> +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Tpo
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Po
> +@AMDEP_TRUE@@am__fastdepCC_FALSE@
> $(AM_V_CC)source='libc/stdio/ssputws_r.c'
> object='libc/stdio/libc_a-ssputws_r.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-ssputws_r.o `test -f
> 'libc/stdio/ssputws_r.c' || echo '$(srcdir)/'`libc/stdio/ssputws_r.c
> +
> +libc/stdio/libc_a-ssputws_r.obj: libc/stdio/ssputws_r.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-ssputws_r.obj -MD -MP -MF
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Tpo -c -o
> libc/stdio/libc_a-ssputws_r.obj `if test -f 'libc/stdio/ssputws_r.c'; then
> $(CYGPATH_W) 'libc/stdio/ssputws_r.c'; else $(CYGPATH_W)
> '$(srcdir)/libc/stdio/ssputws_r.c'; fi`
> +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Tpo
> libc/stdio/$(DEPDIR)/libc_a-ssputws_r.Po
> +@AMDEP_TRUE@@am__fastdepCC_FALSE@
> $(AM_V_CC)source='libc/stdio/ssputws_r.c'
> object='libc/stdio/libc_a-ssputws_r.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-ssputws_r.obj `if test
> -f 'libc/stdio/ssputws_r.c'; then $(CYGPATH_W) 'libc/stdio/ssputws_r.c';
> else $(CYGPATH_W) '$(srcdir)/libc/stdio/ssputws_r.c'; fi`
> +
> +libc/stdio/libc_a-sswprint_r.o: libc/stdio/sswprint_r.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-sswprint_r.o -MD -MP -MF
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Tpo -c -o
> libc/stdio/libc_a-sswprint_r.o `test -f 'libc/stdio/sswprint_r.c' || echo
> '$(srcdir)/'`libc/stdio/sswprint_r.c
> +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Tpo
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Po
> +@AMDEP_TRUE@@am__fastdepCC_FALSE@
> $(AM_V_CC)source='libc/stdio/sswprint_r.c'
> object='libc/stdio/libc_a-sswprint_r.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-sswprint_r.o `test -f
> 'libc/stdio/sswprint_r.c' || echo '$(srcdir)/'`libc/stdio/sswprint_r.c
> +
> +libc/stdio/libc_a-sswprint_r.obj: libc/stdio/sswprint_r.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-sswprint_r.obj -MD -MP -MF
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Tpo -c -o
> libc/stdio/libc_a-sswprint_r.obj `if test -f 'libc/stdio/sswprint_r.c';
> then $(CYGPATH_W) 'libc/stdio/sswprint_r.c'; else $(CYGPATH_W)
> '$(srcdir)/libc/stdio/sswprint_r.c'; fi`
> +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Tpo
> libc/stdio/$(DEPDIR)/libc_a-sswprint_r.Po
> +@AMDEP_TRUE@@am__fastdepCC_FALSE@
> $(AM_V_CC)source='libc/stdio/sswprint_r.c'
> object='libc/stdio/libc_a-sswprint_r.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-sswprint_r.obj `if test
> -f 'libc/stdio/sswprint_r.c'; then $(CYGPATH_W) 'libc/stdio/sswprint_r.c';
> else $(CYGPATH_W) '$(srcdir)/libc/stdio/sswprint_r.c'; fi`
> +
> libc/stdio/libc_a-stdio.o: libc/stdio/stdio.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-stdio.o -MD -MP -MF libc/stdio/$(DEPDIR)/libc_a-stdio.Tpo
> -c -o libc/stdio/libc_a-stdio.o `test -f 'libc/stdio/stdio.c' || echo
> '$(srcdir)/'`libc/stdio/stdio.c
> @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv)
> libc/stdio/$(DEPDIR)/libc_a-stdio.Tpo libc/stdio/$(DEPDIR)/libc_a-stdio.Po
> diff --git a/newlib/libc/stdio/Makefile.inc
> b/newlib/libc/stdio/Makefile.inc
> index e25680212..09a508928 100644
> --- a/newlib/libc/stdio/Makefile.inc
> +++ b/newlib/libc/stdio/Makefile.inc
> @@ -39,9 +39,7 @@ libc_a_SOURCES += \
> %D%/sprint_r.c \
> %D%/swprint_r.c \
> %D%/ssputs_r.c \
> - %D%/ssputws_r.c \
> - %D%/ssprint_r.c \
> - %D%/sswprint_r.c
> + %D%/ssprint_r.c
> endif
>
> libc_a_SOURCES += \
> @@ -99,6 +97,8 @@ libc_a_SOURCES += \
> %D%/snprintf.c \
> %D%/sprintf.c \
> %D%/sscanf.c \
> + %D%/ssputws_r.c \
> + %D%/sswprint_r.c \
> %D%/stdio.c \
> %D%/svfiwprintf.c \
> %D%/svfiwscanf.c \
> --
> 2.43.0
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://sourceware.org/pipermail/newlib/attachments/20250506/fd60e740/attachment-0001.htm>
More information about the Newlib
mailing list