I haven't found any users of dwfl_report_elf outside the elfutils
base. But that doesn't mean there aren't any. Is there any way we can
let the user signal they want the new semantics? Maybe have the module
name argument have some prefix or suffix. Or is that even uglier?
That is laughably ugly. You are such a joker, I'm sure you didn't mean it.
What I had in mind was something like making the function take two
arguments, e.g. "GElf_Addr base, bool add_p_vaddr". So N, true would
mean the old semantics. That has the benefit that the API changes in
a compile-breaking way, so nobody will just recompile and not notice
their program being broken if it was right before.
It's a bit ugly for a function interface, especially if nobody ever
actually wants the old behavior. But keeping the same signature for
different semantics means silent change on recompile, creating
confusion (probably much later).
Of course, we also need not to break old binaries with a new DSO.
But that is easy enough with symbol versioning.