www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2026/05/31/14:25:37

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 64VIPaea2811137
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 64VIPaea2811137
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=H6B26EdZ
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 704694BA79A2
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1780251935;
bh=zWCtfMJv8h52piSXhlfhO1iLuruihfzdsAkLc+MyLcU=;
h=To:Subject:In-Reply-To:References:Date:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=H6B26EdZahoSnA6QMbUPzTJZgsS1QgGF6pdRfByexmEHto8JLg6vhEu80JawyAjsc
PCy1k2jNjLGRQdOmjIEmF9YxK/B2M6Xd50tG2ObuN6WSwN3eh+zfqfvYv+bs/7Qxcs
z0mxcEALF+LXQ5rSi2Fe6i1gEEge25nJLgsvxa+U=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2F2F34BA23F6
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2F2F34BA23F6
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1780251914; cv=none;
b=aAvzXNN+uu7hTyvF2gExappXg7J64MdVnlRcSssXxHHnw5VLaqmR7JmYGxF/hO9aC1fo7Hyvj2dzdJI5I2k0NtiuQxuyzAFn/l0mcxf2yU/g7g7ovnY3vGqXd7BhSrqdp/RO0d/gRUCBSDiHFmffYL/XHI4CKyQijbOPVtPlN4g=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1780251914; c=relaxed/simple;
bh=yrtNVMYymCRHVovslymnLG3Wyv8cKwE0x9bmQfI11kg=;
h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;
b=DCcVtORnA0qZPnmwujJlqll7pma1TJVVLSTg6blR1FtV0OgUO1qxDXeTDGapzNv/+RgItkL1je24MZ4kER4VGJGw4/MSIrFBdkCImf0AXliBAvcXoh31P/nVkfT/V0pycYZe52jfDDeR6RJWSHvuWdGDEPL08hWX528KQEmcMQI=
ARC-Authentication-Results: i=1; sourceware.org;
dkim=pass (1024-bit key, secure) header.d=nexgo.de
header.i=@nexgo.de header.a=rsa-sha256 header.s=vfde-mb-mr2-23sep
header.b=HniKe92w
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2F2F34BA23F6
To: cygwin AT cygwin DOT com
Subject: Re: wcwidth broken with gcc 16
In-Reply-To: <2a39e204-bd8b-4511-bd34-703899600e9e@towo.net> (Thomas Wolff via
Cygwin's message of "Sun, 31 May 2026 18:53:14 +0200")
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>
<2a39e204-bd8b-4511-bd34-703899600e9e AT towo DOT net>
Date: Sun, 31 May 2026 20:25:04 +0200
Message-ID: <87ldcza133.fsf@Gerda.invalid>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
X-purgate-server: smtpa07
X-purgate-type: clean
X-purgate: clean
X-purgate-size: 2202
X-purgate-ID: 155817::1780251911-1E4CF746-733F376D/0/0
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: ASSI via Cygwin <cygwin AT cygwin DOT com>
Reply-To: ASSI <Stromeko AT nexgo DOT de>
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>

Thomas Wolff via Cygwin writes:
> cygwin has changed it already by defining wchar_t as 16-bit. My fix
> only reverts this.

Nope.  That's not a Cygwin thing and wchar_t can be anything, even less
than 16bit, as far as the standards are concerned.  Yes, that's messy,
but it is what it is.

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

It doesn't break anything that wasn't already broken before.  There can
be no correct Cygwin program that can use an argument to wcwidth that
has more than 16 bits (and your own example doesn't use any of these
anyway).  The public interface always was wchar_t (nee unsigned short on
Cygwin) and the extension to the win_t in the implementation function in
newlib libc just wasn't working as you (still?) seem to think it does
when you mismatch the types.  The type extension of function arguments
(via register sharing) on x86_64 is undefined, the resulting upper 16
bits in this case (wchar_t --> wint_t) can be anything: zero extension,
sign extension or even random bits.  This is just not something that can
work reliably.  I don't know what aarch64 does on that front.

In your example, you use an int as argument, which is used as a function
argument declared as short unsigned (via wchar_t, so it gets truncated
to 16 bit, at least logically) and then used an int again inside the
actual implementation of that function.  This is wrong as the prototype
and the implementation don't match, but the ABI only guarantees that the
lower 16 bit of the original argument transfer in that case.  Even if
zero extension was used you'd lose any upper bits in the original
argument anyway (which you say works for your example and I'd argue that
there can't be any upper bits anyway on Cygwin, see aboive), which is
exactly what will _definitely_ happen if the libc implementation stub is
reverted to the correct signature.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf rackAttack V1.04R1:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

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