From: Ramsay Jones Date: Mon, 24 Nov 2014 23:04:57 GMT Subject: Re: [PATCH RFC] CYGWIN: avoid implicit declaration warning Message-ID: <5473B999.2050604@ramsay1.demon.co.uk> In-Reply-To: On 24/11/14 22:50, Junio C Hamano wrote: > Ramsay Jones writes: > >> ... >> Although I have not done an actual diff of the various cdef.h files, they >> do appear to be more or less the same. In other words, I no longer think >> that the change results from a 'change in priority of _XOPEN_SOURCE'. The >> issue is simply that in the old header these functions were >> declared unconditionally; in the new headers the are contained within >> preprocessor conditionals using the __GNU_VISIBLE and __BSD_VISIBLE macros >> which are not set when _XOPEN_SOURCE is set (despite _GNU_SOURCE and >> _BSD_SOURCE being set). > > So I can take your version [*1*], drop this bit from the log: > > This seems to be caused by a change to the system headers which > results in the _XOPEN_SOURCE macro now having prioity over the > _GNU_SOURCE and _BSD_SOURCE macros (they are simply ignored). > This in turn leads to the declarations of the above functions > to be suppressed. > > and replace it with something like: > > on Cygwin used to always declare the above functions, > but a recent version of it no longer make them visible when > _XOPEN_SOURCE is set (even if _GNU_SOURCE and _BSD_SOURCE is > set). > > and keep the rest, I think. Perfect! Thanks! (actually, another minor typo: the second warning message, indent the ^ by two spaces - it should be pointing to the = symbol). ATB, Ramsay Jones