https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81936
--- Comment #8 from Tom de Vries <vries at gcc dot gnu.org> --- (In reply to rguent...@suse.de from comment #7) > Ah, yeah. And we can have both, right? I'd say so. There's f.i. libgomp.c/target-9.c, which contains '#pragma omp target' and uses -flto. > So we'd either need a separate > set of early debug sections or use a combined for both (this is what > will happen if you add && !flag_generate_offload I guess). I tried this patch: ... diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 0c339bd46f0..92b43db1bae 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -30526,7 +30526,7 @@ dwarf2out_early_finish (const char *filename) early_dwarf_finished = true; /* Do not generate DWARF assembler now when not producing LTO bytecode. */ - if (!flag_generate_lto) + if (!flag_generate_lto && !flag_generate_offload) return; /* Now as we are going to output for LTO initialize sections and labels ... but found it doesn't work because flag_generate_offload is actually false. I'm now trying this (code snippet copied from symbol_table::compile), but I'm not sure if setting flag_generate_offload is the proper solution, and if so, where it should be inserted: ... diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index e8cc765095d..29a1d038b0e 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -2586,6 +2586,10 @@ symbol_table::finalize_compilation_unit (void) current_function_decl = NULL; set_cfun (NULL); + /* Offloading requires LTO infrastructure. */ + if (!in_lto_p && g->have_offload) + flag_generate_offload = 1; + /* Do not skip analyzing the functions if there were errors, we miss diagnostics for following functions otherwise. */ ...