From 6db982d1cfccbde2a5812edf82ad330cf327bc23 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Fri, 17 Apr 2020 09:33:05 +0200 Subject: [PATCH] Backport e9f799d25973fc38022c5ea71ed5a2bca58a847f ChangeLog: 2020-04-17 Martin Liska Jonathan Yong <10walls@gmail.com> PR gcov-profile/94570 * ltmain.sh: Do not define HAVE_DOS_BASED_FILE_SYSTEM for CYGWIN. gcc/ChangeLog: 2020-04-17 Martin Liska Jonathan Yong <10walls@gmail.com> PR gcov-profile/94570 * coverage.c (coverage_init): Use separator properly. include/ChangeLog: 2020-04-17 Martin Liska Jonathan Yong <10walls@gmail.com> PR gcov-profile/94570 * filenames.h (defined): Do not define HAVE_DOS_BASED_FILE_SYSTEM for CYGWIN. --- gcc/coverage.c | 12 ++++++------ include/filenames.h | 3 ++- ltmain.sh | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/gcc/coverage.c b/gcc/coverage.c index 1ffefd5f482..9be446a862d 100644 --- a/gcc/coverage.c +++ b/gcc/coverage.c @@ -1201,6 +1201,11 @@ coverage_obj_finish (vec *ctor) void coverage_init (const char *filename) { +#if HAVE_DOS_BASED_FILE_SYSTEM + const char *separator = "\\"; +#else + const char *separator = "/"; +#endif int len = strlen (filename); int prefix_len = 0; @@ -1217,11 +1222,6 @@ coverage_init (const char *filename) of filename in order to prevent file path clashing. */ if (profile_data_prefix) { -#if HAVE_DOS_BASED_FILE_SYSTEM - const char *separator = "\\"; -#else - const char *separator = "/"; -#endif filename = concat (getpwd (), separator, filename, NULL); filename = mangle_path (filename); len = strlen (filename); @@ -1240,7 +1240,7 @@ coverage_init (const char *filename) if (profile_data_prefix) { memcpy (da_file_name, profile_data_prefix, prefix_len); - da_file_name[prefix_len++] = '/'; + da_file_name[prefix_len++] = *separator; } memcpy (da_file_name + prefix_len, filename, len); strcpy (da_file_name + prefix_len + len, GCOV_DATA_SUFFIX); diff --git a/include/filenames.h b/include/filenames.h index 1bcfddb87ac..790a27db873 100644 --- a/include/filenames.h +++ b/include/filenames.h @@ -32,7 +32,8 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. extern "C" { #endif -#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__) +#if defined(__MSDOS__) || (defined(_WIN32) && ! defined(__CYGWIN__)) || \ + defined(__OS2__) # ifndef HAVE_DOS_BASED_FILE_SYSTEM # define HAVE_DOS_BASED_FILE_SYSTEM 1 # endif diff --git a/ltmain.sh b/ltmain.sh index 79f9ba89af5..70990740b6c 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -3425,8 +3425,8 @@ int setenv (const char *, const char *, int); # define PATH_SEPARATOR ':' #endif -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ - defined (__OS2__) +#if (defined (_WIN32) && ! defined(__CYGWIN__)) || defined (__MSDOS__) || \ + defined (__DJGPP__) || defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 -- 2.26.0