From 3ecd6130a3c86aefe0f2fe7156f26e5e7f0e42a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9ophile=20Bastian?=
Date: Tue, 23 Oct 2018 14:56:04 +0200
Subject: [PATCH] Import deps with slight edits
---
.../contrib/libcxxfileno/.gitignore | 77 +
.../contrib/libcxxfileno/INSTALL | 2 +
.../contrib/libcxxfileno/Makefile.am | 16 +
.../contrib/libcxxfileno/configure.ac | 15 +
.../contrib/libcxxfileno/fileno.cpp | 191 +
.../contrib/libcxxfileno/fileno.hpp | 4 +
.../contrib/libcxxfileno/include | 1 +
.../contrib/libcxxfileno/libc++fileno.pc.in | 14 +
.../contrib/libdwarf/.gitignore | 3 +
.../contrib/libdwarf/BLDLIBDWARF | 29 +
.../contrib/libdwarf/BLDLIBDWARFTAR | 44 +
.../contrib/libdwarf/BLDTESTDIR | 210 +
.../contrib/libdwarf/CLEANUP | 18 +
.../contrib/libdwarf/CMakeLists.txt | 45 +
.../contrib/libdwarf/CPTOPUBLIC | 35 +
.../contrib/libdwarf/CREATINGARELEASE | 93 +
.../contrib/libdwarf/Makefile.in | 118 +
dwarf-compilation.base/contrib/libdwarf/NEWS | 35 +
.../contrib/libdwarf/README | 79 +
.../contrib/libdwarf/README.md | 19 +
.../contrib/libdwarf/REBLDLIBDWARF | 31 +
.../contrib/libdwarf/SETUP_MASTER_TREE | 154 +
.../contrib/libdwarf/SMBLDLIBDWARF | 34 +
.../contrib/libdwarf/UPD.awk | 11 +
.../libdwarf/UPDATEDWARFDUMPVERSION.sh | 25 +
.../contrib/libdwarf/appveyor.yml | 41 +
.../contrib/libdwarf/bugxml/README | 18 +
.../contrib/libdwarf/bugxml/bugrecord.py | 328 +
.../contrib/libdwarf/bugxml/data.template | 14 +
.../contrib/libdwarf/bugxml/data.txt | 1232 ++
.../contrib/libdwarf/bugxml/readbugs.py | 257 +
.../libdwarf/cmake/AutoconfHelper.cmake | 383 +
.../contrib/libdwarf/cmake/FindLibElf.cmake | 64 +
.../libdwarf/cmake/LibdwarfMacros.cmake | 19 +
.../contrib/libdwarf/config.h.in | 64 +
.../contrib/libdwarf/configure | 5156 +++++++
.../contrib/libdwarf/configure.cmake | 17 +
.../contrib/libdwarf/configure.in | 51 +
.../contrib/libdwarf/dwarfdump/CMakeLists.txt | 168 +
.../contrib/libdwarf/dwarfdump/CODINGSTYLE | 44 +
.../contrib/libdwarf/dwarfdump/COPYING | 31 +
.../contrib/libdwarf/dwarfdump/ChangeLog | 234 +
.../contrib/libdwarf/dwarfdump/ChangeLog2006 | 332 +
.../contrib/libdwarf/dwarfdump/ChangeLog2007 | 108 +
.../contrib/libdwarf/dwarfdump/ChangeLog2008 | 96 +
.../contrib/libdwarf/dwarfdump/ChangeLog2009 | 280 +
.../contrib/libdwarf/dwarfdump/ChangeLog2010 | 105 +
.../contrib/libdwarf/dwarfdump/ChangeLog2011 | 288 +
.../contrib/libdwarf/dwarfdump/ChangeLog2012 | 125 +
.../contrib/libdwarf/dwarfdump/ChangeLog2013 | 88 +
.../contrib/libdwarf/dwarfdump/ChangeLog2014 | 165 +
.../contrib/libdwarf/dwarfdump/ChangeLog2015 | 434 +
.../contrib/libdwarf/dwarfdump/ChangeLog2016 | 508 +
.../libdwarf/dwarfdump/DWARFDUMPCOPYRIGHT | 93 +
.../contrib/libdwarf/dwarfdump/GPL.txt | 339 +
.../contrib/libdwarf/dwarfdump/Makefile.in | 256 +
.../contrib/libdwarf/dwarfdump/NEWS | 262 +
.../contrib/libdwarf/dwarfdump/README | 82 +
.../contrib/libdwarf/dwarfdump/addrmap.c | 123 +
.../contrib/libdwarf/dwarfdump/addrmap.h | 33 +
.../contrib/libdwarf/dwarfdump/checkutil.c | 572 +
.../contrib/libdwarf/dwarfdump/checkutil.h | 98 +
.../contrib/libdwarf/dwarfdump/common.c | 92 +
.../contrib/libdwarf/dwarfdump/common.h | 32 +
.../contrib/libdwarf/dwarfdump/config.h.in | 103 +
.../libdwarf/dwarfdump/config.h.in.cmake | 109 +
.../contrib/libdwarf/dwarfdump/configure | 5271 +++++++
.../libdwarf/dwarfdump/configure.cmake | 134 +
.../contrib/libdwarf/dwarfdump/configure.in | 168 +
.../libdwarf/dwarfdump/dwarf_tsearch.h | 111 +
.../libdwarf/dwarfdump/dwarf_tsearchbal.c | 1003 ++
.../contrib/libdwarf/dwarfdump/dwarfdump.1 | 665 +
.../contrib/libdwarf/dwarfdump/dwarfdump.c | 3303 +++++
.../contrib/libdwarf/dwarfdump/dwarfdump.conf | 810 ++
.../contrib/libdwarf/dwarfdump/dwconf.c | 1423 ++
.../contrib/libdwarf/dwarfdump/dwconf.h | 97 +
.../contrib/libdwarf/dwarfdump/dwgetopt.c | 331 +
.../contrib/libdwarf/dwarfdump/dwgetopt.h | 85 +
.../contrib/libdwarf/dwarfdump/esb.c | 512 +
.../contrib/libdwarf/dwarfdump/esb.h | 99 +
.../contrib/libdwarf/dwarfdump/getopttest.c | 680 +
.../contrib/libdwarf/dwarfdump/glflags.c | 154 +
.../contrib/libdwarf/dwarfdump/glflags.h | 152 +
.../contrib/libdwarf/dwarfdump/globals.h | 504 +
.../contrib/libdwarf/dwarfdump/helpertree.c | 193 +
.../contrib/libdwarf/dwarfdump/helpertree.h | 66 +
.../contrib/libdwarf/dwarfdump/install.sh | 119 +
.../contrib/libdwarf/dwarfdump/macrocheck.c | 553 +
.../contrib/libdwarf/dwarfdump/macrocheck.h | 51 +
.../contrib/libdwarf/dwarfdump/makename.c | 168 +
.../contrib/libdwarf/dwarfdump/makename.h | 48 +
.../contrib/libdwarf/dwarfdump/naming.c | 260 +
.../contrib/libdwarf/dwarfdump/naming.h | 69 +
.../libdwarf/dwarfdump/print_abbrevs.c | 457 +
.../libdwarf/dwarfdump/print_aranges.c | 278 +
.../libdwarf/dwarfdump/print_debugfission.c | 190 +
.../contrib/libdwarf/dwarfdump/print_die.c | 5723 ++++++++
.../contrib/libdwarf/dwarfdump/print_dnames.c | 47 +
.../contrib/libdwarf/dwarfdump/print_frames.c | 2429 ++++
.../contrib/libdwarf/dwarfdump/print_frames.h | 37 +
.../libdwarf/dwarfdump/print_gdbindex.c | 459 +
.../contrib/libdwarf/dwarfdump/print_lines.c | 887 ++
.../contrib/libdwarf/dwarfdump/print_locs.c | 127 +
.../contrib/libdwarf/dwarfdump/print_macro.c | 466 +
.../contrib/libdwarf/dwarfdump/print_macros.c | 211 +
.../libdwarf/dwarfdump/print_pubnames.c | 295 +
.../contrib/libdwarf/dwarfdump/print_ranges.c | 353 +
.../contrib/libdwarf/dwarfdump/print_reloc.c | 876 ++
.../contrib/libdwarf/dwarfdump/print_reloc.h | 34 +
.../libdwarf/dwarfdump/print_section_groups.c | 267 +
.../libdwarf/dwarfdump/print_sections.c | 130 +
.../libdwarf/dwarfdump/print_sections.h | 43 +
.../libdwarf/dwarfdump/print_static_funcs.c | 124 +
.../libdwarf/dwarfdump/print_static_vars.c | 91 +
.../libdwarf/dwarfdump/print_strings.c | 74 +
.../contrib/libdwarf/dwarfdump/print_types.c | 128 +
.../libdwarf/dwarfdump/print_weaknames.c | 90 +
.../contrib/libdwarf/dwarfdump/sanitized.c | 224 +
.../libdwarf/dwarfdump/section_bitmaps.c | 166 +
.../libdwarf/dwarfdump/section_bitmaps.h | 180 +
.../contrib/libdwarf/dwarfdump/strstrnocase.c | 114 +
.../contrib/libdwarf/dwarfdump/tag_attr.c | 550 +
.../contrib/libdwarf/dwarfdump/tag_attr.list | 1030 ++
.../libdwarf/dwarfdump/tag_attr_ext.list | 115 +
.../contrib/libdwarf/dwarfdump/tag_common.c | 148 +
.../contrib/libdwarf/dwarfdump/tag_common.h | 131 +
.../contrib/libdwarf/dwarfdump/tag_tree.c | 507 +
.../contrib/libdwarf/dwarfdump/tag_tree.list | 576 +
.../libdwarf/dwarfdump/tag_tree_ext.list | 84 +
.../contrib/libdwarf/dwarfdump/testesb.c | 80 +
.../contrib/libdwarf/dwarfdump/uri.c | 479 +
.../contrib/libdwarf/dwarfdump/uri.h | 26 +
.../libdwarf/dwarfdump/uritablebuild.c | 131 +
.../libdwarf/dwarfdump/warningcontrol.h | 34 +
.../libdwarf/dwarfexample/CMakeLists.txt | 23 +
.../contrib/libdwarf/dwarfexample/ChangeLog | 8 +
.../libdwarf/dwarfexample/ChangeLog2009 | 8 +
.../libdwarf/dwarfexample/ChangeLog2010 | 11 +
.../libdwarf/dwarfexample/ChangeLog2011 | 5 +
.../libdwarf/dwarfexample/ChangeLog2012 | 1 +
.../libdwarf/dwarfexample/ChangeLog2013 | 9 +
.../libdwarf/dwarfexample/ChangeLog2014 | 6 +
.../libdwarf/dwarfexample/ChangeLog2015 | 28 +
.../libdwarf/dwarfexample/ChangeLog2016 | 43 +
.../contrib/libdwarf/dwarfexample/Makefile.in | 76 +
.../contrib/libdwarf/dwarfexample/NEWS | 10 +
.../contrib/libdwarf/dwarfexample/config.h.in | 85 +
.../libdwarf/dwarfexample/config.h.in.cmake | 85 +
.../contrib/libdwarf/dwarfexample/configure | 5565 +++++++
.../libdwarf/dwarfexample/configure.cmake | 63 +
.../libdwarf/dwarfexample/configure.in | 92 +
.../contrib/libdwarf/dwarfexample/frame1.c | 413 +
.../libdwarf/dwarfexample/simplereader.c | 1153 ++
.../contrib/libdwarf/dwarfgen/CMakeLists.txt | 28 +
.../contrib/libdwarf/dwarfgen/COPYING | 36 +
.../contrib/libdwarf/dwarfgen/ChangeLog | 23 +
.../contrib/libdwarf/dwarfgen/ChangeLog2011 | 20 +
.../contrib/libdwarf/dwarfgen/ChangeLog2012 | 1 +
.../contrib/libdwarf/dwarfgen/ChangeLog2013 | 62 +
.../contrib/libdwarf/dwarfgen/ChangeLog2014 | 34 +
.../contrib/libdwarf/dwarfgen/ChangeLog2015 | 32 +
.../contrib/libdwarf/dwarfgen/ChangeLog2016 | 41 +
.../contrib/libdwarf/dwarfgen/Makefile.in | 98 +
.../contrib/libdwarf/dwarfgen/NEWS | 6 +
.../contrib/libdwarf/dwarfgen/README | 20 +
.../contrib/libdwarf/dwarfgen/TESTmallocfail | 33 +
.../contrib/libdwarf/dwarfgen/config.h.in | 88 +
.../libdwarf/dwarfgen/config.h.in.cmake | 88 +
.../contrib/libdwarf/dwarfgen/configure | 5551 +++++++
.../contrib/libdwarf/dwarfgen/configure.cmake | 63 +
.../contrib/libdwarf/dwarfgen/configure.in | 85 +
.../dwarfgen/createirepformfrombinary.cc | 537 +
.../libdwarf/dwarfgen/createirepfrombinary.cc | 734 +
.../libdwarf/dwarfgen/createirepfrombinary.h | 32 +
.../libdwarf/dwarfgen/dwarf-generator.txt | 56 +
.../contrib/libdwarf/dwarfgen/dwarfgen.1 | 10 +
.../contrib/libdwarf/dwarfgen/dwarfgen.cc | 949 ++
.../contrib/libdwarf/dwarfgen/fakemalloc.in | 61 +
.../contrib/libdwarf/dwarfgen/general.h | 73 +
.../contrib/libdwarf/dwarfgen/install.sh | 119 +
.../libdwarf/dwarfgen/irepattrtodbg.cc | 403 +
.../contrib/libdwarf/dwarfgen/irepattrtodbg.h | 37 +
.../contrib/libdwarf/dwarfgen/irepdie.h | 343 +
.../contrib/libdwarf/dwarfgen/irepform.h | 734 +
.../contrib/libdwarf/dwarfgen/irepframe.h | 167 +
.../contrib/libdwarf/dwarfgen/irepline.h | 111 +
.../contrib/libdwarf/dwarfgen/irepmacro.h | 57 +
.../contrib/libdwarf/dwarfgen/ireppubnames.h | 85 +
.../libdwarf/dwarfgen/irepresentation.h | 158 +
.../contrib/libdwarf/dwarfgen/ireptodbg.cc | 732 +
.../contrib/libdwarf/dwarfgen/ireptodbg.h | 34 +
.../contrib/libdwarf/dwarfgen/strtabdata.h | 75 +
.../contrib/libdwarf/install.sh | 119 +
.../contrib/libdwarf/libdwarf/CHANGES | 102 +
.../contrib/libdwarf/libdwarf/CMakeLists.txt | 116 +
.../contrib/libdwarf/libdwarf/CODINGSTYLE | 71 +
.../contrib/libdwarf/libdwarf/COPYING | 28 +
.../contrib/libdwarf/libdwarf/ChangeLog | 380 +
.../contrib/libdwarf/libdwarf/ChangeLog2006 | 835 ++
.../contrib/libdwarf/libdwarf/ChangeLog2007 | 217 +
.../contrib/libdwarf/libdwarf/ChangeLog2008 | 263 +
.../contrib/libdwarf/libdwarf/ChangeLog2009 | 348 +
.../contrib/libdwarf/libdwarf/ChangeLog2010 | 175 +
.../contrib/libdwarf/libdwarf/ChangeLog2011 | 297 +
.../contrib/libdwarf/libdwarf/ChangeLog2012 | 131 +
.../contrib/libdwarf/libdwarf/ChangeLog2013 | 238 +
.../contrib/libdwarf/libdwarf/ChangeLog2014 | 399 +
.../contrib/libdwarf/libdwarf/ChangeLog2015 | 758 +
.../contrib/libdwarf/libdwarf/ChangeLog2016 | 917 ++
.../contrib/libdwarf/libdwarf/LGPL.txt | 504 +
.../libdwarf/libdwarf/LIBDWARFCOPYRIGHT | 40 +
.../contrib/libdwarf/libdwarf/Makefile.in | 249 +
.../contrib/libdwarf/libdwarf/NEWS | 601 +
.../contrib/libdwarf/libdwarf/README | 261 +
.../contrib/libdwarf/libdwarf/checkexamples.c | 1512 ++
.../libdwarf/cmplrs/dwarf_addr_finder.h | 55 +
.../contrib/libdwarf/libdwarf/config.h.in | 164 +
.../libdwarf/libdwarf/config.h.in.cmake | 161 +
.../contrib/libdwarf/libdwarf/configure | 5941 ++++++++
.../contrib/libdwarf/libdwarf/configure.cmake | 240 +
.../contrib/libdwarf/libdwarf/configure.in | 344 +
.../libdwarf/libdwarf/dw-linetableheader.txt | 39 +
.../contrib/libdwarf/libdwarf/dwarf.h | 1436 ++
.../contrib/libdwarf/libdwarf/dwarf_abbrev.c | 310 +
.../contrib/libdwarf/libdwarf/dwarf_abbrev.h | 49 +
.../libdwarf/libdwarf/dwarf_addr_finder.c | 673 +
.../contrib/libdwarf/libdwarf/dwarf_alloc.c | 720 +
.../contrib/libdwarf/libdwarf/dwarf_alloc.h | 38 +
.../contrib/libdwarf/libdwarf/dwarf_arange.c | 659 +
.../contrib/libdwarf/libdwarf/dwarf_arange.h | 62 +
.../libdwarf/libdwarf/dwarf_base_types.h | 158 +
.../libdwarf/libdwarf/dwarf_die_deliv.c | 2236 +++
.../libdwarf/libdwarf/dwarf_die_deliv.h | 49 +
.../contrib/libdwarf/libdwarf/dwarf_dnames.c | 1293 ++
.../contrib/libdwarf/libdwarf/dwarf_dnames.h | 107 +
.../contrib/libdwarf/libdwarf/dwarf_dsc.c | 287 +
.../contrib/libdwarf/libdwarf/dwarf_dsc.h | 57 +
.../libdwarf/libdwarf/dwarf_elf_access.c | 1485 ++
.../libdwarf/libdwarf/dwarf_elf_access.h | 46 +
.../libdwarf/libdwarf/dwarf_errmsg_list.c | 723 +
.../contrib/libdwarf/libdwarf/dwarf_error.c | 145 +
.../contrib/libdwarf/libdwarf/dwarf_error.h | 56 +
.../contrib/libdwarf/libdwarf/dwarf_form.c | 1583 ++
.../contrib/libdwarf/libdwarf/dwarf_frame.c | 2640 ++++
.../contrib/libdwarf/libdwarf/dwarf_frame.h | 448 +
.../contrib/libdwarf/libdwarf/dwarf_frame2.c | 1689 +++
.../contrib/libdwarf/libdwarf/dwarf_frame3.c | 280 +
.../contrib/libdwarf/libdwarf/dwarf_funcs.c | 123 +
.../contrib/libdwarf/libdwarf/dwarf_funcs.h | 33 +
.../libdwarf/libdwarf/dwarf_gdbindex.c | 526 +
.../libdwarf/libdwarf/dwarf_gdbindex.h | 97 +
.../contrib/libdwarf/libdwarf/dwarf_global.c | 628 +
.../contrib/libdwarf/libdwarf/dwarf_global.h | 117 +
.../contrib/libdwarf/libdwarf/dwarf_groups.c | 384 +
.../libdwarf/libdwarf/dwarf_harmless.c | 228 +
.../libdwarf/libdwarf/dwarf_harmless.h | 31 +
.../contrib/libdwarf/libdwarf/dwarf_incl.h | 61 +
.../libdwarf/libdwarf/dwarf_init_finish.c | 1963 +++
.../contrib/libdwarf/libdwarf/dwarf_leb.c | 512 +
.../contrib/libdwarf/libdwarf/dwarf_line.c | 1957 +++
.../contrib/libdwarf/libdwarf/dwarf_line.h | 434 +
.../contrib/libdwarf/libdwarf/dwarf_line2.c | 98 +
.../libdwarf/dwarf_line_table_reader_common.c | 1764 +++
.../contrib/libdwarf/libdwarf/dwarf_loc.c | 1683 +++
.../contrib/libdwarf/libdwarf/dwarf_loc.h | 149 +
.../contrib/libdwarf/libdwarf/dwarf_loc2.c | 876 ++
.../contrib/libdwarf/libdwarf/dwarf_macro.c | 481 +
.../contrib/libdwarf/libdwarf/dwarf_macro.h | 35 +
.../contrib/libdwarf/libdwarf/dwarf_macro5.c | 1551 ++
.../contrib/libdwarf/libdwarf/dwarf_macro5.h | 142 +
.../contrib/libdwarf/libdwarf/dwarf_opaque.h | 913 ++
.../libdwarf/dwarf_original_elf_init.c | 252 +
.../libdwarf/libdwarf/dwarf_print_lines.c | 635 +
.../libdwarf/libdwarf/dwarf_pubtypes.c | 132 +
.../contrib/libdwarf/libdwarf/dwarf_query.c | 1819 +++
.../contrib/libdwarf/libdwarf/dwarf_ranges.c | 222 +
.../libdwarf/libdwarf/dwarf_reloc_386.h | 125 +
.../libdwarf/libdwarf/dwarf_reloc_arm.h | 308 +
.../libdwarf/libdwarf/dwarf_reloc_mips.h | 117 +
.../libdwarf/libdwarf/dwarf_reloc_ppc.h | 242 +
.../libdwarf/libdwarf/dwarf_reloc_ppc64.h | 272 +
.../libdwarf/libdwarf/dwarf_reloc_x86_64.h | 127 +
.../libdwarf/libdwarf/dwarf_sort_line.c | 666 +
.../contrib/libdwarf/libdwarf/dwarf_string.c | 83 +
.../contrib/libdwarf/libdwarf/dwarf_stubs.c | 42 +
.../contrib/libdwarf/libdwarf/dwarf_tied.c | 430 +
.../contrib/libdwarf/libdwarf/dwarf_tsearch.h | 127 +
.../libdwarf/libdwarf/dwarf_tsearchhash.c | 678 +
.../contrib/libdwarf/libdwarf/dwarf_types.c | 121 +
.../contrib/libdwarf/libdwarf/dwarf_types.h | 32 +
.../contrib/libdwarf/libdwarf/dwarf_util.c | 1273 ++
.../contrib/libdwarf/libdwarf/dwarf_util.h | 450 +
.../contrib/libdwarf/libdwarf/dwarf_vars.c | 125 +
.../contrib/libdwarf/libdwarf/dwarf_vars.h | 29 +
.../contrib/libdwarf/libdwarf/dwarf_weaks.c | 123 +
.../contrib/libdwarf/libdwarf/dwarf_weaks.h | 29 +
.../libdwarf/libdwarf/dwarf_xu_index.c | 627 +
.../libdwarf/libdwarf/dwarf_xu_index.h | 68 +
.../contrib/libdwarf/libdwarf/dwgetopt.c | 331 +
.../contrib/libdwarf/libdwarf/dwgetopt.h | 85 +
.../contrib/libdwarf/libdwarf/gennames.c | 614 +
.../contrib/libdwarf/libdwarf/install.sh | 119 +
.../contrib/libdwarf/libdwarf/libdwarf.h.in | 4369 ++++++
.../contrib/libdwarf/libdwarf/libdwarf2.1.mm | 12096 ++++++++++++++++
.../contrib/libdwarf/libdwarf/libdwarf2.1.pdf | Bin 0 -> 435272 bytes
.../contrib/libdwarf/libdwarf/libdwarf2p.1.mm | 3207 ++++
.../libdwarf/libdwarf/libdwarf2p.1.pdf | Bin 0 -> 139441 bytes
.../contrib/libdwarf/libdwarf/libdwarfdefs.h | 87 +
.../contrib/libdwarf/libdwarf/malloc_check.c | 327 +
.../contrib/libdwarf/libdwarf/malloc_check.h | 52 +
.../libdwarf/libdwarf/mips_extensions.mm | 1266 ++
.../libdwarf/libdwarf/mips_extensions.pdf | Bin 0 -> 57910 bytes
.../contrib/libdwarf/libdwarf/pro_alloc.c | 193 +
.../contrib/libdwarf/libdwarf/pro_alloc.h | 34 +
.../contrib/libdwarf/libdwarf/pro_arange.c | 316 +
.../contrib/libdwarf/libdwarf/pro_arange.h | 51 +
.../contrib/libdwarf/libdwarf/pro_die.c | 800 +
.../contrib/libdwarf/libdwarf/pro_die.h | 65 +
.../contrib/libdwarf/libdwarf/pro_encode_nm.c | 108 +
.../contrib/libdwarf/libdwarf/pro_encode_nm.h | 39 +
.../contrib/libdwarf/libdwarf/pro_error.c | 96 +
.../contrib/libdwarf/libdwarf/pro_error.h | 43 +
.../contrib/libdwarf/libdwarf/pro_expr.c | 575 +
.../contrib/libdwarf/libdwarf/pro_expr.h | 36 +
.../contrib/libdwarf/libdwarf/pro_finish.c | 91 +
.../contrib/libdwarf/libdwarf/pro_forms.c | 1302 ++
.../contrib/libdwarf/libdwarf/pro_frame.c | 585 +
.../contrib/libdwarf/libdwarf/pro_frame.h | 123 +
.../contrib/libdwarf/libdwarf/pro_funcs.c | 50 +
.../contrib/libdwarf/libdwarf/pro_incl.h | 91 +
.../contrib/libdwarf/libdwarf/pro_init.c | 396 +
.../contrib/libdwarf/libdwarf/pro_line.c | 374 +
.../contrib/libdwarf/libdwarf/pro_line.h | 117 +
.../contrib/libdwarf/libdwarf/pro_macinfo.c | 459 +
.../contrib/libdwarf/libdwarf/pro_macinfo.h | 32 +
.../contrib/libdwarf/libdwarf/pro_opaque.h | 602 +
.../contrib/libdwarf/libdwarf/pro_pubnames.c | 60 +
.../contrib/libdwarf/libdwarf/pro_reloc.c | 251 +
.../contrib/libdwarf/libdwarf/pro_reloc.h | 38 +
.../libdwarf/libdwarf/pro_reloc_stream.c | 249 +
.../libdwarf/libdwarf/pro_reloc_stream.h | 52 +
.../libdwarf/libdwarf/pro_reloc_symbolic.c | 245 +
.../libdwarf/libdwarf/pro_reloc_symbolic.h | 45 +
.../contrib/libdwarf/libdwarf/pro_section.c | 3331 +++++
.../contrib/libdwarf/libdwarf/pro_section.h | 109 +
.../contrib/libdwarf/libdwarf/pro_types.c | 276 +
.../contrib/libdwarf/libdwarf/pro_types.h | 35 +
.../contrib/libdwarf/libdwarf/pro_util.h | 38 +
.../contrib/libdwarf/libdwarf/pro_vars.c | 52 +
.../contrib/libdwarf/libdwarf/pro_weaks.c | 51 +
.../contrib/libdwarf/tsearch/ChangeLog | 7 +
.../contrib/libdwarf/tsearch/ChangeLog2014 | 13 +
.../contrib/libdwarf/tsearch/ChangeLog2015 | 5 +
.../contrib/libdwarf/tsearch/ChangeLog2016 | 30 +
.../contrib/libdwarf/tsearch/ESSAY.txt | 439 +
.../contrib/libdwarf/tsearch/Makefile | 76 +
.../contrib/libdwarf/tsearch/README | 178 +
.../contrib/libdwarf/tsearch/RUNTEST | 119 +
.../contrib/libdwarf/tsearch/config.h | 22 +
.../contrib/libdwarf/tsearch/dwarf_incl.h | 36 +
.../contrib/libdwarf/tsearch/dwarf_tsearch.c | 59 +
.../contrib/libdwarf/tsearch/dwarf_tsearch.h | 127 +
.../libdwarf/tsearch/dwarf_tsearchbal.c | 1003 ++
.../libdwarf/tsearch/dwarf_tsearchbin.c | 544 +
.../libdwarf/tsearch/dwarf_tsearchepp.c | 570 +
.../libdwarf/tsearch/dwarf_tsearchhash.c | 676 +
.../libdwarf/tsearch/dwarf_tsearchred.c | 856 ++
.../contrib/libdwarf/tsearch/scripts/TEST.sh | 5 +
.../libdwarf/tsearch/scripts/badsample | 11 +
.../libdwarf/tsearch/scripts/comparator.py | 127 +
.../libdwarf/tsearch/scripts/comparatorsample | 12 +
.../libdwarf/tsearch/scripts/concatlines.py | 110 +
.../libdwarf/tsearch/scripts/concatlinesample | 34 +
.../libdwarf/tsearch/scripts/secondsample | 12 +
.../contrib/libdwarf/tsearch/scripts/testin | 7 +
.../contrib/libdwarf/tsearch/tsearch.c | 213 +
.../contrib/libdwarf/tsearch/tsearch_tester.c | 1225 ++
.../libdwarf/tsearch/tsearchlibtimes.csv | 49 +
.../libdwarf/tsearch/tsearchlibtimes.ods | Bin 0 -> 16720 bytes
.../contrib/libdwarfpp/.gitignore | 78 +
.../contrib/libdwarfpp/.gitmodules | 9 +
.../contrib/libdwarfpp/.hgignore | 89 +
.../contrib/libdwarfpp/LICENSE | 26 +
.../contrib/libdwarfpp/LICENSE.lgpl-2.1 | 502 +
.../contrib/libdwarfpp/Makefile.am | 110 +
.../contrib/libdwarfpp/README | 51 +
.../contrib/libdwarfpp/TODO | 11 +
.../contrib/libdwarfpp/autogen.sh | 8 +
.../contrib/libdwarfpp/config.mk.in | 6 +
.../contrib/libdwarfpp/configure.ac | 114 +
.../contrib/libdwarfpp/contrib/Makefile | 98 +
.../libdwarfpp/examples/core-query.cpp | 46 +
.../libdwarfpp/examples/dwarfppdump.cpp | 17 +
.../libdwarfpp/examples/print_spec.cpp | 7 +
.../contrib/libdwarfpp/examples/sranges.cpp | 139 +
.../contrib/libdwarfpp/examples/subseq.cpp | 65 +
.../include/dwarfpp/abstract-inl.hpp | 38 +
.../libdwarfpp/include/dwarfpp/abstract.hpp | 173 +
.../libdwarfpp/include/dwarfpp/attr.hpp | 257 +
.../libdwarfpp/include/dwarfpp/dies-inl.hpp | 47 +
.../libdwarfpp/include/dwarfpp/dies.hpp | 997 ++
.../libdwarfpp/include/dwarfpp/expr.hpp | 388 +
.../libdwarfpp/include/dwarfpp/frame.hpp | 572 +
.../libdwarfpp/include/dwarfpp/iter-inl.hpp | 68 +
.../libdwarfpp/include/dwarfpp/iter.hpp | 871 ++
.../libdwarfpp/include/dwarfpp/lib.hpp | 53 +
.../include/dwarfpp/libdwarf-handles.hpp | 873 ++
.../libdwarfpp/include/dwarfpp/libdwarf.hpp | 53 +
.../libdwarfpp/include/dwarfpp/opt.hpp | 102 +
.../libdwarfpp/include/dwarfpp/regs.hpp | 58 +
.../libdwarfpp/include/dwarfpp/root-inl.hpp | 459 +
.../libdwarfpp/include/dwarfpp/root.hpp | 616 +
.../libdwarfpp/include/dwarfpp/spec.hpp | 509 +
.../libdwarfpp/include/dwarfpp/util.hpp | 31 +
.../contrib/libdwarfpp/libdwarfpp.pc.in | 15 +
.../contrib/libdwarfpp/spec/dwarf_current.py | 244 +
.../contrib/libdwarfpp/spec/gen-adt-cpp.py | 46 +
.../libdwarfpp/spec/gen-factory-cpp.py | 13 +
.../libdwarfpp/spec/gen-tagpreds-cpp.py | 17 +
.../contrib/libdwarfpp/src/abstract.cpp | 226 +
.../contrib/libdwarfpp/src/attr.cpp | 683 +
.../contrib/libdwarfpp/src/dies.cpp | 4448 ++++++
.../contrib/libdwarfpp/src/expr.cpp | 480 +
.../contrib/libdwarfpp/src/frame.cpp | 1396 ++
.../contrib/libdwarfpp/src/iter.cpp | 148 +
.../contrib/libdwarfpp/src/libdwarf-data.cpp | 115 +
.../libdwarfpp/src/libdwarf-handles.cpp | 267 +
.../contrib/libdwarfpp/src/libdwarf.cpp | 40 +
.../contrib/libdwarfpp/src/regs.cpp | 76 +
.../contrib/libdwarfpp/src/rep.cpp | 278 +
.../contrib/libdwarfpp/src/root.cpp | 827 ++
.../contrib/libdwarfpp/src/spec.cpp | 728 +
.../contrib/libdwarfpp/src/spec/adt-gen.py | 376 +
.../contrib/libdwarfpp/src/util.cpp | 30 +
.../contrib/libdwarfpp/tests/Makefile | 61 +
.../contrib/libdwarfpp/tests/Old/Makefile | 39 +
.../contrib/libdwarfpp/tests/Old/test-1-input | 1 +
.../libdwarfpp/tests/Old/test-2-input.c | 21 +
.../libdwarfpp/tests/Old/test-3-input.c | 1 +
.../libdwarfpp/tests/Old/test-5-input.c | 1 +
.../contrib/libdwarfpp/tests/Old/test-5.cpp | 21 +
.../libdwarfpp/tests/Old/test-recursive.c | 10 +
.../tests/Old/test-siblings-adt-input.c | 1 +
.../tests/Performance/test-object.c | 10 +
.../libdwarfpp/tests/Rotted/test-2.cpp | 53 +
.../libdwarfpp/tests/Rotted/test-4-input.c | 1 +
.../libdwarfpp/tests/Rotted/test-4.cpp | 60 +
.../libdwarfpp/tests/Rotted/test-6-input.c | 1 +
.../libdwarfpp/tests/Rotted/test-7-input.c | 1 +
.../libdwarfpp/tests/Rotted/test-7.cpp | 45 +
.../libdwarfpp/tests/Rotted/test-8-input.c | 1 +
.../libdwarfpp/tests/Rotted/test-8.cpp | 176 +
.../libdwarfpp/tests/Rotted/test-9.cpp | 71 +
.../libdwarfpp/tests/all-sccs/all-sccs.cpp | 37 +
.../libdwarfpp/tests/core-bfs/core-bfs.cpp | 76 +
.../tests/core-variadic/core-variadic.cpp | 36 +
.../libdwarfpp/tests/coretest/coretest.cpp | 68 +
.../tests/fde-decode/fde-decode.cpp | 355 +
.../libdwarfpp/tests/fde-print/fde-print.cpp | 331 +
.../tests/grandchildren/grandchildren.cpp | 49 +
.../libdwarfpp/tests/live-dies/live-dies.cpp | 33 +
.../libdwarfpp/tests/make-dies/make-dies.cpp | 19 +
.../libdwarfpp/tests/resolve/resolve.cpp | 55 +
.../tests/siblings-core/siblings-core.cpp | 51 +
.../tests/timed-dump-core/exit-deciseconds.sh | 7 +
.../tests/timed-dump-core/timed-dump-core.cpp | 31 +
.../libdwarfpp/tests/type-equality/hello.c | 7 +
.../tests/type-equality/type-equality.cpp | 39 +
.../tests/type-iterators/type-iterators.cpp | 92 +
.../libdwarfpp/tests/type-scc/type-scc.cpp | 128 +
.../tests/visible-named/visible-named.cpp | 52 +
.../contrib/libsrk31cxx/.gitignore | 77 +
.../contrib/libsrk31cxx/INSTALL | 2 +
.../contrib/libsrk31cxx/Makefile.am | 27 +
.../contrib/libsrk31cxx/autogen.sh | 8 +
.../contrib/libsrk31cxx/bin/filt.sh | 39 +
.../contrib/libsrk31cxx/configure.ac | 44 +
.../contrib/libsrk31cxx/include/Makefile.am | 2 +
.../libsrk31cxx/include/srk31/algorithm.hpp | 124 +
.../libsrk31cxx/include/srk31/array.hpp | 223 +
.../include/srk31/array_slice_iterator.hpp | 191 +
.../include/srk31/concatenating_iterator.hpp | 309 +
.../include/srk31/downcasting_iterator.hpp | 44 +
.../libsrk31cxx/include/srk31/endian.hpp | 57 +
.../include/srk31/indenting_ostream.hpp | 81 +
.../libsrk31cxx/include/srk31/ordinal.hpp | 29 +
.../libsrk31cxx/include/srk31/rotate.hpp | 16 +
.../include/srk31/selective_iterator.hpp | 261 +
.../include/srk31/transform_iterator.hpp | 163 +
.../libsrk31cxx/include/srk31/util.hpp | 55 +
.../contrib/libsrk31cxx/libsrk31c++.pc.in | 14 +
.../contrib/libsrk31cxx/src/Makefile.am | 4 +
.../libsrk31cxx/src/indenting_ostream.cpp | 63 +
.../contrib/libsrk31cxx/tests/test.cpp | 54 +
494 files changed, 188191 insertions(+)
create mode 100644 dwarf-compilation.base/contrib/libcxxfileno/.gitignore
create mode 100644 dwarf-compilation.base/contrib/libcxxfileno/INSTALL
create mode 100755 dwarf-compilation.base/contrib/libcxxfileno/Makefile.am
create mode 100755 dwarf-compilation.base/contrib/libcxxfileno/configure.ac
create mode 100644 dwarf-compilation.base/contrib/libcxxfileno/fileno.cpp
create mode 100644 dwarf-compilation.base/contrib/libcxxfileno/fileno.hpp
create mode 120000 dwarf-compilation.base/contrib/libcxxfileno/include
create mode 100644 dwarf-compilation.base/contrib/libcxxfileno/libc++fileno.pc.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/.gitignore
create mode 100755 dwarf-compilation.base/contrib/libdwarf/BLDLIBDWARF
create mode 100755 dwarf-compilation.base/contrib/libdwarf/BLDLIBDWARFTAR
create mode 100644 dwarf-compilation.base/contrib/libdwarf/BLDTESTDIR
create mode 100644 dwarf-compilation.base/contrib/libdwarf/CLEANUP
create mode 100644 dwarf-compilation.base/contrib/libdwarf/CMakeLists.txt
create mode 100755 dwarf-compilation.base/contrib/libdwarf/CPTOPUBLIC
create mode 100644 dwarf-compilation.base/contrib/libdwarf/CREATINGARELEASE
create mode 100644 dwarf-compilation.base/contrib/libdwarf/Makefile.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/NEWS
create mode 100644 dwarf-compilation.base/contrib/libdwarf/README
create mode 100644 dwarf-compilation.base/contrib/libdwarf/README.md
create mode 100755 dwarf-compilation.base/contrib/libdwarf/REBLDLIBDWARF
create mode 100644 dwarf-compilation.base/contrib/libdwarf/SETUP_MASTER_TREE
create mode 100755 dwarf-compilation.base/contrib/libdwarf/SMBLDLIBDWARF
create mode 100644 dwarf-compilation.base/contrib/libdwarf/UPD.awk
create mode 100644 dwarf-compilation.base/contrib/libdwarf/UPDATEDWARFDUMPVERSION.sh
create mode 100644 dwarf-compilation.base/contrib/libdwarf/appveyor.yml
create mode 100644 dwarf-compilation.base/contrib/libdwarf/bugxml/README
create mode 100755 dwarf-compilation.base/contrib/libdwarf/bugxml/bugrecord.py
create mode 100644 dwarf-compilation.base/contrib/libdwarf/bugxml/data.template
create mode 100644 dwarf-compilation.base/contrib/libdwarf/bugxml/data.txt
create mode 100755 dwarf-compilation.base/contrib/libdwarf/bugxml/readbugs.py
create mode 100644 dwarf-compilation.base/contrib/libdwarf/cmake/AutoconfHelper.cmake
create mode 100644 dwarf-compilation.base/contrib/libdwarf/cmake/FindLibElf.cmake
create mode 100644 dwarf-compilation.base/contrib/libdwarf/cmake/LibdwarfMacros.cmake
create mode 100644 dwarf-compilation.base/contrib/libdwarf/config.h.in
create mode 100755 dwarf-compilation.base/contrib/libdwarf/configure
create mode 100644 dwarf-compilation.base/contrib/libdwarf/configure.cmake
create mode 100644 dwarf-compilation.base/contrib/libdwarf/configure.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/CMakeLists.txt
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/CODINGSTYLE
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/COPYING
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2006
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2007
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2008
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2009
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2010
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2011
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2012
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2013
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2014
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2015
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2016
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/DWARFDUMPCOPYRIGHT
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/GPL.txt
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/Makefile.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/NEWS
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/README
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/addrmap.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/addrmap.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/checkutil.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/checkutil.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/common.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/common.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/config.h.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/config.h.in.cmake
create mode 100755 dwarf-compilation.base/contrib/libdwarf/dwarfdump/configure
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/configure.cmake
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/configure.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/dwarf_tsearch.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/dwarf_tsearchbal.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/dwarfdump.1
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/dwarfdump.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/dwarfdump.conf
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/dwconf.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/dwconf.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/dwgetopt.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/dwgetopt.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/esb.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/esb.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/getopttest.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/glflags.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/glflags.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/globals.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/helpertree.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/helpertree.h
create mode 100755 dwarf-compilation.base/contrib/libdwarf/dwarfdump/install.sh
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/macrocheck.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/macrocheck.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/makename.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/makename.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/naming.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/naming.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_abbrevs.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_aranges.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_debugfission.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_die.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_dnames.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_frames.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_frames.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_gdbindex.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_lines.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_locs.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_macro.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_macros.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_pubnames.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_ranges.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_reloc.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_reloc.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_section_groups.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_sections.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_sections.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_static_funcs.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_static_vars.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_strings.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_types.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/print_weaknames.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/sanitized.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/section_bitmaps.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/section_bitmaps.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/strstrnocase.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/tag_attr.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/tag_attr.list
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/tag_attr_ext.list
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/tag_common.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/tag_common.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/tag_tree.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/tag_tree.list
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/tag_tree_ext.list
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/testesb.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/uri.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/uri.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/uritablebuild.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfdump/warningcontrol.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/CMakeLists.txt
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/ChangeLog
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/ChangeLog2009
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/ChangeLog2010
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/ChangeLog2011
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/ChangeLog2012
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/ChangeLog2013
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/ChangeLog2014
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/ChangeLog2015
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/ChangeLog2016
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/Makefile.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/NEWS
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/config.h.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/config.h.in.cmake
create mode 100755 dwarf-compilation.base/contrib/libdwarf/dwarfexample/configure
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/configure.cmake
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/configure.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/frame1.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfexample/simplereader.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/CMakeLists.txt
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/COPYING
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ChangeLog
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ChangeLog2011
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ChangeLog2012
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ChangeLog2013
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ChangeLog2014
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ChangeLog2015
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ChangeLog2016
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/Makefile.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/NEWS
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/README
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/TESTmallocfail
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/config.h.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/config.h.in.cmake
create mode 100755 dwarf-compilation.base/contrib/libdwarf/dwarfgen/configure
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/configure.cmake
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/configure.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/createirepformfrombinary.cc
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/createirepfrombinary.cc
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/createirepfrombinary.h
create mode 100755 dwarf-compilation.base/contrib/libdwarf/dwarfgen/dwarf-generator.txt
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/dwarfgen.1
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/dwarfgen.cc
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/fakemalloc.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/general.h
create mode 100755 dwarf-compilation.base/contrib/libdwarf/dwarfgen/install.sh
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/irepattrtodbg.cc
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/irepattrtodbg.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/irepdie.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/irepform.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/irepframe.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/irepline.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/irepmacro.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ireppubnames.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/irepresentation.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ireptodbg.cc
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/ireptodbg.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/dwarfgen/strtabdata.h
create mode 100755 dwarf-compilation.base/contrib/libdwarf/install.sh
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/CHANGES
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/CMakeLists.txt
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/CODINGSTYLE
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/COPYING
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2006
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2007
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2008
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2009
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2010
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2011
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2012
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2013
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2014
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2015
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/ChangeLog2016
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/LGPL.txt
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/LIBDWARFCOPYRIGHT
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/Makefile.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/NEWS
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/README
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/checkexamples.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/cmplrs/dwarf_addr_finder.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/config.h.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/config.h.in.cmake
create mode 100755 dwarf-compilation.base/contrib/libdwarf/libdwarf/configure
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/configure.cmake
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/configure.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dw-linetableheader.txt
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_abbrev.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_abbrev.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_addr_finder.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_alloc.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_alloc.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_arange.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_arange.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_base_types.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_die_deliv.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_die_deliv.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_dnames.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_dnames.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_dsc.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_dsc.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_elf_access.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_elf_access.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_errmsg_list.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_error.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_error.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_form.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_frame.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_frame.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_frame2.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_frame3.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_funcs.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_funcs.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_gdbindex.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_gdbindex.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_global.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_global.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_groups.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_harmless.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_harmless.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_incl.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_init_finish.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_leb.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_line.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_line.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_line2.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_line_table_reader_common.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_loc.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_loc.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_loc2.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_macro.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_macro.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_macro5.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_macro5.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_opaque.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_original_elf_init.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_print_lines.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_pubtypes.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_query.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_ranges.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_reloc_386.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_reloc_arm.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_reloc_mips.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_reloc_ppc.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_reloc_ppc64.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_reloc_x86_64.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_sort_line.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_string.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_stubs.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_tied.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_tsearch.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_tsearchhash.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_types.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_types.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_util.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_util.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_vars.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_vars.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_weaks.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_weaks.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_xu_index.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwarf_xu_index.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwgetopt.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/dwgetopt.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/gennames.c
create mode 100755 dwarf-compilation.base/contrib/libdwarf/libdwarf/install.sh
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/libdwarf.h.in
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/libdwarf2.1.mm
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/libdwarf2.1.pdf
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/libdwarf2p.1.mm
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/libdwarf2p.1.pdf
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/libdwarfdefs.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/malloc_check.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/malloc_check.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/mips_extensions.mm
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/mips_extensions.pdf
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_alloc.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_alloc.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_arange.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_arange.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_die.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_die.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_encode_nm.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_encode_nm.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_error.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_error.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_expr.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_expr.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_finish.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_forms.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_frame.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_frame.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_funcs.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_incl.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_init.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_line.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_line.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_macinfo.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_macinfo.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_opaque.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_pubnames.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_reloc.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_reloc.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_reloc_stream.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_reloc_stream.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_reloc_symbolic.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_reloc_symbolic.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_section.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_section.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_types.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_types.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_util.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_vars.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/libdwarf/pro_weaks.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/ChangeLog
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/ChangeLog2014
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/ChangeLog2015
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/ChangeLog2016
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/ESSAY.txt
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/Makefile
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/README
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/RUNTEST
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/config.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/dwarf_incl.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/dwarf_tsearch.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/dwarf_tsearch.h
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/dwarf_tsearchbal.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/dwarf_tsearchbin.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/dwarf_tsearchepp.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/dwarf_tsearchhash.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/dwarf_tsearchred.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/scripts/TEST.sh
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/scripts/badsample
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/scripts/comparator.py
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/scripts/comparatorsample
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/scripts/concatlines.py
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/scripts/concatlinesample
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/scripts/secondsample
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/scripts/testin
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/tsearch.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/tsearch_tester.c
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/tsearchlibtimes.csv
create mode 100644 dwarf-compilation.base/contrib/libdwarf/tsearch/tsearchlibtimes.ods
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/.gitignore
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/.gitmodules
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/.hgignore
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/LICENSE
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/LICENSE.lgpl-2.1
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/Makefile.am
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/README
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/TODO
create mode 100755 dwarf-compilation.base/contrib/libdwarfpp/autogen.sh
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/config.mk.in
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/configure.ac
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/contrib/Makefile
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/examples/core-query.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/examples/dwarfppdump.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/examples/print_spec.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/examples/sranges.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/examples/subseq.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/abstract-inl.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/abstract.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/attr.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/dies-inl.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/dies.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/expr.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/frame.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/iter-inl.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/iter.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/lib.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/libdwarf-handles.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/libdwarf.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/opt.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/regs.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/root-inl.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/root.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/spec.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/include/dwarfpp/util.hpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/libdwarfpp.pc.in
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/spec/dwarf_current.py
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/spec/gen-adt-cpp.py
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/spec/gen-factory-cpp.py
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/spec/gen-tagpreds-cpp.py
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/abstract.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/attr.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/dies.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/expr.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/frame.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/iter.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/libdwarf-data.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/libdwarf-handles.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/libdwarf.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/regs.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/rep.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/root.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/spec.cpp
create mode 100755 dwarf-compilation.base/contrib/libdwarfpp/src/spec/adt-gen.py
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/src/util.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Makefile
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Old/Makefile
create mode 120000 dwarf-compilation.base/contrib/libdwarfpp/tests/Old/test-1-input
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Old/test-2-input.c
create mode 120000 dwarf-compilation.base/contrib/libdwarfpp/tests/Old/test-3-input.c
create mode 120000 dwarf-compilation.base/contrib/libdwarfpp/tests/Old/test-5-input.c
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Old/test-5.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Old/test-recursive.c
create mode 120000 dwarf-compilation.base/contrib/libdwarfpp/tests/Old/test-siblings-adt-input.c
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Performance/test-object.c
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Rotted/test-2.cpp
create mode 120000 dwarf-compilation.base/contrib/libdwarfpp/tests/Rotted/test-4-input.c
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Rotted/test-4.cpp
create mode 120000 dwarf-compilation.base/contrib/libdwarfpp/tests/Rotted/test-6-input.c
create mode 120000 dwarf-compilation.base/contrib/libdwarfpp/tests/Rotted/test-7-input.c
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Rotted/test-7.cpp
create mode 120000 dwarf-compilation.base/contrib/libdwarfpp/tests/Rotted/test-8-input.c
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Rotted/test-8.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/Rotted/test-9.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/all-sccs/all-sccs.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/core-bfs/core-bfs.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/core-variadic/core-variadic.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/coretest/coretest.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/fde-decode/fde-decode.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/fde-print/fde-print.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/grandchildren/grandchildren.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/live-dies/live-dies.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/make-dies/make-dies.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/resolve/resolve.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/siblings-core/siblings-core.cpp
create mode 100755 dwarf-compilation.base/contrib/libdwarfpp/tests/timed-dump-core/exit-deciseconds.sh
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/timed-dump-core/timed-dump-core.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/type-equality/hello.c
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/type-equality/type-equality.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/type-iterators/type-iterators.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/type-scc/type-scc.cpp
create mode 100644 dwarf-compilation.base/contrib/libdwarfpp/tests/visible-named/visible-named.cpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/.gitignore
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/INSTALL
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/Makefile.am
create mode 100755 dwarf-compilation.base/contrib/libsrk31cxx/autogen.sh
create mode 100755 dwarf-compilation.base/contrib/libsrk31cxx/bin/filt.sh
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/configure.ac
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/Makefile.am
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/algorithm.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/array.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/array_slice_iterator.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/concatenating_iterator.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/downcasting_iterator.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/endian.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/indenting_ostream.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/ordinal.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/rotate.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/selective_iterator.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/transform_iterator.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/include/srk31/util.hpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/libsrk31c++.pc.in
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/src/Makefile.am
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/src/indenting_ostream.cpp
create mode 100644 dwarf-compilation.base/contrib/libsrk31cxx/tests/test.cpp
diff --git a/dwarf-compilation.base/contrib/libcxxfileno/.gitignore b/dwarf-compilation.base/contrib/libcxxfileno/.gitignore
new file mode 100644
index 0000000..e753181
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libcxxfileno/.gitignore
@@ -0,0 +1,77 @@
+/Makefile
+
+__pycache__/
+*.py[cod]
+
+.deps/
+.libs/
+
+
+# http://www.gnu.org/software/automake
+
+Makefile.in
+
+# http://www.gnu.org/software/autoconf
+
+/autom4te.cache
+/aclocal.m4
+/compile
+/configure
+/depcomp
+/install-sh
+/missing
+/stamp-h1
+/m4/
+/config.guess
+/config.sub
+/config.status
+/config.log
+/ltmain.sh
+/libtool
+
+
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+*.pc
+
+# Dependencies
+.*.d
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+*.dll
+
+# Fortran module files
+*.mod
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
+
+# Executables
+*.exe
+*.out
+*.app
+
+
+# Backup files
+*~
+\#*\#
+.\#*
+
+# WTF Dropbox
+
+.fuse_hidden*
+.nfs*
+.dropbox*
diff --git a/dwarf-compilation.base/contrib/libcxxfileno/INSTALL b/dwarf-compilation.base/contrib/libcxxfileno/INSTALL
new file mode 100644
index 0000000..658198b
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libcxxfileno/INSTALL
@@ -0,0 +1,2 @@
+libtoolize && autoreconf -i && ./configure --prefix=(somewhere) && make && [sudo] make install
+
diff --git a/dwarf-compilation.base/contrib/libcxxfileno/Makefile.am b/dwarf-compilation.base/contrib/libcxxfileno/Makefile.am
new file mode 100755
index 0000000..cab41a6
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libcxxfileno/Makefile.am
@@ -0,0 +1,16 @@
+pkgincludedir=$(includedir)
+ACLOCAL_AMFLAGS = -I m4
+lib_LTLIBRARIES = libc++fileno.la
+libc__fileno_la_SOURCES = fileno.cpp
+pkginclude_HEADERS = fileno.hpp
+extra_DIST = libc++fileno.pc.in
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libc++fileno.pc
+
+lib/libc++fileno.so: $(lib_LTLIBRARIES)
+ mkdir -p lib && cd lib && ln -sf ../.libs/libc++fileno.so .
+
+lib/libc++fileno.so.0: $(lib_LTLIBRARIES)
+ mkdir -p lib && cd lib && ln -sf ../.libs/libc++fileno.so.0 .
+
+all: lib/libc++fileno.so lib/libc++fileno.so.0
diff --git a/dwarf-compilation.base/contrib/libcxxfileno/configure.ac b/dwarf-compilation.base/contrib/libcxxfileno/configure.ac
new file mode 100755
index 0000000..3d58eb6
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libcxxfileno/configure.ac
@@ -0,0 +1,15 @@
+AC_CONFIG_MACRO_DIR([m4])
+AC_PREREQ([2.69])
+AC_INIT([libc++fileno], [0.1], [srk31@cl.cam.ac.uk])
+LT_INIT
+AC_CONFIG_SRCDIR([fileno.cpp])
+AC_LANG([C++])
+AM_INIT_AUTOMAKE([foreign subdir-objects])
+AM_MAINTAINER_MODE
+AC_PROG_CXX
+AX_CXX_COMPILE_STDCXX_11
+AC_PROG_LN_S
+AC_PROG_INSTALL
+PKG_PROG_PKG_CONFIG
+AC_CHECK_HEADERS([cstdio fstream cerrno iosfwd ext/stdio_filebuf.h ext/stdio_sync_filebuf.h], [], [AC_MSG_FAILURE([required standard headers: cstdio fstream cerrno iosfwd ext/stdio_filebuf.h ext/stdio_sync_filebuf.h])])
+AC_OUTPUT([Makefile libc++fileno.pc])
diff --git a/dwarf-compilation.base/contrib/libcxxfileno/fileno.cpp b/dwarf-compilation.base/contrib/libcxxfileno/fileno.cpp
new file mode 100644
index 0000000..97b755e
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libcxxfileno/fileno.cpp
@@ -0,0 +1,191 @@
+#include "fileno.hpp"
+#include // just for __LIBCPP_VERSION
+
+#include // declaration of ::fileno
+#include
+
+// for basic_filebuf template
+#ifdef _LIBCPP_VERSION
+#ifdef private
+# error "why on earth is private #defined to something already?!"
+#endif
+// this is a very bad idea, never do this
+# define private public
+// no, seriously.
+# include
+# undef private
+# undef class
+#else
+# include
+#endif
+
+
+#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
+# include
+#endif
+#if defined(__GLIBCXX__) // GCC >= 3.4.0
+# include
+#endif
+
+int cfileno(FILE *f) {
+ return ::fileno(f);
+}
+
+
+//! Similar to fileno(3), but taking a C++ stream as argument instead of a
+//! FILE*. Note that there is no way for the library to track what you do with
+//! the descriptor, so be careful.
+//! \return The integer file descriptor associated with the stream, or -1 if
+//! that stream is invalid. In the latter case, for the sake of keeping the
+//! code as similar to fileno(3), errno is set to EBADF.
+//! \see The upstream page at
+//! http://www.ginac.de/~kreckel/fileno/ of this code provides more
+//! detailed information.
+template
+inline int
+fileno_hack(const std::basic_ios& stream)
+{
+ // Some C++ runtime libraries shipped with ancient GCC, Sun Pro,
+ // Sun WS/Forte 5/6, Compaq C++ supported non-standard file descriptor
+ // access basic_filebuf<>::fd(). Alas, starting from GCC 3.1, the GNU C++
+ // runtime removes all non-standard std::filebuf methods and provides an
+ // extension template class __gnu_cxx::stdio_filebuf on all systems where
+ // that appears to make sense (i.e. at least all Unix systems). Starting
+ // from GCC 3.4, there is an __gnu_cxx::stdio_sync_filebuf, in addition.
+ // Sorry, darling, I must get brutal to fetch the darn file descriptor!
+ // Please complain to your compiler/libstdc++ vendor...
+#if defined(__GLIBCXX__) || defined(__GLIBCPP__)
+ // OK, stop reading here, because it's getting obscene. Cross fingers!
+# if defined(__GLIBCXX__) // >= GCC 3.4.0
+ // This applies to cin, cout and cerr when not synced with stdio:
+ typedef __gnu_cxx::stdio_filebuf unix_filebuf_t;
+ unix_filebuf_t* fbuf = dynamic_cast(stream.rdbuf());
+ if (fbuf != NULL) {
+ return fbuf->fd();
+ }
+
+ // This applies to filestreams:
+ typedef std::basic_filebuf filebuf_t;
+ filebuf_t* bbuf = dynamic_cast(stream.rdbuf());
+ if (bbuf != NULL) {
+ // This subclass is only there for accessing the FILE*. Ouuwww, sucks!
+ struct my_filebuf : public std::basic_filebuf {
+ int fd() { return this->_M_file.fd(); }
+ };
+ return static_cast(bbuf)->fd();
+ }
+
+ // This applies to cin, cout and cerr when synced with stdio:
+ typedef __gnu_cxx::stdio_sync_filebuf sync_filebuf_t;
+ sync_filebuf_t* sbuf = dynamic_cast(stream.rdbuf());
+ if (sbuf != NULL) {
+# if (__GLIBCXX__<20040906) // GCC < 3.4.2
+ // This subclass is only there for accessing the FILE*.
+ // See GCC PR#14600 and PR#16411.
+ struct my_filebuf : public sync_filebuf_t {
+ my_filebuf(); // Dummy ctor keeps the compiler happy.
+ // Note: stdio_sync_filebuf has a FILE* as its first (but private)
+ // member variable. However, it is derived from basic_streambuf<>
+ // and the FILE* is the first non-inherited member variable.
+ FILE* c_file() {
+ return *(FILE**)((char*)this + sizeof(std::basic_streambuf));
+ }
+ };
+ return ::fileno(static_cast(sbuf)->c_file());
+# else
+ return ::fileno(sbuf->file());
+# endif
+ }
+# else // GCC < 3.4.0 used __GLIBCPP__
+# if (__GLIBCPP__>=20020514) // GCC >= 3.1.0
+ // This applies to cin, cout and cerr:
+ typedef __gnu_cxx::stdio_filebuf unix_filebuf_t;
+ unix_filebuf_t* buf = dynamic_cast(stream.rdbuf());
+ if (buf != NULL) {
+ return buf->fd();
+ }
+
+ // This applies to filestreams:
+ typedef std::basic_filebuf filebuf_t;
+ filebuf_t* bbuf = dynamic_cast(stream.rdbuf());
+ if (bbuf != NULL) {
+ // This subclass is only there for accessing the FILE*. Ouuwww, sucks!
+ struct my_filebuf : public std::basic_filebuf {
+ // Note: _M_file is of type __basic_file which has a
+ // FILE* as its first (but private) member variable.
+ FILE* c_file() { return *(FILE**)(&this->_M_file); }
+ };
+ FILE* c_file = static_cast(bbuf)->c_file();
+ if (c_file != NULL) { // Could be NULL for failed ifstreams.
+ return ::fileno(c_file);
+ }
+ }
+# else // GCC 3.0.x
+ typedef std::basic_filebuf filebuf_t;
+ filebuf_t* fbuf = dynamic_cast(stream.rdbuf());
+ if (fbuf != NULL) {
+ struct my_filebuf : public filebuf_t {
+ // Note: basic_filebuf has a __basic_file* as
+ // its first (but private) member variable. Since it is derived
+ // from basic_streambuf we can guess its offset.
+ // __basic_file in turn has a FILE* as its first (but
+ // private) member variable. Get it by brute force. Oh, geez!
+ FILE* c_file() {
+ std::__basic_file* ptr_M_file = *(std::__basic_file**)((char*)this + sizeof(std::basic_streambuf));
+# if _GLIBCPP_BASIC_FILE_INHERITANCE
+ // __basic_file inherits from __basic_file_base
+ return *(FILE**)((char*)ptr_M_file + sizeof(std::__basic_file_base));
+# else
+ // __basic_file is base class, but with vptr.
+ return *(FILE**)((char*)ptr_M_file + sizeof(void*));
+# endif
+ }
+ };
+ return ::fileno(static_cast(fbuf)->c_file());
+ }
+# endif
+# endif
+#else
+#ifdef _LIBCPP_VERSION // llvm libc++
+ typedef std::basic_filebuf filebuf_t;
+ filebuf_t* fbuf = stream.rdbuf();
+ template
+ struct my_filebuf : public filebuf_t {
+ FILE *c_file() {
+ return this->__file_;
+ }
+ };
+ my_filebuf *my_fbuf = static_cast*>(fbuf);
+ if (my_fbuf != NULL && my_fbuf->c_file() != NULL) {
+ return cfileno(my_fbuf->c_file());
+ } else {
+ errno = EBADF;
+ return -1;
+ }
+#else
+# error "Does anybody know how to fetch the bloody file descriptor?"
+ return stream.rdbuf()->fd(); // Maybe a good start?
+#endif
+#endif
+ errno = EBADF;
+ return -1;
+}
+
+
+//! 8-Bit character instantiation: fileno(ios).
+template <>
+int
+fileno(const std::ios& stream)
+{
+ return fileno_hack(stream);
+}
+
+#if !(defined(__GLIBCXX__) || defined(__GLIBCPP__)) || (defined(_GLIBCPP_USE_WCHAR_T) || defined(_GLIBCXX_USE_WCHAR_T))
+//! Wide character instantiation: fileno(wios).
+template <>
+int
+fileno(const std::wios& stream)
+{
+ return fileno_hack(stream);
+}
+#endif
diff --git a/dwarf-compilation.base/contrib/libcxxfileno/fileno.hpp b/dwarf-compilation.base/contrib/libcxxfileno/fileno.hpp
new file mode 100644
index 0000000..032bd97
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libcxxfileno/fileno.hpp
@@ -0,0 +1,4 @@
+#include
+
+template
+int fileno(const std::basic_ios& stream);
diff --git a/dwarf-compilation.base/contrib/libcxxfileno/include b/dwarf-compilation.base/contrib/libcxxfileno/include
new file mode 120000
index 0000000..945c9b4
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libcxxfileno/include
@@ -0,0 +1 @@
+.
\ No newline at end of file
diff --git a/dwarf-compilation.base/contrib/libcxxfileno/libc++fileno.pc.in b/dwarf-compilation.base/contrib/libcxxfileno/libc++fileno.pc.in
new file mode 100644
index 0000000..f6a62da
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libcxxfileno/libc++fileno.pc.in
@@ -0,0 +1,14 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+pkgincludedir=${includedir}/@PACKAGE@
+pkglibdir=@pkglibdir@
+datarootdir=@datarootdir@
+datadir=@datadir@
+
+Name: libc++fileno
+Description: Stephen Kell's distribution of Richard Kreckel's fileno() function for popular implementations of the C++ standard library
+Version: 0.1
+Cflags: -I${pkgincludedir}
+Libs: -L${libdir} -lc++fileno
diff --git a/dwarf-compilation.base/contrib/libdwarf/.gitignore b/dwarf-compilation.base/contrib/libdwarf/.gitignore
new file mode 100644
index 0000000..2be1f91
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/.gitignore
@@ -0,0 +1,3 @@
+*.[oa]
+junk*
+*~
diff --git a/dwarf-compilation.base/contrib/libdwarf/BLDLIBDWARF b/dwarf-compilation.base/contrib/libdwarf/BLDLIBDWARF
new file mode 100755
index 0000000..c30ec0b
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/BLDLIBDWARF
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+bldone () {
+ t=$1
+ cd $t
+ # The following distclean will fail on a clean directory
+ # Ignore the failure
+ make distclean
+ ./configure
+ if [ $? != 0 ]
+ then
+ echo build failed
+ exit
+ fi
+ make
+ if [ $? != 0 ]
+ then
+ echo build failed
+ exit
+ fi
+ cd ..
+}
+
+bldone libdwarf
+bldone dwarfdump
+
+
+
+
diff --git a/dwarf-compilation.base/contrib/libdwarf/BLDLIBDWARFTAR b/dwarf-compilation.base/contrib/libdwarf/BLDLIBDWARFTAR
new file mode 100755
index 0000000..51f2105
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/BLDLIBDWARFTAR
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+#newpref sets directory name with date, more
+#like normal linux packages.
+if [ $# != 1 ]
+then
+ echo Usage: BLDLIBDWARFTAR yyyymmdd
+ echo Example: BLDLIBDWARFTAR 20040108
+ exit 1
+fi
+echo "This does not do UPDATEDWARFDUMPVERSION.sh"
+echo "Make sure there are no unwanted files"
+echo "in the code directories as all the files get"
+echo "copied to the release tar file."
+dat=$1
+
+tmpf=dwarf
+tmpdir=/var/tmp
+# cptopublic knows /var/tmp/dwarf is the target
+sh CPTOPUBLIC nouv
+newpref=dwarf-${dat}
+newf=libdwarf-${dat}.tar
+echo src is $tmpdir/$tmpf tmp is $newpref target is $newf
+echo ============ $newpref $newf ==========
+
+echo First create $tmpdir/$newpref with the latest source.
+cd $tmpdir
+if [ ! -d $tmpf ]
+then
+ echo No $tmpdir/dwarf present! Do nothing.
+ exit 0
+fi
+rm -rf $newpref
+
+cp -rp $tmpf $newpref
+# Alter date below before using.e
+rm -f ${newf} ${newf}.gz
+tar cf /var/tmp/$newf $newpref
+gzip ${newf}
+hm=/home/davea/web4/gweb/pagedata
+cp ${newf}.gz $hm
+ls -l $tmpdir/${newf}.gz
+ls -l $hm/${newf}.gz
+exit 0
diff --git a/dwarf-compilation.base/contrib/libdwarf/BLDTESTDIR b/dwarf-compilation.base/contrib/libdwarf/BLDTESTDIR
new file mode 100644
index 0000000..3eb52e5
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/BLDTESTDIR
@@ -0,0 +1,210 @@
+#!/bin/sh
+#
+#newpref sets directory name with date, more
+#like normal linux packages.
+if [ $# != 1 ]
+then
+ echo Usage: BLDTESTDIR yyyymmdd
+ echo Example: BLDTESTDIR 20100501
+ exit 1
+fi
+dat=$1
+tmpdir=/var/tmp
+cd dwarftest
+basenewpref=dwarftest-${dat}
+newpref=$tmpdir/dwarftest-${dat}
+newf=dwarftest-${dat}.tar
+echo ============ $newpref $newf ==========
+echo First create /var/tmp/$newpref with the latest source.
+rm -rf $newpref
+mkdir $newpref
+for i in zero/Makefile \
+allen1/README \
+allen1/todd-allen-gcc-4.4.4-bin.exe \
+zero/TEST \
+zero/zero.cc \
+sandnes2/cu_dir_added_to_complete_path.c \
+sandnes2/README \
+sandnes2/RUNTEST.sh \
+sandnes2/cu_dir_added_to_complete_path.elf \
+dwarf4/dd2g4.5dwarf-4 \
+dwarf4/ddg4.5dwarf-4 \
+dwarf4/README \
+moshe/a.out.t \
+moshe/hello \
+moshe/hello.c \
+moshe/README \
+moshe/t.c \
+lloyd/arange.elf \
+lloyd/README \
+cell/c_malloc.o \
+cell/README \
+test-eh/Makefile \
+test-eh/eh-frame.cc \
+test-eh/test-eh.386 \
+test-eh/test-eh.c \
+test-eh/eh-frame.386 \
+CLEANUP \
+ChangeLog2010 \
+ChangeLog2009 \
+test-alex2/test.c \
+test-alex2/README \
+test-alex2/RUNTEST \
+test-alex2/bugemail \
+test-alex2/orig.a.out \
+sun/sunelf1 \
+sun/sparc1-a.out \
+linkonce/linkonce.txt \
+linkonce/test.cpp \
+linkonce/comdattest.o \
+libdwarf.a \
+louzon/README \
+louzon/ppcobj.o \
+cristi3/foo.cpp \
+cristi3/cristibadobj \
+cristi3/README \
+arm/README \
+arm/armcc-test-dwarf3 \
+arm/armcc-test-dwarf2 \
+ia64/hxdump.c \
+ia64/mytry.ia64 \
+ia64/mytry.cpp \
+ia64/README \
+ia64/hxdump.ia64 \
+PICKUPBIN \
+test_harmless \
+findcu/cutest.c \
+findcu/README \
+findcu/cutestobj.save \
+findcu/RUNTEST \
+TEST \
+macinfo/test.c \
+macinfo/a.out3.4 \
+macinfo/a.out4.3 \
+macinfo/README \
+RUNALL.sh \
+testcase/testcase.c \
+testcase/Makefile \
+testcase/README \
+testcase/testcase \
+testcase/BLD \
+testcase/verify \
+dwarfextract/test2.c \
+dwarfextract/Makefile \
+dwarfextract/test1.base \
+dwarfextract/test1.c \
+dwarfextract/runtests.sh \
+dwarfextract/test1.h \
+dwarfextract/dwarfextract.c \
+val_expr/libpthread-2.5.so \
+ChangeLog \
+frame1/frame1.orig \
+frame1/frame1.c \
+frame1/README \
+frame1/frame1.exe.save \
+frame1/frame1.base \
+frame1/runtest.sh \
+cristi2/libpthread-2.4.so \
+cristi2/README \
+cristi2/libc-2.5.so \
+x86/README \
+x86/dwarfdumpv4.3 \
+kartashev2/Makefile \
+kartashev2/bar.cc \
+kartashev2/foo.cc \
+kartashev2/combined.o \
+test_harmless.c \
+libdwoldframecol.a \
+atefail/README \
+atefail/ig_server \
+modula2/README \
+modula2/write-fixed \
+shihhuangti/t1.o \
+shihhuangti/tcombined.o \
+shihhuangti/README.txt \
+shihhuangti/t2.o \
+dwarfdump.conferr1 \
+DWARFTEST.sh \
+moore/README \
+moore/simplec.o \
+moore/RUNTEST.sh \
+moore/simplec.c \
+moore/djpeg.v850 \
+README.txt \
+ppc2/README \
+ppc2/powerpc-750-linux-gnu-hello-static.txt \
+ppc2/powerpc-750-linux-gnu-hello-static \
+sparc/README \
+sparc/tcombined.o \
+sandnes/Test1.elf \
+sandnes/README \
+wynn/unoptimised.axf \
+wynn/README.txt \
+COPYING \
+SINGLE \
+mutatee/test1.mutatee_gcc.exe \
+mucci/main.gcc \
+mucci/a.out.mucci \
+mucci/main.o \
+mucci/README \
+mucci/main.c \
+mucci/main.pathcc \
+mucci/stream.o \
+mucci/main.o.pathcc \
+mucci/main.o.gcc \
+test_dwarfnames.c \
+legendre/frame_test.c \
+legendre/libmpich.so.1.0 \
+legendre/README \
+legendre/RUNTEST.sh \
+ref_addr/README \
+ref_addr/ELF3.elf \
+test-array/Makefile \
+test-array/array.c \
+test-array/test-array \
+BLD \
+irix64/libc.so \
+test-alex1/test.c \
+test-alex1/bug \
+test-alex1/RUNTEST \
+test-alex1/bugemail \
+test-alex1/BLD \
+test-alex1/RUNIT \
+test-alex1/orig.a.out \
+BLDTAR \
+kartashev/README \
+kartashev/combined.o \
+irixn32/dwarfdump \
+irixn32/libc.so \
+RUN \
+verifyall.cc \
+dwarfdump.O \
+dwarfdump.conf \
+ia32/libc.so.6 \
+ia32/preloadable_libintl.so \
+ia32/mytry.ia32 \
+ia32/libpfm.so.3 \
+ia32/libpt_linux_x86_r.so.1 \
+enciso2/README \
+enciso2/test_templates.cpp \
+enciso2/template.elf \
+enciso2/test_templates.o
+do
+ d=`dirname $i`
+ if ! [ -d $newpref/$d ]
+ then
+ mkdir $newpref/$d
+ fi
+ cp -p $i $newpref/$i
+done
+
+cd $tmpdir
+# Alter date below before using.e
+rm -f ${newf} ${newf}.gz
+tar cf /var/tmp/$newf $basenewpref
+gzip ${newf}
+hm=/home/davea/sgiweb3/pagedata
+cp ${newf}.gz $hm
+ls -l $tmpdir/${newf}.gz
+ls -l $hm/${newf}.gz
+exit 0
diff --git a/dwarf-compilation.base/contrib/libdwarf/CLEANUP b/dwarf-compilation.base/contrib/libdwarf/CLEANUP
new file mode 100644
index 0000000..59a1b4f
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/CLEANUP
@@ -0,0 +1,18 @@
+
+
+( cd dwarfexample ; make clean ; make distclean )
+( cd dwarfgen ; make clean ; make distclean )
+( cd libdwarf ; make clean ; make distclean )
+( cd dwarfdump ; make clean ; make distclean )
+( cd bugxml ; rm -f bugrecord.pyc )
+( cd bugxml ; rm -f dwarfbug.xml )
+( cd bugxml ; rm -f dwarfbugtail )
+( cd bugxml ; rm -f junk* )
+( cd bugxml ; rm -rf __pycache__ )
+
+rm -f libdwarf/BLD
+rm -f dwarfdump/BLD
+
+rm -f dwarfgen/configure.lineno
+rm -f ALLd*
+rm -f junk* */junk*
diff --git a/dwarf-compilation.base/contrib/libdwarf/CMakeLists.txt b/dwarf-compilation.base/contrib/libdwarf/CMakeLists.txt
new file mode 100644
index 0000000..8a50191
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/CMakeLists.txt
@@ -0,0 +1,45 @@
+cmake_minimum_required(VERSION 3.2)
+
+project(libdwarf)
+
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+
+include(LibdwarfMacros)
+
+# view folders on supported IDEs
+set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
+# used when finding libelf
+set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE)
+
+# this project has tests
+enable_testing()
+
+# always include project's folder to includes
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
+
+find_package(LibElf REQUIRED)
+
+list(APPEND CMAKE_REQUIRED_INCLUDES ${LIBELF_INCLUDE_DIRS})
+
+include(configure.cmake)
+
+if(nonshared)
+ set(DWARF_TARGETS dwarf-static)
+ set(DWARF_TYPES STATIC)
+ set(dwarf-target dwarf-static)
+endif()
+if(shared)
+ list(APPEND DWARF_TARGETS dwarf-shared)
+ list(APPEND DWARF_TYPES SHARED)
+ set(dwarf-target dwarf-shared)
+endif()
+
+add_subdirectory(libdwarf)
+add_subdirectory(dwarfexample)
+add_subdirectory(dwarfdump)
+add_subdirectory(dwarfgen)
+
+add_custom_target(dd
+ DEPENDS ${DWARF_TARGETS} dwarfdump)
\ No newline at end of file
diff --git a/dwarf-compilation.base/contrib/libdwarf/CPTOPUBLIC b/dwarf-compilation.base/contrib/libdwarf/CPTOPUBLIC
new file mode 100755
index 0000000..47f1ad7
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/CPTOPUBLIC
@@ -0,0 +1,35 @@
+#!/bin/sh
+# CPTOPUBLIC [uv] [nouv]
+
+usemsg()
+{
+ echo "CPTOPUBLIC [uv] [nouv]"
+ echo "where uv means update version strings "
+ echo "where nouv means do not update version strings "
+ echo "One of uv or nouv is required..."
+}
+
+if [ $# -ne 1 ]
+then
+ usemsg
+ exit 1
+fi
+uver="n"
+case $1 in
+ uv) uver="y" ;;
+ nouv) uver="n" ;;
+ *) usemsg ; exit 1 ;;
+esac
+
+s=/home/davea/dwarf/code
+cd $s
+pwd
+t=/var/tmp/dwarf
+echo target is $t
+if [ $uver = "y" ]
+then
+ sh UPDATEDWARFDUMPVERSION.sh
+fi
+rm -rf $t
+mkdir $t
+cp -rp * $t
diff --git a/dwarf-compilation.base/contrib/libdwarf/CREATINGARELEASE b/dwarf-compilation.base/contrib/libdwarf/CREATINGARELEASE
new file mode 100644
index 0000000..826eea1
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/CREATINGARELEASE
@@ -0,0 +1,93 @@
+
+This is an checlist of the steps in creating a new release.
+In hopes this will prevent omissions.
+
+DavidA. 30 November 2012
+
+Source here means libdwarf/dwarfdump/dwarfgen source (in Git).
+Tests here means the regression tests (in another Git repository).
+
+In the Source:
+
+Update the source and build with your changes.
+Update the appropriate ChangeLog file so every
+file in Git which changes (except ChangeLog and NEWS)
+are in ChangeLog.
+ (at year end, move ChangeLog to ChangeLogyyyy
+ where yyyy is the year ending and create a new
+ empty ChangeLog)
+
+Use dicheck (also in sourceforge) to verify indentation of
+all .h .cc and .c files is consistent.
+
+Ensure all interfaces in libdwarf that are call able by users
+are in libdwarf.h and are documented in libdwarf2.1.mm or
+libdwarf2p.1.mm and that any changes in the .mm also
+mean you inserted a version and date change
+in the date lines near the front of that .mm.
+Then regenerate the pdf if any changes.
+
+Run any small preliminary tests that seem applicable.
+
+In the Tests:
+
+Create any new tests that seem applicable.
+Add the appropriate lines to DWARFTEST.sh which
+actually does the test running.
+
+RUNALL.sh
+ Runs one test of the new dwarfdump/libdwarf executable
+ against the previously saved dwarfdump/libdwarf executable.
+
+The notion of keeping baseline test output and simply
+comparing output of a previous release vs the new
+candiate release would involve saving some really large files.
+So the present test suite instead runs each test with
+two dwarfdump* versions and compares the output.
+
+To run all the tests, most of which
+compare the (committed in tests) dwarfdump
+against your new source:
+ sh PICKUPBIN # This picks up latest source and compiles
+ # (for some files multiple times)
+ # It is essential before each test run.
+ sh RUNALL.sh # This runs the tests 3 times with different
+ # dwarfdump[2] and different comparisons
+
+To check for failure:
+ grep FAIL ALL*
+ If there are any FAILS decide if they are real failures
+ (in which case fix the Source and retest) or are in fact
+ the output change that is expected given the Source changes.
+
+In case all tests pass:
+ cp dwarfdump dwarfdump.O
+ commit the updated .O executables as the new baseline good
+ dwarfdump for the next test run.
+
+In the Source:
+ sh UPDATEDWARFDUMPVERSION.sh #updates the version string in 4 places
+ update dwarfdump[2]/ChangeLog files to reflect the new version.
+ commit the new version string. If this has been done recently
+ enough that users won't see the current version string
+ it need not be done at this time.
+
+ sh BLD #to verify it still builds
+ git push origin master # Push to sourceforge.
+ # We use 20121130 as an example below, use the current date.
+ sh CPTOPUBLIC # To copy relevant Source to a temp directory
+ sh BLDLIBDWARFTAR 20121130 # (use current date) to create a tar.gz
+ # like libdwarf-20121130.tar.gz
+ md5sum libdwarf-20121130.tar.gz
+ sha512sum libdwarf-20121130.tar.gz
+ # To get unforgeable checksums for the tar.gz file
+ git tag -a 20121130 -m 'Release 20121130'
+ git push origin 20121130 # push the tag
+
+In the Tests:
+ git push origin master
+ git tag -a 20121130 -m 'Release 20121130'
+ git push origin 20121130 # push the tag
+
+Update web pages so that the new release is visble to users
+and copy the tar.gz to the appropriate web site.
diff --git a/dwarf-compilation.base/contrib/libdwarf/Makefile.in b/dwarf-compilation.base/contrib/libdwarf/Makefile.in
new file mode 100644
index 0000000..2432327
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/Makefile.in
@@ -0,0 +1,118 @@
+#
+#
+# Copyright (C) 2000,2003,2004,2006 Silicon Graphics, Inc. All Rights Reserved.
+# Portions Copyright (C) 2010-2013 David B Anderson. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2.1 of the GNU Lesser General Public License
+# as published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like. Any license provided herein, whether implied or
+# otherwise, applies only to this software file. Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
+# USA.
+
+#
+# Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
+# Mountain View, CA 94043, or:
+#
+# http://www.sgi.com
+#
+# For further information regarding this notice, see:
+#
+# http://oss.sgi.com/projects/GenInfo/NoticeExplan
+#
+#
+
+#
+# Makefile for libdwarf
+# This is made very simple so it should work with
+# any 'make'.
+#
+
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+bindir = $(exec_prefix)/bin
+libdir = $(exec_prefix)/lib
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+SHELL = /bin/sh
+CC = @CC@
+AR = @AR@
+# For use with BSD ar (MacOSX ar) edit the ARFLAGS to be -s
+#ARFLAGS = @ARFLAGS@
+RM = rm
+RANLIB = @RANLIB@
+DEFS = @DEFS@
+LIBS = @LIBS@
+INCLUDES = -I. -I$(srcdir)
+dwfpic = @dwfpic@
+CFLAGS = $(PREINCS) @CPPFLAGS@ @CFLAGS@ $(INCLUDES) $(dwfpic) $(POSTINCS)
+LDFLAGS = $(PRELIBS) @LDFLAGS@ $(POSTLIBS)
+
+basic:
+ cd libdwarf && make
+ cd dwarfdump && make
+
+# The dd target takes the least space and time
+# to build.
+dd:
+ cd libdwarf && make
+ cd dwarfdump && make
+all: basic
+ cd dwarfgen && make
+ cd dwarfexample && make
+
+clean:
+ sh ./CLEANUP
+
+install: all
+ echo "No install provided, see comments in the README"
+
+distclean: clean
+ rm -f dwarfgen/config.status
+ rm -f dwarfgen/config.log
+ rm -f dwarfgen/config.cache
+ rm -f dwarfgen/config.h
+ rm -f dwarfgen/configure.lineno
+ rm -rf dwarfgen/autom4te.cache
+ rm -f dwarfgen/Makefile
+ rm -f dwarfdump/config.status
+ rm -f dwarfdump/config.log
+ rm -f dwarfdump/config.cache
+ rm -f dwarfdump/config.h
+ rm -rf dwarfdump/autom4te.cache
+ rm -f dwarfdump/Makefile
+ rm -f libdwarf/config.status
+ rm -f libdwarf/config.log
+ rm -f libdwarf/config.cache
+ rm -f libdwarf/config.h
+ rm -rf libdwarf/autom4te.cache
+ rm -f libdwarf/Makefile
+ rm -f config.status
+ rm -f config.log
+ rm -f config.cache
+ rm -f config.h
+ rm -rf autom4te.cache
+ rm -f Makefile
+
+shar:
+ @echo "shar not set up"
+dist:
+ @echo "dist not set up"
diff --git a/dwarf-compilation.base/contrib/libdwarf/NEWS b/dwarf-compilation.base/contrib/libdwarf/NEWS
new file mode 100644
index 0000000..f369e3c
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/NEWS
@@ -0,0 +1,35 @@
+2016-11-30:
+ An alternative build mechanism using cmake is now in the source tree.
+ The builds for product testing continue to be done using configure && make.
+2016-09-20:
+ --enable-sanitize option added to configure. This builds
+ with -fsanitize=address to check for out of bounds
+ memory access.
+2016-09-05:
+ dwarfexample/simpleexample.c now has a simple option letting one
+ extract all .debug_info, .debug_types strings into a file by
+ themselves in case one wanted to examine string frequencies,
+ for example.
+2016-06-01: Now we use DW_VERSION_DATE_STR for
+ dates everywhere instead of __DATE__ __TIME__
+ so a repeated build gets identical object output.
+ DW_VERSION_DATE_STR is updated by UPDATEDWARFDUMPVERSION.sh
+ wherever that string is needed.
+
+2015-11-26: If DWARF section data you intend to read
+ with libdwarf is compressed by zlib (a section name
+ like .zdebug_info indicates such compression) libdwarf etc
+ will need zlib's headers and archive or shared-library
+ at build and link time. If you do not have zlib
+ everything will compile fine and will work
+ on ordinary DWARF sections but libdwarf will not be
+ able to read .zdebug_ compressed sections.
+ zlib.h is the main zlib header and libz.a is the
+ most likely zlib library you will encounter.
+
+2015-11-15: It is now possible to build
+ outside of the source tree. See README.
+ So configure.in changed a little.
+2015-01-13: Removed dwarfdump2 and references to it.
+ dwarfdump has the (tsearch) features needed so the C++
+ version no longer a benefit.
diff --git a/dwarf-compilation.base/contrib/libdwarf/README b/dwarf-compilation.base/contrib/libdwarf/README
new file mode 100644
index 0000000..c7cbab7
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/README
@@ -0,0 +1,79 @@
+
+A build can be done via cmake, which is
+new as of November 2016.
+ mkdir /tmp/builddir
+ cd /tmp/builddir
+ # Assuming the source tree in /a/b/code
+ cmake /a/b/code
+ make
+
+Standard builds are done by configure/make as
+described below.
+
+BUILDING IN SOURCE TREE
+To just build libdwarf and dwarfdump
+if the source tree is in /a/b/libdwarf-1
+one might do:
+ cd /a/b/libdwarf-1
+ ./configure
+ make dd
+ #You may need to be root to do the following copy commands
+ cp dwarfdump/dwarfdump /usr/local/bin
+ cp dwarfdump/dwarfdump.conf /usr/local/lib
+ #The following is optional, not needed to run dwarfdump
+ #when doing the default build.
+ cp libdwarf/libdwarf.a /usr/local/lib
+
+BUILDING OUT OF SOURCE TREE
+Or one could create a new directory, for example,
+ mkdir /var/tmp/dwarfex
+ cd /var/tmp/dwarfex
+ /a/b/libdwarf-1/configure
+ make dd
+In this case the source directory is not touched and
+all objects and files created are under /var/tmp/dwarfex
+
+NOTE: When building out of source tree the source tree
+must be cleaned of any files created by a build
+in the source tree. This is due to the way GNU Make
+VPATH works.
+
+For a simple build of libdwarf, and dwarfdump
+and the other tools:
+ ./configure
+ make
+ #Optionally: cp libdwarf/libdwarf.a
+
+To build all the tools (including dwarfgen and
+dwarfexample) use 'make all'. There are known
+small compile-time issues with building dwarfgen on
+MaxOSX and most don't need to build dwarfgen.
+ ./configure
+ make all
+
+By default configure compiles and uses libdwarf.a.
+
+With
+ ./configure --enabled-shared
+both libdwarf.a and libdwarf.so
+are built. The runtimes built will reference libdwarf.so.
+
+With
+ ./configure --enabled-shared --disable-nonshared
+libdwarf.so is built and used; libdwarf.a is not built.
+
+When ready to create a new source distribution do
+ ./CPTOPUBLIC
+ ./BLDLIBDWARF yyyymmdd
+where that could be
+ ./BLDLIBDWARF 20140131
+as an example.
+
+Sanity checking:
+Recent gcc has some checks that can be done at runtime.
+ -fsanitize=address
+ -fsanitize=leak
+ -fsanitize=undefined
+which are turned on here by --enable-sanitize at build time.
+
+David Anderson. Updated November 30, 2016
diff --git a/dwarf-compilation.base/contrib/libdwarf/README.md b/dwarf-compilation.base/contrib/libdwarf/README.md
new file mode 100644
index 0000000..1665772
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/README.md
@@ -0,0 +1,19 @@
+[![Travis Build Status](https://travis-ci.org/dvirtz/libdwarf.svg?branch=cmake)](https://travis-ci.org/dvirtz/libdwarf)
+[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/oxh8pg7hsuav2jrl?svg=true)](https://ci.appveyor.com/project/dvirtz/libdwarf)
+
+# This is README.md
+## BUILDING
+
+To just build libdwarf and dwarfdump, if the source tree is in `/a/b/libdwarf-1`
+
+### Using CMake
+
+To build using CMake one might do
+* `cd /a/b/libdwarf-1`
+* configure: `cmake . -B_Release -DCMAKE_BUILD_TYPE=Release`
+* build: `cmake --build _Release --target dd`
+* (optionally install): `sudo cmake --build _Release --target install`
+
+# for autotools builds, see README
+
+
diff --git a/dwarf-compilation.base/contrib/libdwarf/REBLDLIBDWARF b/dwarf-compilation.base/contrib/libdwarf/REBLDLIBDWARF
new file mode 100755
index 0000000..0e4d703
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/REBLDLIBDWARF
@@ -0,0 +1,31 @@
+#!/bin/sh
+# Assume configure done recently.
+
+cd libdwarf
+if [ $? != 0 ]
+then
+ echo build failed
+ exit
+fi
+make
+if [ $? != 0 ]
+then
+ echo build failed
+ exit
+fi
+cd ..
+cd dwarfdump
+if [ $? != 0 ]
+then
+ echo build failed
+ exit
+fi
+# rm in case we changed libdwarf.
+rm dwarfdump
+make
+if [ $? != 0 ]
+then
+ echo build failed
+ exit
+fi
+cd ..
diff --git a/dwarf-compilation.base/contrib/libdwarf/SETUP_MASTER_TREE b/dwarf-compilation.base/contrib/libdwarf/SETUP_MASTER_TREE
new file mode 100644
index 0000000..b599ce8
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/SETUP_MASTER_TREE
@@ -0,0 +1,154 @@
+#!/bin/sh
+exit 0; #modify this before running.
+cat > tarlist.tmp < tarlist.tmp < UPD.awk <<\EOF
+BEGIN {
+if (ARGC <= 2) {
+ print "Bogus use of awk file, requires arg"
+ exit 1
+} else {
+ v=ARGV[1]
+ ARGV[1]=""
+}
+}
+$0 ~ /#define DW_VERSION_DATE_STR/ { print $1, $2, "\"",v,"\"" }
+$0 !~ /^#define DW_VERSION_DATE_STR/ { print $0 }
+EOF
+awk -f UPD.awk "$x" dwarfdump/dwarfdump.c >t
+mv t dwarfdump/dwarfdump.c
+awk -f UPD.awk "$x" dwarfdump/common.c >t
+mv t dwarfdump/common.c
+awk -f UPD.awk "$x" dwarfdump/tag_attr.c >t
+mv t dwarfdump/tag_attr.c
+awk -f UPD.awk "$x" dwarfdump/tag_tree.c >t
+mv t dwarfdump/tag_tree.c
+awk -f UPD.awk "$x" libdwarf/gennames.c >t
+mv t libdwarf/gennames.c
diff --git a/dwarf-compilation.base/contrib/libdwarf/appveyor.yml b/dwarf-compilation.base/contrib/libdwarf/appveyor.yml
new file mode 100644
index 0000000..2a269ea
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/appveyor.yml
@@ -0,0 +1,41 @@
+environment:
+ global:
+ LIBELF_INSTALL_PREFIX: "C:/libelf"
+ matrix:
+ - platform: Win32
+ CMAKE_GENERATOR_NAME: "Visual Studio 14 2015"
+ CMAKE_OPTIONS: ""
+ - platform: Win32
+ CMAKE_GENERATOR_NAME: "Visual Studio 14 2015"
+ CMAKE_OPTIONS: "-Dshared=ON"
+ - platform: Win32
+ CMAKE_GENERATOR_NAME: "Visual Studio 14 2015"
+ CMAKE_OPTIONS: "-Dshared=ON nonshared=OFF"
+ - platform: x64
+ CMAKE_GENERATOR_NAME: "Visual Studio 14 2015 Win64"
+ CMAKE_OPTIONS: ""
+ - platform: x64
+ CMAKE_GENERATOR_NAME: "Visual Studio 14 2015 Win64"
+ CMAKE_OPTIONS: "-Dshared=ON"
+ - platform: x64
+ CMAKE_GENERATOR_NAME: "Visual Studio 14 2015 Win64"
+ CMAKE_OPTIONS: "-Dshared=ON nonshared=OFF"
+
+configuration: Release
+
+install:
+ - git clone https://github.com/dvirtz/libelf.git
+ - cd libelf
+ - git checkout cmake
+ - cmake . -B_build -G "%CMAKE_GENERATOR_NAME%" -DCMAKE_INSTALL_PREFIX=%LIBELF_INSTALL_PREFIX%
+ - cmake --build _build --config %CONFIGURATION%
+ - cmake --build _build --config %CONFIGURATION% --target INSTALL
+ - cd ..
+
+build_script:
+ - cmake . -B_build -G "%CMAKE_GENERATOR_NAME%" -DLIBELF_ROOT=%LIBELF_INSTALL_PREFIX% %OPTIONS%
+ - cmake --build _build --config %CONFIGURATION%
+
+test_script:
+ - cmake --build _build --config %CONFIGURATION% --target RUN_TESTS
+
\ No newline at end of file
diff --git a/dwarf-compilation.base/contrib/libdwarf/bugxml/README b/dwarf-compilation.base/contrib/libdwarf/bugxml/README
new file mode 100644
index 0000000..2bc661f
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/bugxml/README
@@ -0,0 +1,18 @@
+
+The files here are for maintaining a list of bugs
+fixed so html and xml can be posted to prevanders.net
+and CVE (see cert.org) issues can reference a public
+database.
+
+This is intended mainly for bugs that can result in
+application crashes as such can represent a vulnerability
+that can be exploited.
+Bugs that result simply in errors in output (but no crash)
+will typically not be mentioned.
+
+Bugs in dwarfdump are not vulnerabilities in the same way
+and at present these do not get CVE identifiers.
+
+David Anderson
+Created: 2016-05-03.
+Updated: 2017-07-06.
diff --git a/dwarf-compilation.base/contrib/libdwarf/bugxml/bugrecord.py b/dwarf-compilation.base/contrib/libdwarf/bugxml/bugrecord.py
new file mode 100755
index 0000000..e49c9ec
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/bugxml/bugrecord.py
@@ -0,0 +1,328 @@
+#!/usr/bin/python3
+# Copyright (c) 2016-2016 David Anderson.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * 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.
+# * Neither the name of the example nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY David Anderson ''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 David Anderson 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.
+
+
+import sys
+
+# Use only or
all by itself in data.xml.
+# No other data on either of such lines.
+# All the lines between these two markers should be
+# shown in individual lines.
+def xmlize(linea,inhtml,inpre):
+ outi = []
+ l = linea
+ if l.find("") != -1:
+ if inhtml == 'y':
+ s2 = '
' +l + '\n'
+ else:
+ s2 = l + '\n'
+ inpre = 'y'
+ return s2,inpre
+ if l.find("") != -1:
+ if inhtml == 'y':
+ s2 = l + '\n' + ""
+ else:
+ s2 = l + '\n'
+ inpre = 'n'
+ return s2, inpre
+ if inpre == 'y' and inhtml == 'n':
+ outi += [""]
+ for c in l:
+ if c == '<':
+ outi += ["<"]
+ elif c == '>':
+ outi += [">"]
+ elif c == "&":
+ outi += ["&"]
+ #elif c == "'":
+ # outi += ["'"]
+ elif c == '"':
+ outi += ["""]
+ else:
+ outi += [c]
+ if inpre == 'y' and inhtml == 'n':
+ outi += [""]
+ outi += ["\n"]
+ s2 = ''.join(outi)
+ return s2,inpre
+
+def paraline(name,linea):
+ inpre = 'n'
+ out = ''
+ if len(linea) <1:
+ out = "
" + name + ":"+ "
"
+ return out
+ out = "" + name + ": "
+ out +=linea
+ out += "
"
+ return out;
+
+def paralines(name,lines):
+ inpre = 'n'
+ if len(lines) <1:
+ out = "" + name + ":"+ "
"
+ return out
+ out = "" + name + ": "
+ for lin in lines:
+ f,inpre = xmlize(lin,'y',inpre)
+ out += f
+ out += "
"
+ return out;
+
+def para(name,str):
+ if str == None:
+ out = "" + name + ":"+ "
"
+ elif len(str) > 0:
+ out = "" + name + ": " + str + "
"
+ else:
+ out = "" + name + ":"+ "
"
+ return out
+
+
+class bugrecord:
+
+ def __init__(self,dwid):
+ self._id= dwid.strip()
+ self._cve = ''
+ self._datereported = ''
+ self._reportedby = ''
+ self._vulnerability = []
+ self._product = ''
+ self._description = []
+ self._datefixed = ''
+ self._references = []
+ self._gitfixid = ''
+ self._tarrelease = ''
+
+ def setcve(self,pubid):
+ if self._cve != '':
+ print("Duplicate cve ",self._cve,pubid)
+ sys.exit(1)
+ self._cve = pubid.strip()
+ def setdatereported(self,rep):
+ if self._datereported != '':
+ print("Duplicate datereported ",self._datereported,rep)
+ sys.exit(1)
+ self._datereported = rep.strip()
+ def setreportedby(self,rep):
+ if self._reportedby != '':
+ print("Duplicate reportedby ",self._reportedby,rep)
+ sys.exit(1)
+ self._reportedby = rep.strip()
+ def setvulnerability(self,vuln):
+ if len(self._vulnerability) != 0:
+ print("Duplicate vulnerability ",self._vulnerability,vuln)
+ sys.exit(1)
+ self._vulnerability = vuln
+ def setproduct(self,p):
+ if len(self._product) != 0:
+ print("Duplicate product ",self._product,p)
+ sys.exit(1)
+ self._product = p.strip()
+ def setdescription(self,d):
+ if len(self._description) != 0:
+ print("Duplicate description ",self._description,d)
+ sys.exit(1)
+ self._description = d
+ def setdatefixed(self,d):
+ if len(self._datefixed) != 0:
+ print("Duplicate datefixed ",self._datefixed,d)
+ sys.exit(1)
+ self._datefixed = d.strip()
+ def setreferences(self,r):
+ if len(self._references) != 0:
+ print("Duplicate references ",self._references,r)
+ sys.exit(1)
+ self._references = r
+ def setgitfixid(self,g):
+ if len(self._gitfixid) != 0:
+ print("Duplicate gitfixid ",self._gitfixid,g)
+ sys.exit(1)
+ self._gitfixid = g.strip()
+ def settarrelease(self,g):
+ if len(self._tarrelease) != 0:
+ print("Duplicate tarrelease ",self._tarrelease,g)
+ sys.exit(1)
+ self._tarrelease = g.strip()
+ def plist(self,title,lines):
+ if lines == None:
+ print(title)
+ return
+ if len(lines) == 1:
+ print(title,lines[0])
+ return
+ print(title)
+ for l in lines:
+ print(l)
+
+ def printbug(self):
+ print("")
+ print("id:",self._id)
+ print("cve:",self._cve)
+ print("datereported:",self._datereported)
+ print("reportedby:",self._reportedby)
+ self.plist("vulnerability:",self._vulnerability)
+ print("product:",self._product)
+ self.plist("description:",self._description)
+ print("datefixed:",self._datefixed)
+ self.plist("references:",self._references)
+ print("gitfixid:",self._gitfixid)
+ print("tarrelease:",self._tarrelease)
+
+ def generate_html(self):
+ s5= ''.join(self._id)
+ t = ''.join(['',self._id,'
'])
+ txt = [t]
+
+ inpre = 'n'
+ s,inp= xmlize(self._id,'y',inpre)
+ t = paraline("id",s)
+ txt += [t]
+ s,inp= xmlize(self._cve,'y',inpre)
+ t = paraline("cve",s)
+ txt += [t]
+
+ s,inp= xmlize(self._datereported,'y',inpre)
+ t = paraline("datereported",s)
+ txt += [t]
+
+ s,inp= xmlize(self._reportedby,'y',inpre)
+ t = paraline("reportedby",s)
+ txt += [t]
+
+ #MULTI
+ t = paralines("vulnerability",self._vulnerability)
+ txt += [t]
+
+
+ s,inp= xmlize(self._product,'y',inpre)
+ t = paraline("product",s)
+ txt += [t]
+
+ #MULTI
+ t = paralines("description",self._description)
+ txt += [t]
+
+ s,inp= xmlize(self._datefixed,'y',inpre)
+ t = paraline("datefixed",s)
+ txt += [t]
+
+ #MULTI
+ t = paralines("references",self._references)
+ txt += [t]
+
+ s,inp= xmlize(self._gitfixid,'y',inpre)
+ t = paraline("gitfixid",s)
+ txt += [t]
+
+ s,inp= xmlize(self._tarrelease,'y',inpre)
+ t = paraline("tarrelease",s)
+ txt += [t]
+
+ t = ' [top]
'
+ txt += [t]
+ return txt
+
+ def paraxml(self,start,main,term):
+ # For single line xml remove the newline from the main text line.
+ out = start
+ l=main.strip()
+ if len(l) > 0:
+ out += l
+ out += term + "\n"
+ return out
+ def paraxmlN(self,start,main,term):
+ # For multi line xml leave newlines present.
+ out = start
+ inpre = 'n'
+ for x in main:
+ l=x.rstrip()
+ t,inpre = xmlize(l,'n',inpre);
+ if len(t) > 0:
+ out += t
+ out += term + "\n"
+ return out
+
+
+ def generate_xml(self):
+ txt=[]
+ t = ''
+ txt += [t]
+
+ inpre = 'n'
+ s,inpre= xmlize(self._id,'n',inpre)
+ s = self.paraxml('',s,'')
+
+ s,inpre= xmlize(self._cve,'n',inpre)
+ t = self.paraxml('',s,'')
+ txt += [t]
+
+ s,inpre= xmlize(self._datereported,'n',inpre)
+ t = self.paraxml('',s,'')
+ txt += [t];
+
+ s,inpre= xmlize(self._reportedby,'n',inpre)
+ t = self.paraxml('',s,'')
+ txt += [t];
+
+ s,inpre= xmlize(self._product,'n',inpre)
+ t = self.paraxml('',s,'')
+ txt += [t];
+
+
+ #MULTI
+ p = self._vulnerability
+ t = self.paraxmlN("",p,"")
+ txt += [t]
+
+
+ #MULTI
+ p = self._description
+ t = self.paraxmlN("",p,"")
+ txt += [t]
+
+
+ s,inpre= xmlize(self._datefixed,'n',inpre)
+ t = self.paraxml('',s,'')
+ txt += [t];
+
+ #MULTI
+ p = self._references
+ t = self.paraxmlN("",p,"")
+ txt += [t]
+
+ s,inpre= xmlize(self._gitfixid,'n',inpre)
+ t = self.paraxml('',s,'')
+ txt += [t];
+
+ s,inpre= xmlize(self._tarrelease,'n',inpre)
+ t = self.paraxml('',s,'')
+ txt += [t];
+
+ t = ''
+ txt += [t];
+ return txt
diff --git a/dwarf-compilation.base/contrib/libdwarf/bugxml/data.template b/dwarf-compilation.base/contrib/libdwarf/bugxml/data.template
new file mode 100644
index 0000000..c45f3e0
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/bugxml/data.template
@@ -0,0 +1,14 @@
+id:
+cve:
+datereported:
+reportedby:
+vulnerability:
+product:
+description:
+datefixed:
+references:
+gitfixid:
+endrec:
+
+
+
diff --git a/dwarf-compilation.base/contrib/libdwarf/bugxml/data.txt b/dwarf-compilation.base/contrib/libdwarf/bugxml/data.txt
new file mode 100644
index 0000000..0cc1a0e
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/bugxml/data.txt
@@ -0,0 +1,1232 @@
+
+id: DW201711-002
+cve:
+datereported: 2017-11-08
+reportedby: Agostino Sarubbo
+vulnerability: Incorrect line table section could crash caller
+product: libdwarf
+description: An carefully crafted object with a
+ invalid line table section crafted to
+ end early at a particular point resulted in
+ dereferencing outside the line table from
+ libdwarf/dwarf_line_table_reader_common.c .
+ A segmentation-fault/core-dump is possible.
+datefixed: 2017-11-08
+references: regressiontests/sarubbo-9/3.crashes.bin
+gitfixid: a1644f4dde7dd5990537ff7ad22a9e94b8723186
+tarrelease:
+endrec: DW201711-002
+
+id: DW201711-001
+cve:
+datereported: 2017-11-01
+reportedby: Agostino Sarubbo
+vulnerability: Incorrect frame section could crash caller
+product: libdwarf
+description: A carefully crafted object with a
+ resulting invalid frame section
+ with DW_CFA_advance_loc1 implying
+ data off-the-end-of-section
+ will dereference an invalid pointer.
+ A segmentation fault and core dump is possible.
+ Corrected code checks now.
+datefixed: 2017-11-02
+references: regressiontests/sarubbo-8/1.crashes.bin
+gitfixid: 44349d7991e44dd3751794f76537cabcf65ee28d
+tarrelease:
+endrec: DW201711-001
+
+
+
+
+id: DW201709-001
+cve:
+datereported: 2017-09-19
+reportedby: Agostino Sarubbo
+vulnerability: Incorrect abbrev section could crash caller.
+product: libdwarf
+description: A fuzzed object with a
+ resulting invalid abbrev section where
+ the end of section follows an abbrev tag
+ would dereference a non-existent has-child byte.
+
+datefixed: 2017-09-26
+references: regressiontests/sarubbo-3/1.crashes.bin
+gitfixid: bcc2e33908e669bacd397e3c941ffd1db3005d17
+tarrelease:
+endrec: DW201709-001
+
+
+id: DW201706-001
+cve: CVE-2017-9998
+datereported: 2017-06-28
+reportedby: team OWL337
+vulnerability: Addition overflow in libdwarf leads to segmentation violation
+product: libdwarf
+description: A fuzzed object with a
+ resulting invalid value can overflow
+ when added to a valid pointer
+ (depending on how the runtime memory is laid out)
+ and thereafter a dereference results in a
+ segmentation violation).
+
+ see
+ https://bugzilla.redhat.com/show_bug.cgi?id=1465756
+ for contact information of those finding the bug.
+ Fabian Wolff sent email and provided
+ the link to the web page.
+
+
+datefixed: 2017-07-06
+references: regressiontests/wolff/POC1
+gitfixid: e91681e8841291f57386f26a90897fd1dcf92a6e
+tarrelease:
+endrec: DW201706-001
+
+
+
+id: DW201703-007
+cve:
+datereported: 2017-03-21
+reportedby: Marcel Bohme and Van-Thuan Pham
+vulnerability: Heap overflow in strncmp (libelf bug)
+product: libdwarf (libelf)
+description: 7/7. A heap overflow in
+ strncmp() is due to libelf failing to check arguments
+ to elf_ strptr.
+ This is not a bug in libdwarf, it is a libelf bug.
+ A pointer for being in bounds (in a few places in this
+ function) and a failure in a check in dwarf_attr_list().
+ The test object is intentionally corrupted (fuzzed).
+
+
+ A portion of sanitizer output with Ubuntu 14.04:
+ ==180133==ERROR: AddressSanitizer: heap-buffer-overflow
+ on address 0x60d00000cff1 at pc 0x0000004476f4
+ bp 0x7fff87dd7dd0 sp 0x7fff87dd7590
+ READ of size 8 at 0x60d00000cff1 thread T0
+ #0 0x4476f3 in __interceptor_strncmp (/home/ubuntu/subjects/
+ build-asan/libdwarf/dwarfdump/dwarfdump+0x4476f3)
+ #1 0x7992ae in this_section_dwarf_relevant /home/ubuntu/subjects/
+ build-asan/libdwarf/libdwarf/dwarf_init_finish.c:608:13
+ #2 0x781064 in _dwarf_setup /home/ubuntu/subjects/
+ build-asan/libdwarf/libdwarf/dwarf_init_finish.c:722:14
+ #3 0x77d59c in dwarf_object_init /home/ubuntu/subjects/
+ build-asan/libdwarf/libdwarf/dwarf_init_finish.c:922:20
+
+ With Ubuntu 16.04 libelf dwarfdump gets:
+ ERROR: dwarf_elf_init: DW_DLE_ELF_STRPTR_ERROR (30)
+ a call to elf_strptr() failed trying to get a section name
+
+
+
+datefixed:
+references: regressiontests/marcel/crash7
+gitfixid:
+tarrelease: libdwarf-20160507.tar.gz
+endrec: DW201703-007
+
+
+id: DW201703-006
+cve: CVE-2017-9052
+datereported: 2017-03-21
+reportedby: Marcel Bohme and Van-Thuan Pham
+vulnerability: Heap overflow in dwarf_formsdata
+product: libdwarf
+description: 6/7. A heap overflow in
+ dwarf_formsdata() is due to a failure to check
+ a pointer for being in bounds (in a few places in this
+ function) and a failure in a check in dwarf_attr_list().
+ The test object is intentionally corrupted (fuzzed).
+
+
+ A portion of sanitizer output with Ubuntu 14.04:
+ ==180130==ERROR: AddressSanitizer: heap-buffer-overflow
+ on address 0x61100000589c at pc 0x0000006cab95
+ bp 0x7fff749aab10 sp 0x7fff749aab08
+ READ of size 1 at 0x61100000589c thread T0
+ #0 0x6cab94 in dwarf_formsdata /home/ubuntu/subjects/
+ build-asan/libdwarf/libdwarf/dwarf_form.c:937:9
+ #1 0x567daf in get_small_encoding_integer_and_name /home/ubuntu/subjects/
+ build-asan/libdwarf/dwarfdump/print_die.c:1533:16
+ #2 0x562f28 in get_attr_value /home/ubuntu/subjects/
+ build-asan/libdwarf/dwarfdump/print_die.c:5030:24
+ #3 0x555f86 in print_attribute /home/ubuntu/subjects/
+ build-asan/libdwarf/dwarfdump/print_die.c:3357:13
+
+ After fixes applied dwarfdump says:
+ ERROR: dwarf_attrlist: DW_DLE_DW_DLE_ATTR_OUTSIDE_SECTION(281)
+
+
+datefixed: 2017-03-21
+references: regressiontests/marcel/crash6
+gitfixid: cc37d6917011733d776ae228af4e5d6abe9613c1
+tarrelease: libdwarf-20160507.tar.gz
+endrec: DW201703-006
+
+
+
+id: DW201703-005
+cve: CVE-2017-9053
+datereported: 2017-03-21
+reportedby: Marcel Bohme and Van-Thuan Pham
+vulnerability: Heap overflow in _dwarf_read_loc_expr_op()
+product: libdwarf
+description: 5/7. A heap overflow in
+ _dwarf_read_loc_expr_op() is due to a failure to check
+ a pointer for being in bounds (in a few places in this
+ function).
+ The test object is intentionally corrupted (fuzzed).
+
+
+ A portion of sanitizer output with Ubuntu 14.04:
+ ==180112==ERROR: AddressSanitizer: heap-buffer-overflow
+ on address 0x60800000bf72 at pc 0x00000084dd52
+ bp 0x7ffc12136fd0 sp 0x7ffc12136fc8
+ READ of size 1 at 0x60800000bf72 thread T0
+ #0 0x84dd51 in _dwarf_read_loc_expr_op /home/ubuntu/subjects/
+ build-asan/libdwarf/libdwarf/./dwarf_loc.c:250:9
+ #1 0x841f16 in _dwarf_get_locdesc_c /home/ubuntu/subjects/
+ build-asan/libdwarf/libdwarf/./dwarf_loc2.c:109:15
+ #2 0x837d08 in dwarf_get_loclist_c /home/ubuntu/subjects/
+ build-asan/libdwarf/libdwarf/./dwarf_loc2.c:685:18
+ #3 0x57dff2 in get_location_list /home/ubuntu/subjects/
+ build-asan/libdwarf/dwarfdump/print_die.c:3812:16
+
+ After fixes applied dwarfdump says:
+ ERROR: dwarf_get_loclist_c: DW_DLE_LOCEXPR_OFF_SECTION_END
+ (343) Corrupt dwarf
+
+
+datefixed: 2017-03-21
+references: regressiontests/marcel/crash5
+gitfixid: cc37d6917011733d776ae228af4e5d6abe9613c1
+tarrelease: libdwarf-20160507.tar.gz
+endrec: DW201703-005
+
+id: DW201703-004
+cve:
+datereported: 2017-03-21
+reportedby: Marcel Bohme and Van-Thuan Pham
+vulnerability: Heap overflow in set_up_section strlen
+product: libdwarf (libelf)
+description: 4/7. An apparent heap overflow that
+ gives the appearance of being in libdwarf is due to
+ libelf call elf_strptr() failing to fully check
+ that its arguments make sense.
+ This is not a bug in libdwarf, it is a libelf bug.
+ The test object is intentionally corrupted (fuzzed).
+ The submission was with Ubuntu 14.04. With Ubuntu
+ 16.04 there is no sanitizer error report.
+
+
+ A portion of sanitizer output with Ubuntu 14.04:
+ ==180109==ERROR: AddressSanitizer: heap-buffer-overflow
+ on address 0x60b00000b000 at pc 0x00000048fd12
+ bp 0x7fff4ad31ef0 sp 0x7fff4ad316b0
+ READ of size 16 at 0x60b00000b000 thread T0
+ #0 0x48fd11 in __interceptor_strlen (/home/ubuntu/
+ subjects/build-asan/libdwarf/dwarfdump/dwarfdump+0x48fd11)
+ #1 0x7a84a4 in set_up_section /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/dwarf_init_finish.c:285:27
+ #2 0x79aaa5 in enter_section_in_de_debug_sections_array /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/dwarf_init_finish.c:355:5
+ #3 0x78170b in _dwarf_setup /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/dwarf_init_finish.c:746:19
+
+ With Ubuntu 16.04 libelf one gets:
+ ERROR: dwarf_elf_init: DW_DLE_ELF_STRPTR_ERROR (30)
+ a call to elf_strptr() failed trying to get a section name
+
+datefixed:
+references: regressiontests/marcel/crash4
+gitfixid:
+tarrelease: libdwarf-20160507.tar.gz
+endrec: DW201703-004
+
+
+
+id: DW201703-003
+cve:
+datereported: 2017-03-21
+reportedby: Marcel Bohme and Van-Thuan Pham
+vulnerability: Heap overflow in strcmp
+product: libdwarf (libelf)
+description: 3/7. An apparent heap overflow that
+ gives the appearance of being in libdwarf is due to
+ libelf call elf_strptr() failing to fully check
+ that its arguments make sense.
+ This is not a bug in libdwarf, it is a libelf bug.
+ The test object is intentionally corrupted (fuzzed).
+ The submission was with Ubuntu 14.04. With Ubuntu
+ 16.04 there is no sanitizer error report.
+
+
+ A portion of sanitizer output with Ubuntu 14.04:
+ ==180106==ERROR: AddressSanitizer: heap-buffer-overflow
+ on address 0x60f00000ef09 at pc 0x000000447300
+ bp 0x7ffc667dce10 sp 0x7ffc667dc5d0
+ READ of size 4 at 0x60f00000ef09 thread T0
+ #0 0x4472ff in __interceptor_strcmp (/home/ubuntu/
+ subjects/build-asan/libdwarf/dwarfdump/dwarfdump+0x4472ff)
+ #1 0x79938f in this_section_dwarf_relevant /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/dwarf_init_finish.c:612:12
+ #2 0x781064 in _dwarf_setup /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/dwarf_init_finish.c:722:14
+ #3 0x77d59c in dwarf_object_init /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/dwarf_init_finish.c:922:20
+ #4 0x899d4f in dwarf_elf_init_file_ownership /
+
+ With Ubuntu 16.04 libelf one gets:
+ ERROR: dwarf_elf_init: DW_DLE_ELF_STRPTR_ERROR (30)
+ a call to elf_strptr() failed trying to get a section name
+
+datefixed:
+references: regressiontests/marcel/crash3
+gitfixid:
+tarrelease: libdwarf-20160507.tar.gz
+endrec: DW201703-003
+
+
+id: DW201703-002
+cve: CVE-2017-9054
+datereported: 2017-03-21
+reportedby: Marcel Bohme and Van-Thuan Pham
+vulnerability: Heap overflow in _dwarf_decode_s_leb128_chk()
+product: libdwarf
+description: 2/7. In _dwarf_decode_s_leb128_chk()
+ a byte pointer was dereferenced just before was checked
+ as being in bounds.
+ The test object is intentionally corrupted (fuzzed).
+
+
+ A portion of sanitizer output:
+ .debug_line: line number info for a single cu
+ ==180103==ERROR: AddressSanitizer: heap-buffer-overflow
+ on address 0x610000007ffc at pc 0x0000007b0f5b
+ bp 0x7ffe06bbf510 sp 0x7ffe06bbf508
+ READ of size 1 at 0x610000007ffc thread T0
+ #0 0x7b0f5a in _dwarf_decode_s_leb128_chk /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/dwarf_leb.c:304:9
+ #1 0x7e753e in read_line_table_program /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/./
+ dwarf_line_table_reader_common.c:1167:17
+ #2 0x7d7fe3 in _dwarf_internal_srclines /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/./dwarf_line.c:690:15
+ #3 0x7f9dbb in dwarf_srclines_b /home/ubuntu/
+ subjects/build-asan/libdwarf/libdwarf/./dwarf_line.c:944:12
+ #4 0x5caaa5 in print_line_numbers_this_cu /home/ubuntu/
+ subjects/build-asan/libdwarf/dwarfdump/print_lines.c:762:16
+
+ After fix applied one gets:
+ ERROR: dwarf_srclines: DW_DLE_LEB_IMPROPER (329)
+ Runs off end of section or CU
+
+
+datefixed: 2017-03-21
+references: regressiontests/marcel/crash2
+gitfixid: cc37d6917011733d776ae228af4e5d6abe9613c1
+tarrelease: libdwarf-20160507.tar.gz
+endrec: DW201703-002
+
+
+id: DW201703-001
+cve: CVE-2017-9055
+datereported: 2017-03-21
+reportedby: Marcel Bohme and Van-Thuan Pham
+vulnerability: Heap overflow in dwarf_formsdata
+product: libdwarf
+description: 1/7. In dwarf_formsdata() a few
+ data types were not checked as being in bounds.
+ The test object is intentionally corrupted (fuzzed).
+
+
+ A portion of sanitizer output:
+ LOCAL_SYMBOLS:
+ < 1><0x0000002f> DW_TAG_subprogram
+
+ ==180088==ERROR: AddressSanitizer: heap-buffer-overflow on
+ address 0x60800000bf72 at pc 0x0000006cab95 bp
+ 0x7fff31425830 sp 0x7fff31425828
+ READ of size 1 at 0x60800000bf72 thread T0
+ #0 0x6cab94 in dwarf_formsdata /home/ubuntu/subjects/
+ build-asan/libdwarf/libdwarf/dwarf_form.c:937:9
+ #1 0x567daf in get_small_encoding_integer_and_name /home/
+ ubuntu/subjects/build-asan/libdwarf/dwarfdump/print_die.c:1533:16
+ #2 0x576f38 in check_for_type_unsigned /home/ubuntu/
+ subjects/build-asan/libdwarf/dwarfdump/print_die.c:4301:11
+ #3 0x56ad8c in formxdata_print_value /home/ubuntu/
+ subjects/build-asan/libdwarf/dwarfdump/print_die.c:4374:39
+ #4 0x5643be in get_attr_value /home/ubuntu/
+ subjects/build-asan/libdwarf/dwarfdump/print_die.c:5140:24
+ #5 0x555f86 in print_attribute /home/ubuntu/subjects/build
+ ...
+
+ After fixes applied dwarfdump gets:
+ ERROR: dwarf_attrlist: DW_DLE_DW_DLE_ATTR_OUTSIDE_SECTION(281)
+
+datefixed: 2017-03-21
+references: regressiontests/marcel/crash1
+gitfixid: cc37d6917011733d776ae228af4e5d6abe9613c1
+tarrelease: libdwarf-20160507.tar.gz
+endrec: DW201703-001
+
+
+
+
+
+id: DW201611-006
+cve: CVE-2016-9480
+datereported: 2016-11-14
+reportedby: Puzzor (Shi Ji)
+vulnerability: Heap buffer overflow
+product: libdwarf
+description: An object with corrupt contents causes a memory reference
+ out of bounds, a heap buffer overflow reference.
+
+ heap-buffer-overflow in dwarf_util.c:208 for val_ptr
+
+ # Version
+ bb9a3492ac5713bed9cf3ae58ddb7afa6e9e98f8
+ (in regression tests here named heap_buf_overflow.o)
+
+
+ # ASAN Output
+ <0> tag: 17 DW_TAG_compile_unit name: "strstrnocase.c" FORM 0xe "DW_FORM_strp"
+ <1> tag: 46 DW_TAG_subprogram name: "is_strstrnocase" FORM 0xe "DW_FORM_strp"
+ =================
+ ==1666==ERROR: AddressSanitizer: heap-buffer-overflow on address
+ 0xb5846db9 at p
+ c 0x080b3a1b bp 0xbfa75d18 sp 0xbfa75d08
+ READ of size 1 at 0xb5846db9 thread T0
+ #0 0x80b3a1a in _dwarf_get_size_of_val /home/puzzor/libdwarf-code/
+ libdwarf/dwarf_util.c:208
+ #1 0x8056602 in _dwarf_next_die_info_ptr /home/puzzor/libdwarf-code/
+ libdwarf/dwarf_die_deliv.c:1353
+ #2 0x8057f4b in dwarf_child /home/puzzor/libdwarf-code/libdwarf/
+ dwarf_die_de liv.c:1688
+ #3 0x804b5fa in get_die_and_siblings simplereader.c:637
+ #4 0x804b65c in get_die_and_siblings simplereader.c:643
+ #5 0x804b3f3 in read_cu_list simplereader.c:611
+ #6 0x804aeae in main simplereader.c:533
+ #7 0xb6ffe275 in __libc_start_main (/lib/i386-linux-gnu/libc.so.6+0x18275)
+ #8 0x80491c0 (/home/puzzor/libdwarf-code/dwarfexample/simplereader+
+ 0x80491c 0)
+
+ 0xb5846db9 is located 0 bytes to the right of 249-byte region
+ [0xb5846cc0,0xb5846db9)
+ allocated by thread T0 here:
+ #0 0xb727fae4 in __interceptor_malloc (/usr/lib/i386-linux-gnu/libasan.so.
+ 3+ 0xc3ae4)
+ #1 0xb71a9b98 (/usr/lib/i386-linux-gnu/libelf.so.1+0x9b98)
+
+ For the orignal bug report see
+
+ https://sourceforge.net/p/libdwarf/bugs/5/
+
+datefixed: 2016-11-16
+references: regressiontests/puzzor/heap_buf_overflow.o
+gitfixid: 5dd64de047cd5ec479fb11fe7ff2692fd819e5e5
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
+
+id: DW201611-005
+cve:
+datereported: 2016-11-11
+reportedby: Agostino Sarubbo
+vulnerability: negation of -9223372036854775808 cannot be represented in type
+product: libdwarf
+description: With the right bit pattern in a signed leb number
+ the signed leb decode would execute an unary minus with undefined
+ effect. This is not known to generate an incorrect value,
+ but it could, one supposes.
+datefixed: 2016-11-11
+references: regressiontests/sarubbo-2/00050-libdwarf-negate-itself
+gitfixid: 4f19e1050cd8e9ddf2cb6caa061ff2fec4c9b5f9
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
+id: DW201611-004
+cve:
+datereported: 2016-11-02
+reportedby: Agostino Sarubbo
+vulnerability: Heap overflow in dwarf_skim_forms()
+product: libdwarf
+description: If a non-terminated string
+ in a DWARF5 macro section
+ ends a section it can result in accessing memory not
+ in the application. dwarf_macro5.c(in _dwarf_skim_forms()).
+datefixed: 2016-11-04
+references: regressiontests/sarubbo-2/00027-libdwarf-heapoverflow-_dwarf_skim_forms
+gitfixid: 583f8834083b5ef834c497f5b47797e16101a9a6
+endrec:
+
+id: DW201611-003
+cve:
+datereported: 2016-11-02
+reportedby: Agostino Sarubbo
+vulnerability: Bad aranges length leads to overflow and bad pointer
+product: libdwarf
+description: in dwarf_arange.c(dwarf_get_aranges_list) an aranges
+ header with corrupt data could, with an overflowing calculation,
+ result in pointers to invalid or inappropriate memory being
+ dereferenced.
+datefixed: 2016-11-04
+references: regressiontests/sarubbo-2/00026-libdwarf-heapoverflow-dwarf_get_aranges_list
+gitfixid: 583f8834083b5ef834c497f5b47797e16101a9a6
+tarrelease: libdwarf-20170416.tar.gz
+endrec:
+
+
+id: DW201611-002
+cve:
+datereported: 2016-11-02
+reportedby: Agostino Sarubbo
+vulnerability: heap overflow in get_attr_value
+product: libdwarf
+description: Libdwarf failed to check for a bogus
+ length in dwarf_form.c (dwarf_formblock()) resulting
+ in a pointer pointing outside of the intended memory
+ region. Anything could happen in the subsequent
+ use of the bogus pointer.
+
+ 0x61300000de1c is located 0 bytes to the right of 348-byte region
+ [0x61300000dcc0,0x61300000de1c)
+ allocated by thread T0 here:
+ #0 0x4c0ad8 in malloc /var/tmp/portage/sys-devel/llvm-3.8.1-
+ r2/work/llvm-3.8.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:52
+ #1 0x7f883cfc6206 in __libelf_set_rawdata_wrlock /tmp/portage/dev-
+ libs/elfutils-0.166/work/elfutils-0.166/libelf/elf_getdata.c:318
+
+datefixed: 2016-11-04
+references: regressiontests/sarubbo-2/00025-libdwarf-heapoverflow-get_attr_value
+gitfixid: 583f8834083b5ef834c497f5b47797e16101a9a6
+tarrelease: libdwarf-20170416.tar.gz
+endrec:
+
+id: DW201611-001
+cve:
+datereported: 2016-11-02
+reportedby: Agostino Sarubbo
+vulnerability: Memory allocation failure in do_decompress_zlib
+product: libdwarf
+description: In decompressing a zlib compressed section if
+ the decompressed section size is nonsense (too large)
+ an attempted malloc will fail and could let an exception
+ propagate to callers.
+
+ ==27994==WARNING: AddressSanitizer failed to allocate 0x62696c2f7273752f
+ bytes ==27994==AddressSanitizer's allocator is terminating the process
+ instead of returning 0
+ ...
+ #6 0x4c0ab1 in malloc /var/tmp/portage/sys-devel/llvm-3.8.1-
+r2/work/llvm-3.8.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:53
+#7 0x5b582e in do_decompress_zlib
+/tmp/dwarf-20161021/libdwarf/dwarf_init_finish.c:1085:12
+ #8 0x5b582e in _dwarf_load_section
+/tmp/dwarf-20161021/libdwarf/dwarf_init_finish.c:1159
+ #9 0x5bb479 in dwarf_srcfiles
+/tmp/dwarf-20161021/libdwarf/./dwarf_line.c:336:11
+ #10 0x5145cd in print_one_die_section
+
+datefixed: 2016-11-04
+references: regressiontests/sarubbo-2/00024-libdwarf-memalloc-do_decompress_zlib
+gitfixid: 583f8834083b5ef834c497f5b47797e16101a9a6
+tarrelease: libdwarf-20170416.tar.gz
+endrec:
+
+
+
+
+id: DW201609-004
+cve:
+datereported: 20160917
+reportedby: Puzzor
+vulnerability: libdwarf 20160613 Out-of-Bounds read
+product: libdwarf
+description: read line table program Out-of-Bounds read
+ line_ptr in dwarf_line_table_reader_common.c:1433 Out-of-Bounds read
+ See:
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1377015
+ https://sourceforge.net/p/libdwarf/bugs/4/
+
+
+ # Address Sanitizer Output
+ ==27763==ERROR: AddressSanitizer: heap-buffer-overflow on address 0xf4603f84 at pc 0x8408ede bp 0xffff6518 sp 0xffff6510
+ READ of size 1 at 0xf4603f84 thread T0
+ #0 0x8408edd in read_line_table_program /home/puzzor/test-fuzzing/code/libdwarf/./dwarf_line_table_reader_common.c:1433
+ #1 0x83f716c in _dwarf_internal_srclines /home/puzzor/test-fuzzing/code/libdwarf/./dwarf_line.c:690
+ #2 0x841436c in dwarf_srclines_b /home/puzzor/test-fuzzing/code/libdwarf/./dwarf_line.c:944
+ #3 0x81fbc28 in print_line_numbers_this_cu /home/puzzor/test-fuzzing/code/dwarfdump/print_lines.c:763
+ #4 0x815c191 in print_one_die_section /home/puzzor/test-fuzzing/code/dwarfdump/print_die.c:850
+ #5 0x81565c1 in print_infos /home/puzzor/test-fuzzing/code/dwarfdump
+
+datefixed: 20160923
+references: regressiontests/DW201609-004/poc
+gitfixid: 3767305debcba8bd7e1c483ae48c509d25399252
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+
+
+id: DW201609-003
+cve: CVE-2016-7410
+datereported: 20160913
+reportedby: https://marc.info/?l=oss-security&m=147391785920048&w=2
+vulnerability: libdwarf 20160613 heap-buffer-overflow
+product: libdwarf
+description: With AddressSanitizer,
+ we found a Heap-Buffer-overflow in the latest
+ release version of dwarfdump. The crash output is as follows:
+
+ See also:
+ https://marc.info/?l=oss-security&m=147378394815872&w=2
+ The testcase poc is from this web page.
+
+
+ ==17411==ERROR: AddressSanitizer: heap-buffer-overflow on address
+ 0xf3808904 at pc 0x80a6f76 bp 0xffb95e78 sp 0xffb95a5c
+ READ of size 4 at 0xf3808904 thread T0
+ ==17411==WARNING: Trying to symbolize code, but external symbolizer is
+ not initialized!
+ #0 0x80a6f75 in __interceptor_memcpy ??:?
+ #1 0x8426c3b in _dwarf_read_loc_section
+ /home/starlab/fuzzing/dwarf-20160613/libdwarf/./dwarf_loc.c:919
+ #2 0x84250e2 in _dwarf_get_loclist_count
+ /home/starlab/fuzzing/dwarf-20160613/libdwarf/./dwarf_loc.c:970
+ #3 0x8438826 in dwarf_get_loclist_c
+ /home/starlab/fuzzing/dwarf-20160613/libdwarf/./dwarf_loc2.c:551
+ #4 0x81a1be8 in get_location_list
+ /home/starlab/fuzzing/dwarf-20160613/dwarfdump/print_die.c:3523
+ #5 0x816e1a2 in print_attribute
+
+ _dwarf_get_loclist_header_start() is not cautious about values
+ in the header being absurdly large.
+ Unclear as yet if this is the problem
+ but it is a potential problem (fixed for next release).
+
+ Address Sanitizer in gcc reproduces the report.
+ In _dwarf_read_loc_section() the simple calculation of
+ loc_section_end was wrong, so end-of section was
+ incorrect for the local reads.
+ With that fixed we get DW_DLE_READ_LITTLEENDIAN_ERROR when
+ libdwarf attempts to read off end of section.
+
+datefixed: 20160923
+references: regressiontests/DW201609-003/poc
+gitfixid: 3767305debcba8bd7e1c483ae48c509d25399252
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+id: DW201609-002
+cve: CVE-2016-7511
+datereported: 20160918
+reportedby: Shi Ji (@Puzzor)
+vulnerability: libdwarf 20160613 Integer Overflow
+product: libdwarf
+description: In dwarf_get_size_of_val() with
+ fuzzed DWARF data we get a SEGV.
+
+ See
+ https://sourceforge.net/p/libdwarf/bugs/3/
+
+
+ ==6825== ERROR: AddressSanitizer: SEGV on unknown address 0x0583903c (pc 0xb61f1a98 sp 0xbfa388b4 bp 0xbfa38d08 T0)
+ AddressSanitizer can not provide additional info.
+ #1 0xb61e3c0b (/usr/lib/i386-linux-gnu/libasan.so.0+0xdc0b)
+ #2 0x80a21b1 in _dwarf_get_size_of_val /home/fuzzing/fuzzing/dwarf-20160613/libdwarf/dwarf_util.c:210
+ #3 0x8054214 in _dwarf_next_die_info_ptr /home/fuzzing/fuzzing/dwarf-20160613/libdwarf/dwarf_die_deliv.c:1340
+ #4 0x80557a5 in dwarf_child /home/fuzzing/fuzzing/dwarf-20160613/libdwarf/dwarf_die_deliv.c:1640
+ #5 0x804b23f in get_die_and_siblings /home/fuzzing/fuzzing/dwarf-20160613/dwarfexample/./simplereader.c:573
+
+ _dwarf_make_CU_Context() is insufficiently cautious about
+ the length of a CU being absurd.
+ Unclear as yet if this is the problem
+ but it is a problem and is fixed for next release.
+datefixed: 20160923
+references: regressiontests/DW201609-002/DW201609-002-poc
+gitfixid: 3767305debcba8bd7e1c483ae48c509d25399252
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+
+id: DW201609-001
+cve:
+datereported: 20160916
+reportedby: STARLAB
+ https://sourceforge.net/p/libdwarf/bugs/2/
+vulnerability: libdwarf 20160613 die_info_ptr in dwarf_die_deliv.c: 1533 Out-Of_bounds
+product: libdwarf
+description: At line 1533 of dwarf_die_deliv.c a
+ pointer dereference is done with a pointer pointing
+ past the end of the CU data.
+
+ see
+ https://sourceforge.net/p/libdwarf/bugs/2/
+
+
+ ==8054==ERROR: AddressSanitizer: heap-buffer-overflow on
+ address 0xf4c027ab at pc 0x819e4a4 bp 0xff88eb38 sp 0xff88eb30
+ READ of size 1 at 0xf4c027ab thread T0
+ #0 0x819e4a3 in dwarf_siblingof_b /home/starlab/fuzzing/dwarf-20160613/libdwarf/dwarf_die_deliv.c:1533
+ #1 0x8116201 in print_die_and_children_internal /home/starlab/fuzzing/dwarf-20160613/dwarfdump/print_die.c:1157
+ Bug report on sourceforge.net bug list for libdwarf.
+ The bad pointer dereference is due to libdwarf
+ not noticing that the DWARF in that file is corrupt.
+ In addtion
+ The code was not noticing that it could dereference
+ a pointer that pointed out of bounds in the end-sibling-list
+ loop.
+
+
+ The example from the bug report (DW201609-001-poc) has
+ the same problem.
+ dwarfdump now reports DW_DLE_SIBLING_LIST_IMPROPER
+ on both test2.o and DW201609-001-poc.
+
+datefixed: 20160917
+references: regressiontests/DW201609-001/test2.o
+ regressiontests/DW201609-001/DW201609-001-poc
+gitfixid: 3767305debcba8bd7e1c483ae48c509d25399252
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+id: DW201605-019
+cve: CVE-2016-5028
+datereported: 20160523
+reportedby: Yue Liu
+vulnerability: Null dereference in print_frame_inst_bytes (dwarfdump)
+product: libdwarf
+description: The null dereference is due to a corrupted
+ object file. Libdwarf was not dealing with empty (bss-like)
+ sections since it really did not expect to see such in
+ sections it reads! Now libdwarf catches the object error
+ so dwarfdump sees the section as empty (as indeed it is!).
+datefixed: 20160523
+references: regressiontests/liu/NULLdeference0522c.elf
+gitfixid: a55b958926cc67f89a512ed30bb5a22b0adb10f4
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+id: DW201605-018
+cve: CVE-2016-5029
+datereported: 20160522
+reportedby: Yue Liu
+vulnerability: Null dereference in create_fullest_file_path().
+product: libdwarf
+description: The null dereference in create_fullest_file_path()
+ causes a crash. This is due to corrupted dwarf and the fix
+ detects this corruption and if that null string pointer
+ happens undetected a static string is substituted so
+ readers can notice the situation.
+
+ 202 }
+ 203 if (dirno > 0 && fe->fi_dir_index > 0) {
+ 204 inc_dir_name = (char *)
+ line_context->lc_include_directories[
+ 205 fe->fi_dir_index - 1];
+ 206 incdirnamelen = strlen(inc_dir_name); <- $pc
+ 207 }
+ 208 full_name = (char *) _dwarf_get_alloc(dbg,
+
+ #0 create_fullest_file_path (dbg=,
+ fe=0x68d510, line_context=0x68c4f0, name_ptr_out=, error=0x7fffffffe2b8) at ./dwarf_line.c:206
+
+ #1 0x00007ffff7b6d3f9 in dwarf_filename (context=, fileno_in=, ret_filename=0x7fffffffe280,
+ error=0x7fffffffe2b8) at ./dwarf_line.c:1418
+
+ #2 dwarf_linesrc (line=,
+ ret_linesrc=, error=) at
+ ./dwarf_line.c:1436
+
+datefixed: 20160522
+references: regressiontests/liu/NULLdereference0522.elf
+gitfixid: acae971371daa23a19358bc62204007d258fbc5e
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+
+
+id: DW201605-017
+cve: CVE-2016-5030
+datereported: 20160519
+reportedby: Yue Liu
+vulnerability: Null dereference bug in _dwarf_calculate_info_section_end_ptr().
+product: libdwarf
+description:
+ NULL dereference bug in _dwarf_calculate_info_section_end_ptr().
+
+ 1742 Dwarf_Off off2 = 0;
+ 1743 Dwarf_Small *dataptr = 0;
+ 1744
+ 1745 dbg = context->cc_dbg;
+ 1746 dataptr = context->cc_is_info? dbg->de_debug_info.dss_data: <- $pc
+ 1747 dbg->de_debug_types.dss_data;
+ 1748 off2 = context->cc_debug_offset;
+ 1749 info_start = dataptr + off2;
+ 1750 info_end = info_start + context->cc_length +
+
+ #0 _dwarf_calculate_info_section_end_ptr
+ (context=context@entry=0x0) at dwarf_query.c:1746
+
+ #1 0x00002aaaaace307d in
+ _dwarf_extract_string_offset_via_str_offsets
+ (dbg=dbg@entry=0x655a70, info_data_ptr=0x6629f0
+ "", attrnum=attrnum@entry=121,
+ attrform=attrform@entry=26, cu_context=0x0,
+ str_sect_offset_out=str_sect_offset_out@entry=0x7fffffffd718,
+ error=error@entry=0x7fffffffd878) at dwarf_form.c:1099
+
+ #2 0x00002aaaaacf4ed7 in dwarf_get_macro_defundef
+ (macro_context=macro_context@entry=0x65b790,
+ op_number=op_number@entry=1,
+ line_number=line_number@entry=0x7fffffffd858,
+ index=index@entry=0x7fffffffd860,
+ offset=offset@entry=0x7fffffffd868,
+ forms_count=forms_count@entry=0x7fffffffd7ce,
+ macro_string=macro_string@entry=0x7fffffffd870,
+ error=error@entry=0x7fffffffd878) at dwarf_macro5.c:557
+
+ ------
+
+ _dwarf_calculate_info_section_end_ptr (context=context@entry=0x0) at
+ dwarf_query.c:1746
+ 1746 dataptr = context->cc_is_info? dbg->de_debug_info.dss_data:
+ gef> p/x $rdi
+ $4 = 0x0
+
+datefixed: 20160522
+references: regressiontests/liu/NULLdereference0519.elf
+gitfixid: 6fa3f710ee6f21bba7966b963033a91d77c952bd
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+
+id: DW201605-016
+cve:
+datereported: 20160519
+reportedby: Yue Liu
+vulnerability: Invalid dwarf leads to
+ dwarfdump crash in print_frame_inst_bytes.
+product: dwarfdump
+description: Corrupted dwarf crashes dwarfdump
+
+ 1297 }
+ 1298 len = len_in;
+ 1299 endpoint = instp + len;
+ 1300 for (; len > 0;) {
+ 1301 unsigned char ibyte = *instp; <- $pc
+ 1302 int top = ibyte & 0xc0;
+ 1303 int bottom = ibyte & 0x3f;
+ 1304 int delta = 0;
+ 1305 int reg = 0;
+
+ #0 print_frame_inst_bytes (dbg=dbg@entry=0x655ca0,
+ cie_init_inst=, len_in=,
+ data_alignment_factor=-4, code_alignment_factor=4,
+ addr_size=addr_size@entry=4, offset_size=4, version=3,
+ config_data=config_data@entry=0x63cda0 )
+ at print_frames.c:1301
+
+ #1 0x000000000041b70c in print_one_cie
+ (dbg=dbg@entry=0x655ca0, cie=,
+ cie_index=cie_index@entry=2, address_size=,
+ config_data=config_data@entry=0x63cda0 )
+ at print_frames.c:1161
+
+ #2 0x000000000041cf52 in print_frames (dbg=0x655ca0,
+ print_debug_frame=print_debug_frame@entry=1, print_eh_frame=0,
+ config_data=config_data@entry=0x63cda0 )
+ at print_frames.c:2229
+
+ gef> p/x $r13
+ $1 = 0x4bcad8
+ gef> p/x *$r13
+ Cannot access memory at address 0x4bcad8
+
+datefixed: 20160522
+references: regressiontests/liu/OOB_READ0519.elf
+gitfixid: 6fa3f710ee6f21bba7966b963033a91d77c952bd
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+id: DW201605-015
+cve: CVE-2016-5031
+datereported: 20160517
+reportedby: Yue Liu
+vulnerability: OOB read bug in print_frame_inst_bytes()
+product: libdwarf
+description: Test object shows
+ an invalid read in print_frame_inst_bytes().
+
+ 1294 for (; len > 0;) {
+ 1295 unsigned char ibyte = *instp; <- $pc
+ 1296 int top = ibyte & 0xc0;
+
+ #0 print_frame_inst_bytes (dbg=dbg@entry=0x654c80,
+ cie_init_inst=, len=503715, data_alignment_factor=-4,
+ code_alignment_factor=1, addr_size=addr_size@entry=4, offset_size=4,
+ version=3, config_data=config_data@entry=0x63bda0
+ ) at print_frames.c:1295
+ #1 0x000000000041b64c in print_one_cie (dbg=dbg@entry=0x654c80,
+ cie=, cie_index=cie_index@entry=1,
+ address_size=, config_data=
+ config_data@entry=0x63bda0 ) at print_frames.c:1161
+ #2 0x000000000041ce92 in print_frames (dbg=0x654c80,
+ print_debug_frame=print_debug_frame@entry=1, print_eh_frame=0,
+ config_data=config_data@entry=0x63bda0 )
+ at print_frames.c:2209
+
+ gef> x/10x $r13
+ 0x5e7981: Cannot access memory at address 0x5e7981
+ gef> p/x $r13
+ $14 = 0x5e7981
+
+datefixed: 20150518
+references: regressiontests/liu/OOB0517_03.elf
+gitfixid: ac6673e32f3443a5d36c2217cb814000930b2c54
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+
+
+id: DW201605-014
+cve: CVE-2016-5032
+datereported: 20160517
+reportedby: Yue Liu
+vulnerability: OOB read bug in dwarf_get_xu_hash_entry()
+product: libdwarf
+description: Test object shows
+ an invalid read in dwarf_get _xu_hash_entry, lin 211.
+
+ #0 dwarf_get_xu_hash_entry (xuhdr=xuhdr@entry=0x657360,
+ index=index@entry=2897626028, hash_value=
+ hash_value@entry=0x7fffffffd5b0,
+ index_to_sections=index_to_sections@entry=0x7fffffffd5a8,
+ err=err@entry=0x7fffffffdb08) at dwarf_xu_index.c:211
+ #1 0x00002aaaaacfd05e in _dwarf_search_fission_for_key (
+ dbg=0x654a50, error=0x7fffffffdb08, percu_index_out=,
+ key_in=0x7fffffffd670, xuhdr=0x657360) at dwarf_xu_index.c:363
+ #2 dwarf_get_debugfission_for_key (dbg=dbg@entry=0x654a50,
+ key=key@entry=0x7fffffffd670, key_type=key_type@entry=0x2aaaaad15e2a
+ "tu", percu_out=percu_out@entry=0x65a830,
+ error=error@entry=0x7fffffffdb08) at dwarf_xu_index.c:577
+
+datefixed: 20150518
+references: regressiontests/liu/OOB0517_02.elf
+gitfixid: ac6673e32f3443a5d36c2217cb814000930b2c54
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+
+
+id: DW201605-013
+cve: CVE-2016-5033
+datereported: 20160517
+reportedby: Yue Liu
+vulnerability: OOB read bug in print_exprloc_content
+product: libdwarf
+description: Test object shows
+ an invalid write in print_exprloc_content.
+
+ #0 print_exprloc_content (dbg=dbg@entry=0x654ea0,
+ die=die@entry=0x65b110, attrib=attrib@entry=0x65b590,
+ esbp=esbp@entry=0x7fffffffcef0, showhextoo=1) at print_die.c:4182
+ #1 0x0000000000412fb1 in get_attr_value (dbg=dbg@entry=0x654ea0,
+ tag=, die=die@entry=0x65b110,
+ dieprint_cu_goffset=dieprint_cu_goffset@entry=11,
+ attrib=attrib@entry=0x65b590, srcfiles=srcfiles@entry=0x0,
+ cnt=cnt@entry=0, esbp=esbp@entry=0x7fffffffcef0, show_form=0,
+ local_verbose=0) at print_die.c:4972
+
+datefixed: 20150518
+references: regressiontests/liu/OOB0517_01.elf
+gitfixid: ac6673e32f3443a5d36c2217cb814000930b2c54
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+id: DW201605-012
+cve: CVE-2016-5034
+datereported: 20160513
+reportedby: Yue Liu
+vulnerability: OOB write. From relocation records
+product: libdwarf
+description: Test object shows
+ an invalid write in dwarf_elf_access.c
+ (when doing the relocations).
+ Adding the relocation value to anything overflowed
+ and disguised the bad relocation record.
+ With a 32bit kernel build the test could show
+ a double-free and coredump due to the unchecked invalid
+ writes from relocations.
+datefixed: 20160517
+references: regressiontests/liu/HeapOverflow0513.elf
+gitfixid: 10ca310f64368dc083efacac87732c02ef560a92
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+
+id: DW201605-011
+cve: CVE-2016-5035
+datereported: 20160506
+reportedby: Yue Liu
+vulnerability: OOB read bug in _dwarf_read_line_table_header
+product: libdwarf
+description: Test object shows
+ null dereference at line 62
+ of dwarf_line_table_reader.c.
+ Frame code and linetable code was not noticing data corruption.
+datefixed: 20160512
+references: regressiontests/liu/OOB_read4.elf
+gitfixid: 82d8e007851805af0dcaaff41f49a2d48473334b
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+
+id: DW201605-010
+cve: CVE-2016-5036
+datereported: 20160506
+reportedby: Yue Liu
+vulnerability: OOB read bug in dump_block
+product: libdwarf
+description: Test object shows
+ null dereverence at line 186
+ of dump_block() in print_sections.c
+ Frame code was not noticing frame data corruption.
+datefixed: 20160512
+references: regressiontests/liu/OOB_read3.elf
+ regressiontests/liu/OOB_read3_02.elf
+gitfixid: 82d8e007851805af0dcaaff41f49a2d48473334b
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+id: DW201605-009
+cve: CVE-2016-5037
+datereported: 20160505
+reportedby: Yue Liu
+vulnerability: NULL dereference in _dwarf_load_section
+product: libdwarf
+description: Test object shows
+ null dereverence at line 1010
+ if(!strncmp("ZLIB",(const char *)src,4)) {
+ in dwarf_init_finish.c
+ The zlib code was not checking for
+ a corrupted length-value.
+datefixed: 20160506
+references: regressiontests/liu/NULLderefer0505_01.elf
+gitfixid: b6ec2dfd850929821626ea63fb0a752076a3c08a
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
+id: DW201605-008
+cve: CVE-2016-5038
+datereported: 20160505
+reportedby: Yue Liu
+vulnerability: OOB read in dwarf_get_macro_startend_file()
+product: libdwarf
+description: Test object shows
+ out of bound read.
+ OOB at:
+ line 772 *src_file_name = macro_context->mc_srcfiles[trueindex];
+ in dwarf_macro5.c
+ A string offset into .debug_str is outside the bounds
+ of the .debug_str section.
+datefixed: 20160512
+references: regressiontests/liu/OOB0505_02.elf
+ regressiontests/liu/OOB0505_02_02.elf
+gitfixid: 82d8e007851805af0dcaaff41f49a2d48473334b
+tarrelease: libdwarf-20160923.tar.gz
+endrec:
+
+id: DW201605-007
+cve: CVE-2016-5039
+datereported: 20160505
+reportedby: Yue Liu
+vulnerability: OOB read bug in get_attr_value()
+product: libdwarf
+description: Test object shows
+ out of bound read.
+ Object had data all-bits-on so
+ the existing length check did not work
+ due to wraparound. Added a check
+ not susceptible to that error (DW_DLE_FORM_BLOCK_LENGTH_ERROR).
+datefixed: 20160506
+references: regressiontests/liu/OOB0505_01.elf
+gitfixid: eb1472afac95031d0c9dd8c11d527b865fe7deb8
+gittag: 20160507
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
+id: DW201605-006
+cve:
+datereported: 20160505
+reportedby: Yue Liu
+vulnerability: Two Heap-Overflow bug
+product: libdwarf
+description: Two test objects showing
+ a heap overflow in libdwarf when
+ using dwarfdump.
+ It seems that these were fixed
+ by the previous git update.
+ Neither gdb nor valgrind find any errors
+ when building with yesterday's commit.
+datefixed: 20160504
+references: regressiontests/liu/free_invalid_address.elf
+ regressiontests/liu/heapoverflow01b.elf
+gitfixid: 98a3da1e8237fe0d45b67ef77f3fa5ed9ff0215f
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
+id: DW201605-001
+cve: CVE-2016-5044
+datereported: 20160502
+reportedby: Yue Liu
+vulnerability: A specially crafted DWARF section
+ results in a duplicate free() in libdwarf and
+ the calling application will crash.
+product: libdwarf
+description:
+ In file dwarf_elf_access.c:1071
+
+ WRITE_UNALIGNED(dbg,target_section + offset,
+ &outval,sizeof(outval),reloc_size);
+
+ A crafted ELF file may lead to a large offset value, which
+ bigger than the size of target_section heap chunk, then this
+ WRITE_UNALIGNED() function will write the value of &outval
+ out of the heap chunk.
+ offset is a 64bit unsigned int value, so this is more than
+ a heap overflow bug, but also a Out-of-Bound write bug.
+ So WRITE_UNALIGNED() need more strictly checking to prevent
+ this.
+datefixed: 20160504
+references: regressiontests/liu/heapoverflow01.elf
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1332141
+
+gitfixid: 98a3da1e8237fe0d45b67ef77f3fa5ed9ff0215f
+gittag: 20160507
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
+
+
+id: DW201605-002
+cve: CVE-2016-5043
+datereported: 20160502
+reportedby: Yue Liu
+vulnerability: A specially crafted DWARF section
+ results in a read outside the bounds of in memory
+ data so the calling application can crash.
+product: libdwarf
+description:
+
+ Out of bound read bug in libdwarf git code.
+
+ dwarf_dealloc() did not check the Dwarf_Ptr space argument
+ before using it. This will lead to a out-of-bound read bug.
+
+ backtrace:
+ #0 dwarf_dealloc (dbg=dbg@entry=0x655f30, space=0xa0,
+ alloc_type=alloc_type@entry=1) at dwarf_alloc.c:477
+ #1 0x00002aaaaacf3296 in dealloc_srcfiles
+ (dbg=0x655f30, srcfiles=0x66b8f0, srcfiles_count=17) at
+ dwarf_macro5.c:1025 #2 0x00002aaaaacf50e6 in dealloc_srcfiles
+ (srcfiles_count=, srcfiles=,
+ dbg=) at dwarf_macro5.c:1021 -----
+
+ gef> p &r->rd_dbg
+ $14 = (void **) 0x90
+
+datefixed: 20160504
+references: regressiontests/liu/outofbound01.elf
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1332144
+
+gitfixid: 98a3da1e8237fe0d45b67ef77f3fa5ed9ff0215f
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
+id: DW201605-003
+cve: CVE-2016-5042
+datereported: 20160502
+reportedby: Yue Liu
+vulnerability: A specially crafted DWARF section
+ results in an infinite loop that eventually
+ crashes the application.
+product: libdwarf
+description:
+ In dwarf_get_aranges_list()
+ an invalid count will iterate, reading from memory
+ addresses that increase till it all fails.
+
+datefixed: 20160504
+references: regressiontests/liu/infiniteloop.elf
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1332145
+
+gitfixid: 98a3da1e8237fe0d45b67ef77f3fa5ed9ff0215f
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
+id: DW201605-004
+cve: CVE-2016-5041
+datereported: 20160502
+reportedby: Yue Liu
+vulnerability: A specially crafted DWARF section
+ results in a null dereference reading debugging
+ information entries which
+ crashes the application.
+product: libdwarf
+description:
+ If no DW_AT_name is present in a debugging
+ information entry using DWARF5 macros
+ a null dereference in dwarf_macro5.c will
+ crash the application.
+
+datefixed: 20160504
+references: regressiontests/liu/null01.elf
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1332148
+
+gitfixid: 98a3da1e8237fe0d45b67ef77f3fa5ed9ff0215f
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
+id: DW201605-005
+cve: CVE-2016-5040
+datereported: 20160502
+reportedby: Yue Liu
+vulnerability: A specially crafted DWARF section
+ results in reading a compilation unit header
+ that crashes the application.
+product: libdwarf
+description:
+ If the data read for a compilation unit header
+ contains a too large length value the library
+ will read outside of its bounds and crash the application.
+datefixed: 20160504
+references: regressiontests/liu/null02.elf
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=1332149
+
+gitfixid: 98a3da1e8237fe0d45b67ef77f3fa5ed9ff0215f
+tarrelease: libdwarf-20160507.tar.gz
+endrec:
+
diff --git a/dwarf-compilation.base/contrib/libdwarf/bugxml/readbugs.py b/dwarf-compilation.base/contrib/libdwarf/bugxml/readbugs.py
new file mode 100755
index 0000000..3aaf951
--- /dev/null
+++ b/dwarf-compilation.base/contrib/libdwarf/bugxml/readbugs.py
@@ -0,0 +1,257 @@
+#!/usr/bin/python3
+# Copyright (c) 2016-2016 David Anderson.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * 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.
+# * Neither the name of the example nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY David Anderson ''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 David Anderson 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.
+
+import os
+import sys
+sys.path.append(os.path.abspath("/home/davea/dwarf/code/bugxml"))
+import bugrecord
+
+def ignore_this_line(d,inrecord):
+ if len(d) < 1:
+ if inrecord == "y":
+ return "n"
+ else:
+ return "y"
+ s = str(d)
+ if s[0] == '#':
+ return "y"
+ return "n"
+
+def closeouttext(bugrec,intext,text,linecount):
+ if intext == 'd':
+ bugrec.setdescription(text)
+ return
+ elif intext == 'v':
+ bugrec.setvulnerability(text)
+ return
+ elif intext == 'r':
+ bugrec.setreferences(text)
+ return
+ if intext == "":
+ return
+ print("bogus closeout line at line ",linecount)
+ sys.exit(1)
+
+
+def readbugs(iname):
+ name = iname
+ if len(name) == 0:
+ name = "/home/davea/dwarf/code/bugxml/data.txt"
+ try:
+ file = open(name,"r")
+ except IOError as message:
+ print("failed to open ",name, message)
+
+ inrecord = "n"
+ linecount = 0
+ text = []
+ usedid ={}
+ intext = ''
+ bugrec = ''
+ buglist = []
+ while 1:
+ try:
+ rec = file.readline()
+ except EOFError:
+ break
+ if len(rec) < 1:
+ # eof
+ break
+ linecount += 1
+ if ignore_this_line(rec,inrecord) == "y":
+ continue
+ rec = rec.rstrip()
+ if inrecord == "n":
+ if len(rec) == 0:
+ continue
+ if rec.find(":") == -1:
+ print("bogus non-blank line at line ",linecount)
+ sys.exit(1)
+ if inrecord == "y" and len(rec) > 0:
+ # A multi line entry may have ":" in it.
+ if intext != "" and rec[0] == ' ':
+ s3 = ''.join(rec)
+ text += [s3]
+ continue
+ low = rec.find(":")
+ fldname = rec[0:low+1]
+ fldval = rec[low+1:]
+ if fldname == "id:":
+ if inrecord == "y":
+ print("bogus id: at line ",linecount)
+ sys.exit(1)
+ inrecord = "y"
+ f = fldval.strip()
+ if f in usedid:
+ print("Duplicate Key:",f,"Giving up.")
+ sys.exit(1)
+ usedid[f] = 1
+ s4= ''.join(fldval)
+ bugrec = bugrecord.bugrecord(s4)
+ elif fldname == "cve:":
+ closeouttext(bugrec,intext,text,linecount),
+ intext = ""
+ text = []
+ s4= ''.join(fldval)
+ bugrec.setcve(s4)
+ elif fldname == "datereported:":
+ closeouttext(bugrec,intext,text,linecount),
+ intext = ""
+ text = []
+ s4= ''.join(fldval)
+ bugrec.setdatereported(s4)
+ elif fldname == "reportedby:":
+ closeouttext(bugrec,intext,text,linecount),
+ intext = ""
+ text = []
+ s4= ''.join(fldval)
+ bugrec.setreportedby(s4)
+ elif fldname == "vulnerability:":
+ closeouttext(bugrec,intext,text,linecount),
+ intext = 'v'
+ text = []
+ if len(fldval) > 0:
+ s4= ''.join(fldval)
+ text = [s4]
+
+ elif fldname == "product:":
+ closeouttext(bugrec,intext,text,linecount),
+ intext = ""
+ text = []
+ s4= ''.join(fldval)
+ bugrec.setproduct(s4)
+ elif fldname == "description:":
+ closeouttext(bugrec,intext,text,linecount),
+ text = []
+ intext = 'd'
+ if len(fldval) > 0:
+ s4= ''.join(fldval)
+ text = [s4]
+
+ elif fldname == "datefixed:":
+ closeouttext(bugrec,intext,text,linecount),
+ text = []
+ intext = ""
+ s4= ''.join(fldval)
+ bugrec.setdatefixed(s4)
+ elif fldname == "references:":
+ closeouttext(bugrec,intext,text,linecount),
+ text = []
+ intext = 'r'
+ if len(fldval) > 0:
+ s4= ''.join(fldval)
+ text = [s4]
+ elif fldname == "gitfixid:":
+ closeouttext(bugrec,intext,text,linecount),
+ text = []
+ intext = ""
+ s4= ''.join(fldval)
+ bugrec.setgitfixid(s4)
+ elif fldname == "tarrelease:":
+ closeouttext(bugrec,intext,text,linecount),
+ text = []
+ intext = ""
+ s4= ''.join(fldval)
+ bugrec.settarrelease(s4)
+ elif fldname == "endrec:":
+ closeouttext(bugrec,intext,text,linecount),
+ text = []
+ if inrecord == "n":
+ print("bogus endrec: at line ",linecount)
+ sys.exit(1)
+ buglist += [bugrec]
+ inrecord = "n"
+ text = []
+ intext = ""
+ inrecord = "n"
+ file.close()
+ return buglist
+
+
+
+
+
+
+
+def sort_by_id(myl):
+ """ Sort the list of objects by name. """
+ auxiliary = [ ( x._id, x) for x in myl ]
+ auxiliary.sort()
+ return [ x[1] for x in auxiliary ]
+
+
+def write_line(file,l):
+ file.write(l + "\n")
+
+def write_all_lines(file,txt):
+ for t in txt:
+ write_line(file,t)
+
+def generatehtml(list2,name):
+ try:
+ file = open(name,"w")
+ except IOError as message:
+ print("failed to open ",name, message)
+ sys.exit(1)
+ for b in list2:
+ txt=b.generate_html()
+ write_all_lines(file,txt)
+ write_line(file,"