[PATCH 3/9] Add replacement headers for libbacktrace

Alexander Monakov amonakov at ispras.ru
Sun May 19 07:39:49 PDT 2013


libbacktrace #include's two header files from GCC.  Provide minimal
replacements for those files.  For filenames.h, declare missing macros
assuming POSIX-style paths.  For dwarf2.h, #include system dwarf.h and
declare missing enum tags and define missing enum values as macros.
---
 thirdparty/libbacktrace/auxincl/dwarf2.h    | 52 +++++++++++++++++++++++++++++
 thirdparty/libbacktrace/auxincl/filenames.h | 40 ++++++++++++++++++++++
 2 files changed, 92 insertions(+)
 create mode 100644 thirdparty/libbacktrace/auxincl/dwarf2.h
 create mode 100644 thirdparty/libbacktrace/auxincl/filenames.h

diff --git a/thirdparty/libbacktrace/auxincl/dwarf2.h b/thirdparty/libbacktrace/auxincl/dwarf2.h
new file mode 100644
index 0000000..d135d8a
--- /dev/null
+++ b/thirdparty/libbacktrace/auxincl/dwarf2.h
@@ -0,0 +1,52 @@
+/* dwarf2.h -- minimal GCC dwarf2.h replacement for libbacktrace
+   Contributed by Alexander Monakov, ISP RAS
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    (1) Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    (2) Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+    (3) The name of the author may not be used to
+    endorse or promote products derived from this software without
+    specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  */
+
+#ifndef BACKTRACE_AUX_DWARF2_H
+#define BACKTRACE_AUX_DWARF2_H
+
+/* Use the system header for the bulk of the definitions.  */
+#include <dwarf.h>
+
+/* Provide stub enum tags.  */
+enum dwarf_attribute {_dummy_dwarf_attribute};
+enum dwarf_form {_dummy_dwarf_form};
+enum dwarf_tag {_dummy_dwarf_tag};
+
+/* Define potentially missing enum values.  */
+#define DW_FORM_GNU_addr_index 0x1f01
+#define DW_FORM_GNU_str_index  0x1f02
+
+#define DW_FORM_GNU_ref_alt    0x1f20
+#define DW_FORM_GNU_strp_alt   0x1f21
+
+#define DW_LNS_extended_op 0
+
+#endif
diff --git a/thirdparty/libbacktrace/auxincl/filenames.h b/thirdparty/libbacktrace/auxincl/filenames.h
new file mode 100644
index 0000000..000dd30
--- /dev/null
+++ b/thirdparty/libbacktrace/auxincl/filenames.h
@@ -0,0 +1,40 @@
+/* filenames.h -- minimal GCC filenames.h replacement for libbacktrace
+   Contributed by Alexander Monakov, ISP RAS
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    (1) Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    (2) Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+    (3) The name of the author may not be used to
+    endorse or promote products derived from this software without
+    specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.  */
+
+#ifndef BACKTRACE_AUX_FILENAMES_H
+#define BACKTRACE_AUX_FILENAMES_H
+
+/* Assume POSIX paths.  */
+
+#define IS_DIR_SEPARATOR(c) ((c) == '/')
+#define IS_ABSOLUTE_PATH(f) ((f)[0] == '/')
+
+#endif
-- 
1.8.1.2



More information about the apitrace mailing list