www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2026/05/31/12:53:36

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 64VGrZVD2766397
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 64VGrZVD2766397
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=vck8NC6E
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0BB464BA23F4
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1780246415;
bh=5xfqv5sLKcPSYWtGTR/mPo9O3Zdo+q5dvwBs8CiJEpM=;
h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=vck8NC6EJfrku9GkgG7lB/qph1fvFYqO6O39wbtSiF2MWA1hFU7ZE34xtRkH49mOb
AQLex+GDJ9MD4w+GHoEToxJeuywEjSuYRIhCRceaJ5MQQrYwZaA15WoE9KkNV5loc2
VW8oeac1zTbnyJO5YLQgKJRNQ230/h+HsueTQpkY=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DD8944BA23E1
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DD8944BA23E1
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1780246395; cv=none;
b=w0hT+LSjfP8sK0pvdL6UA+fgyjMbDHG4q+9GW8HPnj4r5gZaxbFaYIHha2rp7ko+cUSXdXIe3MQyUjP0xejrSmrxqLQLgA6BxyNc33Pj9y395xIsMaRNLGDo3aQ7aXN3jzynhR1ev/2bhGptlvIKPa5CWLiBPzUSXLYYuWnpQzk=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1780246395; c=relaxed/simple;
bh=RJcYkdibfca3e+GBrUVk8zMxmkSSVy4+MV228L2J6wI=;
h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From;
b=raXr5SbFqHQpRNxV4lAF18pkNoR6EWZkIJ315Fh2DoKBqAA/dDA4BjEEZ2j46pQiKo2er48fN6M6BRXys5p0Hfbz07S9KkR1tPG3QublnlfwwoVJ78Wg+a7tJxI2Aqj7wj6GUg7UGG5Jh+3AJhz4I04QVoY7PEtet4677AngoUY=
ARC-Authentication-Results: i=1; sourceware.org;
dkim=pass (2048-bit key, unprotected)
header.d=towo.net header.i=towo AT towo DOT net header.a=rsa-sha256
header.s=s1-ionos header.b=N5Cwu1gz
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DD8944BA23E1
X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6
Message-ID: <2a39e204-bd8b-4511-bd34-703899600e9e@towo.net>
Date: Sun, 31 May 2026 18:53:14 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: wcwidth broken with gcc 16
To: cygwin AT cygwin DOT com
References: <a9676834-0368-4a8a-88b0-da5e9483b536 AT towo DOT net>
<874ikpawdk DOT fsf AT Gerda DOT invalid>
<8ff2ab8d-dfdc-459c-96f3-ed4a4f451440 AT towo DOT net>
<0140C1F4-CA22-46DE-AE21-69C5427C59B5 AT unified-streaming DOT com>
<e94174b7-ea9b-45ca-bfd3-7979ce988920 AT towo DOT net>
<e362b49c-521c-4cd5-8963-c17d5770619b AT SystematicSW DOT ab DOT ca>
<fbbeb91a-4c5a-dbe6-1bb3-206cf14a73bc AT wisemo DOT com>
<4f885156-7772-43d7-ab72-c88f0a7d1e52 AT towo DOT net>
<112594ad-3c25-4dad-b1bc-071b4951ed98 AT towo DOT net>
<97f0f3c6-9f2c-429c-aa8e-875b7806b275 AT towo DOT net>
<8733z9jpfj DOT fsf AT Gerda DOT invalid>
<b70d8366-8970-4cdc-a693-6d826fe76277 AT towo DOT net>
<b8c1571a-1956-4316-a6a9-32176b6c7c80 AT towo DOT net>
<87pl2bab08 DOT fsf AT Gerda DOT invalid>
Autocrypt: addr=towo AT towo DOT net; keydata=
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 kQ==
In-Reply-To: <87pl2bab08.fsf@Gerda.invalid>
X-Provags-ID: V03:K1:AEVPNC2h4WJw33lJ31/P5P2S0K/wPhtBFvGORqA9Q8j9inTg7ut
5AGF0/Z8QM8DoeRzTVccL/bInPCoccdIpGqhIxjAVC6K4GJPN18BkuFX2KAcwUncNoXCMkI
GLtBe90d3xuUilZyuws40Lf93+VB64P6RY3OwmjucQN8Oy1f3qV88bIZlfmgmBiResyACt1
bN0L5mFoe9Wa0ziGstVAQ==
UI-OutboundReport: notjunk:1;M01:P0:5otj1wKR9ww=;/C1jfY+HTaG8mDlgQMBZM+JJRed
IeB66l6x9JYUmajBQ+a9XlOo44PFcVykDm/fB5/VxmZ8xYgR9J8kBiq31jKjk3H2Pv04c1CK6
exxnN5XfeYeFDhyoVBeKXO+ooRSMSv2IUEjjFVMNHNHClTMQx7vTJSnrOXGPWOOjE4pCnLNdg
8kEvjS/FvZl3AjAlp2ie+ILnsqtLFIgCmJ5mHp0wafUfAv51qQK7XHuNnGmFtOe+D8mNWDp0q
lkLNNpwK1WQiVsH7uyrgURMo5VFvmsstXAX3PgnrUwaCNIbpPwciUu05jZcNoe3YTGitxgRoi
TbdBvEPB9WyOnUq4Payy0XGQXm5xawOxZuL6OsOnu3axncp4qFhiwFJ0pZB7MLvCTVfPmt2ct
cVRI+JTYIrqSOP/cRomgg8PNedcK7VaNCVEPQGrjj1o9zozGRnPyqMbzsvJmfE4cfBrBVpBsw
8Jl9PTHWuRTy+kUyVNCMxSn/l1UvYQG+RHjiZkkeFXxQT2Dan2l+x+z42uHpPdvrva1josgUe
0HNJW9s27yQjhrIgU23QUD9sivO0/AJ9jew6oioFrAmII4eGMm1Iav973wkpMXwlsEQg5c6n+
aipB0roRonu3f7eEgkF8lwPPUE9yzkPll8w7F4VI4C53haQZDtcAkNWvr2cfoYT6otTr6x818
p0Eww3kOax9eqltvxLsr7OhyIk1SdvZc7+qkiSMU0dUgjtRm1GtFzi+U0LDTzw2GKcgBCpdky
N/3QYVyaBcOXko5V4hD9m3Ul3NrdHqB3fU03lYumKqxFzjgMQzJXN5wf5rzOx8w0lJTc65LOE
6qt0sFwwzBiiVEn/2CX2mRFzr6X7Ef9/NHGXYsgdLHWEEpICHeIDJHuj5NPdvKW5O+VFlUTfP
H5lkG9boOLjyNiBuPdC87ECMpjK7GidNq0UixPwKvs3BB/Ll0Nd/q/qWqpS+746SLvVnTyq01
oJ54Nydcm3MGdln740ZGN1Z+RNBFph7IgdXUqRuVEbL2OzE3hvaWq6C0vbUjNkDfL+y2YSLTL
vd062aXEkRGapxa7/dwIW0ls3ZQ4q0AbzASiGOJukm2CTahUEo/+Asc18o9fbzHHtB/HulSDZ
duWR5XdeCdWy0n1lspBeGYjYLuuhoGt+HZOjNjXtvROOTWbjUDYSic6tG1tvceQCE0rZwsvXj
CKiL6eSChVOSeKyLNTE+2c7EXRUh7gv+AMfphD9N1r7zMS51MyDXyrNLR+59Q/vucbLDmAPO/
hGGWMB1L7o5Rgd1ELSzIlSrSJjgBZxS/jcmzJUqPShxn353MfcO1dPonMHrjhxQrq3HJcgyam
3Dz+I03QIRMAakyzOTZuAjrV93AXhIlG1IefFt1T472O4ws6t4ygeIziHFY9KrWZZrjQG1+LO
xxxGD+peQbHJdh7wK6gEXZYNMiclfFHXw//vZVzm4yrOjK7AanPG6eKLXKOqJQC2SOHt0Rhrh
O1Yi9VAsCuucrk+B/5Pt5IX0vHThe582TqHOloRdn1bIif0tRl807A924tetyQZvMglzavuyq
3LBxhKIZCCSYv/nNl7Gh8iIfJx6y1TE/vH8ORj4qRZxUthQ/BGGt1nmBJ/Dy6NaMg3YTiwH20
Wct5hfjGJHHEb694Xrqw6yatlrVCfVREnMbr6IUNz7x7A4ATSIT0+ARI+wkru7JZElpBsrpK0
R6UgrxxVlGv+5N4MAkXFJCQdxWk5ZGyCfevKD8+wuZHhed5HKpYrcNo5yd8GM12HeJp+7S0Us
VISwbVpWGWPOWwShxnRey63AHsSqCBMZgCwTSdU/AuJy0KkOQRAhduDnIJUiiKucCSVjjUttX
C+L3yiSzyJv3+vzMZd6YU9qlZFUrPClbqItzLUDNxCHgVb1+TLfIpVNJjqQXRqtfa5w+4wTbo
XEUvfIzjHkJpnLTbJ72XThrY5My0sxV+0/hCUs/1ycNJO11Teo5b99wTOE6
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Thomas Wolff via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Thomas Wolff <towo AT towo DOT net>
Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>

Am 31.05.2026 um 16:50 schrieb ASSI via Cygwin:
> Thomas Wolff via Cygwin writes:
>> The implementation was extended to wint_t some years ago just to
>> enable the functionality indicated above, and it used to work until
>> gcc 15.
> That was by accident and dependent on undefined behaviour in the
> compiler for x86_64 ABI, as explained to you already.
>
>> For some change in gcc 16, it is now necessary to adapt the prototype
>> too, or gcc will apply the wrong extension and yield broken results.
> You don't own the prototype of a standardised public API function and
> don't get to change it for that very reason.
cygwin has changed it already by defining wchar_t as 16-bit. My fix only 
reverts this.

> The fix for your bug is easy enough
It's just not a fix because it narrows the parameter to 16 bits and thus 
breaks current wcwidth functionality.

> and I don't get why you insist making it even more wrong instead.
Because it's not wrong but the right thing to do as I had explained before.

>
> --8<---------------cut here---------------start------------->8---
> diff --git a/newlib/libc/string/wcwidth.c b/newlib/libc/string/wcwidth.c
> index 8348eefe8..65604c061 100644
> --- a/newlib/libc/string/wcwidth.c
> +++ b/newlib/libc/string/wcwidth.c
> @@ -230,7 +230,7 @@ __wcwidth (const wint_t ucs)
>   }
>   
>   int
> -wcwidth (const wint_t wc)
> +wcwidth (const wchar_t wc)
>   {
>     wint_t wi = wc;
>   
> --8<---------------cut here---------------end--------------->8---
>
> Again, the assignment of wc to wi should do the proper zero extension
> you seek and keeps the public signature intact (and that was what the
> code did before your change).  The stub then calls the implementation
> __wcwidth (which does take a wint_t argument), there just is no way of
> feeding it codepoints above 16 bit (and there never was such a
> possibility for correct code in Cygwin).
>
> Now I get that you think that
>
> sizeof(wchar_t) == sizeof(wint_t)
>
> should hold like on all GNU systems, but that isn't the case since
> Cygwin is on Windows and so WCHAR_MAX == 0xffffu (I think you know the
> backstory to that).  So you cannot have code points beyond 16 bits as
> input to wcwidth anyway and everything else is treated correctly (and as
> before and after the change).  Whether there needs to be a separate API
> for dealing with such codepoints (essentially in UTF-32) is a separate
> discussion.
>
>
> Regards,
> Achim.


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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019