On 02/15/2016 04:09 PM, Hongxu Jia wrote:
PR other/69821
* common.opt (grecord-debug-prefix-map, gno-record-debug-prefix-map):
New options.
* dwarf2out.c:(gen_producer_string) Use option to filter
-fdebug-prefix-map
* doc/invoke.texi: Document -grecord-debug-prefix-map and
-gno-record-debug-prefix-map.
Signed-off-by: Hongxu Jia <hongxu....@windriver.com>
---
gcc/common.opt | 8 ++++++++
gcc/doc/invoke.texi | 14 ++++++++++++++
gcc/dwarf2out.c | 8 ++++++++
3 files changed, 30 insertions(+)
diff --git a/gcc/common.opt b/gcc/common.opt
index 2259f29..3aef05a 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -2464,6 +2464,14 @@ grecord-gcc-switches
Common RejectNegative Var(dwarf_record_gcc_switches,1)
Record gcc command line switches in DWARF DW_AT_producer.
+gno-record-debug-prefix-map
+Common RejectNegative Var(dwarf_record_debug_prefix_map,0) Init(1)
+Don't record -fdebug-prefix-map in gcc command line switches in DWARF
DW_AT_producer.
+
+grecord-debug-prefix-map
+Common RejectNegative Var(dwarf_record_debug_prefix_map,1)
+Record -fdebug-prefix-map in gcc command line switches in DWARF DW_AT_producer.
+
gno-split-dwarf
Common Driver RejectNegative Var(dwarf_split_debug_info,0) Init(0)
Don't generate debug information in separate .dwo files
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 9d8ffc0..d18d24a 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -337,6 +337,7 @@ Objective-C and Objective-C++ Dialects}.
-fsel-sched-verbose -fsel-sched-dump-cfg -fsel-sched-pipelining-verbose @gol
-fstack-usage -ftest-coverage -ftime-report -fvar-tracking @gol
-fvar-tracking-assignments -fvar-tracking-assignments-toggle @gol
+-grecord-debug-prefix-map-gstabs -gno-record-debug-prefix-map @gol
s/-grecord-debug-prefix-map-gstabs/-grecord-debug-prefix-map/
Sorry for the typo
-g -g@var{level} -gtoggle -gcoff -gdwarf-@var{version} @gol
-ggdb -grecord-gcc-switches -gno-record-gcc-switches @gol
-gstabs -gstabs+ -gstrict-dwarf -gno-strict-dwarf @gol
@@ -5220,6 +5221,19 @@ way of storing compiler options into the object file.
This is the default.
Disallow appending command-line options to the DW_AT_producer attribute
in DWARF debugging information.
+@item -grecord-debug-prefix-map-gstabs
+@opindex grecord-debug-prefix-map-gstabs
+While -grecord-gcc-switches and -fdebug-prefix-map used, keep
+-fdebug-prefix-map in command line options which is appended
+to the DW_AT_producer attribute in DWARF debugging information.
+This is the default.
+
+@item -gno-record-debug-prefix-map
+@opindex gno-record-debug-prefix-map
+While -grecord-gcc-switches and -fdebug-prefix-map used, remove
+-fdebug-prefix-map in command line options which is appended
+to the DW_AT_producer attribute in DWARF debugging information.
+
@item -gstrict-dwarf
@opindex gstrict-dwarf
Disallow using extensions of later DWARF standard version than selected
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 13b2de7..19a149a 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -19182,6 +19182,8 @@ gen_producer_string (void)
case OPT_SPECIAL_input_file:
case OPT_grecord_gcc_switches:
case OPT_gno_record_gcc_switches:
+ case OPT_grecord_debug_prefix_map:
+ case OPT_gno_record_debug_prefix_map:
case OPT__output_pch_:
case OPT_fdiagnostics_show_location_:
case OPT_fdiagnostics_show_option:
@@ -19214,6 +19216,12 @@ gen_producer_string (void)
default:
break;
}
+
+ /* Don't record -fdebug-prefix-map in gcc command line
+ switches in DWARF DW_AT_producer */
+ if (save_decoded_options[j].opt_index==OPT_fdebug_prefix_map_ &&
+ !dwarf_record_debug_prefix_map)
+ continue;
switches.safe_push (save_decoded_options[j].orig_option_with_args_text);
len += strlen (save_decoded_options[j].orig_option_with_args_text) + 1;
break;