[PATCH] Refactor section/label init for early LTO debug

Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
Tue Sep 27 10:23:00 GMT 2016


Hi Richard,

> The following patch ports a refactoring of section/label in it from
> the early LTO debug work to trunk.  For early LTO debug we need to
> be able to emit two sets of debug infos into two sets of different
> sections - early LTO into .gnu.debuglto_ prefixed sections and
> regular (early + late) debug for the FAT part of the object.
>
> Thus this preparation splits out the section and label generation
> from dwarf2out_init moving the text section related stuff to 
> dwarf2out_assembly_start and the rest to a new function
> init_sections_and_labels which is now called only before we start
> outputting dwarf (in dwarf2out_finish).  It also removes some
> dwarf_split_debug_info checks from the macro section name defines
> (in the end I'll have up to four variants - regular, regular LTO,
> DWO, DWO LTO).
>
> And it removes an unused function.
>
> Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.  I've
> also bootstrapped with -O2 -g3 to exercise the .debug_macro path.
>
> Ok?
>
> Just noticed that DEBUG_STR_OFFSETS_SECTION needs similar massaging
> for its dwarf_split_debug_info condition - will followup as obvious
> if this one is approved.

this patch introduced many pch assembly comparison failures on Solaris
(both sparc and x86, 32 and 64-bit, /bin/as only), like

FAIL: gcc.dg/pch/common-1.c   -O3 -g  assembly comparison
FAIL: gcc.dg/pch/common-1.c  -O0 -g assembly comparison

gcc.log shows this diff:

<       .long   .Letext0
>       .long

While the .Letext0 label is still in the assembly output, it isn't
referenced inside .debug_line, as can be seen in the diff.

Unlike the gas case, with as HAVE_AS_DWARF2_DEBUG_LINE isn't defined.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University



More information about the Gcc-patches mailing list