Re: [PATCH RFC] CYGWIN: avoid implicit declaration warning
- From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
- Date
- Nov 24, 2014, 23:04 UTC
- Message-ID
- <5473B999.2050604@ramsay1.demon.co.uk>
- In-Reply-To
- <xmqqlhn0usbq.fsf@gitster.dls.corp.google.com>
On 24/11/14 22:50, Junio C Hamano wrote:
Show 28 quoted lines
> Ramsay Jones <ramsay@ramsay1.demon.co.uk> 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 <string.h> 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: > > <string.h> 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