g++ with -fprofile-dir flag has a bug (backslash instead of forward-slash issue)

John Selbie jselbie@gmail.com
Sun Apr 12 11:39:41 GMT 2020

I would file a bug, but that link you provided takes me to a sign-up page
that says, "Account creation restricted.  Please contact ... response
within 24 hours..."

A quick cursory glace of GCC sources would suggest the issue is in
\gcc\coverage.c. This is a snippit of a function that builds the mangled
path for the .gcda file.

          if (profile_data_prefix)
     const char *separator = "\\";
     const char *separator = "/";
     filename = concat (getpwd (), separator, filename, NULL);
     filename = mangle_path (filename);
     len = strlen (filename);

I'm not an expert on building gcc.  I just suspect that somewhere in the
build chain  HAVE_DOS_BASED_FILE_SYSTEM is getting defined for or by cygwin.

Another cursory search of gcc sources suggest HAVE_DOS_BASED_FILE_SYSTEM is
defined by this preprocessor stuff:

#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined
#  endif

Still a gcc bug?  I'm guessing so.

On Sun, Apr 12, 2020 at 4:26 AM JonY via Cygwin <cygwin@cygwin.com> wrote:

> On 4/12/20 10:59 AM, John Selbie via Cygwin wrote:
> > Sure, but this bug is unique to cygwin.  Why would that be there bug?
> >
> Because Cygwin does not modify gcc to use Windows paths.
> --
> Problem reports:      https://cygwin.com/problems.html
> FAQ:                  https://cygwin.com/faq/
> Documentation:        https://cygwin.com/docs.html
> Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

More information about the Cygwin mailing list