> > > + output_data_to_object_file (1, 0); > > > + output_data_to_object_file (1, 0); > > > > So this basically renames dw2_asm_output_data to > > output_data_to_object_file and similarly for other output functions. > > > > What would be main problems of making dw2_asm_* functions to do the > > right thing when outputting to object file? > > Either by conditionals or turning them to virtual functions/hooks as > > Richi suggested? > > > I think it's doable via conditionals. Can you explain the second approach > in more detail?
Basically you want to have output functions like dw2_asm_output_data to do the right thing and either store it to the LTO simple object section or the assembly file. So either we can add conditionals to every dw2_asm_* function needed of the form if (outputting_to_lto) ... new code ... else ... existing code ... Or have a virtual table with two different dw2_asm implementations. Older GCC code uses hooks which is essencially a structure holding function pointers, mostly because it was implemented before we converted source base to C++. Some newer code uses virtual functions for this. > > > +struct lto_simple_object > > lto_simple_object is declared in lto frontend. Why do you need to > > duplicate it here? > > > > It looks like adding relocations should be abstracted by lto API, > > so you don't need to look inside this structure that is > > lto/lto-object.cc only. > > > I should have taken this approach, but instead, I exposed simple objects to > dwarf2out. > That's the reason to duplicate the above struct. I will take care of this > while refactoring > and abstracting it by lto API Yep, this should not be hard to do. Thanks for all the work! Honza > > > > > > > +/* Output one line number table into the .debug_line section. */ > > > + > > > +static void > > > +output_one_line_info_table (dw_line_info_table *table) > > It is hard to tell from the diff. Did you just moved these functions > > earlier in source file? > > > Yeah. I will refactor the dwarf2out soon to clear these confusions. > > -- > Rishi > > > > > > Honza > >