Subject: Re: [PATCH RFC] CYGWIN: avoid implicit declaration warning

From: Junio C Hamano <[email-masked]>
Date: Sun, 23 Nov 2014 10:53:53 -0800

Ramsay Jones <[email-masked]> writes:

> On 23/11/14 14:16, Torsten Bögershausen wrote:
>> gcc under cygwin reports several warnings like this:
>>  warning: implicit declaration of function 'memmem'
>>   [-Wimplicit-function-declaration]
>> This has been observed under CYGWIN-32 with GCC 4.7.3 as well
>> as CYGWIN-64 with gcc v4.8.3-5 x86-64
>
> Heh, thanks for looking into this. Your email came at a good time,
> since I was just about to boot my old laptop into windows XP to
> test my patch on 32-bit cygwin! (If I had not been watching the
> F1 Grand Prix on TV, I would already have done so! ;-) ).
>
> It's been a while since I updated my 32-bit cygwin installation
> (about 6 months) but I'm a little surprised you found this issue
> with gcc 4.7.3 (I'm _almost_ tempted to boot that laptop anyway
> just to see what versions of software it is running).

So you have an old installation to check how well the patched
version is accepted by the old set of header files?

>
> Just for the reccord, my patch follows.
>
> ATB,
> Ramsay Jones
>
>> 
>> Do not #define _XOPEN_SOURCE 600 for CYGWIN.
>> 
>> Reported-by: Ramsay Jones <[email-masked]>
>> Signed-off-by: Torsten Bögershausen <[email-masked]>
>> ---
>> This may be a start for a patch, tested under CYGWIN-32,
>> both Windows7 and XP
>>  git-compat-util.h | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>> 
>> diff --git a/git-compat-util.h b/git-compat-util.h
>> index 400e921..cef2691 100644
>> --- a/git-compat-util.h
>> +++ b/git-compat-util.h
>> @@ -75,7 +75,8 @@
>>  # endif
>>  #elif !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__USLC__) && \
>>        !defined(_M_UNIX) && !defined(__sgi) && !defined(__DragonFly__) && \
>> -      !defined(__TANDEM) && !defined(__QNX__) && !defined(__MirBSD__)
>> +      !defined(__TANDEM) && !defined(__QNX__) && !defined(__MirBSD__) && \
>> +      !defined(__CYGWIN__)
>>  #define _XOPEN_SOURCE 600 /* glibc2 and AIX 5.3L need 500, OpenBSD needs 600 for S_ISLNK() */
>>  #define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */
>>  #endif
>>