There may not be a link time -- you can "pahole
something.o". If the .o
was made with -fdebug-types-section, then it may have multiple such
sections. This is just a consequence of the use of different comdat
sections for each type unit.
In general we've said that libdw is not meant for generic ET_REL files.
The exception is .ko files, which are ET_REL but are the output of ld -r so
section merging has already been done. I guess that will leave multiple
sections in a COMDAT situation, but those don't appear in .ko files.
I haven't looked at your changes yet. But I think we made this simplifying
assumption (and stated it up front) for good reason. So it may take some
convincing for me to think we should complicate the libdw internals a lot
to support this new kind of usage.
Thanks,
Roland