https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=c9b37162799ebbfadd5d4ffba11aa9a44c4d9853
commit c9b37162799ebbfadd5d4ffba11aa9a44c4d9853 Author: Yaakov Selkowitz <yselk...@redhat.com> Date: Mon Jul 6 15:17:17 2015 -0500 winsup/cygwin: rework basename redefinition handling in path.cc This fixes the compile after commit 79e419de6261c4e04785908828096cb4d56b8680. * path.cc: Rework basename redefinition handling. Explain why. Diff: --- winsup/cygwin/ChangeLog | 4 ++++ winsup/cygwin/path.cc | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 58b75e2..13d6fe7 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2015-07-06 Yaakov Selkowitz <yselk...@redhat.com> + + * path.cc: Rework basename redefinition handling. Explain why. + 2015-07-05 Corinna Vinschen <cori...@vinschen.de> * dcrt0.cc (CYGWIN_GUARD): Remove. diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 446d746..89dbdab 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -48,7 +48,12 @@ c: means c:\. */ -#define _BASENAME_DEFINED +/* This file includes both the XPG and GNU basename functions, with the + former exported as "basename" for ABI compatibility but the latter + declared as such for source compatibility with glibc. This tells + <string.h> not to declare the GNU variant in order to prevent a conflicting + declaration error with the XPG variant implemented herein. */ +#define basename basename #include "winsup.h" #include "miscfuncs.h" #include <ctype.h> @@ -70,6 +75,7 @@ #include <ntdll.h> #include <wchar.h> #include <wctype.h> +#undef basename suffix_info stat_suffixes[] = { @@ -4739,8 +4745,6 @@ out: return buf; } -#undef basename - /* No need to be reentrant or thread-safe according to SUSv3. / and \\ are treated equally. Leading drive specifiers are kept intact as far as it makes sense. Everything else is