diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-12-31 14:41:29 -0500 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-12-31 14:41:29 -0500 |
commit | e016a49a83276fc061df86b1b4d72ec8c4efdd29 (patch) | |
tree | 71b63e6c4c5c36a9061c56db61b3aa6643443f36 /translate.cxx | |
parent | 57e8bac13b43fa6f84f5fc1925d254f051a789a9 (diff) | |
download | systemtap-steved-e016a49a83276fc061df86b1b4d72ec8c4efdd29.tar.gz systemtap-steved-e016a49a83276fc061df86b1b4d72ec8c4efdd29.tar.xz systemtap-steved-e016a49a83276fc061df86b1b4d72ec8c4efdd29.zip |
build: make compatible with elfutils 0.138 too
Diffstat (limited to 'translate.cxx')
-rw-r--r-- | translate.cxx | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/translate.cxx b/translate.cxx index cdc3da84..cce76db6 100644 --- a/translate.cxx +++ b/translate.cxx @@ -26,6 +26,9 @@ extern "C" { #include <elfutils/libdwfl.h> +#ifdef HAVE_ELFUTILS_VERSION_H +#include <elfutils/version.h> +#endif } using namespace std; @@ -4475,8 +4478,15 @@ 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. */ + // Enable workaround for elfutils dwfl bug. + // see https://bugzilla.redhat.com/show_bug.cgi?id=465872 + // and http://sourceware.org/ml/systemtap/2008-q4/msg00579.html +#ifdef _ELFUTILS_PREREQ +#if _ELFUTILS_PREREQ(0,138) + // Let's standardize to the buggy "end of build-id bits" behavior. + build_id_vaddr += build_id_len; +#endif +#endif if (c->session.verbose > 1) { clog << "Found build-id in " << name << ", length " << build_id_len; |