From 6ab23e88aef22bbabee7b9600c459ff39547bb66 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 24 Mar 2016 11:23:14 -0400
Subject: [PATCH 44/46] gcc/final.c: -fdebug-prefix-map support to remap
 sources with relative path

PR other/70428
* final.c (remap_debug_filename): Use lrealpath to translate
relative path before remapping

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70428
Upstream-Status: Submitted [gcc-patches@gcc.gnu.org]

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 gcc/final.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/gcc/final.c b/gcc/final.c
index 55cf509..23293e5 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1554,16 +1554,25 @@ remap_debug_filename (const char *filename)
   const char *name;
   size_t name_len;
 
+  /* Support to remap filename with relative path  */
+  char *realpath = lrealpath (filename);
+  if (realpath == NULL)
+    return filename;
+
   for (map = debug_prefix_maps; map; map = map->next)
-    if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
+    if (filename_ncmp (realpath, map->old_prefix, map->old_len) == 0)
       break;
   if (!map)
-    return filename;
-  name = filename + map->old_len;
+    {
+      free (realpath);
+      return filename;
+    }
+  name = realpath + map->old_len;
   name_len = strlen (name) + 1;
   s = (char *) alloca (name_len + map->new_len);
   memcpy (s, map->new_prefix, map->new_len);
   memcpy (s + map->new_len, name, name_len);
+  free (realpath);
   return ggc_strdup (s);
 }
 
-- 
2.8.2

