I will have to give more thought to the concrete feature details.
Of course, some way to resolve things usefully for function-descriptor
machines is clearly worthwhile. I'm not so sanguine about things like
addrsym doing it magically, but it needs more thought.
For this kind of thing, I think it's extremely helpful if you give a
short description and example of the API change you are proposing. I
can read and respond to that much more quickly than I can review the
implementation.
I haven't looked at the details, but it feels like entirely wrong
layering if any libebl code uses libdwfl.h types or interfaces at all.
That said, as a general thing, in cases like this where you just need
the right pointer type but the #include's become cumbersome, often the
right thing to do is just use a forward declaration "struct
Dwfl_Module;" and use "struct Dwfl_Module *arg" in prototypes.
Knowing the correspondence between struct tags and typedef names like
that is not too much duplication or leakage.
Thanks,
Roland