From: Roland McGrath Date: Tue, 22 Sep 2009 06:14:15 +0000 (-0700) Subject: Merge commit 'elfutils-0.143' into dwarf X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=57487b0f98bfac8eada865d19b46f275e4463381;p=thirdparty%2Felfutils.git Merge commit 'elfutils-0.143' into dwarf Conflicts: ChangeLog lib/ChangeLog libdw/ChangeLog src/ChangeLog --- 57487b0f98bfac8eada865d19b46f275e4463381 diff --cc ChangeLog index 8b0dc6bfb,c00ae1834..924561b37 --- a/ChangeLog +++ b/ChangeLog @@@ -1,11 -1,11 +1,19 @@@ +2009-08-20 Roland McGrath + + * configure.ac (--enable-gprof): Set CXXFLAGS too. + +2009-01-10 Roland McGrath + + * configure.ac: Add AC_PROG_CXX. + + 2009-09-21 Ulrich Drepper + + * configure.ac: Update for more modern autoconf. + + 2009-08-26 Roland McGrath + + * configure.ac (zip_LIBS): Check for liblzma too. + 2009-04-19 Roland McGrath * configure.ac (eu_version): Round down here, not in version.h macros. diff --cc configure.ac index 9c3ffb00b,6c18d8302..fc479850e --- a/configure.ac +++ b/configure.ac @@@ -165,11 -162,9 +163,10 @@@ AC_SUBST([DEBUGPRED], $use_debugpred dnl Enable gprof suport. AC_ARG_ENABLE([gprof], - AC_HELP_STRING([--enable-gprof], - [build binaries with gprof support]), [use_gprof=yes], [use_gprof=no]) + AS_HELP_STRING([--enable-gprof],[build binaries with gprof support]), [use_gprof=yes], [use_gprof=no]) if test "$use_gprof" = yes; then CFLAGS="$CFLAGS -pg" + CXXFLAGS="$CXXFLAGS -pg" LDFLAGS="$LDFLAGS -pg" fi AM_CONDITIONAL(GPROF, test "$use_gprof" = yes) diff --cc lib/ChangeLog index 11ad4d44c,73f8e73ab..849f7bcb9 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@@ -1,7 -1,7 +1,11 @@@ +2009-01-25 Roland McGrath + + * eu-config.h (__STDC_LIMIT_MACROS): Define it. + + 2009-08-09 Roland McGrath + + * eu-config.h (OLD_VERSION, NEW_VERSION, COMPAT_VERSION): New macros. + 2009-01-23 Roland McGrath * eu-config.h: Add multiple inclusion protection. diff --cc lib/eu-config.h index 5e809d99f,f814604fe..91a152bbd --- a/lib/eu-config.h +++ b/lib/eu-config.h @@@ -182,9 -182,22 +182,26 @@@ asm (".section predict_data, \"aw\"; .p /* This macro is used by the tests conditionalize for standalone building. */ #define ELFUTILS_HEADER(name) +/* C++ needs this for to define UINT64_MAX et al. */ +#ifndef __STDC_LIMIT_MACROS +# define __STDC_LIMIT_MACROS +#endif + #ifdef SHARED + # define OLD_VERSION(name, version) \ + asm (".globl _compat." #version "." #name "\n" \ + "_compat." #version "." #name " = " #name "\n" \ + ".symver _compat." #version "." #name "," #name "@" #version); + # define NEW_VERSION(name, version) \ + asm (".symver " #name "," #name "@@@" #version); + # define COMPAT_VERSION(name, version, prefix) \ + asm (".symver _compat." #version "." #name "," #name "@" #version); \ + __typeof (name) _compat_##prefix##_##name asm ("_compat." #version "." #name); + #else + # define OLD_VERSION(name, version) /* Nothing for static linking. */ + # define NEW_VERSION(name, version) /* Nothing for static linking. */ + # define COMPAT_VERSION(name, version, prefix) error "should use #ifdef SHARED" + #endif + + #endif /* eu-config.h */ diff --cc libdw/ChangeLog index 5d4a6ee35,2208f772d..fea9ebd7c --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@@ -1,237 -1,53 +1,287 @@@ +2009-09-21 Roland McGrath + + * c++/dwarf-knowledge.cc (expected_value_space): DW_AT_const_value can + take an address too. + +2009-09-08 Roland McGrath + + * c++/dwarf_output: Match duplicates going into the collector even + when they contain circular references. + + * c++/dwarf_comparator (dwarf_comparator::equal_enough): + New class method, broken out of ... + * c++/dwarf_tracker (dwarf_ref_tracker::equal_enough::operator ()): + ... here. Call it. + (dwarf_path_finder, dwarf_ref_tracker): Don't assume iterators do ->. + + * c++/subr.hh (subr::wrapped_input_container): New class. + +2009-09-01 Roland McGrath + + * c++/dwarf_tracker (dwarf_path_finder): Use subr::sharing_stack. + + * c++/subr.hh (subr::sharing_stack): New template class. + * c++/dwarf (dwarf::debug_info_entry::children_type::const_iterator): + Use it in place fo std::stack. + +2009-08-31 Roland McGrath + + * c++/subr.hh (subr::dynamic_equality_set): New template class. + * c++/dwarf_output (dwarf_output_collector): Use it for _m_attr_sets. + +2009-08-27 Roland McGrath + + * c++/dwarf_output (dwarf_output::dwarf_output): Add a variant with a + user-supplied copier, reimplement the collector-only version. + (dwarf_output::copier): New constructors and destructor public. + + * c++/dwarf_output (dwarf_output::copier::seen::promote_pending): + Notice circularity inside resolve_refs. + +2009-08-25 Roland McGrath + + * c++/dwarf_tracker: Soup up circular reference handling to handle + mismatched duplication vs sharing in semantically matching trees. + * c++/dwarf_comparator: Update user. + +2009-08-21 Roland McGrath + + * c++/subr.hh (hash): Use elf_gnu_hash algorithm. + + * c++/dwarf (dwarf::source_file::identity): New method. + * c++/dwarf_data (dwarf_data::source_file::identity): Likewise. + * c++/dwarf_output (dwarf_output::copier): Cache input string + and source file pointers to short-circuit repeated full hashconsing. + +2009-08-20 Roland McGrath + + * c++/values.cc (value_string): Fix constant-block case. + + * c++/dwarf_comparator: Use tracker::subtracker for subcomparator. + Let mismatch hooks return bool that is true to keep comparing. + * c++/dwarf_tracker: Define subtracker. + +2009-08-19 Roland McGrath + + * c++/dwarf_tracker: Revamp derived tracker logic. + * c++/dwarf_comparator: Update user. + + * c++/subr.hh (wrapped_input_iterator::base): New method. + (nothing): Kill operator (), really just nothing here. + (create_container): Replace post-set hook with setter hook. + (is): New callable template. + (nostream): New template, dummy for << debug hacks. + + * c++/dwarf_output: Revamp construction for ref handling. + * c++/dwarf_data: Miscellaneous updates for dwarf_output changes. + * c++/dwarf_edit: Likewise. + + * c++/dwarf (skipping_wrapper::const_iterator): Add hasher. + (debug_info_entry::raw_children_type::const_iterator): Likewise. + (debug_info_entry::attributes_type): Make ordered an inline + rather than a field. + (range_list, arange_list): Likewise. + + * c++/data-values.hh (what_space): Use dynamic_cast rather than + typeid, so we accept derived classes. + +2009-08-16 Roland McGrath + + * c++/dwarf_tracker (dwarf_ref_tracker): Add missing destructor. + +2009-07-08 Roland McGrath + + * c++/dwarf-knowledge.cc (expected_value_space): + DW_AT_data_member_location can be constant or location. + * c++/values.cc (what_space): Treat only data[48] as *ptr when those + are expected. No other data forms can be *ptr. + + * c++/output-shape.cc: New file. + * Makefile.am (libdwpp_a_SOURCES): Add it. + * c++/dwarf_output: Call add_shape method there. + +2009-07-06 Roland McGrath + + * c++/dwarf_tracker (tracker): Break out private class into ... + (dwarf_path_finder): ... here. + +2009-07-03 Roland McGrath + + * c++/dwarf: Give line info stubby to_string methods. + * c++/dwarf_data: Likewise. + * c++/edit-values.cc: Likewise. + + * c++/dwarf: Fix location_attr iterators. + * c++/values.cc: Likewise. + + * Makefile.am (AM_CXXFLAGS): New variable (from ../src/Makefile.am). + + * c++/dwarf: Fix range_list canonicalizing comparisons. + + * c++/dwarf_edit: Fix copy construction using a ref-maker. + * c++/dwarf_data: Updates. + * c++/subr.hh: Updates. + * c++/dwarf_ref_maker: New file. + * Makefile.am (pkginclude_HEADERS): Add it. + +2009-07-02 Roland McGrath + + * c++/dwarf: Get rid of VS::unit_reference. + * c++/dwarf-knowledge.cc: Likewise. + * c++/dwarf_comparator: Likewise. + * c++/dwarf_data: Likewise. + * libdw/c++/values.cc: Likewise. + * c++/data-values.hh: Likewise. + + * c++/dwarf_output: Rewrite. + * c++/subr.hh: New helpers for dwarf_output/dwarf_data. + + * c++/dwarf_edit: Much guts moved to ... + * c++/dwarf_data: ... here, new file. + * c++/known.cc: Update specializations. + + * libdw/c++/edit-values.cc (what_space): Moved to ... + * c++/data-values.hh: ... here, new file. + + * Makefile.am (noinst_HEADERS): Add it. + + * c++/output-values.cc: New file. + * Makefile.am (libdwpp_a_SOURCES): Add it. + Makefile.am (pkginclude_HEADERS): Add dwarf_data, dwarf_output. + + * c++/dwarf: Use to_string function overload, not to_string method. + * c++/values.cc: Define to_string specializations. + +2009-07-01 Roland McGrath + + * c++/dwarf_tracker: Major revamp for efficiency and to handle + circular reference chains. + * c++/dwarf_comparator: Tracker interface changes. + +2009-06-19 Roland McGrath + + * c++/dwarf_comparator: New file. + * c++/dwarf_tracker: New file. + * Makefile.am (pkginclude_HEADERS): Add them. + + * c++/dwarf_edit: Miscellaneous fixes. + Support dwarf_enum, to_string for attributes. + * c++/known.cc: Support dwarf_edit::dwarf_enum. + * c++/edit-values.cc: Support to_string for attributes. + * c++/values.cc: Rejiggered accordingly. + + * c++/dwarf-knowledge.cc (expected_value_space): Expect unit_reference + only for DW_TAG_imported_unit. + + * c++/dwarf: Miscellaneous fixes. + +2009-04-02 Roland McGrath + + * Makefile.am (noinst_HEADERS): Add known-dwarf.h and + c++/dwarf-knowledge.cc here. + +2009-03-29 Roland McGrath + + * c++/exception.cc: New file. + * Makefile.am (libdwpp_a_SOURCES): Add it. + +2009-03-25 Roland McGrath + + * c++/dwarf, c++/values.cc: Proper dwarf_constant support. + * c++/dwarf_edit, c++/edit-values.cc: Likewise. + * c++/known.cc: New file. + * Makefile.am (libdwpp_a_SOURCES): Add it. + +2009-03-24 Petr Machata + + * c++/dwarf (dwarf::debug_info_entry::raw_attributes): + Fix iteration over attributes. + +2009-03-24 Roland McGrath + + * Makefile.am (libdwpp_a_SOURCES): New variable. + (lib_LIBRARIES): Add libdwpp.a to it. + +2009-02-26 Roland McGrath + + * c++/dwarf (dwarf::attr_value): Add _m_tag private member. + (dwarf::attr_value, dwarf::attribute): Update initializers. + (dwarf::raw_attributes::const_iterator): Update caller. + * c++/values.cc (attr_value::what_space): Use it. + +2009-02-01 Roland McGrath + + * c++/edit-values.cc: New file. + +2009-01-28 Roland McGrath + + * c++/dwarf: Add line table support. + * c++/values.cc: New file. + * c++/line_info.cc: New file. + * c++/subr.hh: New file. + * Makefile.am (pkginclude_HEADERS): Add it. + +2009-01-26 Roland McGrath + + * c++/dwarf (dwarf_output): Renamed to dwarf_edit and moved to ... + * c++/dwarf_edit: ... here. New file. + * Makefile.am (pkginclude_HEADERS): Add it. + +2009-01-10 Roland McGrath + + * c++/dwarf: New file. + * Makefile.am (pkginclude_HEADERS): Add it. + + 2009-09-17 Roland McGrath + + * dwarf_getlocation.c (dwarf_getlocation_implicit_value): Make OP + argument a pointer to const. + * libdw.h: Update decl. + + 2009-09-10 Roland McGrath + + * dwarf_getlocation.c (store_implicit_value): New function. + (__libdw_intern_expression): Use it, handle DW_OP_implicit_value. + (dwarf_getlocation_implicit_value): New function. + * libdw.h: Declare it. + * libdw.map (ELFUTILS_0.143): Add it. + + 2009-09-09 Mark Wielaard + + * dwarf_getcfi.c (dwarf_getcfi): Clear cfi->ebl. + + 2009-08-21 Josh Stone + + * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too. + + 2009-08-10 Roland McGrath + + * dwarf_getscopevar.c: Use dwarf_diename. + + 2009-08-09 Roland McGrath + + * libdw.map (ELFUTILS_0.143): New version set, + inherits from ELFUTILS_0.142. + * dwarf_arrayorder.c: Use OLD_VERSION and NEW_VERSION to define an + alias in the ELFUTILS_0.122 version set and the default in the new set. + * dwarf_srclang.c: Likewise. + * dwarf_decl_file.c: Likewise. + * dwarf_decl_line.c: Likewise. + * dwarf_decl_column.c: Likewise. + * dwarf_bytesize.c: Likewise. + * dwarf_bitsize.c: Likewise. + * dwarf_bitoffset.c: Likewise. + + 2009-08-07 Roland McGrath + + * dwarf_arrayorder.c: Use dwarf_attr_integrate. + * dwarf_srclang.c: Likewise. + * dwarf_decl_file.c: Likewise. + * dwarf_decl_line.c (__libdw_attr_intval): Likewise. + * dwarf_bytesize.c: Likewise. + * dwarf_bitsize.c: Likewise. + * dwarf_bitoffset.c: Likewise. + 2009-07-22 Roland McGrath * dwarf_frame_cfa.c: Change calling convention. diff --cc src/ChangeLog index deb55413c,5e439104e..217143cbd --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,242 -1,20 +1,259 @@@ +2009-09-15 Roland McGrath + + * dwarfcmp.cc (talker, noisy_cmp): Describe context mismatch details + at the end. + +2009-08-27 Roland McGrath + + * dwarfcmp.cc (do_writer_test): New function, broken out of ... + (main): ... here. + [TEST]: Conditionalize -T and all its code on this. + +2009-08-25 Roland McGrath + + * dwarfcmp.cc (talker): Track real vs fake-positive match result + and cache only real results in the real tracker. + +2009-08-20 Roland McGrath + + * dwarfcmp.cc (verbose): New variable. + (options, parse_opt): Add --verbose/-l to set it. + (talker): Keep going after mismatches when verbose. + +2009-08-19 Roland McGrath + + Diagnose reference mismatches with more detail. + * dwarfcmp.cc (talker::reference_mismatch): New method. + (talker::mismatch): Call it. + + * dwarfcmp.cc (talker): Update constructor for tracker changes. + +2009-08-16 Roland McGrath + + * dwarfcmp.cc (main): Call dwarf_end before return, for happy valgrind. + +2009-07-06 Roland McGrath + + * dwarfcmp.cc (test_writer): Make it an int. + (parse_opt): Make -T increment it. + (main): Test only dwarf_output for -T, only dwarf_edit for -TT, + both only for -TTT. + +2009-07-03 Roland McGrath + + * Makefile.am (AM_CXXFLAGS): Drop -Wno-unused-parameter. + + * dwarfcmp.cc (open_file): Exit 77 for no DWARF under -T. + +2009-07-02 Roland McGrath + + * dwarflint-hl.cc (operator<<): dwarf::VS_unit_reference is gone. + + * dwarfcmp.cc (main): Update -T constructors using tracker. + Instantiate and test dwarf_output for -T too. + +2009-07-01 Roland McGrath + + * dwarfcmp.cc (talker): Update constructor parameters. + +2009-06-19 Roland McGrath + + * dwarfcmp.cc: Revamp using dwarf_comparator. + + * dwarflint-expected-at.cc: Include first. + * dwarflint-expected.hh (expected_map::expectation_map): + Use dwarf::tags. + (to_string): Function removed. + * dwarflint-hl.cc (recursively_validate): Don't use it. + + * dwarflint.c (abbrev_table_load): No-op control flow fiddle + silences gcc-4.4 -O3 warning. + +2009-04-02 Roland McGrath + + * Makefile.am (noinst_HEADERS): Add dwarfstrings.h here. + (dwarflint_SOURCES): Add dwarflint-expected.hh and dwarflint.h here. + (noinst_HEADERS): Add expr_opcodes.h too. + +2009-03-24 Roland McGrath + + * Makefile.am (libdwplusplus_SOURCES): Variable removed. + (dwarfcmp_SOURCES, dwarflint_SOURCES): Don't use it. + (libdwpp): New variable. + (dwarfcmp_LDADD, dwarflint_LDADD): Use it. + +2009-03-05 Petr Machata + + * dwarflint.c: Add --nohl command line switch. + +2009-01-28 Petr Machata + + * dwarflint.c: Coding style cleanups. + (found_hole): Tolerate zero-padding to given alignment. + +2009-01-27 Petr Machata + + * dwarflint.c: Implement validation of .debug_ranges and + references from .debug_info to .debug_ranges. + +2009-01-27 Petr Machata + + * dwarflint.c: Check that the base address selection entry + actually changes base address. + +2009-01-27 Petr Machata + + * dwarflint.c: Match the way dwarflint reports offsets with the + way elfutils does it. + +2009-01-26 Petr Machata + + * dwarflint.c (check_aranges_structural): Check that each CU is + referenced from one aranges section only. + (check_pub_structural): Likewise for pubnames and pubtypes. + (read_ctx_read_uleb128): Allow ten-byte ULEB128. + +2009-01-23 Petr Machata + + * dwarflint.c (check_debug_info_structural): Check that all CUs + have the same address size. + +2009-01-17 Roland McGrath + + * expr_opcodes.h: Fix DW_OP_deref entry. + Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit. + +2009-01-17 Petr Machata + + * dwarflint.c: Better location handling: references now carry + along where did they originate (i.e. which section, offset, etc.), + all messages are location-aware. + (struct where): New structure that captures location inside the + Dwarf file. Can be chained to achieve chains of "caused by this + reference" messages ala GCC. + +2009-01-15 Petr Machata + + * dwarflint.c: Implement validation of .debug_loc and references + from .debug_info to .debug_loc. + +2009-01-14 Petr Machata + + * dwarfstrings.h (dwarf_locexpr_opcode_string): New. + +2009-01-14 Petr Machata + + * dwarflint.c: Validation .debug_pubtypes. + +2009-01-13 Petr Machata + + * dwarflint.c: Adjust check_pubnames_structural to be able to + validate also .debug_pubtypes. + +2009-01-13 Petr Machata + + * dwarflint.c: Rewrite message macros to functions. This makes it + possible to rewrite several other macros to functions. + +2009-01-12 Petr Machata + + * dwarflint.c: Implement validation of .debug_pubnames. + +2009-01-12 Petr Machata + + * dwarflint.c: Check padding between sections in .debug_aranges. + +2009-01-12 Petr Machata + + * dwarflint.c: For DIE references, remember both referrer and + referree. Add a new data structure ref_record to support that. + Add new message category, mc_die_rel_ref. Rename other DIE + relationship categories to mc_die_rel_* pattern. + +2009-01-12 Petr Machata + + * dwarflint.c: Changes in data structures for recording DIEs and CUs. + +2009-01-12 Petr Machata + + * dwarflint.c: Implement validation of .debug_aranges. + +2009-01-11 Petr Machata + + * dwarflint.c (process_file): Handle absence of .debug_info, + .debug_abbrev and .debug_str gracefully. + +2009-01-11 Petr Machata + + * dwarflint.c: A couple small fixes across the code. + (check_debug_info_structural): Return bool. + (check_cu_structural): Likewise. + (check_addr_record_addr): Likewise. + (check_die_references): Likewise. + +2009-01-10 Roland McGrath + + * dwarfcmp.cc (test_writer): New variable. + (options, parse_opt): Grok -T/--test-writer to set it. + (main): When set, exercise dwarf_output constructors and comparators. + + * dwarflint.c (options, parse_opt): Replace --no-debug with + -i/--ignore-missing, to match dwarfcmp. + +2009-01-10 Petr Machata + + * dwarflint.c: Implement --no-debug: silently accept file, if its + debug info is not available. + +2009-01-10 Roland McGrath + + * dwarfcmp.cc: New file. + * Makefile.am (bin_PROGRAMS): Add dwarfcmp. + (dwarfcmp_SOURCES): New variable. + (dwarfcmp_no_Wformat, dwarfcmp_LDADD): New variables. + +2009-01-10 Petr Machata + + * dwarflint.c: Implement fine-grained message selection. Each + message has a category, which is bitwise OR of category options. + There are acceptance and rejection criteria for warnings and + errors, which can be tuned using command-line options (currently + --strict and --gnu). + Use dwarfstrings.h in two messages. + +2009-01-10 Petr Machata + + * readelf.c: Extract functions that format dwarf enums into a file + of its own, so it can be shared with dwarflint. + * dwarfstrings.h: That file. + +2009-01-09 Petr Machata + + * dwarflint.c: Sort the abbrev tables and look up abbreviations + with bisect search. + +2009-01-09 Petr Machata + + * dwarflint.c: Checking for zero padding and unreferenced bytes. + CU size and padding at the end of CU are now checked. + + 2009-09-08 Roland McGrath + + * ar.c (main): Fix typo in message format. + + 2009-08-21 Roland McGrath + + * readelf.c (attr_callback): Use print_block only when we don't use + print_ops. + + 2009-08-14 Roland McGrath + + * ar.c (do_oper_extract): Use pathconf instead of statfs. + + 2009-08-01 Ulrich Drepper + + * debugpred.h: Add two most const. + 2009-07-26 Mark Wielaard * elflint.c (check_note_data): Recognize NT_GNU_GOLD_VERSION.