delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2016/08/24/13:30:55

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:reply-to:subject:references:to:from:message-id
:date:mime-version:in-reply-to:content-type
:content-transfer-encoding; q=dns; s=default; b=r8eoeP5sUPwEM4kF
7l865dT2p7uUF1uJ1hnAImueurmBnbzy8k01TuNpKWTCj3AOD1fVIZcr3vTHPFgk
ej7+uYt/ZEO3Aplt0GnCoyiDm/9F2D/aOMXzPuI1NqI9x71rruRbx53+CQ9pwO10
arepGB10w37eVnZpnjt8erXdHBA=
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:reply-to:subject:references:to:from:message-id
:date:mime-version:in-reply-to:content-type
:content-transfer-encoding; s=default; bh=V+gEkuxe4cpjJiOmPJCLQS
TKZKo=; b=yBFwiI5uyWu7RY4Mx8Wfi9oUMDPxGSPq4j04q+09rDB+GQQJOX++WD
kONFq1gVXravaEW+APKMZsZzWVDYQMAX/khHOlwzYMBaWTBzYjXUSM1FiFXlbb65
qngA2VK5cXep+PRzszoffm8EIhTsTT5G38vVk+4yAA8choT8UhYDk=
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=-1.5 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 spammy=H*RU:64.59.136.137, Hx-spam-relays-external:64.59.136.137, H*Ad:D*ab.ca, Canada
X-HELO: smtp-out-so.shaw.ca
X-Authority-Analysis: v=2.2 cv=Q++Q2M+a c=1 sm=1 tr=0 a=WqCeCkldcEjBO3QZneQsCg==:117 a=WqCeCkldcEjBO3QZneQsCg==:17 a=IkcTkHD0fZMA:10 a=CCpqsmhAAAAA:8 a=mAxD1XslfVFoKvNiyd8A:9 a=QEXdDO2ut3YA:10 a=ul9cdbp4aOFLsgKbc677:22
Reply-To: Brian DOT Inglis AT SystematicSw DOT ab DOT ca
Subject: Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.6.0-0.11
References: <announce DOT 20160820213705 DOT s5bhpxbmpawjxy7c AT calimero DOT vinschen DOT de> <35c2b18f-ac98-d69e-32fe-2eae2d128f85 AT SystematicSw DOT ab DOT ca> <20160823161152 DOT GA6100 AT calimero DOT vinschen DOT de> <e9449091-044e-177a-cd6f-cb77665d9681 AT SystematicSw DOT ab DOT ca> <b9941b2d-b779-4522-0f9b-c0b0fede9a9a AT SystematicSw DOT ab DOT ca> <20160824082235 DOT GA1493 AT calimero DOT vinschen DOT de>
To: cygwin AT cygwin DOT com
From: Brian Inglis <Brian DOT Inglis AT SystematicSw DOT ab DOT ca>
Message-ID: <08f36d59-902b-8e1e-52d1-6168f7e03cde@SystematicSw.ab.ca>
Date: Wed, 24 Aug 2016 11:30:19 -0600
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <20160824082235.GA1493@calimero.vinschen.de>
X-CMAE-Envelope: MS4wfMF+hR+HGjlw4jYdlpquX7i/1wwDoLewLbo54MD2RleBQlGGHliMtBW7NCkb7sU33oiv2VRqPWWKi08BZ9bvBAQ3v6gqMzCUhbdMxMMnZIXk2Lg1fkvJ Dst6s6NM2zXuxKu+CXPzGPWeuVIM+Xt9cYd6co8wFwLi7GlNGYGhzwvWJQXlXohPPPZluQU7qNQ2Sg==
X-IsSubscribed: yes

On 2016-08-24 02:22, Corinna Vinschen wrote:
> On Aug 23 23:36, Brian Inglis wrote:
>> On 2016-08-23 22:15, Brian Inglis wrote:
>>> On 2016-08-23 10:11, Corinna Vinschen wrote:
>>>> On Aug 23 07:27, Brian Inglis wrote:
>>>>> Compared lists of locale_t headers and functions for POSIX, Cygwin,
>>>>> and glibc, attached below for comparison, and found:
>>>>> * missed string.h(strerror_l) on my first check;
>>>>>    not sure if you can implement that easily on Windows?
>>>>> * GNU also supports wchar.h(wcsftime_l) and time.h(strptime_l);
>>>>> * GNU also defines string.h(str[n]casecmp_l) functions as an extension,
>>>>>    as well as in POSIX specified strings.h.
>>>> I just applied a couple of patches to add the missing strerror_l,
>>>> strptime_l and wcsftime_l.  I also added the missing str[n]casecmp_l
>>>> prototypes to strings.h.  I'll create a new test release in a bit.
>>> GNU duplicates the POSIX strings.h(str[n]casecmp_l) in string.h also.
>> i.e. str[n]casecmp_l should be defined under #if __POSIX_VISIBLE >= 200809
>> but not defined under #ifdef __GNU_VISIBLE in string*s*.h,
>> and defined under #ifdef __GNU_VISIBLE but not defined under
>> #if __POSIX_VISIBLE >= 200809 in *string*.h;
>> strerror_l should be under #if __POSIX_VISIBLE  >= 200809 in *string*.h,
>> or its #includes.
> They were already declared in string,h.

Sorry for the poor explanation, but what I was failing to say clearly
was that:

* there does not appear to be any strerror_l declaration in string.h
or any header searching using grep or pickaxe on:

https://sourceware.org/git/?p=newlib-cygwin.git&a=search&h=HEAD&st=grep&s=strerror_l

and that str[n]casecmp_l conditionals __GNU_VISIBLE and __POSIX_VISIBLE >= 200809
appear to be flipped around between string.h and strings.h declarations in:

https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/include/string.h

#if __POSIX_VISIBLE >= 200809
extern int strcasecmp_l (const char *, const char *, locale_t);
extern int strncasecmp_l (const char *, const char *, size_t, locale_t);
extern int strcoll_l (const char *, const char *, locale_t);
extern size_t strxfrm_l (char *__restrict, const char *__restrict, size_t,
                          locale_t);
#endif

should probably be:

#if __POSIX_VISIBLE >= 200809
extern int strcoll_l (const char *, const char *, locale_t);
extern size_t strxfrm_l (char *__restrict, const char *__restrict, size_t,
                          locale_t);
#endif
#if __GNU_VISIBLE
extern int strcasecmp_l (const char *, const char *, locale_t);
extern int strncasecmp_l (const char *, const char *, size_t, locale_t);
#endif

and in:

https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/include/strings.h

#if __GNU_VISIBLE
extern int strcasecmp_l (const char *, const char *, locale_t);
extern int strncasecmp_l (const char *, const char *, size_t, locale_t);
#endif /* _GNU_VISIBLE */

should probably be:

#if __POSIX_VISIBLE >= 200809
extern int strcasecmp_l (const char *, const char *, locale_t);
extern int strncasecmp_l (const char *, const char *, size_t, locale_t);
#endif /* __POSIX_VISIBLE >= 200809 */

if I am reading the code and docs correctly.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

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

- Raw text -


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