summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2009-08-23 18:15:01 -0400
committerFrank Ch. Eigler <fche@elastic.org>2009-08-23 18:15:01 -0400
commit55d8c5d4673f74a3ec2865593524d5f40dfcac0c (patch)
tree579f228efcb13494e078bd923262a425be6d8922
parent9c11995121a80bb6f97af1a2cb1fe71ad06b67a9 (diff)
downloadsystemtap-steved-55d8c5d4673f74a3ec2865593524d5f40dfcac0c.tar.gz
systemtap-steved-55d8c5d4673f74a3ec2865593524d5f40dfcac0c.tar.xz
systemtap-steved-55d8c5d4673f74a3ec2865593524d5f40dfcac0c.zip
build fix: make buildable with elfutils < 0.142
* dwarf_wrappers.h, loc2c.c: Define DW_TAG_rvalue_reference_type=0x42 for older elfutils.
-rw-r--r--dwarf_wrappers.h5
-rw-r--r--loc2c.c16
2 files changed, 21 insertions, 0 deletions
diff --git a/dwarf_wrappers.h b/dwarf_wrappers.h
index 766abb6d..942e695a 100644
--- a/dwarf_wrappers.h
+++ b/dwarf_wrappers.h
@@ -25,6 +25,11 @@ extern "C" {
#define _ELFUTILS_PREREQ(major, minor) (0 >= 1)
#endif
+#if ! _ELFUTILS_PREREQ(0,142)
+#define DW_TAG_rvalue_reference_type 0x42
+#endif
+
+
// NB: "rc == 0" means OK in this case
void dwfl_assert(const std::string& desc, int rc);
diff --git a/loc2c.c b/loc2c.c
index 9d58269c..d4cb4666 100644
--- a/loc2c.c
+++ b/loc2c.c
@@ -10,6 +10,22 @@
#include <assert.h>
#include "loc2c.h"
+#include "config.h"
+
+#include <elfutils/libdw.h>
+#ifdef HAVE_ELFUTILS_VERSION_H
+#include <elfutils/version.h>
+#endif
+
+#if !defined(_ELFUTILS_PREREQ)
+// make a dummy PREREQ check for elfutils < 0.138
+#define _ELFUTILS_PREREQ(major, minor) (0 >= 1)
+#endif
+
+#if ! _ELFUTILS_PREREQ(0,142)
+#define DW_TAG_rvalue_reference_type 0x42
+#endif
+
#define N_(x) x
#define STACK_TYPE "intptr_t" /* Must be the signed type. */