On Tue, Jul 20, 2021 at 11:07:26AM +0200, Richard Biener wrote: > 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). > > Bootstrapped and tested on x86_64-unknown-linux-gnu. OK? > > Thanks, > Richard. > > 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.
Ok. Jakub