Re: wcwidth broken with gcc 16

Thomas Wolff via Cygwin <[email protected]> Mon, 25 May 2026 18:53:42 +0200
Newsgroups gmane.os.cygwin
Message-ID <[email protected]>
Am 05.05.2026 um 08:37 schrieb Thomas Wolff via Cygwin:
>
> Am 04.05.2026 um 23:52 schrieb Jakob Bohm via Cygwin:
>> On 03/05/2026 18:14, Brian Inglis via Cygwin wrote:
>>> On 2026-05-03 06:00, Thomas Wolff via Cygwin wrote:
>>>> Am 03.05.2026 um 12:58 schrieb Dimitry Andric:
>>>>> On 3 May 2026, at 12:47, Thomas Wolff via Cygwin 
>>>>> <[email protected]> wrote:
>>>>>> Am 03.05.2026 um 07:35 schrieb ASSI via Cygwin:
>>>>>>> Thomas Wolff via Cygwin writes:
>>>>>>>> Observed with gcc 16:
>>>>>>>> For a number of character ranges, mainly (but not only) from CJK
>>>>>>>> ranges, wcwidth incorrectly reports width 1 instead of 2, 0, or 
>>>>>>>> -1.
>>>>>>>> Test file attached.
>>>>>>> Can you report this upstream, please?
>>>>>> I couldn't yet test it with gcc 16 on Linux as there is no Debian 
>>>>>> package.
>>>>>> Did you test it?
>>>>> It looks like BSD-based libc gives 1 for U+D7C6, U+D7CB and 
>>>>> U+D7CB, while glibc gives 0.
>>>> Thanks. Despite some differences, none of them gives the broken 
>>>> results of gcc-16 on cygwin, so I wonder whether it makes sense to 
>>>> report upstream at this time.
>>>
>>> It appears that libiberty does not contain any mb/wc 
>>> macros/functions, , and only contains safe-ctype IS... 
>>> macros/functions with fixed ASCII characters.
>>>
>>> Does gcc, like most GNU products, include some release of gnulib?
>>> Could gnulib or gcc config detect some lack of support and "fix" 
>>> newlib-cygwin support of Unicode properties declared in 
>>> wchar.h/wctype.h, or used in i18n, libunistring, and Unicode string 
>>> functions, especially if doing any kind of cross-bootstrap?
>>>
>>> https://www.gnu.org/software/gnulib/MODULES.html
>>>
>>> I also note that w32api-headers/runtime are gcc runtime dependencies 
>>> and hope they are used only in COFF/PE-related generation?
>>>
>> Under Cygwin, does wcwidth() use Cygwin-provided table, derived 
>> either from upstream Unicode data or from Windows OS APIs that use OS 
>> bundled Unicode data?
> Cygwin/newlib provides a wcwidth function that uses a table generated 
> from unicode.org data, but apparently gcc 16 does not (fully?) use 
> that function.
Now reported upstream: 125451 – wcwidth broken with gcc 16 on cygwin 
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125451>

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple