From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27390 invoked by alias); 24 Aug 2016 17:30:39 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 27281 invoked by uid 89); 24 Aug 2016 17:30:32 -0000 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 Received: from smtp-out-so.shaw.ca (HELO smtp-out-so.shaw.ca) (64.59.136.137) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 24 Aug 2016 17:30:22 +0000 Received: from [192.168.1.100] ([174.0.238.184]) by shaw.ca with SMTP id cc0Jbtgbdgdalcc0Kbpjd5; Wed, 24 Aug 2016 11:30:21 -0600 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.Inglis@SystematicSw.ab.ca Subject: Re: [ANNOUNCEMENT] TEST RELEASE: Cygwin 2.6.0-0.11 References: <35c2b18f-ac98-d69e-32fe-2eae2d128f85@SystematicSw.ab.ca> <20160823161152.GA6100@calimero.vinschen.de> <20160824082235.GA1493@calimero.vinschen.de> To: cygwin@cygwin.com From: Brian Inglis Message-ID: <08f36d59-902b-8e1e-52d1-6168f7e03cde@SystematicSw.ab.ca> Date: Wed, 24 Aug 2016 18:29:00 -0000 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> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfMF+hR+HGjlw4jYdlpquX7i/1wwDoLewLbo54MD2RleBQlGGHliMtBW7NCkb7sU33oiv2VRqPWWKi08BZ9bvBAQ3v6gqMzCUhbdMxMMnZIXk2Lg1fkvJ Dst6s6NM2zXuxKu+CXPzGPWeuVIM+Xt9cYd6co8wFwLi7GlNGYGhzwvWJQXlXohPPPZluQU7qNQ2Sg== X-IsSubscribed: yes X-SW-Source: 2016-08/txt/msg00464.txt.bz2 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