Commit d1215304 by Richard Biener

fix -fdebug-prefix-map without gas .file support

This applies file mapping when emitting the directory table
directly instead of using the assemblers .file directive where
we already correctly apply the map.  Notably the non-assembler
path is used for the early debug emission for LTO.

2020-02-27  Mark Williams  <mwilliams@fb.com>

	* dwarf2out.c (file_name_acquire): Call remap_debug_filename.
	* lto-opts.c (lto_write_options): Drop -fdebug-prefix-map,
	-ffile-prefix-map and -fmacro-prefix-map.
	* lto-streamer-out.c: Include file-prefix-map.h.
	(lto_output_location): Remap the file part of locations.
parent 1956773c
2020-02-27 Mark Williams <mwilliams@fb.com>
* dwarf2out.c (file_name_acquire): Call remap_debug_filename.
* lto-opts.c (lto_write_options): Drop -fdebug-prefix-map,
-ffile-prefix-map and -fmacro-prefix-map.
* lto-streamer-out.c: Include file-prefix-map.h.
(lto_output_location): Remap the file part of locations.
2020-02-27 Jakub Jelinek <jakub@redhat.com> 2020-02-27 Jakub Jelinek <jakub@redhat.com>
PR c/93949 PR c/93949
......
...@@ -12101,8 +12101,9 @@ file_name_acquire (dwarf_file_data **slot, file_name_acquire_data *fnad) ...@@ -12101,8 +12101,9 @@ file_name_acquire (dwarf_file_data **slot, file_name_acquire_data *fnad)
fi = fnad->files + fnad->used_files++; fi = fnad->files + fnad->used_files++;
f = remap_debug_filename (d->filename);
/* Skip all leading "./". */ /* Skip all leading "./". */
f = d->filename;
while (f[0] == '.' && IS_DIR_SEPARATOR (f[1])) while (f[0] == '.' && IS_DIR_SEPARATOR (f[1]))
f += 2; f += 2;
......
...@@ -131,6 +131,9 @@ lto_write_options (void) ...@@ -131,6 +131,9 @@ lto_write_options (void)
case OPT_SPECIAL_input_file: case OPT_SPECIAL_input_file:
case OPT_dumpdir: case OPT_dumpdir:
case OPT_fresolution_: case OPT_fresolution_:
case OPT_fdebug_prefix_map_:
case OPT_ffile_prefix_map_:
case OPT_fmacro_prefix_map_:
continue; continue;
default: default:
......
...@@ -44,6 +44,7 @@ along with GCC; see the file COPYING3. If not see ...@@ -44,6 +44,7 @@ along with GCC; see the file COPYING3. If not see
#include "omp-offload.h" #include "omp-offload.h"
#include "print-tree.h" #include "print-tree.h"
#include "tree-dfa.h" #include "tree-dfa.h"
#include "file-prefix-map.h" /* remap_debug_filename() */
static void lto_write_tree (struct output_block*, tree, bool); static void lto_write_tree (struct output_block*, tree, bool);
...@@ -200,7 +201,7 @@ lto_output_location (struct output_block *ob, struct bitpack_d *bp, ...@@ -200,7 +201,7 @@ lto_output_location (struct output_block *ob, struct bitpack_d *bp,
if (ob->current_file != xloc.file) if (ob->current_file != xloc.file)
{ {
bp_pack_string (ob, bp, xloc.file, true); bp_pack_string (ob, bp, remap_debug_filename (xloc.file), true);
bp_pack_value (bp, xloc.sysp, 1); bp_pack_value (bp, xloc.sysp, 1);
} }
ob->current_file = xloc.file; ob->current_file = xloc.file;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment