1
0
forked from brl/citadel
citadel/poky/meta/recipes-devtools/gcc/gcc-6.4/0044-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch

55 lines
1.5 KiB
Diff
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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