Re: [PATCH 0/2] fix undefined reference to `__ssputws_r'
Torbjorn SVENSSON <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
Hi again,
I do not have time to dig into this right now, but these are the test
cases that start to fail after applying the 2 patches suggested by Hau Hsu:
FAIL: 27_io/objects/wchar_t/12048-1.cc -std=gnu++17 execution test
FAIL: 27_io/objects/wchar_t/12048-2.cc -std=gnu++17 execution test
FAIL: 27_io/objects/wchar_t/12048-3.cc -std=gnu++17 execution test
FAIL: 27_io/objects/wchar_t/12048-4.cc -std=gnu++17 execution test
FAIL: 27_io/objects/wchar_t/2.cc -std=gnu++17 output pattern test
FAIL: 27_io/objects/wchar_t/9662.cc -std=gnu++17 execution test
FAIL: ext/stdio_sync_filebuf/wchar_t/1.cc -std=gnu++17 execution test
FAIL: ext/stdio_sync_filebuf/wchar_t/12948-1.cc -std=gnu++17 execution test
FAIL: ext/stdio_sync_filebuf/wchar_t/12948-2.cc -std=gnu++17 execution test
FAIL: ext/stdio_sync_filebuf/wchar_t/12948-3.cc -std=gnu++17 execution test
FAIL: ext/stdio_sync_filebuf/wchar_t/12948-4.cc -std=gnu++17 execution test
This was checked with basepoints/gcc-15-1852-g320c2ed4d2b and newlib
1339af44679aee0895fe311cfad89d38cfc2b919 built for arm-none-eabi.
Kind regards,
Torbjörn
On 2024-07-12 10:07, Torbjorn SVENSSON wrote:
> 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
>>