summaryrefslogtreecommitdiffstats
path: root/translate.cxx
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2008-10-07 13:06:17 -0400
committerFrank Ch. Eigler <fche@elastic.org>2008-10-07 13:06:17 -0400
commit0d633db21595f7160d0f7a767ab92181284d8adb (patch)
treec55f11d1280e0b940195d6c5ef9fc85b752a42da /translate.cxx
parent53ed08414957de1e90c8332f7d5a71a384de039e (diff)
downloadsystemtap-steved-0d633db21595f7160d0f7a767ab92181284d8adb.tar.gz
systemtap-steved-0d633db21595f7160d0f7a767ab92181284d8adb.tar.xz
systemtap-steved-0d633db21595f7160d0f7a767ab92181284d8adb.zip
PR4886: weaken build-id failure semantics
Diffstat (limited to 'translate.cxx')
-rw-r--r--translate.cxx6
1 files changed, 6 insertions, 0 deletions
diff --git a/translate.cxx b/translate.cxx
index 0ee51792..bbd8a01b 100644
--- a/translate.cxx
+++ b/translate.cxx
@@ -4423,6 +4423,8 @@ dump_unwindsyms (Dwfl_Module *m,
(const unsigned char **)&build_id_bits,
&build_id_vaddr)) > 0)
{
+ /* XXX: But see https://bugzilla.redhat.com/show_bug.cgi?id=465872;
+ dwfl_module_build_id was not intended to return the end address. */
if (c->session.verbose > 1) {
clog << "Found build-id in " << name
<< ", length " << build_id_len;
@@ -4608,6 +4610,10 @@ dump_unwindsyms (Dwfl_Module *m,
c->output << "\", " << endl;
c->output << ".build_id_len = " << build_id_len << ", " << endl;
+ /* XXX: kernel data boot-time relocation works differently from text.
+ This hack disables relocation altogether, but that's not necessarily
+ correct either. We may instead need a relocation basis different
+ from _stext, such as __start_notes. */
if (modname == "kernel")
c->output << ".build_id_offset = 0x" << hex << build_id_vaddr
<< dec << ", " << endl;