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

55 lines
1.6 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 5bc97be388485a5f8dd85db34372a1299bffd263 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 43/47] 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 820162b2d28..d74cb901abd 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1559,16 +1559,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.12.2