Re: wcwidth broken with gcc 16

Thomas Wolff via Cygwin <[email protected]> Tue, 5 May 2026 08:37:06 +0200
Newsgroups gmane.os.cygwin
Message-ID <[email protected]>
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.

-- 
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