https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99618
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Hmm, so the linker complains that .debug_macro refers to COMDAT .debug_macro which is discarded. Quite possibly the linker misses special-casing of .debug_macro because it's called .gnu.debuglto_.debug_macro in this case. Again, this looks like a linker issue to me. Note all involved sections are marked 'E'.