[pypy-commit] pypy default: copy over new backtrace library and remove generated sources

plan_rich pypy.commits at gmail.com
Tue Apr 4 15:47:18 EDT 2017


Author: Richard Plangger <planrichi at gmail.com>
Branch: 
Changeset: r90954:8bdfec6268dc
Date: 2017-04-04 15:14 -0400
http://bitbucket.org/pypy/pypy/changeset/8bdfec6268dc/

Log:	copy over new backtrace library and remove generated sources

diff too long, truncating to 2000 out of 2055 lines

diff --git a/rpython/rlib/rvmprof/cintf.py b/rpython/rlib/rvmprof/cintf.py
--- a/rpython/rlib/rvmprof/cintf.py
+++ b/rpython/rlib/rvmprof/cintf.py
@@ -22,19 +22,17 @@
     SHARED.join('symboltable.c')
 ]
 if sys.platform.startswith('linux'):
-    if sys.maxint > 2**32:     # doesn't seem to compile on 32-bit Linux
-        separate_module_files += [
-           BACKTRACE.join('backtrace.c'),
-           BACKTRACE.join('state.c'),
-           BACKTRACE.join('elf.c'),
-           BACKTRACE.join('dwarf.c'),
-           BACKTRACE.join('fileline.c'),
-           BACKTRACE.join('mmap.c'),
-           BACKTRACE.join('mmapio.c'),
-           BACKTRACE.join('posix.c'),
-           BACKTRACE.join('sort.c'),
-        ]
-        compile_extra += ['-DVMPROF_BACKTRACE']
+    separate_module_files += [
+       BACKTRACE.join('backtrace.c'),
+       BACKTRACE.join('state.c'),
+       BACKTRACE.join('elf.c'),
+       BACKTRACE.join('dwarf.c'),
+       BACKTRACE.join('fileline.c'),
+       BACKTRACE.join('mmap.c'),
+       BACKTRACE.join('mmapio.c'),
+       BACKTRACE.join('posix.c'),
+       BACKTRACE.join('sort.c'),
+    ]
     _libs = ['dl']
     compile_extra += ['-DVMPROF_UNIX']
     compile_extra += ['-DVMPROF_LINUX']
diff --git a/rpython/rlib/rvmprof/src/shared/libbacktrace/ChangeLog b/rpython/rlib/rvmprof/src/shared/libbacktrace/ChangeLog
--- a/rpython/rlib/rvmprof/src/shared/libbacktrace/ChangeLog
+++ b/rpython/rlib/rvmprof/src/shared/libbacktrace/ChangeLog
@@ -1,3 +1,8 @@
+2017-03-08  Sam Thursfield  <sam.thursfield at codethink.co.uk>
+
+	* btest.c (test5): Replace #ifdef guard with 'unused' attribute
+	to fix compile warning when BACKTRACE_SUPPORTED isn't defined.
+
 2017-01-01  Jakub Jelinek  <jakub at redhat.com>
 
 	Update copyright years.
diff --git a/rpython/rlib/rvmprof/src/shared/libbacktrace/ansidecl.h b/rpython/rlib/rvmprof/src/shared/libbacktrace/ansidecl.h
deleted file mode 100644
--- a/rpython/rlib/rvmprof/src/shared/libbacktrace/ansidecl.h
+++ /dev/null
@@ -1,355 +0,0 @@
-/* ANSI and traditional C compatability macros
-   Copyright (C) 1991-2015 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* ANSI and traditional C compatibility macros
-
-   ANSI C is assumed if __STDC__ is #defined.
-
-   Macro		ANSI C definition	Traditional C definition
-   -----		---- - ----------	----------- - ----------
-   PTR			`void *'		`char *'
-   const		not defined		`'
-   volatile		not defined		`'
-   signed		not defined		`'
-
-   For ease of writing code which uses GCC extensions but needs to be
-   portable to other compilers, we provide the GCC_VERSION macro that
-   simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
-   wrappers around __attribute__.  Also, __extension__ will be #defined
-   to nothing if it doesn't work.  See below.  */
-
-#ifndef	_ANSIDECL_H
-#define _ANSIDECL_H	1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Every source file includes this file,
-   so they will all get the switch for lint.  */
-/* LINTLIBRARY */
-
-/* Using MACRO(x,y) in cpp #if conditionals does not work with some
-   older preprocessors.  Thus we can't define something like this:
-
-#define HAVE_GCC_VERSION(MAJOR, MINOR) \
-  (__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
-
-and then test "#if HAVE_GCC_VERSION(2,7)".
-
-So instead we use the macro below and test it against specific values.  */
-
-/* This macro simplifies testing whether we are using gcc, and if it
-   is of a particular minimum version. (Both major & minor numbers are
-   significant.)  This macro will evaluate to 0 if we are not using
-   gcc at all.  */
-#ifndef GCC_VERSION
-#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
-#endif /* GCC_VERSION */
-
-#if defined (__STDC__) || defined(__cplusplus) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32)
-/* All known AIX compilers implement these things (but don't always
-   define __STDC__).  The RISC/OS MIPS compiler defines these things
-   in SVR4 mode, but does not define __STDC__.  */
-/* eraxxon at alumni.rice.edu: The Compaq C++ compiler, unlike many other
-   C++ compilers, does not define __STDC__, though it acts as if this
-   was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
-
-#define PTR		void *
-
-#undef const
-#undef volatile
-#undef signed
-
-/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
-   it too, but it's not in C89.  */
-#undef inline
-#if __STDC_VERSION__ >= 199901L || defined(__cplusplus) || (defined(__SUNPRO_C) && defined(__C99FEATURES__))
-/* it's a keyword */
-#else
-# if GCC_VERSION >= 2007
-#  define inline __inline__   /* __inline__ prevents -pedantic warnings */
-# else
-#  define inline  /* nothing */
-# endif
-#endif
-
-#else	/* Not ANSI C.  */
-
-#define PTR		char *
-
-/* some systems define these in header files for non-ansi mode */
-#undef const
-#undef volatile
-#undef signed
-#undef inline
-#define const
-#define volatile
-#define signed
-#define inline
-
-#endif	/* ANSI C.  */
-
-/* Define macros for some gcc attributes.  This permits us to use the
-   macros freely, and know that they will come into play for the
-   version of gcc in which they are supported.  */
-
-#if (GCC_VERSION < 2007)
-# define __attribute__(x)
-#endif
-
-/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
-#ifndef ATTRIBUTE_MALLOC
-# if (GCC_VERSION >= 2096)
-#  define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-# else
-#  define ATTRIBUTE_MALLOC
-# endif /* GNUC >= 2.96 */
-#endif /* ATTRIBUTE_MALLOC */
-
-/* Attributes on labels were valid as of gcc 2.93 and g++ 4.5.  For
-   g++ an attribute on a label must be followed by a semicolon.  */
-#ifndef ATTRIBUTE_UNUSED_LABEL
-# ifndef __cplusplus
-#  if GCC_VERSION >= 2093
-#   define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
-#  else
-#   define ATTRIBUTE_UNUSED_LABEL
-#  endif
-# else
-#  if GCC_VERSION >= 4005
-#   define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED ;
-#  else
-#   define ATTRIBUTE_UNUSED_LABEL
-#  endif
-# endif
-#endif
-
-/* Similarly to ARG_UNUSED below.  Prior to GCC 3.4, the C++ frontend
-   couldn't parse attributes placed after the identifier name, and now
-   the entire compiler is built with C++.  */
-#ifndef ATTRIBUTE_UNUSED
-#if GCC_VERSION >= 3004
-#  define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
-#else
-#define ATTRIBUTE_UNUSED
-#endif
-#endif /* ATTRIBUTE_UNUSED */
-
-/* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the
-   identifier name.  */
-#if ! defined(__cplusplus) || (GCC_VERSION >= 3004)
-# define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED
-#else /* !__cplusplus || GNUC >= 3.4 */
-# define ARG_UNUSED(NAME) NAME
-#endif /* !__cplusplus || GNUC >= 3.4 */
-
-#ifndef ATTRIBUTE_NORETURN
-#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
-#endif /* ATTRIBUTE_NORETURN */
-
-/* Attribute `nonnull' was valid as of gcc 3.3.  */
-#ifndef ATTRIBUTE_NONNULL
-# if (GCC_VERSION >= 3003)
-#  define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
-# else
-#  define ATTRIBUTE_NONNULL(m)
-# endif /* GNUC >= 3.3 */
-#endif /* ATTRIBUTE_NONNULL */
-
-/* Attribute `returns_nonnull' was valid as of gcc 4.9.  */
-#ifndef ATTRIBUTE_RETURNS_NONNULL
-# if (GCC_VERSION >= 4009)
-#  define ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__))
-# else
-#  define ATTRIBUTE_RETURNS_NONNULL
-# endif /* GNUC >= 4.9 */
-#endif /* ATTRIBUTE_RETURNS_NONNULL */
-
-/* Attribute `pure' was valid as of gcc 3.0.  */
-#ifndef ATTRIBUTE_PURE
-# if (GCC_VERSION >= 3000)
-#  define ATTRIBUTE_PURE __attribute__ ((__pure__))
-# else
-#  define ATTRIBUTE_PURE
-# endif /* GNUC >= 3.0 */
-#endif /* ATTRIBUTE_PURE */
-
-/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL.
-   This was the case for the `printf' format attribute by itself
-   before GCC 3.3, but as of 3.3 we need to add the `nonnull'
-   attribute to retain this behavior.  */
-#ifndef ATTRIBUTE_PRINTF
-#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m)
-#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
-#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
-#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
-#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
-#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
-#endif /* ATTRIBUTE_PRINTF */
-
-/* Use ATTRIBUTE_FPTR_PRINTF when the format attribute is to be set on
-   a function pointer.  Format attributes were allowed on function
-   pointers as of gcc 3.1.  */
-#ifndef ATTRIBUTE_FPTR_PRINTF
-# if (GCC_VERSION >= 3001)
-#  define ATTRIBUTE_FPTR_PRINTF(m, n) ATTRIBUTE_PRINTF(m, n)
-# else
-#  define ATTRIBUTE_FPTR_PRINTF(m, n)
-# endif /* GNUC >= 3.1 */
-# define ATTRIBUTE_FPTR_PRINTF_1 ATTRIBUTE_FPTR_PRINTF(1, 2)
-# define ATTRIBUTE_FPTR_PRINTF_2 ATTRIBUTE_FPTR_PRINTF(2, 3)
-# define ATTRIBUTE_FPTR_PRINTF_3 ATTRIBUTE_FPTR_PRINTF(3, 4)
-# define ATTRIBUTE_FPTR_PRINTF_4 ATTRIBUTE_FPTR_PRINTF(4, 5)
-# define ATTRIBUTE_FPTR_PRINTF_5 ATTRIBUTE_FPTR_PRINTF(5, 6)
-#endif /* ATTRIBUTE_FPTR_PRINTF */
-
-/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL.  A
-   NULL format specifier was allowed as of gcc 3.3.  */
-#ifndef ATTRIBUTE_NULL_PRINTF
-# if (GCC_VERSION >= 3003)
-#  define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
-# else
-#  define ATTRIBUTE_NULL_PRINTF(m, n)
-# endif /* GNUC >= 3.3 */
-# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2)
-# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3)
-# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4)
-# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5)
-# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6)
-#endif /* ATTRIBUTE_NULL_PRINTF */
-
-/* Attribute `sentinel' was valid as of gcc 3.5.  */
-#ifndef ATTRIBUTE_SENTINEL
-# if (GCC_VERSION >= 3005)
-#  define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
-# else
-#  define ATTRIBUTE_SENTINEL
-# endif /* GNUC >= 3.5 */
-#endif /* ATTRIBUTE_SENTINEL */
-
-
-#ifndef ATTRIBUTE_ALIGNED_ALIGNOF
-# if (GCC_VERSION >= 3000)
-#  define ATTRIBUTE_ALIGNED_ALIGNOF(m) __attribute__ ((__aligned__ (__alignof__ (m))))
-# else
-#  define ATTRIBUTE_ALIGNED_ALIGNOF(m)
-# endif /* GNUC >= 3.0 */
-#endif /* ATTRIBUTE_ALIGNED_ALIGNOF */
-
-/* Useful for structures whose layout must much some binary specification
-   regardless of the alignment and padding qualities of the compiler.  */
-#ifndef ATTRIBUTE_PACKED
-# define ATTRIBUTE_PACKED __attribute__ ((packed))
-#endif
-
-/* Attribute `hot' and `cold' was valid as of gcc 4.3.  */
-#ifndef ATTRIBUTE_COLD
-# if (GCC_VERSION >= 4003)
-#  define ATTRIBUTE_COLD __attribute__ ((__cold__))
-# else
-#  define ATTRIBUTE_COLD
-# endif /* GNUC >= 4.3 */
-#endif /* ATTRIBUTE_COLD */
-#ifndef ATTRIBUTE_HOT
-# if (GCC_VERSION >= 4003)
-#  define ATTRIBUTE_HOT __attribute__ ((__hot__))
-# else
-#  define ATTRIBUTE_HOT
-# endif /* GNUC >= 4.3 */
-#endif /* ATTRIBUTE_HOT */
-
-/* Attribute 'no_sanitize_undefined' was valid as of gcc 4.9.  */
-#ifndef ATTRIBUTE_NO_SANITIZE_UNDEFINED
-# if (GCC_VERSION >= 4009)
-#  define ATTRIBUTE_NO_SANITIZE_UNDEFINED __attribute__ ((no_sanitize_undefined))
-# else
-#  define ATTRIBUTE_NO_SANITIZE_UNDEFINED
-# endif /* GNUC >= 4.9 */
-#endif /* ATTRIBUTE_NO_SANITIZE_UNDEFINED */
-
-/* We use __extension__ in some places to suppress -pedantic warnings
-   about GCC extensions.  This feature didn't work properly before
-   gcc 2.8.  */
-#if GCC_VERSION < 2008
-#define __extension__
-#endif
-
-/* This is used to declare a const variable which should be visible
-   outside of the current compilation unit.  Use it as
-     EXPORTED_CONST int i = 1;
-   This is because the semantics of const are different in C and C++.
-   "extern const" is permitted in C but it looks strange, and gcc
-   warns about it when -Wc++-compat is not used.  */
-#ifdef __cplusplus
-#define EXPORTED_CONST extern const
-#else
-#define EXPORTED_CONST const
-#endif
-
-/* Be conservative and only use enum bitfields with C++ or GCC.
-   FIXME: provide a complete autoconf test for buggy enum bitfields.  */
-
-#ifdef __cplusplus
-#define ENUM_BITFIELD(TYPE) enum TYPE
-#elif (GCC_VERSION > 2000)
-#define ENUM_BITFIELD(TYPE) __extension__ enum TYPE
-#else
-#define ENUM_BITFIELD(TYPE) unsigned int
-#endif
-
-/* C++11 adds the ability to add "override" after an implementation of a
-   virtual function in a subclass, to:
-     (A) document that this is an override of a virtual function
-     (B) allow the compiler to issue a warning if it isn't (e.g. a mismatch
-         of the type signature).
-
-   Similarly, it allows us to add a "final" to indicate that no subclass
-   may subsequently override the vfunc.
-
-   Provide OVERRIDE and FINAL as macros, allowing us to get these benefits
-   when compiling with C++11 support, but without requiring C++11.
-
-   For gcc, use "-std=c++11" to enable C++11 support; gcc 6 onwards enables
-   this by default (actually GNU++14).  */
-
-#if __cplusplus >= 201103
-/* C++11 claims to be available: use it.  final/override were only
-   implemented in 4.7, though.  */
-# if GCC_VERSION < 4007
-#  define OVERRIDE
-#  define FINAL
-# else
-#  define OVERRIDE override
-#  define FINAL final
-# endif
-#elif GCC_VERSION >= 4007
-/* G++ 4.7 supports __final in C++98.  */
-# define OVERRIDE
-# define FINAL __final
-#else
-/* No C++11 support; leave the macros empty: */
-# define OVERRIDE
-# define FINAL
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif	/* ansidecl.h	*/
diff --git a/rpython/rlib/rvmprof/src/shared/libbacktrace/btest.c b/rpython/rlib/rvmprof/src/shared/libbacktrace/btest.c
--- a/rpython/rlib/rvmprof/src/shared/libbacktrace/btest.c
+++ b/rpython/rlib/rvmprof/src/shared/libbacktrace/btest.c
@@ -616,7 +616,7 @@
   return failures;
 }
 
-#if BACKTRACE_SUPPORTS_DATA
+static int test5 (void) __attribute__ ((unused));
 
 int global = 1;
 
@@ -686,8 +686,6 @@
   return failures;
 }
 
-#endif /* BACKTRACE_SUPPORTS_DATA  */
-
 static void
 error_callback_create (void *data ATTRIBUTE_UNUSED, const char *msg,
 		       int errnum)
diff --git a/rpython/rlib/rvmprof/src/shared/libbacktrace/dwarf2.def b/rpython/rlib/rvmprof/src/shared/libbacktrace/dwarf2.def
deleted file mode 100644
--- a/rpython/rlib/rvmprof/src/shared/libbacktrace/dwarf2.def
+++ /dev/null
@@ -1,773 +0,0 @@
-/* -*- c -*-
-   Declarations and definitions of codes relating to the DWARF2 and
-   DWARF3 symbolic debugging information formats.
-   Copyright (C) 1992-2015 Free Software Foundation, Inc.
-
-   Written by Gary Funck (gary at intrepid.com) The Ada Joint Program
-   Office (AJPO), Florida State University and Silicon Graphics Inc.
-   provided support for this effort -- June 21, 1995.
-
-   Derived from the DWARF 1 implementation written by Ron Guilmette
-   (rfg at netcom.com), November 1990.
-
-   This file is part of GCC.
-
-   GCC is free software; you can redistribute it and/or modify it under
-   the terms of the GNU General Public License as published by the Free
-   Software Foundation; either version 3, or (at your option) any later
-   version.
-
-   GCC is distributed in the hope that it will be useful, but WITHOUT
-   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-   License for more details.
-
-   Under Section 7 of GPL version 3, you are granted additional
-   permissions described in the GCC Runtime Library Exception, version
-   3.1, as published by the Free Software Foundation.
-
-   You should have received a copy of the GNU General Public License and
-   a copy of the GCC Runtime Library Exception along with this program;
-   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This file is derived from the DWARF specification (a public document)
-   Revision 2.0.0 (July 27, 1993) developed by the UNIX International
-   Programming Languages Special Interest Group (UI/PLSIG) and distributed
-   by UNIX International.  Copies of this specification are available from
-   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
-
-   This file also now contains definitions from the DWARF 3 specification
-   published Dec 20, 2005, available from: http://dwarf.freestandards.org.
-
-   This file also now contains definitions from the DWARF 4
-   specification, available from: http://dwarfstd.org/ */
-
-/* This file declares various DWARF-related constants using a set of
-   macros which can be redefined by the including file.
-   
-   The macros are in sections.  Each section corresponds to a single
-   set of DWARF constants and has a corresponding key.  The key is
-   used in all the macro names.
-   
-   The sections are TAG (for DW_TAG_ constants), FORM (DW_FORM_), AT
-   (DW_AT_), OP (DW_OP_), ATE (DW_ATE_), and CFA (DW_CFA_).
-   
-   Using TAG as an example, the following macros may be used for each
-   key:
-   
-   DW_FIRST_TAG(name, value) - Introduce the first DW_TAG constant.
-   
-   DW_TAG(name, value) - Define a subsequent constant.
-   
-   DW_TAG_DUP(name, value) - Define a subsequent constant whose value
-   is a duplicate of some other constant.  Not all keys use the _DUP
-   macro form.  If more than one name shares a value, then the base
-   (DW_TAG) form will be the preferred name and DW_TAG_DUP will hold
-   any alternate names.
-   
-   DW_END_TAG - Invoked at the end of the DW_TAG constants.  */
-
-DW_FIRST_TAG (DW_TAG_padding, 0x00)
-DW_TAG (DW_TAG_array_type, 0x01)
-DW_TAG (DW_TAG_class_type, 0x02)
-DW_TAG (DW_TAG_entry_point, 0x03)
-DW_TAG (DW_TAG_enumeration_type, 0x04)
-DW_TAG (DW_TAG_formal_parameter, 0x05)
-DW_TAG (DW_TAG_imported_declaration, 0x08)
-DW_TAG (DW_TAG_label, 0x0a)
-DW_TAG (DW_TAG_lexical_block, 0x0b)
-DW_TAG (DW_TAG_member, 0x0d)
-DW_TAG (DW_TAG_pointer_type, 0x0f)
-DW_TAG (DW_TAG_reference_type, 0x10)
-DW_TAG (DW_TAG_compile_unit, 0x11)
-DW_TAG (DW_TAG_string_type, 0x12)
-DW_TAG (DW_TAG_structure_type, 0x13)
-DW_TAG (DW_TAG_subroutine_type, 0x15)
-DW_TAG (DW_TAG_typedef, 0x16)
-DW_TAG (DW_TAG_union_type, 0x17)
-DW_TAG (DW_TAG_unspecified_parameters, 0x18)
-DW_TAG (DW_TAG_variant, 0x19)
-DW_TAG (DW_TAG_common_block, 0x1a)
-DW_TAG (DW_TAG_common_inclusion, 0x1b)
-DW_TAG (DW_TAG_inheritance, 0x1c)
-DW_TAG (DW_TAG_inlined_subroutine, 0x1d)
-DW_TAG (DW_TAG_module, 0x1e)
-DW_TAG (DW_TAG_ptr_to_member_type, 0x1f)
-DW_TAG (DW_TAG_set_type, 0x20)
-DW_TAG (DW_TAG_subrange_type, 0x21)
-DW_TAG (DW_TAG_with_stmt, 0x22)
-DW_TAG (DW_TAG_access_declaration, 0x23)
-DW_TAG (DW_TAG_base_type, 0x24)
-DW_TAG (DW_TAG_catch_block, 0x25)
-DW_TAG (DW_TAG_const_type, 0x26)
-DW_TAG (DW_TAG_constant, 0x27)
-DW_TAG (DW_TAG_enumerator, 0x28)
-DW_TAG (DW_TAG_file_type, 0x29)
-DW_TAG (DW_TAG_friend, 0x2a)
-DW_TAG (DW_TAG_namelist, 0x2b)
-DW_TAG (DW_TAG_namelist_item, 0x2c)
-DW_TAG (DW_TAG_packed_type, 0x2d)
-DW_TAG (DW_TAG_subprogram, 0x2e)
-DW_TAG (DW_TAG_template_type_param, 0x2f)
-DW_TAG (DW_TAG_template_value_param, 0x30)
-DW_TAG (DW_TAG_thrown_type, 0x31)
-DW_TAG (DW_TAG_try_block, 0x32)
-DW_TAG (DW_TAG_variant_part, 0x33)
-DW_TAG (DW_TAG_variable, 0x34)
-DW_TAG (DW_TAG_volatile_type, 0x35)
-/* DWARF 3.  */
-DW_TAG (DW_TAG_dwarf_procedure, 0x36)
-DW_TAG (DW_TAG_restrict_type, 0x37)
-DW_TAG (DW_TAG_interface_type, 0x38)
-DW_TAG (DW_TAG_namespace, 0x39)
-DW_TAG (DW_TAG_imported_module, 0x3a)
-DW_TAG (DW_TAG_unspecified_type, 0x3b)
-DW_TAG (DW_TAG_partial_unit, 0x3c)
-DW_TAG (DW_TAG_imported_unit, 0x3d)
-DW_TAG (DW_TAG_condition, 0x3f)
-DW_TAG (DW_TAG_shared_type, 0x40)
-/* DWARF 4.  */
-DW_TAG (DW_TAG_type_unit, 0x41)
-DW_TAG (DW_TAG_rvalue_reference_type, 0x42)
-DW_TAG (DW_TAG_template_alias, 0x43)
-/* DWARF 5.  */
-DW_TAG (DW_TAG_coarray_type, 0x44)
-DW_TAG (DW_TAG_generic_subrange, 0x45)
-DW_TAG (DW_TAG_dynamic_type, 0x46)
-DW_TAG (DW_TAG_atomic_type, 0x47)
-DW_TAG (DW_TAG_call_site, 0x48)
-DW_TAG (DW_TAG_call_site_parameter, 0x49)
-DW_TAG (DW_TAG_skeleton_unit, 0x4a)
-DW_TAG (DW_TAG_immutable_type, 0x4b)
-
-DW_TAG_DUP (DW_TAG_lo_user, 0x4080)
-DW_TAG_DUP (DW_TAG_hi_user, 0xffff)
-
-/* SGI/MIPS Extensions.  */
-DW_TAG (DW_TAG_MIPS_loop, 0x4081)
-
-/* HP extensions.  See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz .  */
-DW_TAG (DW_TAG_HP_array_descriptor, 0x4090)
-DW_TAG (DW_TAG_HP_Bliss_field, 0x4091)
-DW_TAG (DW_TAG_HP_Bliss_field_set, 0x4092)
-
-/* GNU extensions.  */
-DW_TAG (DW_TAG_format_label, 0x4101)	/* For FORTRAN 77 and Fortran 90.  */
-DW_TAG (DW_TAG_function_template, 0x4102)	/* For C++.  */
-DW_TAG (DW_TAG_class_template, 0x4103)	/* For C++.  */
-DW_TAG (DW_TAG_GNU_BINCL, 0x4104)
-DW_TAG (DW_TAG_GNU_EINCL, 0x4105)
-/* Template template parameter.
-   See http://gcc.gnu.org/wiki/TemplateParmsDwarf .  */
-DW_TAG (DW_TAG_GNU_template_template_param, 0x4106)
-
-/* Template parameter pack extension, specified at
-   http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
-   The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
-   are properly part of DWARF 5.  */
-DW_TAG (DW_TAG_GNU_template_parameter_pack, 0x4107)
-DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108)
-/* The GNU call site extension, specified at
-   http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
-   The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
-   are properly part of DWARF 5.  */
-DW_TAG (DW_TAG_GNU_call_site, 0x4109)
-DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a)
-/* Extensions for UPC.  See: http://dwarfstd.org/doc/DWARF4.pdf.  */
-DW_TAG (DW_TAG_upc_shared_type, 0x8765)
-DW_TAG (DW_TAG_upc_strict_type, 0x8766)
-DW_TAG (DW_TAG_upc_relaxed_type, 0x8767)
-/* PGI (STMicroelectronics) extensions.  No documentation available.  */
-DW_TAG (DW_TAG_PGI_kanji_type, 0xA000)
-DW_TAG (DW_TAG_PGI_interface_block, 0xA020)
-DW_END_TAG
-
-DW_FIRST_FORM (DW_FORM_addr, 0x01)
-DW_FORM (DW_FORM_block2, 0x03)
-DW_FORM (DW_FORM_block4, 0x04)
-DW_FORM (DW_FORM_data2, 0x05)
-DW_FORM (DW_FORM_data4, 0x06)
-DW_FORM (DW_FORM_data8, 0x07)
-DW_FORM (DW_FORM_string, 0x08)
-DW_FORM (DW_FORM_block, 0x09)
-DW_FORM (DW_FORM_block1, 0x0a)
-DW_FORM (DW_FORM_data1, 0x0b)
-DW_FORM (DW_FORM_flag, 0x0c)
-DW_FORM (DW_FORM_sdata, 0x0d)
-DW_FORM (DW_FORM_strp, 0x0e)
-DW_FORM (DW_FORM_udata, 0x0f)
-DW_FORM (DW_FORM_ref_addr, 0x10)
-DW_FORM (DW_FORM_ref1, 0x11)
-DW_FORM (DW_FORM_ref2, 0x12)
-DW_FORM (DW_FORM_ref4, 0x13)
-DW_FORM (DW_FORM_ref8, 0x14)
-DW_FORM (DW_FORM_ref_udata, 0x15)
-DW_FORM (DW_FORM_indirect, 0x16)
-/* DWARF 4.  */
-DW_FORM (DW_FORM_sec_offset, 0x17)
-DW_FORM (DW_FORM_exprloc, 0x18)
-DW_FORM (DW_FORM_flag_present, 0x19)
-DW_FORM (DW_FORM_ref_sig8, 0x20)
-/* DWARF 5.  */
-DW_FORM (DW_FORM_strx, 0x1a)
-DW_FORM (DW_FORM_addrx, 0x1b)
-DW_FORM (DW_FORM_ref_sup, 0x1c)
-DW_FORM (DW_FORM_strp_sup, 0x1d)
-DW_FORM (DW_FORM_data16, 0x1e)
-DW_FORM (DW_FORM_line_strp, 0x1f)
-DW_FORM (DW_FORM_implicit_const, 0x21)
-DW_FORM (DW_FORM_loclistx, 0x22)
-DW_FORM (DW_FORM_rnglistx, 0x23)
-/* Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.  */
-DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
-DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
-/* Extensions for DWZ multifile.
-   See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open .  */
-DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20)
-DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21)
-DW_END_FORM
-
-DW_FIRST_AT (DW_AT_sibling, 0x01)
-DW_AT (DW_AT_location, 0x02)
-DW_AT (DW_AT_name, 0x03)
-DW_AT (DW_AT_ordering, 0x09)
-DW_AT (DW_AT_subscr_data, 0x0a)
-DW_AT (DW_AT_byte_size, 0x0b)
-DW_AT (DW_AT_bit_offset, 0x0c)
-DW_AT (DW_AT_bit_size, 0x0d)
-DW_AT (DW_AT_element_list, 0x0f)
-DW_AT (DW_AT_stmt_list, 0x10)
-DW_AT (DW_AT_low_pc, 0x11)
-DW_AT (DW_AT_high_pc, 0x12)
-DW_AT (DW_AT_language, 0x13)
-DW_AT (DW_AT_member, 0x14)
-DW_AT (DW_AT_discr, 0x15)
-DW_AT (DW_AT_discr_value, 0x16)
-DW_AT (DW_AT_visibility, 0x17)
-DW_AT (DW_AT_import, 0x18)
-DW_AT (DW_AT_string_length, 0x19)
-DW_AT (DW_AT_common_reference, 0x1a)
-DW_AT (DW_AT_comp_dir, 0x1b)
-DW_AT (DW_AT_const_value, 0x1c)
-DW_AT (DW_AT_containing_type, 0x1d)
-DW_AT (DW_AT_default_value, 0x1e)
-DW_AT (DW_AT_inline, 0x20)
-DW_AT (DW_AT_is_optional, 0x21)
-DW_AT (DW_AT_lower_bound, 0x22)
-DW_AT (DW_AT_producer, 0x25)
-DW_AT (DW_AT_prototyped, 0x27)
-DW_AT (DW_AT_return_addr, 0x2a)
-DW_AT (DW_AT_start_scope, 0x2c)
-DW_AT (DW_AT_bit_stride, 0x2e)
-DW_AT (DW_AT_upper_bound, 0x2f)
-DW_AT (DW_AT_abstract_origin, 0x31)
-DW_AT (DW_AT_accessibility, 0x32)
-DW_AT (DW_AT_address_class, 0x33)
-DW_AT (DW_AT_artificial, 0x34)
-DW_AT (DW_AT_base_types, 0x35)
-DW_AT (DW_AT_calling_convention, 0x36)
-DW_AT (DW_AT_count, 0x37)
-DW_AT (DW_AT_data_member_location, 0x38)
-DW_AT (DW_AT_decl_column, 0x39)
-DW_AT (DW_AT_decl_file, 0x3a)
-DW_AT (DW_AT_decl_line, 0x3b)
-DW_AT (DW_AT_declaration, 0x3c)
-DW_AT (DW_AT_discr_list, 0x3d)
-DW_AT (DW_AT_encoding, 0x3e)
-DW_AT (DW_AT_external, 0x3f)
-DW_AT (DW_AT_frame_base, 0x40)
-DW_AT (DW_AT_friend, 0x41)
-DW_AT (DW_AT_identifier_case, 0x42)
-DW_AT (DW_AT_macro_info, 0x43)
-DW_AT (DW_AT_namelist_items, 0x44)
-DW_AT (DW_AT_priority, 0x45)
-DW_AT (DW_AT_segment, 0x46)
-DW_AT (DW_AT_specification, 0x47)
-DW_AT (DW_AT_static_link, 0x48)
-DW_AT (DW_AT_type, 0x49)
-DW_AT (DW_AT_use_location, 0x4a)
-DW_AT (DW_AT_variable_parameter, 0x4b)
-DW_AT (DW_AT_virtuality, 0x4c)
-DW_AT (DW_AT_vtable_elem_location, 0x4d)
-/* DWARF 3 values.  */
-DW_AT (DW_AT_allocated, 0x4e)
-DW_AT (DW_AT_associated, 0x4f)
-DW_AT (DW_AT_data_location, 0x50)
-DW_AT (DW_AT_byte_stride, 0x51)
-DW_AT (DW_AT_entry_pc, 0x52)
-DW_AT (DW_AT_use_UTF8, 0x53)
-DW_AT (DW_AT_extension, 0x54)
-DW_AT (DW_AT_ranges, 0x55)
-DW_AT (DW_AT_trampoline, 0x56)
-DW_AT (DW_AT_call_column, 0x57)
-DW_AT (DW_AT_call_file, 0x58)
-DW_AT (DW_AT_call_line, 0x59)
-DW_AT (DW_AT_description, 0x5a)
-DW_AT (DW_AT_binary_scale, 0x5b)
-DW_AT (DW_AT_decimal_scale, 0x5c)
-DW_AT (DW_AT_small, 0x5d)
-DW_AT (DW_AT_decimal_sign, 0x5e)
-DW_AT (DW_AT_digit_count, 0x5f)
-DW_AT (DW_AT_picture_string, 0x60)
-DW_AT (DW_AT_mutable, 0x61)
-DW_AT (DW_AT_threads_scaled, 0x62)
-DW_AT (DW_AT_explicit, 0x63)
-DW_AT (DW_AT_object_pointer, 0x64)
-DW_AT (DW_AT_endianity, 0x65)
-DW_AT (DW_AT_elemental, 0x66)
-DW_AT (DW_AT_pure, 0x67)
-DW_AT (DW_AT_recursive, 0x68)
-/* DWARF 4.  */
-DW_AT (DW_AT_signature, 0x69)
-DW_AT (DW_AT_main_subprogram, 0x6a)
-DW_AT (DW_AT_data_bit_offset, 0x6b)
-DW_AT (DW_AT_const_expr, 0x6c)
-DW_AT (DW_AT_enum_class, 0x6d)
-DW_AT (DW_AT_linkage_name, 0x6e)
-/* DWARF 5.  */
-DW_AT (DW_AT_string_length_bit_size, 0x6f)
-DW_AT (DW_AT_string_length_byte_size, 0x70)
-DW_AT (DW_AT_rank, 0x71)
-DW_AT (DW_AT_str_offsets_base, 0x72)
-DW_AT (DW_AT_addr_base, 0x73)
-DW_AT (DW_AT_rnglists_base, 0x74)
-DW_AT (DW_AT_dwo_name, 0x76)
-DW_AT (DW_AT_reference, 0x77)
-DW_AT (DW_AT_rvalue_reference, 0x78)
-DW_AT (DW_AT_macros, 0x79)
-DW_AT (DW_AT_call_all_calls, 0x7a)
-DW_AT (DW_AT_call_all_source_calls, 0x7b)
-DW_AT (DW_AT_call_all_tail_calls, 0x7c)
-DW_AT (DW_AT_call_return_pc, 0x7d)
-DW_AT (DW_AT_call_value, 0x7e)
-DW_AT (DW_AT_call_origin, 0x7f)
-DW_AT (DW_AT_call_parameter, 0x80)
-DW_AT (DW_AT_call_pc, 0x81)
-DW_AT (DW_AT_call_tail_call, 0x82)
-DW_AT (DW_AT_call_target, 0x83)
-DW_AT (DW_AT_call_target_clobbered, 0x84)
-DW_AT (DW_AT_call_data_location, 0x85)
-DW_AT (DW_AT_call_data_value, 0x86)
-DW_AT (DW_AT_noreturn, 0x87)
-DW_AT (DW_AT_alignment, 0x88)
-DW_AT (DW_AT_export_symbols, 0x89)
-DW_AT (DW_AT_deleted, 0x8a)
-DW_AT (DW_AT_defaulted, 0x8b)
-DW_AT (DW_AT_loclists_base, 0x8c)
-
-DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start.  */
-DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end.  */
-
-/* SGI/MIPS extensions.  */
-DW_AT (DW_AT_MIPS_fde, 0x2001)
-DW_AT (DW_AT_MIPS_loop_begin, 0x2002)
-DW_AT (DW_AT_MIPS_tail_loop_begin, 0x2003)
-DW_AT (DW_AT_MIPS_epilog_begin, 0x2004)
-DW_AT (DW_AT_MIPS_loop_unroll_factor, 0x2005)
-DW_AT (DW_AT_MIPS_software_pipeline_depth, 0x2006)
-DW_AT (DW_AT_MIPS_linkage_name, 0x2007)
-DW_AT (DW_AT_MIPS_stride, 0x2008)
-DW_AT (DW_AT_MIPS_abstract_name, 0x2009)
-DW_AT (DW_AT_MIPS_clone_origin, 0x200a)
-DW_AT (DW_AT_MIPS_has_inlines, 0x200b)
-/* HP extensions.  */
-DW_AT (DW_AT_HP_block_index, 0x2000)
-DW_AT_DUP (DW_AT_HP_unmodifiable, 0x2001) /* Same as DW_AT_MIPS_fde.  */
-DW_AT_DUP (DW_AT_HP_prologue, 0x2005) /* Same as DW_AT_MIPS_loop_unroll.  */
-DW_AT_DUP (DW_AT_HP_epilogue, 0x2008) /* Same as DW_AT_MIPS_stride.  */
-DW_AT (DW_AT_HP_actuals_stmt_list, 0x2010)
-DW_AT (DW_AT_HP_proc_per_section, 0x2011)
-DW_AT (DW_AT_HP_raw_data_ptr, 0x2012)
-DW_AT (DW_AT_HP_pass_by_reference, 0x2013)
-DW_AT (DW_AT_HP_opt_level, 0x2014)
-DW_AT (DW_AT_HP_prof_version_id, 0x2015)
-DW_AT (DW_AT_HP_opt_flags, 0x2016)
-DW_AT (DW_AT_HP_cold_region_low_pc, 0x2017)
-DW_AT (DW_AT_HP_cold_region_high_pc, 0x2018)
-DW_AT (DW_AT_HP_all_variables_modifiable, 0x2019)
-DW_AT (DW_AT_HP_linkage_name, 0x201a)
-DW_AT (DW_AT_HP_prof_flags, 0x201b)  /* In comp unit of procs_info for -g.  */
-DW_AT (DW_AT_HP_unit_name, 0x201f)
-DW_AT (DW_AT_HP_unit_size, 0x2020)
-DW_AT (DW_AT_HP_widened_byte_size, 0x2021)
-DW_AT (DW_AT_HP_definition_points, 0x2022)
-DW_AT (DW_AT_HP_default_location, 0x2023)
-DW_AT (DW_AT_HP_is_result_param, 0x2029)
-
-/* GNU extensions.  */
-DW_AT (DW_AT_sf_names, 0x2101)
-DW_AT (DW_AT_src_info, 0x2102)
-DW_AT (DW_AT_mac_info, 0x2103)
-DW_AT (DW_AT_src_coords, 0x2104)
-DW_AT (DW_AT_body_begin, 0x2105)
-DW_AT (DW_AT_body_end, 0x2106)
-DW_AT (DW_AT_GNU_vector, 0x2107)
-/* Thread-safety annotations.
-   See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation .  */
-DW_AT (DW_AT_GNU_guarded_by, 0x2108)
-DW_AT (DW_AT_GNU_pt_guarded_by, 0x2109)
-DW_AT (DW_AT_GNU_guarded, 0x210a)
-DW_AT (DW_AT_GNU_pt_guarded, 0x210b)
-DW_AT (DW_AT_GNU_locks_excluded, 0x210c)
-DW_AT (DW_AT_GNU_exclusive_locks_required, 0x210d)
-DW_AT (DW_AT_GNU_shared_locks_required, 0x210e)
-/* One-definition rule violation detection.
-   See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo .  */
-DW_AT (DW_AT_GNU_odr_signature, 0x210f)
-/* Template template argument name.
-   See http://gcc.gnu.org/wiki/TemplateParmsDwarf .  */
-DW_AT (DW_AT_GNU_template_name, 0x2110)
-/* The GNU call site extension.
-   See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .  */
-DW_AT (DW_AT_GNU_call_site_value, 0x2111)
-DW_AT (DW_AT_GNU_call_site_data_value, 0x2112)
-DW_AT (DW_AT_GNU_call_site_target, 0x2113)
-DW_AT (DW_AT_GNU_call_site_target_clobbered, 0x2114)
-DW_AT (DW_AT_GNU_tail_call, 0x2115)
-DW_AT (DW_AT_GNU_all_tail_call_sites, 0x2116)
-DW_AT (DW_AT_GNU_all_call_sites, 0x2117)
-DW_AT (DW_AT_GNU_all_source_call_sites, 0x2118)
-/* Section offset into .debug_macro section.  */
-DW_AT (DW_AT_GNU_macros, 0x2119)
-/* Attribute for C++ deleted special member functions (= delete;).  */
-DW_AT (DW_AT_GNU_deleted, 0x211a)
-/* Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.  */
-DW_AT (DW_AT_GNU_dwo_name, 0x2130)
-DW_AT (DW_AT_GNU_dwo_id, 0x2131)
-DW_AT (DW_AT_GNU_ranges_base, 0x2132)
-DW_AT (DW_AT_GNU_addr_base, 0x2133)
-DW_AT (DW_AT_GNU_pubnames, 0x2134)
-DW_AT (DW_AT_GNU_pubtypes, 0x2135)
-/* Attribute for discriminator.
-   See http://gcc.gnu.org/wiki/Discriminator  */
-DW_AT (DW_AT_GNU_discriminator, 0x2136)
-/* VMS extensions.  */
-DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
-/* GNAT extensions.  */
-/* GNAT descriptive type.
-   See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type .  */
-DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301)
-DW_AT (DW_AT_GNAT_descriptive_type, 0x2302)
-/* Rational constant extension.
-   See https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator .  */
-DW_TAG (DW_AT_GNU_numerator, 0x2303)
-DW_TAG (DW_AT_GNU_denominator, 0x2304)
-/* Biased integer extension.
-   See https://gcc.gnu.org/wiki/DW_AT_GNU_bias .  */
-DW_TAG (DW_AT_GNU_bias, 0x2305)
-/* UPC extension.  */
-DW_AT (DW_AT_upc_threads_scaled, 0x3210)
-/* PGI (STMicroelectronics) extensions.  */
-DW_AT (DW_AT_PGI_lbase, 0x3a00)
-DW_AT (DW_AT_PGI_soffset, 0x3a01)
-DW_AT (DW_AT_PGI_lstride, 0x3a02)
-/* Apple extensions.  */
-DW_AT (DW_AT_APPLE_optimized, 0x3fe1)
-DW_AT (DW_AT_APPLE_flags, 0x3fe2)
-DW_AT (DW_AT_APPLE_isa, 0x3fe3)
-DW_AT (DW_AT_APPLE_block, 0x3fe4)
-DW_AT (DW_AT_APPLE_major_runtime_vers, 0x3fe5)
-DW_AT (DW_AT_APPLE_runtime_class, 0x3fe6)
-DW_AT (DW_AT_APPLE_omit_frame_ptr, 0x3fe7)
-DW_AT (DW_AT_APPLE_property_name, 0x3fe8)
-DW_AT (DW_AT_APPLE_property_getter, 0x3fe9)
-DW_AT (DW_AT_APPLE_property_setter, 0x3fea)
-DW_AT (DW_AT_APPLE_property_attribute, 0x3feb)
-DW_AT (DW_AT_APPLE_objc_complete_type, 0x3fec)
-DW_AT (DW_AT_APPLE_property, 0x3fed)
-DW_END_AT
-
-DW_FIRST_OP (DW_OP_addr, 0x03)
-DW_OP (DW_OP_deref, 0x06)
-DW_OP (DW_OP_const1u, 0x08)
-DW_OP (DW_OP_const1s, 0x09)
-DW_OP (DW_OP_const2u, 0x0a)
-DW_OP (DW_OP_const2s, 0x0b)
-DW_OP (DW_OP_const4u, 0x0c)
-DW_OP (DW_OP_const4s, 0x0d)
-DW_OP (DW_OP_const8u, 0x0e)
-DW_OP (DW_OP_const8s, 0x0f)
-DW_OP (DW_OP_constu, 0x10)
-DW_OP (DW_OP_consts, 0x11)
-DW_OP (DW_OP_dup, 0x12)
-DW_OP (DW_OP_drop, 0x13)
-DW_OP (DW_OP_over, 0x14)
-DW_OP (DW_OP_pick, 0x15)
-DW_OP (DW_OP_swap, 0x16)
-DW_OP (DW_OP_rot, 0x17)
-DW_OP (DW_OP_xderef, 0x18)
-DW_OP (DW_OP_abs, 0x19)
-DW_OP (DW_OP_and, 0x1a)
-DW_OP (DW_OP_div, 0x1b)
-DW_OP (DW_OP_minus, 0x1c)
-DW_OP (DW_OP_mod, 0x1d)
-DW_OP (DW_OP_mul, 0x1e)
-DW_OP (DW_OP_neg, 0x1f)
-DW_OP (DW_OP_not, 0x20)
-DW_OP (DW_OP_or, 0x21)
-DW_OP (DW_OP_plus, 0x22)
-DW_OP (DW_OP_plus_uconst, 0x23)
-DW_OP (DW_OP_shl, 0x24)
-DW_OP (DW_OP_shr, 0x25)
-DW_OP (DW_OP_shra, 0x26)
-DW_OP (DW_OP_xor, 0x27)
-DW_OP (DW_OP_bra, 0x28)
-DW_OP (DW_OP_eq, 0x29)
-DW_OP (DW_OP_ge, 0x2a)
-DW_OP (DW_OP_gt, 0x2b)
-DW_OP (DW_OP_le, 0x2c)
-DW_OP (DW_OP_lt, 0x2d)
-DW_OP (DW_OP_ne, 0x2e)
-DW_OP (DW_OP_skip, 0x2f)
-DW_OP (DW_OP_lit0, 0x30)
-DW_OP (DW_OP_lit1, 0x31)
-DW_OP (DW_OP_lit2, 0x32)
-DW_OP (DW_OP_lit3, 0x33)
-DW_OP (DW_OP_lit4, 0x34)
-DW_OP (DW_OP_lit5, 0x35)
-DW_OP (DW_OP_lit6, 0x36)
-DW_OP (DW_OP_lit7, 0x37)
-DW_OP (DW_OP_lit8, 0x38)
-DW_OP (DW_OP_lit9, 0x39)
-DW_OP (DW_OP_lit10, 0x3a)
-DW_OP (DW_OP_lit11, 0x3b)
-DW_OP (DW_OP_lit12, 0x3c)
-DW_OP (DW_OP_lit13, 0x3d)
-DW_OP (DW_OP_lit14, 0x3e)
-DW_OP (DW_OP_lit15, 0x3f)
-DW_OP (DW_OP_lit16, 0x40)
-DW_OP (DW_OP_lit17, 0x41)
-DW_OP (DW_OP_lit18, 0x42)
-DW_OP (DW_OP_lit19, 0x43)
-DW_OP (DW_OP_lit20, 0x44)
-DW_OP (DW_OP_lit21, 0x45)
-DW_OP (DW_OP_lit22, 0x46)
-DW_OP (DW_OP_lit23, 0x47)
-DW_OP (DW_OP_lit24, 0x48)
-DW_OP (DW_OP_lit25, 0x49)
-DW_OP (DW_OP_lit26, 0x4a)
-DW_OP (DW_OP_lit27, 0x4b)
-DW_OP (DW_OP_lit28, 0x4c)
-DW_OP (DW_OP_lit29, 0x4d)
-DW_OP (DW_OP_lit30, 0x4e)
-DW_OP (DW_OP_lit31, 0x4f)
-DW_OP (DW_OP_reg0, 0x50)
-DW_OP (DW_OP_reg1, 0x51)
-DW_OP (DW_OP_reg2, 0x52)
-DW_OP (DW_OP_reg3, 0x53)
-DW_OP (DW_OP_reg4, 0x54)
-DW_OP (DW_OP_reg5, 0x55)
-DW_OP (DW_OP_reg6, 0x56)
-DW_OP (DW_OP_reg7, 0x57)
-DW_OP (DW_OP_reg8, 0x58)
-DW_OP (DW_OP_reg9, 0x59)
-DW_OP (DW_OP_reg10, 0x5a)
-DW_OP (DW_OP_reg11, 0x5b)
-DW_OP (DW_OP_reg12, 0x5c)
-DW_OP (DW_OP_reg13, 0x5d)
-DW_OP (DW_OP_reg14, 0x5e)
-DW_OP (DW_OP_reg15, 0x5f)
-DW_OP (DW_OP_reg16, 0x60)
-DW_OP (DW_OP_reg17, 0x61)
-DW_OP (DW_OP_reg18, 0x62)
-DW_OP (DW_OP_reg19, 0x63)
-DW_OP (DW_OP_reg20, 0x64)
-DW_OP (DW_OP_reg21, 0x65)
-DW_OP (DW_OP_reg22, 0x66)
-DW_OP (DW_OP_reg23, 0x67)
-DW_OP (DW_OP_reg24, 0x68)
-DW_OP (DW_OP_reg25, 0x69)
-DW_OP (DW_OP_reg26, 0x6a)
-DW_OP (DW_OP_reg27, 0x6b)
-DW_OP (DW_OP_reg28, 0x6c)
-DW_OP (DW_OP_reg29, 0x6d)
-DW_OP (DW_OP_reg30, 0x6e)
-DW_OP (DW_OP_reg31, 0x6f)
-DW_OP (DW_OP_breg0, 0x70)
-DW_OP (DW_OP_breg1, 0x71)
-DW_OP (DW_OP_breg2, 0x72)
-DW_OP (DW_OP_breg3, 0x73)
-DW_OP (DW_OP_breg4, 0x74)
-DW_OP (DW_OP_breg5, 0x75)
-DW_OP (DW_OP_breg6, 0x76)
-DW_OP (DW_OP_breg7, 0x77)
-DW_OP (DW_OP_breg8, 0x78)
-DW_OP (DW_OP_breg9, 0x79)
-DW_OP (DW_OP_breg10, 0x7a)
-DW_OP (DW_OP_breg11, 0x7b)
-DW_OP (DW_OP_breg12, 0x7c)
-DW_OP (DW_OP_breg13, 0x7d)
-DW_OP (DW_OP_breg14, 0x7e)
-DW_OP (DW_OP_breg15, 0x7f)
-DW_OP (DW_OP_breg16, 0x80)
-DW_OP (DW_OP_breg17, 0x81)
-DW_OP (DW_OP_breg18, 0x82)
-DW_OP (DW_OP_breg19, 0x83)
-DW_OP (DW_OP_breg20, 0x84)
-DW_OP (DW_OP_breg21, 0x85)
-DW_OP (DW_OP_breg22, 0x86)
-DW_OP (DW_OP_breg23, 0x87)
-DW_OP (DW_OP_breg24, 0x88)
-DW_OP (DW_OP_breg25, 0x89)
-DW_OP (DW_OP_breg26, 0x8a)
-DW_OP (DW_OP_breg27, 0x8b)
-DW_OP (DW_OP_breg28, 0x8c)
-DW_OP (DW_OP_breg29, 0x8d)
-DW_OP (DW_OP_breg30, 0x8e)
-DW_OP (DW_OP_breg31, 0x8f)
-DW_OP (DW_OP_regx, 0x90)
-DW_OP (DW_OP_fbreg, 0x91)
-DW_OP (DW_OP_bregx, 0x92)
-DW_OP (DW_OP_piece, 0x93)
-DW_OP (DW_OP_deref_size, 0x94)
-DW_OP (DW_OP_xderef_size, 0x95)
-DW_OP (DW_OP_nop, 0x96)
-/* DWARF 3 extensions.  */
-DW_OP (DW_OP_push_object_address, 0x97)
-DW_OP (DW_OP_call2, 0x98)
-DW_OP (DW_OP_call4, 0x99)
-DW_OP (DW_OP_call_ref, 0x9a)
-DW_OP (DW_OP_form_tls_address, 0x9b)
-DW_OP (DW_OP_call_frame_cfa, 0x9c)
-DW_OP (DW_OP_bit_piece, 0x9d)
-
-/* DWARF 4 extensions.  */
-DW_OP (DW_OP_implicit_value, 0x9e)
-DW_OP (DW_OP_stack_value, 0x9f)
-
-/* DWARF 5 extensions.  */
-DW_OP (DW_OP_implicit_pointer, 0xa0)
-DW_OP (DW_OP_addrx, 0xa1)
-DW_OP (DW_OP_constx, 0xa2)
-DW_OP (DW_OP_entry_value, 0xa3)
-DW_OP (DW_OP_const_type, 0xa4)
-DW_OP (DW_OP_regval_type, 0xa5)
-DW_OP (DW_OP_deref_type, 0xa6)
-DW_OP (DW_OP_xderef_type, 0xa7)
-DW_OP (DW_OP_convert, 0xa8)
-DW_OP (DW_OP_reinterpret, 0xa9)
-
-DW_OP_DUP (DW_OP_lo_user, 0xe0)	/* Implementation-defined range start.  */
-DW_OP_DUP (DW_OP_hi_user, 0xff)	/* Implementation-defined range end.  */
-
-/* GNU extensions.  */
-DW_OP (DW_OP_GNU_push_tls_address, 0xe0)
-/* The following is for marking variables that are uninitialized.  */
-DW_OP (DW_OP_GNU_uninit, 0xf0)
-DW_OP (DW_OP_GNU_encoded_addr, 0xf1)
-/* The GNU implicit pointer extension.
-   See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open .  */
-DW_OP (DW_OP_GNU_implicit_pointer, 0xf2)
-/* The GNU entry value extension.
-   See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open .  */
-DW_OP (DW_OP_GNU_entry_value, 0xf3)
-/* The GNU typed stack extension.
-   See http://www.dwarfstd.org/doc/040408.1.html .  */
-DW_OP (DW_OP_GNU_const_type, 0xf4)
-DW_OP (DW_OP_GNU_regval_type, 0xf5)
-DW_OP (DW_OP_GNU_deref_type, 0xf6)
-DW_OP (DW_OP_GNU_convert, 0xf7)
-DW_OP (DW_OP_GNU_reinterpret, 0xf9)
-/* The GNU parameter ref extension.  */
-DW_OP (DW_OP_GNU_parameter_ref, 0xfa)
-/* Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFission.  */
-DW_OP (DW_OP_GNU_addr_index, 0xfb)
-DW_OP (DW_OP_GNU_const_index, 0xfc)
-/* HP extensions.  */
-DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address.  */
-DW_OP (DW_OP_HP_is_value, 0xe1)
-DW_OP (DW_OP_HP_fltconst4, 0xe2)
-DW_OP (DW_OP_HP_fltconst8, 0xe3)
-DW_OP (DW_OP_HP_mod_range, 0xe4)
-DW_OP (DW_OP_HP_unmod_range, 0xe5)
-DW_OP (DW_OP_HP_tls, 0xe6)
-/* PGI (STMicroelectronics) extensions.  */
-DW_OP (DW_OP_PGI_omp_thread_num, 0xf8)
-DW_END_OP
-
-DW_FIRST_ATE (DW_ATE_void, 0x0)
-DW_ATE (DW_ATE_address, 0x1)
-DW_ATE (DW_ATE_boolean, 0x2)
-DW_ATE (DW_ATE_complex_float, 0x3)
-DW_ATE (DW_ATE_float, 0x4)
-DW_ATE (DW_ATE_signed, 0x5)
-DW_ATE (DW_ATE_signed_char, 0x6)
-DW_ATE (DW_ATE_unsigned, 0x7)
-DW_ATE (DW_ATE_unsigned_char, 0x8)
-/* DWARF 3.  */
-DW_ATE (DW_ATE_imaginary_float, 0x9)
-DW_ATE (DW_ATE_packed_decimal, 0xa)
-DW_ATE (DW_ATE_numeric_string, 0xb)
-DW_ATE (DW_ATE_edited, 0xc)
-DW_ATE (DW_ATE_signed_fixed, 0xd)
-DW_ATE (DW_ATE_unsigned_fixed, 0xe)
-DW_ATE (DW_ATE_decimal_float, 0xf)
-/* DWARF 4.  */
-DW_ATE (DW_ATE_UTF, 0x10)
-/* DWARF 5.  */
-DW_ATE (DW_ATE_UCS, 0x11)
-DW_ATE (DW_ATE_ASCII, 0x12)
-
-DW_ATE_DUP (DW_ATE_lo_user, 0x80)
-DW_ATE_DUP (DW_ATE_hi_user, 0xff)
-
-/* HP extensions.  */
-DW_ATE (DW_ATE_HP_float80, 0x80) /* Floating-point (80 bit).  */
-DW_ATE (DW_ATE_HP_complex_float80, 0x81) /* Complex floating-point (80 bit).  */
-DW_ATE (DW_ATE_HP_float128, 0x82) /* Floating-point (128 bit).  */
-DW_ATE (DW_ATE_HP_complex_float128, 0x83) /* Complex fp (128 bit).  */
-DW_ATE (DW_ATE_HP_floathpintel, 0x84) /* Floating-point (82 bit IA64).  */
-DW_ATE (DW_ATE_HP_imaginary_float80, 0x85)
-DW_ATE (DW_ATE_HP_imaginary_float128, 0x86)
-DW_ATE (DW_ATE_HP_VAX_float, 0x88) /* F or G floating.  */
-DW_ATE (DW_ATE_HP_VAX_float_d, 0x89) /* D floating.  */
-DW_ATE (DW_ATE_HP_packed_decimal, 0x8a) /* Cobol.  */
-DW_ATE (DW_ATE_HP_zoned_decimal, 0x8b) /* Cobol.  */
-DW_ATE (DW_ATE_HP_edited, 0x8c) /* Cobol.  */
-DW_ATE (DW_ATE_HP_signed_fixed, 0x8d) /* Cobol.  */
-DW_ATE (DW_ATE_HP_unsigned_fixed, 0x8e) /* Cobol.  */
-DW_ATE (DW_ATE_HP_VAX_complex_float, 0x8f) /* F or G floating complex.  */
-DW_ATE (DW_ATE_HP_VAX_complex_float_d, 0x90) /* D floating complex.  */
-
-DW_END_ATE
-
-DW_FIRST_CFA (DW_CFA_advance_loc, 0x40)
-DW_CFA (DW_CFA_offset, 0x80)
-DW_CFA (DW_CFA_restore, 0xc0)
-DW_CFA (DW_CFA_nop, 0x00)
-DW_CFA (DW_CFA_set_loc, 0x01)
-DW_CFA (DW_CFA_advance_loc1, 0x02)
-DW_CFA (DW_CFA_advance_loc2, 0x03)
-DW_CFA (DW_CFA_advance_loc4, 0x04)
-DW_CFA (DW_CFA_offset_extended, 0x05)
-DW_CFA (DW_CFA_restore_extended, 0x06)
-DW_CFA (DW_CFA_undefined, 0x07)
-DW_CFA (DW_CFA_same_value, 0x08)
-DW_CFA (DW_CFA_register, 0x09)
-DW_CFA (DW_CFA_remember_state, 0x0a)
-DW_CFA (DW_CFA_restore_state, 0x0b)
-DW_CFA (DW_CFA_def_cfa, 0x0c)
-DW_CFA (DW_CFA_def_cfa_register, 0x0d)
-DW_CFA (DW_CFA_def_cfa_offset, 0x0e)
-/* DWARF 3.  */
-DW_CFA (DW_CFA_def_cfa_expression, 0x0f)
-DW_CFA (DW_CFA_expression, 0x10)
-DW_CFA (DW_CFA_offset_extended_sf, 0x11)
-DW_CFA (DW_CFA_def_cfa_sf, 0x12)
-DW_CFA (DW_CFA_def_cfa_offset_sf, 0x13)
-DW_CFA (DW_CFA_val_offset, 0x14)
-DW_CFA (DW_CFA_val_offset_sf, 0x15)
-DW_CFA (DW_CFA_val_expression, 0x16)
-
-DW_CFA (DW_CFA_lo_user, 0x1c)
-DW_CFA (DW_CFA_hi_user, 0x3f)
-
-/* SGI/MIPS specific.  */
-DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
-/* GNU extensions.  */
-DW_CFA (DW_CFA_GNU_window_save, 0x2d)
-DW_CFA (DW_CFA_GNU_args_size, 0x2e)
-DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
-
-DW_END_CFA
diff --git a/rpython/rlib/rvmprof/src/shared/libbacktrace/dwarf2.h b/rpython/rlib/rvmprof/src/shared/libbacktrace/dwarf2.h
deleted file mode 100644
--- a/rpython/rlib/rvmprof/src/shared/libbacktrace/dwarf2.h
+++ /dev/null
@@ -1,531 +0,0 @@
-/* Declarations and definitions of codes relating to the DWARF2 and
-   DWARF3 symbolic debugging information formats.
-   Copyright (C) 1992-2016 Free Software Foundation, Inc.
-
-   Written by Gary Funck (gary at intrepid.com) The Ada Joint Program
-   Office (AJPO), Florida State University and Silicon Graphics Inc.
-   provided support for this effort -- June 21, 1995.
-
-   Derived from the DWARF 1 implementation written by Ron Guilmette
-   (rfg at netcom.com), November 1990.
-
-   This file is part of GCC.
-
-   GCC is free software; you can redistribute it and/or modify it under
-   the terms of the GNU General Public License as published by the Free
-   Software Foundation; either version 3, or (at your option) any later
-   version.
-
-   GCC is distributed in the hope that it will be useful, but WITHOUT
-   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-   License for more details.
-
-   Under Section 7 of GPL version 3, you are granted additional
-   permissions described in the GCC Runtime Library Exception, version
-   3.1, as published by the Free Software Foundation.
-
-   You should have received a copy of the GNU General Public License and
-   a copy of the GCC Runtime Library Exception along with this program;
-   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This file is derived from the DWARF specification (a public document)
-   Revision 2.0.0 (July 27, 1993) developed by the UNIX International
-   Programming Languages Special Interest Group (UI/PLSIG) and distributed
-   by UNIX International.  Copies of this specification are available from
-   UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
-
-   This file also now contains definitions from the DWARF 3 specification
-   published Dec 20, 2005, available from: http://dwarf.freestandards.org.  */
-
-#ifndef _DWARF2_H
-#define _DWARF2_H
-
-#define DW_TAG(name, value) , name = value
-#define DW_TAG_DUP(name, value) , name = value
-#define DW_FORM(name, value) , name = value
-#define DW_AT(name, value) , name = value
-#define DW_AT_DUP(name, value) , name = value
-#define DW_OP(name, value) , name = value
-#define DW_OP_DUP(name, value) , name = value
-#define DW_ATE(name, value) , name = value
-#define DW_ATE_DUP(name, value) , name = value
-#define DW_CFA(name, value) , name = value
-
-#define DW_FIRST_TAG(name, value) enum dwarf_tag { \
-  name = value
-#define DW_END_TAG };
-#define DW_FIRST_FORM(name, value) enum dwarf_form { \
-  name = value
-#define DW_END_FORM };
-#define DW_FIRST_AT(name, value) enum dwarf_attribute { \
-  name = value
-#define DW_END_AT };
-#define DW_FIRST_OP(name, value) enum dwarf_location_atom { \
-  name = value
-#define DW_END_OP };
-#define DW_FIRST_ATE(name, value) enum dwarf_type { \
-  name = value
-#define DW_END_ATE };
-#define DW_FIRST_CFA(name, value) enum dwarf_call_frame_info { \
-  name = value
-#define DW_END_CFA };
-
-#include "dwarf2.def"
-
-#undef DW_FIRST_TAG
-#undef DW_END_TAG
-#undef DW_FIRST_FORM
-#undef DW_END_FORM
-#undef DW_FIRST_AT
-#undef DW_END_AT
-#undef DW_FIRST_OP
-#undef DW_END_OP
-#undef DW_FIRST_ATE
-#undef DW_END_ATE
-#undef DW_FIRST_CFA
-#undef DW_END_CFA
-
-#undef DW_TAG
-#undef DW_TAG_DUP
-#undef DW_FORM
-#undef DW_AT
-#undef DW_AT_DUP
-#undef DW_OP
-#undef DW_OP_DUP
-#undef DW_ATE
-#undef DW_ATE_DUP
-#undef DW_CFA
-
-/* Flag that tells whether entry has a child or not.  */
-#define DW_children_no   0
-#define	DW_children_yes  1
-
-#define DW_AT_stride_size   DW_AT_bit_stride  /* Note: The use of DW_AT_stride_size is deprecated.  */
-#define DW_AT_stride   DW_AT_byte_stride  /* Note: The use of DW_AT_stride is deprecated.  */
-
-/* Decimal sign encodings.  */
-enum dwarf_decimal_sign_encoding
-  {
-    /* DWARF 3.  */
-    DW_DS_unsigned = 0x01,
-    DW_DS_leading_overpunch = 0x02,
-    DW_DS_trailing_overpunch = 0x03,
-    DW_DS_leading_separate = 0x04,
-    DW_DS_trailing_separate = 0x05
-  };
-
-/* Endianity encodings.  */
-enum dwarf_endianity_encoding
-  {
-    /* DWARF 3.  */
-    DW_END_default = 0x00,
-    DW_END_big = 0x01,
-    DW_END_little = 0x02,
-
-    DW_END_lo_user = 0x40,
-    DW_END_hi_user = 0xff
-  };
-
-/* Array ordering names and codes.  */
-enum dwarf_array_dim_ordering
-  {
-    DW_ORD_row_major = 0,
-    DW_ORD_col_major = 1
-  };
-
-/* Access attribute.  */
-enum dwarf_access_attribute
-  {
-    DW_ACCESS_public = 1,
-    DW_ACCESS_protected = 2,
-    DW_ACCESS_private = 3
-  };
-
-/* Visibility.  */
-enum dwarf_visibility_attribute
-  {
-    DW_VIS_local = 1,
-    DW_VIS_exported = 2,
-    DW_VIS_qualified = 3
-  };
-
-/* Virtuality.  */
-enum dwarf_virtuality_attribute
-  {
-    DW_VIRTUALITY_none = 0,
-    DW_VIRTUALITY_virtual = 1,
-    DW_VIRTUALITY_pure_virtual = 2
-  };
-
-/* Case sensitivity.  */
-enum dwarf_id_case
-  {
-    DW_ID_case_sensitive = 0,
-    DW_ID_up_case = 1,
-    DW_ID_down_case = 2,
-    DW_ID_case_insensitive = 3
-  };
-
-/* Calling convention.  */
-enum dwarf_calling_convention
-  {
-    DW_CC_normal = 0x1,
-    DW_CC_program = 0x2,
-    DW_CC_nocall = 0x3,
-
-    /* DWARF 5.  */
-    DW_CC_pass_by_reference = 0x4,
-    DW_CC_pass_by_value = 0x5,
-
-    DW_CC_lo_user = 0x40,
-    DW_CC_hi_user = 0xff,
-
-    DW_CC_GNU_renesas_sh = 0x40,
-    DW_CC_GNU_borland_fastcall_i386 = 0x41,
-
-    /* This DW_CC_ value is not currently generated by any toolchain.  It is
-       used internally to GDB to indicate OpenCL C functions that have been
-       compiled with the IBM XL C for OpenCL compiler and use a non-platform
-       calling convention for passing OpenCL C vector types.  This value may
-       be changed freely as long as it does not conflict with any other DW_CC_
-       value defined here.  */
-    DW_CC_GDB_IBM_OpenCL = 0xff
-  };
-
-/* Inline attribute.  */
-enum dwarf_inline_attribute
-  {
-    DW_INL_not_inlined = 0,
-    DW_INL_inlined = 1,
-    DW_INL_declared_not_inlined = 2,
-    DW_INL_declared_inlined = 3
-  };
-
-/* Discriminant lists.  */
-enum dwarf_discrim_list
-  {
-    DW_DSC_label = 0,
-    DW_DSC_range = 1
-  };
-
-/* Line number opcodes.  */
-enum dwarf_line_number_ops
-  {
-    DW_LNS_extended_op = 0,
-    DW_LNS_copy = 1,
-    DW_LNS_advance_pc = 2,
-    DW_LNS_advance_line = 3,
-    DW_LNS_set_file = 4,
-    DW_LNS_set_column = 5,
-    DW_LNS_negate_stmt = 6,
-    DW_LNS_set_basic_block = 7,
-    DW_LNS_const_add_pc = 8,
-    DW_LNS_fixed_advance_pc = 9,
-    /* DWARF 3.  */
-    DW_LNS_set_prologue_end = 10,
-    DW_LNS_set_epilogue_begin = 11,
-    DW_LNS_set_isa = 12
-  };
-
-/* Line number extended opcodes.  */
-enum dwarf_line_number_x_ops
-  {
-    DW_LNE_end_sequence = 1,
-    DW_LNE_set_address = 2,
-    DW_LNE_define_file = 3,
-    DW_LNE_set_discriminator = 4,
-    /* HP extensions.  */
-    DW_LNE_HP_negate_is_UV_update      = 0x11,
-    DW_LNE_HP_push_context             = 0x12,
-    DW_LNE_HP_pop_context              = 0x13,
-    DW_LNE_HP_set_file_line_column     = 0x14,
-    DW_LNE_HP_set_routine_name         = 0x15,
-    DW_LNE_HP_set_sequence             = 0x16,
-    DW_LNE_HP_negate_post_semantics    = 0x17,
-    DW_LNE_HP_negate_function_exit     = 0x18,
-    DW_LNE_HP_negate_front_end_logical = 0x19,
-    DW_LNE_HP_define_proc              = 0x20,
-    DW_LNE_HP_source_file_correlation  = 0x80,
-
-    DW_LNE_lo_user = 0x80,
-    DW_LNE_hi_user = 0xff
-  };
-
-/* Sub-opcodes for DW_LNE_HP_source_file_correlation.  */
-enum dwarf_line_number_hp_sfc_ops
-  {
-    DW_LNE_HP_SFC_formfeed = 1,
-    DW_LNE_HP_SFC_set_listing_line = 2,
-    DW_LNE_HP_SFC_associate = 3
-  };
-
-/* Content type codes in line table directory_entry_format
-   and file_name_entry_format sequences.  */
-enum dwarf_line_number_content_type
-  {
-    DW_LNCT_path = 0x1,
-    DW_LNCT_directory_index = 0x2,
-    DW_LNCT_timestamp = 0x3,
-    DW_LNCT_size = 0x4,
-    DW_LNCT_MD5 = 0x5,
-    DW_LNCT_lo_user = 0x2000,
-    DW_LNCT_hi_user = 0x3fff
-  };
-
-/* Type codes for location list entries.  */
-enum dwarf_location_list_entry_type
-  {
-    DW_LLE_end_of_list = 0x00,
-    DW_LLE_base_addressx = 0x01,
-    DW_LLE_startx_endx = 0x02,
-    DW_LLE_startx_length = 0x03,
-    DW_LLE_offset_pair = 0x04,
-    DW_LLE_default_location = 0x05,
-    DW_LLE_base_address = 0x06,
-    DW_LLE_start_end = 0x07,
-    DW_LLE_start_length = 0x08,
-
-    /* Former extension for Fission.
-       See http://gcc.gnu.org/wiki/DebugFission.  */
-    DW_LLE_GNU_end_of_list_entry = 0x00,
-    DW_LLE_GNU_base_address_selection_entry = 0x01,
-    DW_LLE_GNU_start_end_entry = 0x02,
-    DW_LLE_GNU_start_length_entry = 0x03
-  };
-
-#define DW_CIE_ID	  0xffffffff
-#define DW64_CIE_ID	  0xffffffffffffffffULL
-#define DW_CIE_VERSION	  1
-
-#define DW_CFA_extended   0
-
-#define DW_CHILDREN_no		     0x00
-#define DW_CHILDREN_yes		     0x01
-
-#define DW_ADDR_none		0
-
-/* Source language names and codes.  */
-enum dwarf_source_language
-  {
-    DW_LANG_C89 = 0x0001,
-    DW_LANG_C = 0x0002,
-    DW_LANG_Ada83 = 0x0003,
-    DW_LANG_C_plus_plus = 0x0004,
-    DW_LANG_Cobol74 = 0x0005,
-    DW_LANG_Cobol85 = 0x0006,
-    DW_LANG_Fortran77 = 0x0007,
-    DW_LANG_Fortran90 = 0x0008,
-    DW_LANG_Pascal83 = 0x0009,
-    DW_LANG_Modula2 = 0x000a,
-    /* DWARF 3.  */
-    DW_LANG_Java = 0x000b,
-    DW_LANG_C99 = 0x000c,
-    DW_LANG_Ada95 = 0x000d,
-    DW_LANG_Fortran95 = 0x000e,
-    DW_LANG_PLI = 0x000f,
-    DW_LANG_ObjC = 0x0010,
-    DW_LANG_ObjC_plus_plus = 0x0011,
-    DW_LANG_UPC = 0x0012,
-    DW_LANG_D = 0x0013,
-    /* DWARF 4.  */
-    DW_LANG_Python = 0x0014,
-    /* DWARF 5.  */
-    DW_LANG_OpenCL = 0x0015,
-    DW_LANG_Go = 0x0016,
-    DW_LANG_Modula3 = 0x0017,
-    DW_LANG_Haskell = 0x0018,
-    DW_LANG_C_plus_plus_03 = 0x0019,
-    DW_LANG_C_plus_plus_11 = 0x001a,
-    DW_LANG_OCaml = 0x001b,
-    DW_LANG_Rust = 0x001c,
-    DW_LANG_C11 = 0x001d,
-    DW_LANG_Swift = 0x001e,
-    DW_LANG_Julia = 0x001f,
-    DW_LANG_Dylan = 0x0020,
-    DW_LANG_C_plus_plus_14 = 0x0021,
-    DW_LANG_Fortran03 = 0x0022,
-    DW_LANG_Fortran08 = 0x0023,
-    DW_LANG_RenderScript = 0x0024,
-
-    DW_LANG_lo_user = 0x8000,	/* Implementation-defined range start.  */
-    DW_LANG_hi_user = 0xffff,	/* Implementation-defined range start.  */
-
-    /* MIPS.  */
-    DW_LANG_Mips_Assembler = 0x8001,
-    /* UPC.  */
-    DW_LANG_Upc = 0x8765,
-    /* HP extensions.  */
-    DW_LANG_HP_Bliss     = 0x8003,
-    DW_LANG_HP_Basic91   = 0x8004,
-    DW_LANG_HP_Pascal91  = 0x8005,
-    DW_LANG_HP_IMacro    = 0x8006,
-    DW_LANG_HP_Assembler = 0x8007,
-
-    /* Rust extension, but replaced in DWARF 5.  */
-    DW_LANG_Rust_old = 0x9000
-  };
-
-/* Names and codes for macro information.  */
-enum dwarf_macinfo_record_type
-  {
-    DW_MACINFO_define = 1,
-    DW_MACINFO_undef = 2,
-    DW_MACINFO_start_file = 3,
-    DW_MACINFO_end_file = 4,
-    DW_MACINFO_vendor_ext = 255
-  };
-
-/* DW_TAG_defaulted/DW_TAG_GNU_defaulted attributes.  */
-enum dwarf_defaulted_attribute
-  {
-    DW_DEFAULTED_no = 0x00,
-    DW_DEFAULTED_in_class = 0x01,
-    DW_DEFAULTED_out_of_class = 0x02
-  };
-
-/* Names and codes for new style macro information.  */
-enum dwarf_macro_record_type
-  {
-    DW_MACRO_define = 0x01,
-    DW_MACRO_undef = 0x02,
-    DW_MACRO_start_file = 0x03,
-    DW_MACRO_end_file = 0x04,
-    DW_MACRO_define_strp = 0x05,
-    DW_MACRO_undef_strp = 0x06,
-    DW_MACRO_import = 0x07,
-    DW_MACRO_define_sup = 0x08,
-    DW_MACRO_undef_sup = 0x09,
-    DW_MACRO_import_sup = 0x0a,
-    DW_MACRO_define_strx = 0x0b,
-    DW_MACRO_undef_strx = 0x0c,
-    DW_MACRO_lo_user = 0xe0,
-    DW_MACRO_hi_user = 0xff,
-
-    /* Compatibility macros for the GNU .debug_macro extension.  */
-    DW_MACRO_GNU_define = 0x01,
-    DW_MACRO_GNU_undef = 0x02,
-    DW_MACRO_GNU_start_file = 0x03,
-    DW_MACRO_GNU_end_file = 0x04,
-    DW_MACRO_GNU_define_indirect = 0x05,
-    DW_MACRO_GNU_undef_indirect = 0x06,
-    DW_MACRO_GNU_transparent_include = 0x07,
-    /* Extensions for DWZ multifile.
-       See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open .  */
-    DW_MACRO_GNU_define_indirect_alt = 0x08,
-    DW_MACRO_GNU_undef_indirect_alt = 0x09,
-    DW_MACRO_GNU_transparent_include_alt = 0x0a,
-    DW_MACRO_GNU_lo_user = 0xe0,
-    DW_MACRO_GNU_hi_user = 0xff
-  };
-
-/* Index attributes in the Abbreviations Table.  */
-enum dwarf_name_index_attribute
-  {
-    DW_IDX_compile_unit = 1,
-    DW_IDX_type_unit = 2,
-    DW_IDX_die_offset = 3,
-    DW_IDX_parent = 4,
-    DW_IDX_type_hash = 5,
-    DW_IDX_lo_user = 0x2000,
-    DW_IDX_hi_user = 0x3fff
-  };
-
-/* Range list entry kinds in .debug_rnglists* section.  */
-enum dwarf_range_list_entry
-  {
-    DW_RLE_end_of_list = 0x00,
-    DW_RLE_base_addressx = 0x01,
-    DW_RLE_startx_endx = 0x02,
-    DW_RLE_startx_length = 0x03,
-    DW_RLE_offset_pair = 0x04,
-    DW_RLE_base_address = 0x05,
-    DW_RLE_start_end = 0x06,
-    DW_RLE_start_length = 0x07
-  };
-
-/* Unit types in unit_type unit header field.  */
-enum dwarf_unit_type
-  {
-    DW_UT_compile = 0x01,
-    DW_UT_type = 0x02,
-    DW_UT_partial = 0x03,
-    DW_UT_skeleton = 0x04,
-    DW_UT_split_compile = 0x05,
-    DW_UT_split_type = 0x06,
-    DW_UT_lo_user = 0x80,
-    DW_UT_hi_user = 0xff
-  };
-

-/* @@@ For use with GNU frame unwind information.  */
-
-#define DW_EH_PE_absptr		0x00
-#define DW_EH_PE_omit		0xff
-
-#define DW_EH_PE_uleb128	0x01
-#define DW_EH_PE_udata2		0x02
-#define DW_EH_PE_udata4		0x03
-#define DW_EH_PE_udata8		0x04
-#define DW_EH_PE_sleb128	0x09
-#define DW_EH_PE_sdata2		0x0A
-#define DW_EH_PE_sdata4		0x0B
-#define DW_EH_PE_sdata8		0x0C
-#define DW_EH_PE_signed		0x08
-
-#define DW_EH_PE_pcrel		0x10
-#define DW_EH_PE_textrel	0x20
-#define DW_EH_PE_datarel	0x30
-#define DW_EH_PE_funcrel	0x40
-#define DW_EH_PE_aligned	0x50
-
-#define DW_EH_PE_indirect	0x80
-
-/* Codes for the debug sections in a dwarf package (.dwp) file.
-   Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFissionDWP.  */
-enum dwarf_sect
-  {
-    DW_SECT_INFO = 1,
-    DW_SECT_TYPES = 2,
-    DW_SECT_ABBREV = 3,
-    DW_SECT_LINE = 4,
-    DW_SECT_LOC = 5,
-    DW_SECT_STR_OFFSETS = 6,
-    DW_SECT_MACINFO = 7,
-    DW_SECT_MACRO = 8,
-    DW_SECT_MAX = 8
-  };
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/* Return the name of a DW_TAG_ constant, or NULL if the value is not
-   recognized.  */
-extern const char *get_DW_TAG_name (unsigned int tag);
-
-/* Return the name of a DW_AT_ constant, or NULL if the value is not
-   recognized.  */
-extern const char *get_DW_AT_name (unsigned int attr);
-
-/* Return the name of a DW_FORM_ constant, or NULL if the value is not
-   recognized.  */
-extern const char *get_DW_FORM_name (unsigned int form);
-
-/* Return the name of a DW_OP_ constant, or NULL if the value is not
-   recognized.  */
-extern const char *get_DW_OP_name (unsigned int op);
-
-/* Return the name of a DW_ATE_ constant, or NULL if the value is not
-   recognized.  */
-extern const char *get_DW_ATE_name (unsigned int enc);
-
-/* Return the name of a DW_CFA_ constant, or NULL if the value is not
-   recognized.  */
-extern const char *get_DW_CFA_name (unsigned int opc);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _DWARF2_H */
diff --git a/rpython/rlib/rvmprof/src/shared/libbacktrace/filenames.h b/rpython/rlib/rvmprof/src/shared/libbacktrace/filenames.h
deleted file mode 100644
--- a/rpython/rlib/rvmprof/src/shared/libbacktrace/filenames.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Macros for taking apart, interpreting and processing file names.
-
-   These are here because some non-Posix (a.k.a. DOSish) systems have
-   drive letter brain-damage at the beginning of an absolute file name,
-   use forward- and back-slash in path names interchangeably, and
-   some of them have case-insensitive file names.
-
-   Copyright (C) 2000-2015 Free Software Foundation, Inc.
-
-This file is part of BFD, the Binary File Descriptor library.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-#ifndef FILENAMES_H
-#define FILENAMES_H
-
-#include "hashtab.h" /* for hashval_t */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__) || defined (__CYGWIN__)
-#  ifndef HAVE_DOS_BASED_FILE_SYSTEM
-#    define HAVE_DOS_BASED_FILE_SYSTEM 1
-#  endif
-#  ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
-#    define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
-#  endif
-#  define HAS_DRIVE_SPEC(f) HAS_DOS_DRIVE_SPEC (f)
-#  define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c)
-#  define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f)
-#else /* not DOSish */
-#  if defined(__APPLE__)
-#    ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
-#      define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
-#    endif
-#  endif /* __APPLE__ */
-#  define HAS_DRIVE_SPEC(f) (0)
-#  define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c)
-#  define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f)
-#endif
-
-#define IS_DIR_SEPARATOR_1(dos_based, c)				\
-  (((c) == '/')								\
-   || (((c) == '\\') && (dos_based)))
-
-#define HAS_DRIVE_SPEC_1(dos_based, f)			\
-  ((f)[0] && ((f)[1] == ':') && (dos_based))
-
-/* Remove the drive spec from F, assuming HAS_DRIVE_SPEC (f).
-   The result is a pointer to the remainder of F.  */
-#define STRIP_DRIVE_SPEC(f)	((f) + 2)
-
-#define IS_DOS_DIR_SEPARATOR(c) IS_DIR_SEPARATOR_1 (1, c)
-#define IS_DOS_ABSOLUTE_PATH(f) IS_ABSOLUTE_PATH_1 (1, f)
-#define HAS_DOS_DRIVE_SPEC(f) HAS_DRIVE_SPEC_1 (1, f)
-
-#define IS_UNIX_DIR_SEPARATOR(c) IS_DIR_SEPARATOR_1 (0, c)
-#define IS_UNIX_ABSOLUTE_PATH(f) IS_ABSOLUTE_PATH_1 (0, f)
-
-/* Note that when DOS_BASED is true, IS_ABSOLUTE_PATH accepts d:foo as
-   well, although it is only semi-absolute.  This is because the users
-   of IS_ABSOLUTE_PATH want to know whether to prepend the current
-   working directory to a file name, which should not be done with a
-   name like d:foo.  */
-#define IS_ABSOLUTE_PATH_1(dos_based, f)		 \
-  (IS_DIR_SEPARATOR_1 (dos_based, (f)[0])		 \
-   || HAS_DRIVE_SPEC_1 (dos_based, f))
-
-extern int filename_cmp (const char *s1, const char *s2);
-#define FILENAME_CMP(s1, s2)	filename_cmp(s1, s2)
-
-extern int filename_ncmp (const char *s1, const char *s2,
-			  size_t n);
-
-extern hashval_t filename_hash (const void *s);
-
-extern int filename_eq (const void *s1, const void *s2);
-
-extern int canonical_filename_eq (const char *a, const char *b);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* FILENAMES_H */
diff --git a/rpython/rlib/rvmprof/src/shared/libbacktrace/hashtab.h b/rpython/rlib/rvmprof/src/shared/libbacktrace/hashtab.h
deleted file mode 100644
--- a/rpython/rlib/rvmprof/src/shared/libbacktrace/hashtab.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* An expandable hash tables datatype.  
-   Copyright (C) 1999-2015 Free Software Foundation, Inc.
-   Contributed by Vladimir Makarov (vmakarov at cygnus.com).
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* This package implements basic hash table functionality.  It is possible
-   to search for an entry, create an entry and destroy an entry.
-
-   Elements in the table are generic pointers.
-
-   The size of the table is not fixed; if the occupancy of the table
-   grows too high the hash table will be expanded.
-
-   The abstract data implementation is based on generalized Algorithm D
-   from Knuth's book "The art of computer programming".  Hash table is
-   expanded by creation of new hash table and transferring elements from
-   the old table to the new table.  */
-
-#ifndef __HASHTAB_H__
-#define __HASHTAB_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include "ansidecl.h"
-
-/* The type for a hash code.  */
-typedef unsigned int hashval_t;
-
-/* Callback function pointer types.  */
-
-/* Calculate hash of a table entry.  */
-typedef hashval_t (*htab_hash) (const void *);
-
-/* Compare a table entry with a possible entry.  The entry already in
-   the table always comes first, so the second element can be of a
-   different type (but in this case htab_find and htab_find_slot
-   cannot be used; instead the variants that accept a hash value
-   must be used).  */
-typedef int (*htab_eq) (const void *, const void *);
-
-/* Cleanup function called whenever a live element is removed from
-   the hash table.  */
-typedef void (*htab_del) (void *);
-  
-/* Function called by htab_traverse for each live element.  The first
-   arg is the slot of the element (which can be passed to htab_clear_slot
-   if desired), the second arg is the auxiliary pointer handed to
-   htab_traverse.  Return 1 to continue scan, 0 to stop.  */
-typedef int (*htab_trav) (void **, void *);
-
-/* Memory-allocation function, with the same functionality as calloc().
-   Iff it returns NULL, the hash table implementation will pass an error
-   code back to the user, so if your code doesn't handle errors,
-   best if you use xcalloc instead.  */
-typedef void *(*htab_alloc) (size_t, size_t);
-
-/* We also need a free() routine.  */
-typedef void (*htab_free) (void *);
-
-/* Memory allocation and deallocation; variants which take an extra
-   argument.  */
-typedef void *(*htab_alloc_with_arg) (void *, size_t, size_t);
-typedef void (*htab_free_with_arg) (void *, void *);
-
-/* This macro defines reserved value for empty table entry.  */
-
-#define HTAB_EMPTY_ENTRY    ((PTR) 0)
-
-/* This macro defines reserved value for table entry which contained
-   a deleted element. */
-
-#define HTAB_DELETED_ENTRY  ((PTR) 1)
-
-/* Hash tables are of the following type.  The structure
-   (implementation) of this type is not needed for using the hash
-   tables.  All work with hash table should be executed only through
-   functions mentioned below.  The size of this structure is subject to
-   change.  */
-
-struct htab {
-  /* Pointer to hash function.  */
-  htab_hash hash_f;
-
-  /* Pointer to comparison function.  */
-  htab_eq eq_f;
-
-  /* Pointer to cleanup function.  */
-  htab_del del_f;
-
-  /* Table itself.  */
-  void **entries;
-
-  /* Current size (in entries) of the hash table.  */
-  size_t size;
-
-  /* Current number of elements including also deleted elements.  */
-  size_t n_elements;
-
-  /* Current number of deleted elements in the table.  */
-  size_t n_deleted;
-
-  /* The following member is used for debugging. Its value is number
-     of all calls of `htab_find_slot' for the hash table. */
-  unsigned int searches;
-
-  /* The following member is used for debugging.  Its value is number
-     of collisions fixed for time of work with the hash table. */
-  unsigned int collisions;
-
-  /* Pointers to allocate/free functions.  */
-  htab_alloc alloc_f;
-  htab_free free_f;
-
-  /* Alternate allocate/free functions, which take an extra argument.  */
-  void *alloc_arg;
-  htab_alloc_with_arg alloc_with_arg_f;
-  htab_free_with_arg free_with_arg_f;
-
-  /* Current size (in entries) of the hash table, as an index into the
-     table of primes.  */
-  unsigned int size_prime_index;
-};
-
-typedef struct htab *htab_t;
-
-/* An enum saying whether we insert into the hash table or not.  */
-enum insert_option {NO_INSERT, INSERT};
-
-/* The prototypes of the package functions. */
-
-extern htab_t	htab_create_alloc  (size_t, htab_hash,
-                                    htab_eq, htab_del,
-                                    htab_alloc, htab_free);
-


More information about the pypy-commit mailing list