summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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. */