Re: linker debug info editing

Daniel Jacobowitz
2006-03-10T20:04:22Z

On Fri, Mar 10, 2006 at 11:50:01AM -0800, James E Wilson wrote:
> On Fri, 2006-03-10 at 04:49, Alan Modra wrote:
> > This is a first pass at debug info editing to remove bogus entries for
> > link-once functions.
>
> There is an equivalent gcc solution we could consider. Create a
> separate compilation unit die for each linkonce function. We could use
> section groups to tie the debug info to the linkonce function, so that
> the debug info disappears along with the function.

You have to finish enabling COMDAT support everywhere, in order to do
this; we (CodeSourcery) tried when it was contributed, but kept
encountering oddball problems on different platforms.

> We already have a similar scheme in use for header files, that mirrors
> the BINCL/EINCL stabs support. This was one of the new features that
> went into the DWARF3 standard. Unfortunately, this code is not the
> default yet. You have to specify -feliminate-dwarf2-dups to get it. I
> think there was some gdb work that needed to be done to complete the
> project, and us gcc developers aren't very good at volunteering to do
> gdb work.

I made the required changes, a year and a half ago or thereabouts.

> If we do need link time editing of dwarf2 debug info, there is a lot of
> useful stuff that could be done here, such as eliminating duplicate
> debug_abbrev entries. This is probably more complicated than what you
> are attempting here though, but it could perhaps be added later on top
> of your work.

There's quite a lot of compression that we could do at link time if
we're going to process DIEs at all. I think this would be a worthwhile
thing to do, and it requires something like Alan's done (although I
haven't looked at the patch yet).

--
Daniel Jacobowitz
CodeSourcery