For me it is not relevant at all, I just need the type definitions and function parameter list, variable name/type, etc. Only in very specific cases I want addresses, and even then no need for relocations in most cases.
If you are dealing with an ET_REL file on an SHT_RELA architecture, then you need relocation of the pointers inside and between the different DWARF sections. In short, you can't handle an ET_REL file at all without doing some kind of relocation.
I'll look at the dwfl internals to figure out where is that it ends up using dwfl_linux_kernel_ prefixed routines...
Well, just set a breakpoint and look at the backtrace from your code. The only implicit calls to any such things in libdwfl come from the argp callbacks for -k/-K options.
Thanks, Roland