delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2016/03/13/07:06:47

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; q=dns; s=
default; b=q16jWmKzGHixSoBctwNFqGHVaom97Y9DXA1S0DSPK43XwxOtGr+ZJ
fEuIsgMzTiAkTDSZVlBWWl8AAKadzjA4rUAU5D8TECSvTufsfUgmkaXScJMhkj3+
qS+Oje0yXZbL6hiM1Ri4vWtqMAbP/duNPlPmXX5TgyrcjEpNZrkTKE=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; s=default;
bh=wlHTi7MfcJi0ow3a+trj3H1twHE=; b=F4cd4fEqfRFHgilWWWrLA2IiNXUW
+ZTaJPMMI8e6Xzwy32k6lZUGjsmF6BQ7rAiPPHieGmR68TyFWw3O5nhTMQe8DDlf
79lZTbKPyAT61a1oRzno3mH+debNu61ptrIxPyCySWdUkassHPsR8/wQ8MeriDT0
vzUgBgSeMfJXjs8=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-96.6 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_PBL,RDNS_DYNAMIC,USER_IN_WHITELIST autolearn=no version=3.3.2 spammy=Hx-languages-length:1596, H*i:sk:02b9665, H*f:sk:02b9665, HX-Envelope-From:sk:corinna
X-HELO: calimero.vinschen.de
Date: Sun, 13 Mar 2016 12:06:27 +0100
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: Problem with line buffering and getc function on 1.7.33.
Message-ID: <20160313110627.GD25791@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <a0c23290b3a8502552dcf149fbfa5f90 AT mail DOT kylheku DOT com> <56E34346 DOT 9010000 AT gmail DOT com> <11ca145175d5b7d15db927c0c1f28b18 AT mail DOT kylheku DOT com> <20160312193946 DOT GB3567 AT calimero DOT vinschen DOT de> <20160312222921 DOT GD3567 AT calimero DOT vinschen DOT de> <02b96659afff45653e40bc7eaeae3495 AT mail DOT kylheku DOT com>
MIME-Version: 1.0
In-Reply-To: <02b96659afff45653e40bc7eaeae3495@mail.kylheku.com>
User-Agent: Mutt/1.5.24 (2015-08-30)

--RASg3xLB4tUQ4RcS
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mar 12 16:41, Kaz Kylheku wrote:
> On 12.03.2016 14:29, Corinna Vinschen wrote:
> >I do now.  Basically it's setvbuf screwing up the internal flags in the
> >FILE structure.  I took the liberty to update newlib's setvbuf to the
> >OpenBSD version locally and I'm going to apply my patches to newlib
> >soon.  I'll provide a new 2.5.0 test release of Cygwin with this patch
> >tomorrow or early next week.
>=20
> The change in git now seems risky; it substantially rewrites setvbuf.
> Of course, it's not that I think OpenBSD has it wrong, but that it's
> being cherry-picked in isolation into what looks like a code base
> with some other old pieces. Just a thought.

Point taken.  I compared the code carefully and I'm reasonable sure
that the risk is low.  The major differences to the old setvbuf are:

- The locking call is later.  The first check potenitally exiting
  the function early does not need any access to either reent or fp.

- OpenBSD setvbuf now drops the ungetc buffer.

- OpenBSD resets more flags, namely __SOPT | __SNPT | __SEOF.  That's
  certainly the safer option.

- Optimal IO size handling is a bonus.  Just setting buffer to 1K was
  a bit sub-optimal.

- Add missing __sinit() call.

- Only set buffersize to non-0 in _IOLBF case if we're already writing.

- The rest is equivalent to before.  Only the switch statement has been
  changed to an if in OpenBSD's setvbuf.

Did you try Cygwin 2.0.5-0.6?


Corinna

--=20
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

--RASg3xLB4tUQ4RcS
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJW5UmzAAoJEPU2Bp2uRE+gWwcP/0L2qfp08Dfh+ZCyzS892z4f
pGE82Y/TIKIF5ikfpbh/h/hkHWv3OU75A2awBIG6Md6La62wjA5KSh0Tx34nBfRQ
duW+PNwnbB3ZK41bKWchWZnVsbvP4cuZMLLFldMOCvyuxRm6I8QzqbbJR1vN4txm
9zAravv31+KoLw8uMaiBXWwYKfytKLZUa1D0b3dwAfMRH+O80v7u3nihLwKGb5iS
LgqlJuDfF4gqpssn7K1UMqIvbbTC/ndUQlvCG59zYJWbzgKN7SkB7Bqa+LwcDkTe
WwkSbtgSVOM4YgyvMlNsgJN/xtK/8qpID6PjnZ6EFGrF6vUuf1RElpjCfC2mySsP
etso3Pm6DyzmIcAI/1bYLG+PXO+BB8wnWKq3U6yBHl5IdTDMXakkSyR/+oFqHN0p
jkyM8mbs4Rpv+O7XpQ5/K12sKp1z48/GQAbnyw2PL1Ygt5RlHMTTzjjD4Wi5ubKO
ZIU4K1MPi0Y+wVacWGGVxdnvaEjVbEBLXfRB7K5Otm1As0pjAVPGtG98T4ApNSYH
fVBy21a9lzlviy+3whpOUghciwoOPof3RL7EZbGx1hr/Oag9bWu6bI9DJjz/zmbv
f1sf7T2dKX3l+0WrcJL2b14wsPjTePMvD/a0UgnRTGh7Q4n9rdGLBzDDY7IHa9GQ
B7tb8iEKy7wHQn4lM21g
=zHCu
-----END PGP SIGNATURE-----

--RASg3xLB4tUQ4RcS--

- Raw text -


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