Re: [PATCH 0/2] fix undefined reference to `__ssputws_r'
Torbjorn SVENSSON <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
Hi,
I've looked at the patch and I think it's fine.
I am currently building a toolchain with the patch series applied and
will run the tests on it. I'll get back with the result early next week.
The reason why I didn't go this route before was that I was afraid that
there would be more functions that would be missing. Hopefully, the
tests will show that this is not the case.
Kind regards,
Torbjörn
On 2024-07-09 12:48, Corinna Vinschen wrote:
> @Torbjörn,
>
> would you mind to take a look? Any input on this?
>
> FWIW< this looks right to me.
>
>
> Thanks,
> Corinna
>
>
> On Jul 8 12:01, Hau Hsu 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 for a wide-char-oriented helper function.
>> But this file will not be built when newlib_nano_formated_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.
>>
>> *Fix*
>> This patch fix the issue by building ssputws_r.c regardless of whether
>> newlib_nano_formated_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/[email protected]/t/
>>
>>
>>
>> Hau Hsu (2):
>> Revert "libc/stdio: Remove wchar_t functions from
>> NEWLIB_NANO_FORMATTED_IO"
>> libc/stdio: fix undefined reference to `__ssputws_r'
>>
>> newlib/Makefile.in | 1004 ++++++++++++++++----------------
>> newlib/libc/stdio/Makefile.inc | 54 +-
>> 2 files changed, 528 insertions(+), 530 deletions(-)
>>
>> --
>> 2.31.1
>