https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90441
--- Comment #13 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Iain Sandoe from comment #12) > (In reply to rguent...@suse.de from comment #11) > > On Mon, 13 May 2019, iains at gcc dot gnu.org wrote: > > > > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90441 > > > > > > --- Comment #10 from Iain Sandoe <iains at gcc dot gnu.org> --- > > > (In reply to Iain Sandoe from comment #9) > > > > this is on the rev *before* the change, using llvm-dwarfdump from the > > > > llvm-7 > > > > branch: > > > > > > > > iains@gcc122:~/gcc-trunk/A$ ../../llvm-710-build/bin/llvm-dwarfdump > > > > --verify > > > > firmware.elf > > > > Verifying firmware.elf: file format ELF64-x86-64 > > > > Verifying .debug_abbrev... > > > > Verifying .debug_info Unit Header Chain... > > > > Verifying .debug_info references... > > > > error: invalid DIE reference 0x00000000. Offset is in between DIEs: > > > > > > so probably a missing pointer? > > > > It looks like an unresolved relocation - those are to be resolved > > from $label + offset where $label is defined in one of the early > > debug units. Maybe we miss one early debug file in the link? > > It doesn't seem so: > ../lto-a/bin/g++ -mtune=generic -march=x86-64 -r -nostdlib -o > /tmp/ccXK3OSgdebugobj /tmp/ccuTtXKldebugobjtem /tmp/ccjVk9Cqdebugobjtem > /tmp/ccodTovvdebugobjtem > > and they contain debug_info for the three object files. Which verifies (according to llvm-dwarfdump) and looks sane on readelf -wi. The -r output file is deleted for the prelink case, so can't easily check that. (since the problem exists before and after the change, perhaps I can find the rev that improves the save-temps)