From: Richard Biener Date: Thu, 27 Feb 2020 10:42:50 +0000 (+0100) Subject: fix -fdebug-prefix-map without gas .file support X-Git-Tag: basepoints/gcc-11~1191 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d12153046816f955e74943af7089d30de6a00e19;p=thirdparty%2Fgcc.git 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 * 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. --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d8cfd09daa8b..beb56bc0130d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2020-02-27 Mark Williams + + * 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 PR c/93949 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 1fcb19a0489c..bb45279ea56d 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -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; diff --git a/gcc/lto-opts.c b/gcc/lto-opts.c index 87e916a27417..2512560cc6de 100644 --- a/gcc/lto-opts.c +++ b/gcc/lto-opts.c @@ -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: diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index 1faf31c05512..cea5e71cffbc 100644 --- a/gcc/lto-streamer-out.c +++ b/gcc/lto-streamer-out.c @@ -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;