From 233bc23e32c5213255d8391dede53aa0b61ec23f Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Wed, 5 Aug 2015 23:36:09 +0100
Subject: [PATCH 04/15] Windows: Use '/' not '\' in progpath and leave case
 as-is

Windows can handle both '/' and '\' dirseps. GCC will
have been built using Cygwin, MSYS* or cross-compiled
from a system where dirsep is '/' so it is cleaner to
force the dirseps to be '/' and keep the case as-is.

This way, the value will be consistent with the build
system and string operations, be they internal to GCC
or external to it (e.g. processing map files with sed)
have a better chance of working as expected.

A concrete instance of when this matters is when cross
compiling GNU/Linux glibc on Windows.
---
 libiberty/lrealpath.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/libiberty/lrealpath.c b/libiberty/lrealpath.c
index b27c8de..8165984 100644
--- a/libiberty/lrealpath.c
+++ b/libiberty/lrealpath.c
@@ -138,15 +138,26 @@ lrealpath (const char *filename)
   {
     char buf[MAX_PATH];
     char* basename;
+    char* slash;
     DWORD len = GetFullPathName (filename, MAX_PATH, buf, &basename);
     if (len == 0 || len > MAX_PATH - 1)
       return strdup (filename);
     else
       {
-	/* The file system is case-preserving but case-insensitive,
-	   Canonicalize to lowercase, using the codepage associated
-	   with the process locale.  */
-        CharLowerBuff (buf, len);
+	/* Turn all back slashes back into forward slashes
+	   and don't make it lowercase.
+	   Rationale:
+	   Windows is as happy with / as it is with \. This will
+	   have been built using Cygwin, MSYS* or cross-compiled
+	   from a system where dirsep is / so it is cleaner just
+	   to keep the dirseps as / (and the case un-modified).
+	   This way, the value will be consistent with the build
+	   system and string operations (be they internal to this
+	   software or external to it, e.g. processing map files
+	   with sed) work as expected.  */
+	slash = buf;
+	while ((slash = strchr(slash,'\\')) !=  NULL)
+	  *slash = '/';
         return strdup (buf);
       }
   }
-- 
2.8.1

