https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101473

--- Comment #15 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>:

https://gcc.gnu.org/g:7cc2df084b7977653a9b59cbc34a9ad500ae619c

commit r12-2412-g7cc2df084b7977653a9b59cbc34a9ad500ae619c
Author: Richard Biener <rguent...@suse.de>
Date:   Tue Jul 20 11:00:33 2021 +0200

    debug/101473 - apply debug prefix maps before checksumming DIEs

    The following makes sure to apply the debug prefix maps to filenames
    before checksumming DIEs to create the global symbol for the CU DIE
    used by LTO to link the late debug to the early debug.  This avoids
    binary differences (in said symbol) when compiling with toolchains
    installed under a different path and that compensated with appropriate
    -fdebug-prefix-map options.

    The easiest and most scalable way is to record both the unmapped
    and the remapped filename in the dwarf_file_data so the remapping
    process takes place at a single point and only once (otherwise it
    creates GC garbage at each point doing that).

    2021-07-20  Richard Biener  <rguent...@suse.de>

            PR debug/101473
            * dwarf2out.h (dwarf_file_data): Add key member.
            * dwarf2out.c (dwarf_file_hasher::equal): Compare key.
            (dwarf_file_hasher::hash): Hash key.
            (lookup_filename): Remap the filename and store it in the
            filename member of dwarf_file_data when creating a new
            dwarf_file_data.
            (file_name_acquire): Do not remap the filename again.
            (maybe_emit_file): Likewise.

Reply via email to