summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--translate.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/translate.cxx b/translate.cxx
index e6985504..135830df 100644
--- a/translate.cxx
+++ b/translate.cxx
@@ -4534,6 +4534,10 @@ dump_unwindsyms (Dwfl_Module *m,
ki = dwfl_module_relocate_address (m, &extra_offset);
dwfl_assert ("dwfl_module_relocate_address extra_offset",
ki >= 0);
+ // Sadly dwfl_module_relocate_address is broken on
+ // elfutils < 0.138, so we need to adjust for the module
+ // base address outself. (see also below).
+ extra_offset = sym.st_value - base;
if (c->session.verbose > 2)
clog << "Found kernel _stext 0x" << hex << extra_offset << dec << endl;
}