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.
This commit is contained in:
Richard Biener 2020-02-27 11:42:50 +01:00
parent 1956773cc6
commit d121530468
4 changed files with 15 additions and 2 deletions

View file

@ -1,3 +1,11 @@
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>
PR c/93949

View file

@ -12101,8 +12101,9 @@ file_name_acquire (dwarf_file_data **slot, file_name_acquire_data *fnad)
fi = fnad->files + fnad->used_files++;
f = remap_debug_filename (d->filename);
/* Skip all leading "./". */
f = d->filename;
while (f[0] == '.' && IS_DIR_SEPARATOR (f[1]))
f += 2;

View file

@ -131,6 +131,9 @@ lto_write_options (void)
case OPT_SPECIAL_input_file:
case OPT_dumpdir:
case OPT_fresolution_:
case OPT_fdebug_prefix_map_:
case OPT_ffile_prefix_map_:
case OPT_fmacro_prefix_map_:
continue;
default:

View file

@ -44,6 +44,7 @@ along with GCC; see the file COPYING3. If not see
#include "omp-offload.h"
#include "print-tree.h"
#include "tree-dfa.h"
#include "file-prefix-map.h" /* remap_debug_filename() */
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,
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);
}
ob->current_file = xloc.file;