summaryrefslogtreecommitdiffstats
path: root/translate.cxx
diff options
context:
space:
mode:
authorEugeniy Meshcheryakov <eugen@debian.org>2009-02-24 15:48:31 +0100
committerEugeniy Meshcheryakov <eugen@debian.org>2009-02-24 15:48:31 +0100
commitab421f562d14d1322b9197d9e23fcfbaf809fba3 (patch)
treea75fe2b3174ea14dd2538c075de13db898eb3fdf /translate.cxx
parent4176d5b1f4bf25adb8e44eaae9e6ab1de5a2c806 (diff)
parentcfba34fccd99924a47622c5082706867f0a34b12 (diff)
downloadsystemtap-steved-ab421f562d14d1322b9197d9e23fcfbaf809fba3.tar.gz
systemtap-steved-ab421f562d14d1322b9197d9e23fcfbaf809fba3.tar.xz
systemtap-steved-ab421f562d14d1322b9197d9e23fcfbaf809fba3.zip
Merge branch 'master' of git+ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'translate.cxx')
-rw-r--r--translate.cxx8
1 files changed, 6 insertions, 2 deletions
diff --git a/translate.cxx b/translate.cxx
index 530b077d..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;
}
@@ -5009,11 +5013,11 @@ translate_pass (systemtap_session& s)
s.op->newline();
// XXX impedance mismatch
- s.op->newline() << "static int probe_start () {";
+ s.op->newline() << "static int probe_start (void) {";
s.op->newline(1) << "return systemtap_module_init () ? -1 : 0;";
s.op->newline(-1) << "}";
s.op->newline();
- s.op->newline() << "static void probe_exit () {";
+ s.op->newline() << "static void probe_exit (void) {";
s.op->newline(1) << "systemtap_module_exit ();";
s.op->newline(-1) << "}";
s.op->assert_0_indent();