https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88389
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |SUSPENDED Last reconfirmed| |2019-03-19 Target Milestone|8.4 |--- Summary|[8/9 Regression] -flto -g |-flto -g -gsplit-dwarf is |-gsplit-dwarf is broken |broken Ever confirmed|0 |1 --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- So the issues are multiples. First of all the way we handle split-dwarf requires the driver to objcopy the .dwo sections to the .o.dwo files - this step would have to happen after copying out early debug into temporaries. But then I have a hard time seeing how to find the debug. Of course -gsplit-dwarf at link-time doesn't make much sense. I guess the proper way of doing -gsplit-dwarf at compile-time with -flto would be to emit a _single_ (independent of -ffat-lto-objects) set of .dwo sections from dwarf2out_early_finish - in fact move _all_ of the split-dwarf handling there. Then the only "LTO" debug sections would be the skeleton ones. There's still the unsolved issue that late debug info will refer to DIEs in the .dwo debug in its symbol + offset way which of course does not work. There's no way to do this since .dwo files are designed to have _all_ the debug info, not just type or decl parts like -fdebug-types-sections. So -flto looks like fundamentally incompatible with -gsplit-dwarf and I doubt it's worth supporting it for the fat part of the objects.