Update ChangeLog for 2.1 release.
authorDodji Seketeli <dodji@redhat.com>
Sun, 25 Sep 2022 04:11:19 +0000 (06:11 +0200)
committerDodji Seketeli <dodji@redhat.com>
Sun, 25 Sep 2022 04:11:19 +0000 (06:11 +0200)
* ChangeLog: Update by running "make update-changelog".

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
ChangeLog

index 30918b49c85ee4949d06c0e34e92721600b88cb3..339445612b6a9225e8fed80a00c045d81fb38e00 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2022-09-24  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Avoid cancelling a "confirmed" propagated canonical type
+       * src/abg-ir-priv.h
+       (type_base::priv::propagated_canonical_type_confirmed_): Define
+       new data member.
+       (type_base::priv::priv): Initialize it.
+       (type_base::priv::{propagated_canonical_type_confirmed,
+       set_propagated_canonical_type_confirmed}): Define new member
+       functions.
+       (type_base::priv::clear_propagated_canonical_type): Do not clear
+       the propagated canonical type if it has been confirmed already.
+       (type_base::priv::confirm_ct_propagation_for_types_dependant_on): Rename
+       type_base::confirm_ct into this.  Mark the confirmed propagated
+       types as being confirmed.
+       (type_base::priv::confirm_ct_propagation): This is now a new member
+       function that calls
+       type_base::confirm_ct_propagation_for_types_dependant_on and that
+       does the book-keeping that was being done in
+       return_comparison_result.
+       (type_base::priv::cancel_ct_propagation_for_types_dependant_on):
+       Renamed type_base::priv::cancel_ct_propagation in this.
+       (type_base::priv::cancel_ct_propagation): In this new one, call
+       type_base::priv::cancel_ct_propagation_for_types_dependant_on. Perform here
+       the book-keeping that was being done in return_comparison_result.
+       Also, do not cancel a confirmed propagated canonical type.
+       (type_base::priv::add_to_types_with_non_confirmed_propagated_ct):
+       Define new member function.
+       * src/abg-ir.cc (return_comparison_result): Consider only types
+       with non-confirmed propagated canonical types for the
+       non-confirmed type queue.  Also, only sub-types can be considered
+       non-confirmed.  Split out some of the book-keeping into
+       type_base::priv::{confirm_ct_propagation, cancel_ct_propagation}
+       and call these instead.  Confirm the propagated canonical types of
+       all types that remain after the comparison is fully done and is
+       successful.
+       (canonicalize): Assert the rule "The result of canonicalizing must
+       always been a confirmed canonical type".
+
+2022-09-22  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Accept SHT_PROGBITS sections in .dynamic segment
+       * src/abg-dwarf-reader.cc (get_soname_of_elf_file): Accept
+       SHT_PROGBITS sections in the dynamic segment.
+
+2022-09-22  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Support cloning data members of unions
+       * src/abg-ir.cc (var_decl::clone): Support cloning data members
+       for unions.
+
+2022-09-22  Dodji Seketeli <dodji@redhat.com>
+
+       Better support for golang programs
+       * src/abg-dwarf-reader.cc (die_qualified_type_name): Don't look at
+       the underlying type unnecessarily.
+       (build_function_type): Look for the WIP type first to avoid
+       infinite recursion.
+       * src/abg-ir.cc
+       (function_decl::get_pretty_representation_of_declarator): A
+       parameter can have a function type.
+       * src/abg-writer.cc (write_elf_symbol_reference)
+       (write_function_decl): Escape symbol names, function names and
+       symbol references.
+
+2022-07-19  Dodji Seketeli <dodji@redhat.com>
+
+       comparison: Ensure that fn parms with basic types can't be redundant
+       * include/abg-comparison.h (peel_fn_parm_diff)
+       (peel_typedef_qualified_type_or_parameter_diff): Declare ...
+       * src/abg-comparison.cc (peel_fn_parm_diff)
+       (peel_typedef_qualified_type_or_parameter_diff): ... new
+       functions.
+       (has_basic_type_change_only): Look through function parameters,
+       typedefs and qualified types.
+       * src/abg-default-reporter.cc (default_reporter::report): Remove
+       the temporary removal of the redundant categorisation.
+       Redundant-ness should have been handled by the
+       redundancy_marking_visitor pass.
+       * tests/data/test-diff-filter/test-PR29387-report.txt: Reference
+       test output.
+       * tests/data/test-diff-filter/test-PR29387-v{0,1}.c: Source of the
+       input tests.
+       * tests/data/test-diff-filter/test-PR29387-v{0,1}.o: Input test
+       binaries.
+       * tests/data/Makefile.am: Add the new test material above to the
+       source distribution.
+       * tests/test-diff-filter.cc (in_out_specs): Add the test binaries
+       above to the test harness.
+
+2022-09-21  Dodji Seketeli <dodji@redhat.com>
+
+       test-read-ctf: Update test output files after typedef canonicalization
+       * tests/data/test-read-ctf/test-ambiguous-struct-A.o.hash.abi:
+       Adjust.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-a.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-b.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-linux-module.abi: Likewise.
+       * tests/data/test-read-ctf/test1.so.abi: Likewise.
+       * tests/data/test-read-ctf/test1.so.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test2.so.abi: Likewise.
+       * tests/data/test-read-ctf/test2.so.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test5.o.abi: Likewise.
+       * tests/data/test-read-ctf/test7.o.abi: Likewise.
+
+2022-09-13  Dodji Seketeli <dodji@redhat.com>
+
+       ir, writer: Go back to canonicalizing typedefs in the IR
+       * include/abg-fwd.h (lookup_decl_only_class_types): Declare new
+       function.
+       * src/abg-ir-priv.h (class_or_union::priv::member_types_): Move
+       this data member into scope_decl::priv.
+       (class_or_union::priv::priv): Do not take member types.
+       * include/abg-ir.h (sort_type): Likewise.
+       (namespaces_type): Add new typedefs.
+       (scope_decl::insert_member_decl): Make this be non-virtual.
+       (scope_decl::{insert_member_type, add_member_type,
+       remove_member_type, get_member_types, get_sorted_member_types,
+       find_member_type}): Move these methods here from ...
+       (class_or_union::{insert_member_type, add_member_type,
+       remove_member_type, get_member_types, get_sorted_member_types,
+       find_member_type}): ... here.
+       (class_or_union::insert_member_decl): Make this be non-virtual.
+       (class_decl::insert_member_decl): Make this be non-virtual.
+       (class_or_union::get_sorted_member_types): Declare ...
+       * src/abg-dwarf-reader.cc (add_or_update_class_type): Do not add a
+       member type to the class type being built if it already exists
+       there.
+       (build_ir_node_from_die): If a scope (namespace, union or class)
+       already has a typedef, do not create a new one to add it there
+       again.
+       * src/abg-ir.cc (equals): In the overload for typedefs take into
+       account the name of typedefs again.
+       (lookup_decl_only_class_types): Define new function.
+       (compare_using_locations): Define new static function that has
+       been factorized out of ...
+       (decl_topo_comp::operator()): ... here.  Also, two decls originate
+       from an abixml corpus, compare them only using their artificial
+       locations, meaning make them keep the same order as the order of
+       the original abixml file.
+       (type_top_comp::operator()): Likewise.
+       (sort_types): Define new function.
+       (scope_decl::priv::member_types_): Move this here from
+       class_or_union::priv.
+       (scope_decl::priv::sorted_member_types_): Define new data member.
+       (scope_decl::{get_member_types, find_member_type,
+       insert_member_type, add_member_type, remove_member_type}): Move
+       these methods here from class_or_union.
+       (scope_decl::get_sorted_member_types): Define new method.
+       (is_non_canonicalized_type): Canonicalize typedefs.
+       (lookup_type_in_map): Allow this to look through decl-only types
+       to get their definition.  Otherwise, if only a decl-only was
+       found, return it.
+       (maybe_update_types_lookup_map<class_decl>): Allow adding
+       decl-only class types to the map of classes held per TU and per
+       corpus.
+       (class_or_union::{class_or_union, add_member_decl,
+       has_no_member}): Adjust.
+       (class_or_union::{insert_member_type, add_member_type,
+       add_member_type, remove_member_type, get_member_types,
+       get_sorted_member_types, find_member_type}): Move these methods to
+       scope_decl.
+       ({class_decl, class_or_union}::insert_member_decl): Remove the
+       "before" parameter as it was not used anymore due to the re-use of
+       the scope_decl::add_member that handles member types.
+       * src/abg-reader.cc (read_corpus_group_from_input)
+       (create_native_xml_read_context): Set the corpus origin.
+       * src/abg-writer.cc (write_context::{m_nc_type_id_map,
+       m_emitted_non_canonicalized_type_set,
+       m_referenced_non_canonicalized_types_set}): Remove these maps that
+       hold stuff for non-canonicalized types.
+       (write_context::{type_has_existing_id, get_id_for_type,
+       clear_type_id_map, has_non_emitted_referenced_types,
+       record_type_as_referenced, type_is_referenced,
+       record_type_as_emitted, type_is_emitted, clear_referenced_types,
+       write_referenced_types, write_canonical_type_ids}): Adjust these
+       as the maps for non-canonicalized types are gone.
+       (write_context::{get_referenced_non_canonicalized_types,
+       get_emitted_non_canonicalized_type_set}): Remove these methods.
+       (write_decl_in_scope)
+       (write_class_decl_opening_tag, write_union_decl_opening_tag)
+       (write_union_decl): Adjust comments.
+       (write_class_decl): Sort member types.  Also, When emitting a
+       decl-only class, get all of the decl-only classes of the same name
+       declared in several other TUs and emit all their member types into
+       this decl-only class just once.  This reduces redundancies and
+       sorting instabilities because for libabigail, all decl-only
+       classes of a given name are equal, even if they have member types.
+       * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust.
+       * tests/data/test-annotate/libtest23.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-annotate/test-anonymous-members-0.o.abi:
+       Likewise.
+       * tests/data/test-annotate/test0.abi: Likewise.
+       * tests/data/test-annotate/test1.abi: Likewise.
+       * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test2.so.abi: Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt:
+       Likewise.
+       * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt:
+       Likewise.
+       * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt:
+       Likewise.
+       * tests/data/test-diff-filter/test41-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
+       Likewise.
+       * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise.
+       * tests/data/test-read-dwarf/PR27700/test-PR27700.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-PR26568-1.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test-PR26568-2.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test1.abi: Likewise.
+       * tests/data/test-read-dwarf/test1.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test2.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test2.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+       * tests/data/test-read-write/test18.xml: Likewise.
+       * tests/data/test-read-write/test28-without-std-fns-ref.xml:
+       Likewise.
+       * tests/data/test-read-write/test28-without-std-vars-ref.xml:
+       Likewise.
+
+2022-09-08  Dodji Seketeli <dodji@redhat.com>
+
+       Fix IR comparison result caching and canonical type propagation tracking
+       * src/abg-ir-priv.h (environment::priv::recursive_types_): Define
+       new data member.
+       (environment::priv::cache_type_comparison_result): Cache results
+       only non-recursive and not dependant types, or when the result is
+       "false".  In all these cases, the result, once cached, will not
+       change.
+       (environment::priv::mark_dependant_types_compared_until): Mark
+       types as recursive at the same time others are marked as
+       dependant.
+       (environment::priv::{is_recursive_type, set_is_not_recursive}):
+       Define new member functions.
+       (environment::priv::{confirm_ct_propagation,
+       cancel_ct_propagation}): Confirming canonical type propagation
+       should happen for recursive types as well as their dependant
+       types.
+       * src/abg-ir.cc (return_comparison_result): Keep up with the
+       book-keeping at all time when type canonicalization process is
+       on-going.  Whenever we expect types that depends on recursive
+       types, expect recursive types too, obviously.
+       (type_base::get_canonical_type_for): Do not erase the comparison
+       result cache between the canonicalization of two different types.
+       (is_comparison_cycle_detected)
+       (mark_types_as_being_compared, unmark_types_as_being_compared):
+       Define new overloads for class_decl;
+       (equals): In the overloads for class_decl and union_decl, use
+       RETURN_COMPARISON_RESULT and mark_types_as_being_compared without
+       casting it to class_or_union.
+       * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust.
+       * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt:
+       Adjust.
+       * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt:
+       Adjust.
+       * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
+       Adjust.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
+       Adjust.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
+       Adjust.
+
+2022-09-02  Dodji Seketeli <dodji@redhat.com>
+
+       Allow restricting analyzed decls to exported symbols
+       * doc/manuals/tools-use-libabigail.txt: New doc text.
+       * doc/manuals/Makefile.am: Add the new tools-use-libabigail.rst
+       tool to the source distribution.
+       * doc/manuals/abidiff.rst: Include the new
+       tools-use-libabigail.rst.  Document the --exported-interfaces-only
+       and --allow-non-exported-interfaces.
+       * doc/manuals/abidw.rst: Likewise.
+       * doc/manuals/abipkgdiff.rst: Likewise.
+       * doc/manuals/kmidiff.rst: Likewise.
+       * include/abg-ir.h
+       (environment::{user_set_analyze_exported_interfaces_only,
+       analyze_exported_interfaces_only}): Declare new accessors.
+       * src/abg-ir.cc
+       (environment::{user_set_analyze_exported_interfaces_only,
+       analyze_exported_interfaces_only}): Define new accessors.
+       * src/abg-dwarf-reader.cc (die_is_variable_decl)
+       (die_is_function_decl): Define new static functions.
+       (read_context::is_decl_die_with_exported_symbol): Define new
+       member function.
+       (read_context::get_{function,variable}_address): Const-ify the
+       Dwarf_Die* parameter.
+       (build_translation_unit_and_add_to_ir): If the user asks to
+       analyze exported interfaces only,  the analyze only interfaces
+       that have exported ELF symbols.
+       (read_debug_info_into_corpus): If we are looking at the Linux
+       Kernel, then only analyze exported interfaces unless the user asks
+       otherwise.
+       * src/abg-ir-priv.h
+       (environment::priv::analyze_exported_interfaces_only_): Define new
+       data member.
+       * tools/abidiff.cc (options::exported_interfaces_only): Define new
+       data member.
+       (display_usage): Add new help strings for
+       --exported-interfaces-only and --allow-non-exported-interfaces.
+       (parse_command_line): Parse the new options
+       --exported-interfaces-only and --allow-non-exported-interfaces.
+       (main): Pass the value of opts.exported_interfaces_only to the
+       environment.
+       * tools/abidw.cc (options::exported_interfaces_only): Define new
+       data member.
+       (display_usage): Add new help strings for
+       --exported-interfaces-only and --allow-non-exported-interfaces.
+       (parse_command_line): Parse the new options
+       (load_corpus_and_write_abixml)
+       (load_kernel_corpus_group_and_write_abixml): Pass the value of
+       opts.exported_interfaces_only onto the environment.
+       * tools/abipkgdiff.cc (options::exported_interfaces_only): Define new
+       data member.
+       (display_usage): Add new help strings for
+       --exported-interfaces-only and --allow-non-exported-interfaces.
+       (parse_command_line): Parse the new options
+       (compare_task::perform, self_compare_task::perform): Pass the
+       value of opts.exported_interfaces_only onto the environment.
+       (compare_prepared_linux_kernel_packages): Likewise.
+       * tools/kmidiff.cc(options::exported_interfaces_only): Define new
+       data member.
+       (display_usage): Add new help strings for
+       --exported-interfaces-only and --allow-non-exported-interfaces.
+       (parse_command_line): Parse the new options
+       (main): Pass the value of opts.exported_interfaces_only onto the
+       environment.
+
+2022-09-01  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Revamp the canonical type DIE propagation algorithm
+       * src/abg-ir-priv.h (enum comparison_result): Define new enum.
+       * src/abg-dwarf-reader.cc (type_comparison_result_to_be_cached)
+       (maybe_cache_type_comparison_result)
+       (get_cached_type_comparison_result)
+       (maybe_get_cached_type_comparison_result)
+       (maybe_propagate_canonical_type, propagate_canonical_type)
+       (return_comparison_result): Define new static functions.
+       (has_offset_pair, insert_offset_pair, erase_offset_pair)
+       (have_offset_pair_in_common): Remove static functions.
+       (read_context::die_comparison_visits_): Remove data member.  The
+       concept supported by this data member is now replaced by caching
+       the results of comparing aggregate types, especially those that
+       are not yet canonicalized.  This essentially prevents the same
+       aggregate type pair to be compared again and again.
+       (read_context::{die_comparison_results_, compare_count_,
+       canonical_propagated_count_, cancelled_propagation_count_}): New
+       data members.
+       (read_context::initialize): Initialize the new data members
+       compare_count_, canonical_propagated_count_,
+       cancelled_propagation_count_ of integral type.
+       (read_context::{erase_canonical_die_offset}): New member
+       functions.
+       (struct offset_pairs_stack_type): Define new type.
+       (die_offset): Remove.
+       (is_canon_type_to_be_propagated_tag): Add union types to the set
+       of types for which canonical type propagation might occur.
+       (is_type_die_to_be_canonicalized): Add function types and array
+       types to the types to be canonicalized.
+       (ABG_RETURN): Change this macro to consider
+       COMPARISON_RESULT_DIFFERENT rather  than the "false" boolean.
+       Also, it uses the new return_comparison_result function.
+       (ABG_RETURN_FALSE): Likewise, use the new return_comparison_result
+       function.
+       (SET_RESULT_TO_FALSE): Make this return
+       COMPARISON_RESULT_DIFFERENT.
+       (SET_RESULT_TO, RETURN_IF_COMPARISON_CYCLE_DETECTED): Define new
+       macros.
+       (compare_dies): Make this return comparison_result rather than
+       just a bool.  This is also the core of the overhaul of the
+       canonical DIE propagation algorithm.  The algorithm is now similar
+       to the one implemented in the equals function for class_or_union
+       types in abg-ir.cc.  It's described in the comment that starts
+       with '@defgroup OnTheFlyCanonicalization' in abg-ir.cc.  The type
+       of the aggregates_being_compared parameter is now
+       offset_pairs_stack_type in parameter.  No more need for the
+       redundant_aggregates_being_compared parameter.  The new
+       offset_type that also encapsulates the source of the offset is now
+       used in lieu of the Dwarf_Off type.  Results of comparing
+       aggregates being compared are now cached.  When comparing
+       aggregates, use the RETURN_IF_COMPARISON_CYCLE_DETECTED to return
+       early if a cycle is detected.  The invocation of the ABG_RETURN
+       macro (especially the call to return_comparison_result) is where
+       the book keeping for canonical types propagation takes place, so
+       remove the explicit code that was handling that from the end of
+       this function.
+       (read_debug_info_into_corpus): Print statistics about the number
+       of aggregates compared and canonical-type-propagated.
+       * tests/data/test-annotate/test14-pr18893.so.abi: Adjust.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt:
+       Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+
+2022-07-20  Mark Wielaard <mark@klomp.org>
+
+       Handle zero sh_entsize in get_soname_of_elf_file
+       * src/abg-dwarf-reader.cc (get_soname_of_elf_file):
+       Make sure entsize is non-zero before use.
+       https://sourceware.org/bugzilla/show_bug.cgi?id=29346
+
+2022-09-19  Xiaole He via Libabigail <libabigail@sourceware.org>
+
+       abg-reader: fix comment of function
+       * src/abg-reader.cc (walk_xml_node_to_map_type_ids): fix comment
+
+2022-09-20  Dodji Seketeli <dodji@redhat.com>
+
+       Fix butchered tests/data/Makefile.am
+       * tests/data/Makefile.am: Fix test file paths.
+
+2022-09-19  Dodji Seketeli <dodji@redhat.com>
+
+       test-annotate: Don't emit architecture data
+       * tests/test-annotate.cc (main): Add the --no-architecture option
+       to abidw.
+       * tests/data/test-annotate/PR29443-missing-xx.o.annotated.abi:
+       Adjust.
+       * tests/data/test-annotate/libtest23.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-annotate/test-anonymous-members-0.o.abi:
+       Likewise.
+       * tests/data/test-annotate/test0.abi: Likewise.
+       * tests/data/test-annotate/test1.abi: Likewise.
+       * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test2.so.abi: Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-annotate/test3.so.abi: Likewise.
+       * tests/data/test-annotate/test4.so.abi: Likewise.
+       * tests/data/test-annotate/test5.o.abi: Likewise.
+       * tests/data/test-annotate/test6.so.abi: Likewise.
+       * tests/data/test-annotate/test7.so.abi: Likewise.
+       * tests/data/test-annotate/test8-qualified-this-pointer.so.abi:
+       Likewise.
+
+2022-09-19  Dodji Seketeli <dodji@redhat.com>
+
+       Bug PR29443 - Global variables not emitted to abixml in some cases
+       * src/abg-ir.cc (var_decl::get_pretty_representation): Always use
+       qualified name of vars in an anonymous scope for internal
+       purposes.
+       * tests/data/test-annotate/PR29443-missing-xx.o.annotated.abi: New
+       reference test output.
+       * tests/test-annotate.cc (in_out_specs): Add the above to the test
+       harness.
+       * tests/data/test-read-dwarf/PR29443-missing-xx.cc: New source
+       code for the test.
+       * tests/data/test-read-dwarf/PR29443-missing-xx.o: New test input
+       binary.
+       * tests/data/test-read-dwarf/PR29443-missing-xx.o.abi: New test
+       reference output.
+       * tests/data/Makefile.am: Add the new test material to source
+       distribution.
+       * tests/test-read-dwarf.cc (in_out_specs): Add the above to the
+       test harness.
+
+2022-09-07  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       ctf-reader: Lookup debug info for symbols in a non default archive member
+       * src/abg-ctf-reader.cc (lookup_symbol_in_ctf_archive): New function.
+       (process_ctf_archive): Use `lookup_symbol_in_ctf_archive'.
+
+2022-06-28  Ben Woodard via Libabigail <libabigail@sourceware.org>
+
+       Bug 28669 - Increment Library version
+       * configure.ac: Define the variables libabigail_so_{current,
+       revision, age}.  These are to be adjusted after each releases
+       depending on how the compatibility status of the libabigail's
+       code.
+       * src/Makefile.am: Add -version-info
+       $(LIBABIGAIL_SO_CURRENT):$(LIBABIGAIL_SO_REVISION):$(LIBABIGAIL_SO_AGE)
+       to LDFLAGS.
+
+2022-09-01  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Simplify the canonicalization decision of types added to IR
+       * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Remove
+       the overload that takes a Dwarf_Die* parameter.
+       (operator++(die_source& source)): Likewise.
+       (read_context::{types_to_canonicalize_,
+       alt_types_to_canonicalize_,
+       type_unit_types_to_canonicalize_}): Remove these data members
+       of type vector<Dwarf_Off>.  (read_context::initialize): Remove
+       invocations to alt_types_to_canonicalize_.clear(),
+       type_unit_types_to_canonicalize_.clear(), and
+       extra_types_to_canonicalize_.clear().
+       (read_context::extra_types_to_canonicalize_): Rename this into
+       read_context::types_to_canonicalize_, of type
+       vector<type_base_sptr>.
+       (read_context::types_to_canonicalize): Remove these member
+       functions that take a parameter of type die_source.
+       (read_context::extra_types_to_canonicalize): Rename this
+       function into types_to_canonicalize.  It returns a type const
+       vector<type_base_sptr>&.
+       (read_context::schedule_type_for_late_canonicalization):
+       Remove this overload that takes a type const Dwarf_Die*.  In
+       the overload that takes a parameter const type_base_sptr
+       however, rename the invocation to
+       extra_types_to_canonicalize_.push_back(t) into
+       types_to_canonicalize_.push_back(t).
+       (read_context::canonicalize_types_scheduled): This doesn't
+       take a die_source parameter anymore.  It now only cycles
+       through the types retrieved by types_to_canonicalize() to
+       canonicalize them.
+       (read_context::add_late_canonicalized_types_stats): Remove the
+       die_source parameter.  Use types_to_canonicalize().
+       (read_context::perform_late_type_canonicalizing): Just call
+       read_context::canonicalize_types_scheduled().
+       (build_ir_node_from_die): Adjust calls to maybe_canonicalize_type.
+       Also, really canonicalize the function type when a function decl is
+       constructed.
+       * tests/data/test-annotate/test13-pr18894.so.abi: Adjust.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt:
+       Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
+
+2022-09-02  Dodji Seketeli <dodji@redhat.com>
+
+       ir: translation_unit::is_empty should work without environment.
+       * src/abg-ir.cc (translation_unit::is_empty): If there is no
+       global scope, then we know its empty.  No need to create one.
+
+2022-09-01  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Don't overdo canonical type propagation control when comparing classes
+       * src/abg-ir.cc (equals): In the overload for const class_decl&,
+       do not cancel the propagated canonical type if the propagation is
+       not the result of invoking the equals overload for class_or_union.
+
+2022-09-05  Dodji Seketeli <dodji@redhat.com>
+
+       Add test-abidiff-exit/ld-2.28-21{0,1}.so to source distribution
+       * tests/data/Makefile.am: Add the new files to source
+       distribution.  Also, add the new
+       test-abidiff-exit/ld-2.28-21x.so.sources.txt.
+       * tests/data/test-abidiff-exit/ld-2.28-21x.so.sources.txt: New
+       file describing where the sources are.
+
+2022-08-25  Giuliano Procida <gprocida@google.com>
+
+       abidw: resolve declaration-only enums the same as classes
+       * src/abg-dwarf-reader.cc
+       (read_context::resolve_declaration_only_enums): Use an ordered
+       map to ensure TUs are always considered in the same order and
+       so improve ABI XML stability. Given multiple possible
+       definitions for a enum declaration, check to see if they are
+       equal and resolve the declaration to the first definition if
+       so.
+
+2022-08-25  Giuliano Procida <gprocida@google.com>
+
+       abidw: remove always true test in resolve_declaration_only_classes
+       * src/abg-dwarf-reader.cc
+       (read_context::resolve_declaration_only_classes): Remove
+       tautological conditional.
+
+2022-08-25  Giuliano Procida <gprocida@google.com>
+
+       abidw: fix --stats output for resolved classes and enums
+       * src/abg-dwarf-reader.cc
+       (read_context::resolve_declaration_only_classes): Fix
+       conditional logic so that showing stats includes the first
+       unresolved type.
+       (read_context::resolve_declaration_only_enums): Likewise.
+
+2022-08-15  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       ctf-reader: looks for debug information in out-of-tree modules
+       * src/abg-ctf-reader.cc (process_ctf_archive, read_corpus
+       slurp_elf_info): Avoid looking for `vmlinux.ctfa' when we aren't
+       processing a `cur_corpus_group_'. So CTF info is embedded in the
+       `.ko' file.
+       * tests/data/Makefile.am: Add test inputs and expected files.
+       * tests/data/test-read-ctf/test-linux-module.{ko,c,abi}: Add new
+       test input and reference kABI.
+       * tests/test-read-ctf.cc: Add new testcase.
+
+2022-08-26  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Better handle the absence of a die->parent map
+       * src/abg-dwarf-reader.cc (get_scope_for_die): Consider that in
+       the absence of the DIE->PARENT map, all decls are in the global.
+       namespace.
+       * tests/data/test-abidiff-exit/ld-2.28-210.so: New test.
+       * tests/data/test-abidiff-exit/ld-2.28-211.so: Likewise.
+       * tests/data/test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt: New reference test output.
+       * tests/test-abidiff-exit.cc (in_out_specs): Add the test above to
+       the harness.
+
+2022-08-29  Dodji Seketeli <dodji@redhat.com>
+
+       Update test-read-ctf reference output
+       * tests/data/test-read-ctf/test-PR26568-1.o.abi: Adjust.
+       * tests/data/test-read-ctf/test-PR26568-2.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-A.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-B.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-anonymous-fields.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-array-of-pointers.abi: Likewise.
+       * tests/data/test-read-ctf/test-callback2.abi: Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-a.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-b.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-list-struct.abi: Likewise.
+       * tests/data/test-read-ctf/test0.abi: Likewise.
+       * tests/data/test-read-ctf/test0.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test1.so.abi: Likewise.
+       * tests/data/test-read-ctf/test1.so.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test7.o.abi: Likewise.
+       * tests/data/test-read-ctf/test9.o.abi: Likewise.
+
+2022-08-19  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Don't consider different int types of same kind and size as equivalent
+       * src/abg-ir.cc (equals): In the overload for type_decl, do not
+       consider int types of the same type as being equivalent by
+       overlooking their long and short modifiers.
+       * tests/data/test-annotate/libtest23.so.abi: Adjust.
+       * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-annotate/test0.abi: Likewise.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+       * tests/data/test-read-write/test28-without-std-fns-ref.xml:
+       Likewise.
+       * tests/data/test-read-write/test28-without-std-vars-ref.xml:
+       Likewise.
+
+2022-07-24  Dodji Seketeli <dodji@redhat.com>
+
+       writer: Make sorting referenced typedefs types stable in abixml
+       * src/abg-writer.cc (read_context::type_ptr_cmp::operator()): In
+       the less-than operator the type pointer comparison functor, use
+       the non-internal pretty representation of types for sorting
+       purposes.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Adjust
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Likewise.
+
+2022-07-22  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Consider integral types of same kind and size as equivalent
+       * include/abg-fwd.h (is_integral_type): Declare new function.
+       * include/abg-ir.h (type_decl::get_qualified_name): Add a
+       declaration of an implementation of the virtual interface
+       get_qualified_name.
+       * src/abg-ir-priv.h (integral_type::set_modifiers): Define a new
+       setter.
+       (integral_type::to_string): Add an "internal" flag.
+       * src/abg-ir.cc (operator~, operator&=): Declare
+       new operators.
+       (get_internal_integral_type_name): Define new static function.
+       (decl_base::priv::{temporary_internal_qualified_name_,
+       internal_qualified_name_}): Define two new data members.
+       (get_type_name): For internal name of integral types, use the new
+       get_internal_integral_type_name function.
+       (is_integral_type): Define new function.
+       (integral_type::set_modifiers): Define new member function.
+       (operator|, operator&): Fix some indentation.
+       (operator~, operator&=): Define new operators.
+       (parse_integral_type): Fix the logic of this function.  Namely, it
+       wasn't handling parsing "long long" correctly.
+       (integral_type::to_string): Add an "internal" flag.
+       (equals): In the overload for type_decl, do not take the short,
+       long and long long into account when comparing integral types of
+       the same size.
+       (type_decl::get_qualified_name): Define new method.
+       (type_decl::get_pretty_representation): For internal name of
+       integral types, use the new get_internal_integral_type_name
+       function.
+       ({decl,type}_topo_comp::operator()): Use the non-internal pretty
+       representation of decls/types for sorting purpose.
+       * src/abg-reader.cc (build_type_decl): We don't expect the
+       integral type name from abixml to the same as the name of the
+       parsed integral type, as the abixml file can be old and have an
+       old format.
+       * tests/data/test-annotate/libtest23.so.abi: Adjust.
+       * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Adjust.
+       * tests/data/test-annotate/libtest24-drop-fns.so.abi: Adjust.
+       * tests/data/test-annotate/test0.abi: Adjust.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Adjust.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Adjust.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Adjust.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Adjust.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Adjust.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Adjust.
+       * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt:
+       Adjust.
+       * tests/data/test-diff-filter/test41-report-0.txt: Adjust.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
+       Adjust.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
+       Adjust.
+       * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt:
+       Adjust.
+       * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
+       Adjust.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust.
+       * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Adjust.
+       * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
+       Adjust.
+       * tests/data/test-read-dwarf/libtest23.so.abi: Adjust.
+       * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Adjust.
+       * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test-PR26568-1.o.abi: Adjust.
+       * tests/data/test-read-dwarf/test-PR26568-2.o.abi: Adjust.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test0.abi: Adjust.
+       * tests/data/test-read-dwarf/test0.hash.abi: Adjust.
+       * tests/data/test-read-dwarf/test1.hash.abi: Adjust.
+       * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Adjust.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Adjust.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Adjust.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
+       Adjust.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust.
+       * tests/data/test-read-write/test22.xml: Adjust.
+       * tests/data/test-read-write/test23.xml: Adjust.
+       * tests/data/test-read-write/test28-without-std-fns-ref.xml: Adjust.
+       * tests/data/test-read-write/test28-without-std-vars-ref.xml: Adjust.
+
+2022-07-22  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Remove redundant qualifiers from qualified types
+       * include/abg-fwd.h (strip_redundant_quals_from_underyling_types):
+       Declare new function.
+       * include/abg-ir.h (operator&=): Declare new binary operator for
+       qualified_type_def::CV and ...
+       * src/abg-ir.cc (+operator&=): ... define it here.
+       (strip_redundant_quals_from_underyling_types): Define new function
+       and ...
+       * src/abg-dwarf-reader.cc (maybe_strip_qualification): ... Use it
+       here.
+       * tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt:
+       Adjust.
+
+2022-07-22  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Disambiguate sorting of array element types
+       * src/abg-ir.cc (get_type_representation): In the overload for
+       array_type_def, use qualified names for element types.
+       * tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt: Adjust.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Adjust.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Adjust.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Adjust.
+       * tests/data/test-diff-filter/test-PR26739-2-report-0.txt: Adjust.
+
+2022-07-19  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Make pointers name stable wrt decl-only-ness of pointed-to types
+       * src/abg-ir.cc (look_through_decl_only): New overload for
+       type_base.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust.
+
+2022-07-18  Dodji Seketeli <dodji@redhat.com>
+
+       tests-diff-{filter,pkg,pkg-ctf}: Fix tests broken by the previous commit
+       * tests/data/test-diff-filter/test41-report-0.txt: Adjust.
+       * tests/data/test-diff-pkg-ctf/gmp-6.x.x86_64-report-0.txt:
+       Adjust.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
+       Adjust.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
+       Adjust.
+
+2022-07-18  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Support DWARF incomplete class types
+       * src/abg-dwarf-reader.cc
+       (read_context::resolve_declaration_only_classes): Do not avoid
+       comparing ODR-relevant classes.
+       (add_or_update_class_type): Detect incomplete classes and treat
+       them as decl-only types.  They'll be resolved to their proper
+       complete types later, by
+       read_context::resolve_declaration_only_classes.
+       * tests/data/test-annotate/libtest23.so.abi: Adjust.
+       * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
+       * tests/data/test-diff-filter/test41-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
+       Likewise.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
+       Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+
+2022-07-14  Dodji Seketeli <dodji@redhat.com>
+
+       Better Handle naming typedefs on anonymous enums
+       * src/abg-dwarf-reader.cc (build_typedef_type): Do not re-use
+       typedefs.
+       * src/abg-ir.cc (get_function_type_name, get_method_type_name)
+       (function_decl::get_pretty_representation_of_declarator): Strip
+       typedefs when the function name is computed for internal purposes.
+       (equals):  In the overload for function_decl::parameter, strip
+       typedefs when comparing parameter types.
+       * tests/data/test-annotate/libtest23.so.abi: Adjust.
+       * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-diff-dwarf/test2-report.txt: Likewise.
+       * tests/data/test-diff-filter/test3-report.txt: Likewise.
+       * tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+
+2022-07-14  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Fix a thinko when building vars
+       * src/abg-dwarf-reader.cc (build_ir_node_from_die): Don't get out
+       early when building vars.
+
+2022-07-11  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 29302 - Don't edit fn linkage name when not appropriate
+       * src/abg-dwarf-reader.cc (build_function_decl): If the linkage
+       name is properly set in the DWARF, do not change it.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust.
+
+2022-07-08  Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
+
+       ctf-reader: add support to looks for debug information to extract kABI
+       * src/abg-ctf-reader.cc (find_ctfa_file): Add new function
+       meant to locate the Linux Kernel debug information file
+       `vmlinux.ctfa'.
+       (ctf_reader::read_corpus): Use `find_ctfa_file' function.
+
+2022-07-08  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       Add regression tests for abipkgdiff using ctf info
+       * doc/manuals/abipkgdiff.rst: Document the fact that abipkgdiff
+       now supports the CTF format.
+       * tests/data/test-diff-pkg-ctf/cracklib-2.9.6-15-ol8.x86_64-report-0.txt:
+       New test input.
+       * tests/data/test-diff-pkg-ctf/cracklib-2.9.6-15-ol8u0.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/cracklib-2.9.6-15-ol8u6.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-0-dir1/dir.abignore:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-0-dir1/libobj-v0.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-0-dir1/obj-v0.c: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-0-dir2/libobj-v0.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-0-dir2/obj-v0.c: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-0-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-1-dir1/libobj-v0.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-1-dir1/obj-v0.c: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-1-dir2/dir.abignore:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-1-dir2/libobj-v0.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-1-dir2/obj-v0.c: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-1-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-1-report-1.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-2-dir1/libobj-v0.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-2-dir1/obj-v0.c: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-2-dir2/.abignore: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-2-dir2/dir.abignore:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-2-dir2/libobj-v0.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-2-dir2/obj-v0.c: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-2-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-3-dir1/libobj-v0.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-3-dir1/obj-v0.c: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-3-dir2/.abignore: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-3-dir2/libobj-v0.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-3-dir2/obj-v0.c: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-3-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-3-report-1.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-3-report-2.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/dirpkg-3.suppr: Likewise.
+       * tests/data/test-diff-pkg-ctf/elfutils-libelf-0.186-1.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/elfutils-libelf-0.186-2.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/elfutils-libelf-0.186-report-0.txt:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/elfutils-libelf-0.186-report-1.txt:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/gmp-6.1.2-8-ol8u0.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/gmp-6.2.0-10-ol9u0.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/gmp-6.x.x86_64-report-0.txt:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/isl-0.16.1-6.x86_64.rpm: Likewise.
+       * tests/data/test-diff-pkg-ctf/isl-0.16.1-7.x86_64.rpm: Likewise.
+       * tests/data/test-diff-pkg-ctf/isl-0.16.1-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/isl-debuginfo-0.16.1-6.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/isl-debuginfo-0.16.1-7.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/libdwarf-20180129-4-no-ctf.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/libdwarf-20180129-4.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/libdwarf-20180129-5-no-ctf.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/libdwarf-20180129-5.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1-report0.txt:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir1/symlinks/foo.o:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir1/symlinks/libfoo.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir1/targets/foo.c:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir1/targets/foo.o:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir1/targets/libfoo.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir2/symlinks/foo.o:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir2/symlinks/libfoo.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir2/targets/foo.c:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir2/targets/foo.o:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/symlink-dir-test1/dir2/targets/libfoo.so:
+       Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-0-dir1.ta: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-0-dir1.tar: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-0-dir1.tar.bz2: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-0-dir1.tar.gz: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-0-dir2.ta: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-0-dir2.tar: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-0-dir2.tar.bz2: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-0-dir2.tar.gz: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-0-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-1-dir1.tar.gz: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-1-dir2.tar.gz: Likewise.
+       * tests/data/test-diff-pkg-ctf/tarpkg-1-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/test-rpm-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/test-rpm-report-1.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/test-rpm-report-2.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/test-rpm-report-3.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/test-rpm-report-4.txt: Likewise.
+       * tests/data/test-diff-pkg-ctf/test-rpm-report-5.txt: Likewise.
+       * tests/data/Makefile.am: Add the test material above to source
+       distribution.
+       * tests/test-diff-pkg.cc (in_out_spec): Add the test inputs above
+       to this harness.
+
+2022-07-08  Matthias Maennich <maennich@google.com>
+
+       tests: Update Catch2 library to v2.13.9
+       * tests/lib/catch.hpp: Update to v2.13.9
+
+2022-07-04  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       kmidiff: Add CTF support to comparing Kernel trees
+       * doc/manuals/kmidiff.rst: Add documentation for the new --ctf option.
+       * tools/kmidiff.cc (options::use_ctf): Define new data member.
+       (display_usage): Add a help string for the --ctf option.
+       (main): Adjust call to pass
+       build_corpus_group_from_kernel_dist_under with origin being
+       corpus::CTF_ORIGIN when the user provides the --ctf option.
+
+2022-07-04  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader,ir: Don't canonicalize enums too early & too naively
+       * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Delay enum
+       type canonicalization.
+       * src/abg-ir.cc (type_base::get_canonical_type_for): Look through
+       all decl-only types, not just decl-only classes.
+       (equals): In the overload for enums, look through decl-only
+       enums.  Also, fix redundant enumerators detection to make it more
+       robust, otherwise, some regression tests break.
+
+2022-06-13  Giuliano Procida <gprocida@google.com>
+
+       add Linux kernel symbol namespace support
+       * include/abg-ir.h (elf_symbol::elf_symbol): Add ns argument.
+       (elf_symbol::create): Add ns argument.
+       (elf_symbol::get_namespace): Declare new function.
+       (elf_symbol::set_namespace): Declare new function.
+       and set_namespace.
+       * src/abg-comp-filter.cc (namespace_changed): Define new
+       helper functions.
+       (categorize_harmful_diff_node): Also call namespace_changed().
+       * src/abg-ir.cc (elf_symbol::priv): Add namespace_ member.
+       (elf_symbol::priv::priv): Add namespace_ to initialisers.
+       (elf_symbol::elf_symbol): Take new ns argument and pass it to
+       priv constructor.
+       (elf_symbol::create): Take new ns argument and pass it to
+       elf_symbol constructor.
+       (elf_symbol::get_namespace): Define new function.
+       (elf_symbol::set_namespace): Define new function.
+       * src/abg-reader.cc (build_elf_symbol): If namespace
+       attribute is present, set symbol namespace.
+       * src/abg-reporter-priv.cc (maybe_report_diff_for_symbol): If
+       symbol namespaces differ, report this.
+       * src/abg-symtab-reader.cc (symtab::load): Get ELF header to
+       distinguish vmlinux from .ko. Try to get __ksymtab_strings
+       metadata and data. Use these to look up __kstrtabns_FOO
+       namespace entries. Set symbol namespace where found.
+       * src/abg-writer.cc (write_elf_symbol): Emit namespace
+       attribute, if symbol has a namespace.
+       * tests/data/Makefile.am: Add new test files.
+       * tests/data/test-abidiff/test-namespace-0.xml: New test file.
+       * tests/data/test-abidiff/test-namespace-1.xml: Likewise
+       * tests/data/test-abidiff/test-namespace-report.txt: Likewise.
+       * tests/test-abidiff.cc: Add new test case.
+       Reviewed-by: Matthias Maennich <maennich@google.com>
+
+2022-06-13  Giuliano Procida <gprocida@google.com>
+
+       Linux symbol CRCs: support 0 and report presence changes
+       * include/abg-ir.h (elf_symbol::elf_symbol): Argument crc is
+       now an optional defaulted to absent.
+       (elf_symbol::create): Likewise.
+       (elf_symbol::get_crc): Now returns an optional uint64_t.
+       (elf_symbol::set_src): Now takes an optional uint64_t.
+       * src/abg-comp-filter.cc (crc_changed): Simplify comparison.
+       * src/abg-ir.cc (elf_symbol::priv): Member crc_ is now an
+       optional uint64_t.
+       (elf_symbol::priv::priv): Argument crc is now an optional
+       uint64_t.
+       (elf_symbol::elf_symbol): Likewise.
+       (elf_symbol::create): Argument crc is now an optional uint64_t
+       and defaults to absent.
+       (textually_equals): Simplify comparison.
+       (elf_symbol::get_crc): Now returns an optional uint64_t.
+       (elf_symbol::set_crc): Now takes an optional uint64_t.
+       * src/abg-reader.cc (build_elf_symbol): Treat CRC 0 the same
+       as other CRC values.
+       * src/abg-reporter-priv.cc (maybe_report_diff_for_symbol):
+       Treat CRC 0 the same as other CRC values and also report
+       changes to CRC presence.
+       * src/abg-writer.cc (write_elf_symbol): Treat CRC 0 the same
+       as other CRC values.
+       * tests/data/Makefile: Remove test-abidiff/test-crc-report.txt
+       and add test-abidiff/test-crc-report-{0-1,1-0,1-2}.txt.
+       * tests/data/test-abidiff/test-crc-report-0-1.txt: Report
+       showing additional of CRCs.
+       * tests/data/test-abidiff/test-crc-report-1-0.txt: Report
+       showing removal of CRCs.
+       * tests/data/test-abidiff/test-crc-report-1-2.txt: Renamed
+       from tests/data/test-abidiff/test-crc-report.txt.
+       * tests/test-abidiff.cc: Update test cases that no longer
+       generate empty reports.
+       * tests/test-symtab.cc: Update KernelSymtabsWithCRC test.
+       Reviewed-by: Matthias Maennich <maennich@google.com>
+
+2022-06-13  Giuliano Procida <gprocida@google.com>
+
+       optional: minor improvements
+       * include/abg-cxx-compat.h (optional): Add operator== and
+       operator!=. Add noexcept decorations. Tweak operator bool.
+       Reviewed-by: Matthias Maennich <maennich@google.com>
+
+2022-06-13  Giuliano Procida <gprocida@google.com>
+
+       crc_changed: eliminate copying of shared_ptr values
+       * src/abg-comp-filter.cc (crc_changed): Take references to
+       avoid std::shared_ptr copying. Split declarations into one per
+       line. Remove unnecessary return expression parentheses.
+       Reviewed-by: Matthias Maennich <maennich@google.com>
+
+2022-06-30  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Add some debugging facilities for the comparison machinery
+       * src/abg-ir-priv.h: Include iostream to access std::cerr.
+       (environment::priv::{dump_classes_being_compared,
+       dump_fn_types_being_compared}): Define new member functions.
+       * src/abg-ir.cc (dump_classes_being_compared)
+       (dump_fn_types_being_compared): Define new functions.
+
+2022-06-30  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 29303 - Cache the result of structural aggregate comparison
+       * src/abg-ir-priv.h (struct uint64_t_pair_hash): Define new type.
+       (uint64_t_pair_type, uint64_t_pairs_set_type)
+       (type_comparison_result_type): Define new typedefs.
+       (environment::priv::{classes_being_compared_,
+       fn_types_being_compared_}): Use the new uint64_t_pairs_set_type
+       type for these.
+       (environment::priv::{type_comparison_results_cache_,
+       allow_type_comparison_results_caching_}): Define new data members.
+       (environment::priv::priv): Initialize the new
+       allow_type_comparison_results_caching_ scalar data member.
+       (environment::priv::{allow_type_comparison_results_caching,
+       cache_type_comparison_result, is_type_comparison_cached,
+       clear_type_comparison_results_cache}): Define new member
+       functions.
+       (environment::priv::{mark_as_being_compared,
+       unmark_as_being_compared, comparison_started}): Take a pair of
+       types.
+       (struct function_type::priv): Move this here, from ...
+       * src/abg-ir.cc (struct function_type::priv): ... here.
+       (is_comparison_cycle_detected, mark_types_as_being_compared)
+       (unmark_types_as_being_compared): Adjust call to the new
+       environment::priv::{comparison_started, mark_as_being_compared,
+       unmark_as_being_compared}.
+       (type_base::get_canonical_type_for): Use aggregate types
+       comparison result caching when doing type comparison.
+       (equals): In the overload for function_type, class_or_union and
+       class_decl, cache the result of aggregate type comparison and
+       re-use that cached result when it's available.
+       * src/abg-dwarf-reader.cc
+       (read_context::compare_before_canonicalisation): Use aggregate
+       types comparison result caching when doing type comparison.
+
+2022-06-28  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Don't consider top-level types as private
+       * src/abg-dwarf-reader.cc (die_is_public_decl): Only function and
+       variable decls having the DW_AT_external, as well as non-anonymous
+       namespaces are considered public decls.  The rest is considered
+       private.
+       (build_namespace_decl_and_add_to_ir): If the current namespace is
+       private (anonymous), then its content is also private.  Otherwise,
+       use die_is_public_decl to know if its content is public or not.
+
+2022-06-24  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Avoid long comparisons when resolving C++ decl-only classes
+       * src/abg-dwarf-reader.cc
+       (read_context::resolve_declaration_only_classes): Don't compare
+       same-name-types of a binary if the ODR is relevant.
+       * tests/data/test-annotate/test14-pr18893.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+
+2022-06-23  Dodji Seketeli <dodji@redhat.com>
+
+       test-alt-dwarf: Add missing dwz alt-debug file
+       * tests/data/test-alt-dwarf-file/libstdc++/libstdc++-report-1.txt:
+       New reference test output.
+       * tests/data/test-alt-dwarf-file/libstdc++/usr/lib/debug/.dwz/gcc-12.1.1-1.fc37.x86_64:
+       New dwz alt-debug info file.
+       * tests/data/Makefile.am: Add the test material above to source
+       distribution.
+
+2022-06-23  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Make canonicalization stable wrt typedefs in fn return types
+       * src/abg-ir.cc (get_function_type_name, get_method_type_name):
+       When the function type name is for internal purposes, strip
+       potential typedefs off.
+       (equal): In the overload for function_type, strip potential
+       typedefs off of return types before comparing them.
+       (decl_base::set_naming_typedef): Properly adjust the qualified
+       name of the type to which a naming typedef is being set.
+       * tests/data/test-alt-dwarf-file/libstdc++/libstdc++-report.txt:
+       New reference test output.
+       * tests/data/test-alt-dwarf-file/libstdc++/usr/lib/debug/usr/lib64/libstdc++.so.6.0.30-12.1.1-1.fc37.x86_64.debug:
+       New binary test input.
+       * tests/data/test-alt-dwarf-file/libstdc++/usr/lib64/libstdc++.so.6.0.30:
+       New binary test input.
+       * tests/data/Makefile.am: Add the new test material to source
+       distribution.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Adjust.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
+
+2022-06-21  Dodji Seketeli <dodji@redhat.com>
+
+       Update year in copyright notice
+       * include/abg-comp-filter.h: Update year in copyright notice.
+       * include/abg-comparison.h: Likewise.
+       * include/abg-config.h: Likewise.
+       * include/abg-corpus.h: Likewise.
+       * include/abg-ctf-reader.h: Likewise.
+       * include/abg-cxx-compat.h: Likewise.
+       * include/abg-diff-utils.h: Likewise.
+       * include/abg-dwarf-reader.h: Likewise.
+       * include/abg-elf-reader-common.h: Likewise.
+       * include/abg-fwd.h: Likewise.
+       * include/abg-hash.h: Likewise.
+       * include/abg-ini.h: Likewise.
+       * include/abg-interned-str.h: Likewise.
+       * include/abg-ir.h: Likewise.
+       * include/abg-libxml-utils.h: Likewise.
+       * include/abg-reader.h: Likewise.
+       * include/abg-regex.h: Likewise.
+       * include/abg-reporter.h: Likewise.
+       * include/abg-sptr-utils.h: Likewise.
+       * include/abg-suppression.h: Likewise.
+       * include/abg-tools-utils.h: Likewise.
+       * include/abg-traverse.h: Likewise.
+       * include/abg-viz-common.h: Likewise.
+       * include/abg-viz-dot.h: Likewise.
+       * include/abg-viz-svg.h: Likewise.
+       * include/abg-workers.h: Likewise.
+       * include/abg-writer.h: Likewise.
+       * src/abg-comp-filter.cc: Likewise.
+       * src/abg-comparison-priv.h: Likewise.
+       * src/abg-comparison.cc: Likewise.
+       * src/abg-config.cc: Likewise.
+       * src/abg-corpus-priv.h: Likewise.
+       * src/abg-corpus.cc: Likewise.
+       * src/abg-ctf-reader.cc: Likewise.
+       * src/abg-default-reporter.cc: Likewise.
+       * src/abg-diff-utils.cc: Likewise.
+       * src/abg-dwarf-reader.cc: Likewise.
+       * src/abg-elf-helpers.cc: Likewise.
+       * src/abg-elf-helpers.h: Likewise.
+       * src/abg-elf-reader-common.cc: Likewise.
+       * src/abg-hash.cc: Likewise.
+       * src/abg-ini.cc: Likewise.
+       * src/abg-internal.h: Likewise.
+       * src/abg-ir-priv.h: Likewise.
+       * src/abg-ir.cc: Likewise.
+       * src/abg-leaf-reporter.cc: Likewise.
+       * src/abg-libxml-utils.cc: Likewise.
+       * src/abg-reader.cc: Likewise.
+       * src/abg-regex.cc: Likewise.
+       * src/abg-reporter-priv.cc: Likewise.
+       * src/abg-reporter-priv.h: Likewise.
+       * src/abg-suppression-priv.h: Likewise.
+       * src/abg-suppression.cc: Likewise.
+       * src/abg-symtab-reader.cc: Likewise.
+       * src/abg-symtab-reader.h: Likewise.
+       * src/abg-tools-utils.cc: Likewise.
+       * src/abg-traverse.cc: Likewise.
+       * src/abg-viz-common.cc: Likewise.
+       * src/abg-viz-dot.cc: Likewise.
+       * src/abg-viz-svg.cc: Likewise.
+       * src/abg-workers.cc: Likewise.
+       * src/abg-writer.cc: Likewise.
+       * tests/print-diff-tree.cc: Likewise.
+       * tests/test-abicompat.cc: Likewise.
+       * tests/test-abidiff-exit.cc: Likewise.
+       * tests/test-abidiff.cc: Likewise.
+       * tests/test-alt-dwarf-file.cc: Likewise.
+       * tests/test-core-diff.cc: Likewise.
+       * tests/test-cxx-compat.cc: Likewise.
+       * tests/test-diff-dwarf-abixml.cc: Likewise.
+       * tests/test-diff-dwarf.cc: Likewise.
+       * tests/test-diff-filter.cc: Likewise.
+       * tests/test-diff-pkg.cc: Likewise.
+       * tests/test-diff-suppr.cc: Likewise.
+       * tests/test-diff2.cc: Likewise.
+       * tests/test-elf-helpers.cc: Likewise.
+       * tests/test-ini.cc: Likewise.
+       * tests/test-ir-walker.cc: Likewise.
+       * tests/test-kmi-whitelist.cc: Likewise.
+       * tests/test-lookup-syms.cc: Likewise.
+       * tests/test-read-ctf.cc: Likewise.
+       * tests/test-read-dwarf.cc: Likewise.
+       * tests/test-read-write.cc: Likewise.
+       * tests/test-symtab-reader.cc: Likewise.
+       * tests/test-symtab.cc: Likewise.
+       * tests/test-tools-utils.cc: Likewise.
+       * tests/test-types-stability.cc: Likewise.
+       * tests/test-utils.cc: Likewise.
+       * tests/test-utils.h: Likewise.
+       * tools/abicompat.cc: Likewise.
+       * tools/abidiff.cc: Likewise.
+       * tools/abidw.cc: Likewise.
+       * tools/abilint.cc: Likewise.
+       * tools/abipkgdiff.cc: Likewise.
+       * tools/abisym.cc: Likewise.
+       * tools/binilint.cc: Likewise.
+       * tools/kmidiff.cc: Likewise.
+       * update-copyright.sh: Likewise.
+
+2022-06-21  Dodji Seketeli <dodji@redhat.com>
+
+       reporter-priv: Passing a string parm by reference
+       * src/abg-reporter-priv.h
+       (maybe_report_data_members_replaced_by_anon_dm): Pass the string parm by ...
+       * src/abg-reporter-priv.cc
+       (maybe_report_data_members_replaced_by_anon_dm): ... reference.
+
+2022-04-11  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Fix DWARF string comparison optimization
+       * src/abg-dwarf-reader.cc (slowly_compare_strings)
+       (die_char_str_attribute): Define new static functions.
+       (compare_dies_string_attribute_value): Use the new
+       slowly_compare_strings here.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Adjust.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
+
+2022-04-04  Dodji Seketeli <dodji@redhat.com>
+
+       Canonicalize DIEs w/o assuming ODR & handle typedefs transparently
+       * include/abg-fwd.h (peel_typedef_pointer_or_reference_type):
+       Declare new function.
+       * src/abg-dwarf-reader.cc (read_context::{compute_canonical_die,
+       get_canonical_die, get_or_compute_canonical_die}): Don't
+       special-case ODR-relevant cases.
+       (is_canon_type_to_be_propagated_tag): Rename
+       is_canonicalizeable_type_tag into this.
+       (erase_offset_pair): Make this return a bool, not void.
+       (have_offset_pair_in_common, try_canonical_die_comparison)
+       (notify_die_comparison_failed): Define new static functions.
+       (ABG_RETURN, ABG_RETURN_FALSE): Define new macros.
+       (compare_dies): Handle DW_TAG_{class,unspecified}_type DIES.  Also
+       if a comparing a DIE kind is not supported, assume the comparison
+       yields "false" for the purpose of canonicalization.  Add a new
+       parameter for redundant aggregates being compared.  Use the
+       redundant aggregate set to detect if a redundant aggregate has
+       been detected and is still being "explored"; if that's the case,
+       then canonical DIE propagation is de-activated.  This might incur
+       a performance hit.  Use the new ABG_RETURN and ABG_RETURN_FALSE
+       macros.  Use the new try_canonical_die_comparison to compare
+       canonical DIEs rather than doing it by hand.
+       (build_typedef_type): Don't try to rely on canonical typedefs
+       DIEs.
+       * src/abg-ir.cc
+       (type_topo_comp::has_artificial_or_natural_location): Define new
+       method.
+       (type_topo_comp::operator(const type_base*, const type_base*)): In
+       this topological comparison operator of types, when two types have
+       the same textual representation, if they don't have any location,
+       if they are pointer/reference/typedef types, use the textual
+       representation of their ultimate underlying type for sorting
+       order.
+       (peel_typedef_pointer_or_reference_type): Define new function.
+       (compare_types_during_canonicalization): Perform the structural
+       canonical comparison first.
+       (equals): In the overload for array_type_def::subrange_type&,
+       remove unused code. In the overload for typedef_decl& don't
+       compare typedef names.  In the overload for class_or_union, make
+       the RETURN macro *NOT* propagate canonical type because this equal
+       function is used as a subroutine by overloads for class and union.
+       That means that the class_or_union equal function can return true,
+       and still, the caller (overload for class_decl or union_decl) can
+       later return false; in that case, we don't want canonical type to
+       be propagated.  In the overload for class_decl::base_spec, use the
+       ABG_RETURN macro when returning comparing decl-bases.  In the
+       overload for class_decl, use ABG_RETURN when returning the result
+       of comparing class_or_union artifacts.
+       (maybe_propagate_canonical_type):  If we are using canonical type
+       comparison, then do not propagate the type, if
+       WITH_DEBUG_TYPE_CANONICALIZATION is defined.
+       (is_non_canonicalized_type): Add typedefs to the set of
+       non-canonicalized types.
+       * src/abg-writer.cc (struct non_canonicalized_type_hash, struct
+       non_canonicalized_type_equal): Define new functors.
+       (typedef nc_type_ptr_set_type): Define a new non-canonicalized set
+       type.
+       (typedef nc_type_ptr_istr_map_type): Define a new map of
+       non-canonicalized types/interned string map.
+       (write_context::{m_nc_type_id_map,
+       m_emitted_non_canonicalized_type_set,
+       m_referenced_non_canonicalized_types_set}): New data members.
+       (write_context::type_has_existing_id): Look for non-canonicalized
+       types in the m_nc_type_id_map map.
+       (write_context::get_id_for_type): Use m_nc_type_id_map for
+       non-canonicalized types.
+       (write_context::clear_type_id_map): Clear m_nc_type_id_map too.
+       (write_context::get_referenced_non_canonicalized_types): Renamed
+       write_context::get_referenced_non_canonical_types into this.  Make
+       it return the new
+       write_context::m_referenced_non_canonicalized_types_set.
+       (write_context::has_non_emitted_referenced_types): Just use
+       write_context::type_is_emitted as it knows where to look up for
+       non-canonicalized types.
+       (write_context::record_type_as_referenced): Use
+       m_referenced_non_canonicalized_types_set to store referenced
+       non-canonicalized types.  The other types are stored in
+       m_emitted_set as previously.
+       (write_context::type_is_emitted): Look into
+       m_emitted_non_canonicalized_type_set for non-canonicalized types.
+       Other types are still in m_emitted_type_set.
+       (write_context::{record_decl_only_type_as_emitted,
+       decl_only_type_is_emitted, get_emitted_decl_only_types_set}):
+       Remove methods.
+       (write_context::get_emitted_non_canonicalized_type_set): Define
+       new method.
+       (write_context::clear_referenced_types): Clear
+       m_referenced_non_canonicalized_types_set too, as
+       m_referenced_non_canonical_types_set is no more.
+       (write_context::referenced_type_should_be_emitted): Use only
+       write_context::type_is_emitted as it knows how to check it all
+       now.
+       (write_referenced_types): Use the more compact ranged-base for
+       loops.
+       (write_translation_unit): Write the non-canonicalized types that
+       are not yet emitted.
+       (write_class_decl, write_union_decl): Adjust recording type as
+       emitted.
+       (write_canonical_type_ids): Adjust.
+       * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust.
+       * tests/data/test-annotate/libtest23.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-annotate/test-anonymous-members-0.o.abi: Likewise.
+       * tests/data/test-annotate/test0.abi: Likewise.
+       * tests/data/test-annotate/test1.abi: Likewise.
+       * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-annotate/test14-pr18893.so.abi: Adjust.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-annotate/test2.so.abi: Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-annotate/test3.so.abi: Likewise.
+       * tests/data/test-annotate/test5.o.abi: Likewise.
+       * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi:
+       Likewise.
+       * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi:
+       Likewise.
+       * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: Likewise.
+       * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise.
+       * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise.
+       * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise.
+       * tests/data/test-diff-filter/test41-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64:
+       Likewise.
+       * tests/data/test-diff-pkg/nmap-7.70-5.el8_testjcc.x86_64-self-check-report-0.txt:
+       Likewise
+       * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt:
+       Likewise.
+       * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt:
+       Likewise.
+       * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
+       Likewise.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
+       Likewise.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
+       Likewise.
+       * tests/data/test-diff-suppr/test39-opaque-type-report-0.txt:
+       Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-A.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-a.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-b.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-functions-declaration.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test1.so.abi: Likewise.
+       * tests/data/test-read-ctf/test1.so.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test2.so.abi: Likewise.
+       * tests/data/test-read-ctf/test2.so.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test5.o.abi: Likewise.
+       * tests/data/test-read-ctf/test7.o.abi: Likewise.
+       * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise.
+       * tests/data/test-read-dwarf/PR27700/test-PR27700.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-PR26568-1.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test-PR26568-2.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-suppressed-alias.o.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test0.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test1.abi: Likewise.
+       * tests/data/test-read-dwarf/test1.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test2.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test2.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
+       Likewise.
+       * tests/data/test-read-dwarf/test3-alias-1.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-2.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-3.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-4.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test3.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test5.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test5.o.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+       * tests/data/test-read-write/test18.xml: Likewise.
+       * tests/data/test-read-write/test28-without-std-fns-ref.xml:
+       Likewise.
+       * tests/data/test-read-write/test28-without-std-vars-ref.xml:
+       Likewise.
+
+2022-04-14  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: compare_dies sometimes compares empty formal parms
+       * src/abg-dwarf-reader.cc (compare_dies): Don't try to compare
+       formal parameters if there is none.
+
+2022-03-31  Dodji Seketeli <dodji@redhat.com>
+
+       abidw, dwarf-reader: Add an option to debug DIE canonicalization
+       * include/abg-ir.h
+       (environment::debug_die_canonicalization_is_on): Declare new methods.
+       * src/abg-ir.cc (environment::debug_die_canonicalization_is_on):
+       Define them.
+       * src/abg-dwarf-reader.cc
+       (compare_dies_during_canonicalization): Define new static
+       function.
+       (read_context::{debug_die_canonicalization_is_on_,
+       use_canonical_die_comparison_}): Declare these data members.
+       (read_context::read_context): Initialize them.
+       (read_context::get_canonical_die): When ODR is considered, if DIE
+       canonicalization debugging is on, use the new
+       compare_dies_during_canonicalization for the type comparison to be
+       done both structurally and canonically; both comparison should
+       yield the same result.  Also, make this method function non-const.
+       * src/abg-ir-priv.h
+       (environment::priv::debug_die_canonicalization_): Define new data
+       member.
+       (environment::priv::priv): Initialize it.
+       * tools/abidw.cc (options::debug_die_canonicalization_): Define
+       new data member.
+       (options::options): Initialize it.
+       (display_usage): Add a description for the --debug-dc option.
+       (parse_command): Parse the new --debug-dc option.
+       (load_corpus_and_write_abixml): Use the new
+       environment::debug_die_canonicalization_is_on.
+
+2022-03-31  Dodji Seketeli <dodji@redhat.com>
+
+       test-read-dwarf: Use abidw rather than using the library
+       * tests/test-read-dwarf.cc (set_suppressions)
+       (set_suppressions_from_headers): Remove these static functions.
+       (test_task_dwarf::perform): Use abidw rather than using the
+       library.  Remove the path and architecture from the abixml files.
+       Also, when the test fails, display the actual command that failed.
+
+2022-03-31  Dodji Seketeli <dodji@redhat.com>
+
+       Add better error messaging to several tests
+       * tests/test-diff-filter.cc (test_task::perform): Display the
+       failing command.
+       * tests/test-read-common.cc (test_task::run_abidw): Likewise.
+       * tests/test-read-common.h (test_task::run_diff): Likewise.
+
+2022-06-13  Dodji Seketeli <dodji@redhat.com>
+
+       ir, test-read-ctf: Remove uncertainty in sorting anonymous types
+       * src/abg-ir.cc ({class_decl,
+       union_decl}::get_pretty_representation): If the anonymous class
+       has no internal name, use its flat representation as internal
+       representation.
+       * tests/data/test-read-ctf/test-PR26568-1.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-PR26568-2.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-anonymous-fields.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-anonymous-fields.o.abi: Likewise.
+       * tests/data/test-read-ctf/test0.hash.abi: Likewise.
+
+2022-06-09  Giuliano Procida <gprocida@google.com>
+
+       limit repeated DIE comparisons
+       * src/abg-dwarf-reader.cc (read_context): Add mutable
+       die_comparison_visits_ member.
+       (compare_dies): Return true if this is a self-comparison.
+       Return true if we have visited this comparison 10000 times.
+
+2022-06-09  Dodji Seketeli <dodji@redhat.com>
+
+       abicompat: Properly guard inclusion of abg-ctf-reader.h
+       * tools/abicompat.cc: Guard inclusion of abg-ctf-reader.h with
+       #ifdef WITH_CTF.
+
+2022-06-03  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 29144 - abidiff doesn't report base class re-ordering
+       * include/abg-comparison.h (class_diff::moved_bases): Declare new
+       method.
+       * src/abg-comparison-priv.h (class_diff::priv::moved_bases_):
+       Define new data member.
+       * src/abg-reporter-priv.h (maybe_report_base_class_reordering):
+       Declare new function.
+       * src/abg-reporter-priv.cc (maybe_report_base_class_reordering):
+       Define new function.
+       * src/abg-comparison.cc
+       (class_diff::ensure_lookup_tables_populated):  Detect that a base
+       class moved position and record it into
+       class_diff::priv::moved_bases_ data member.
+       * src/abg-default-reporter.cc (default_reporter::report): Use the
+       new maybe_report_base_class_reordering.
+       * src/abg-leaf-reporter.cc (leaf_reporter::report): Likewise.
+       * tests/data/test-abidiff-exit/test-PR29144-report-2.txt: New
+       testing input file.
+       * tests/data/test-abidiff-exit/test-PR29144-report.txt: Likewise.
+       * tests/data/test-abidiff-exit/test-PR29144-v0.cc: Likewise.
+       * tests/data/test-abidiff-exit/test-PR29144-v0.o: Likewise.
+       * tests/data/test-abidiff-exit/test-PR29144-v1.cc: Likewise.
+       * tests/data/test-abidiff-exit/test-PR29144-v1.o: Likewise.
+       * tests/data/Makefile.am: Add the new files to source
+       distribution.
+       * tests/test-abidiff-exit.cc (in_out_specs): Add the new tests to
+       this harness.
+
+2022-06-03  Ben Woodard via Libabigail <libabigail@sourceware.org>
+
+       abicompat: Support reading CTF and abixml
+       * tools/abicompat.cc (options::{fail_no_debug_info, use_ctf}): New
+       data members.
+       (options::options): Initialize them.
+       (display_usage): Add a help string for the new options
+       --fail-no-debug-info and --ctf.
+       (parse_command_line): Support parsing the new options
+       --fail-no-debug-info and --ctf.
+       (read_corpus): New static function.
+       (main): Use the new read_corpus in lieu of using
+       dwarf_reader::read_corpus_from_elf and/or  ctf_reader::read_corpus
+       and/or xml::reader::read_corpus_from_input.
+       * doc/manuals/abicompat.rst: add documentation for new options.
+
+2022-06-03  Ben Woodard <woodard@redhat.com>
+
+       abidiff: Remove redundant code
+       * tools/abidiff.cc (main): Remove redundant code.
+
+2022-06-03  Giuliano Procida <gprocida@google.com>
+
+       XML writer: unify type emission tracking
+       * src/abg-writer.cc (write_context): Remove the
+       m_emitted_decl_only_set member.
+       (write_context::has_non_emitted_referenced_types): Remove the
+       calls to decl_only_type_is_emitted.
+       (write_context::record_decl_only_type_as_emitted): Removed.
+       (write_context::decl_only_type_is_emitted): Ditto.
+       (write_context::get_emitted_decl_only_types_set): Ditto.
+       (referenced_type_should_be_emitted): Remove the calls to
+       decl_only_type_is_emitted.
+       (write_class_decl): Just call record_type_as_emitted.
+       (write_union_decl): Ditto.
+       (write_enum_type_decl): Not changed, but now all 3 functions
+       have the same behaviour.
+       (write_canonical_type_ids): Remove the call to
+       get_emitted_decl_only_types_set.
+
+2022-06-03  Ben Woodard <woodard@redhat.com>
+
+       abicompat: Add missing space
+       * tools/abicompat.cc (main): Add missing space in expression.
+
+2022-06-01  Dodji Seketeli <dodji@redhat.com>
+
+       comparison: Fix leaf report summary
+       * src/abg-comparison.cc (corpus_diff::priv::emit_diff_stats): In
+       the "leaf change summary" section, add the number of removed/added
+       symbols not described by debug info.
+
+2022-05-30  Giuliano Procida <gprocida@google.com>
+
+       test-annotate.cc: ignore whitespace during diff
+       * tests/test-annotate.cc (main): Pass diff -w option.
+       Suggested-by: Bogdan Graur <bgraur@google.com>
+
+2022-05-16  Mark Wielaard <mark@klomp.org>
+
+       symtab-reader: Setup aliases before checking ppc64 opd function entries
+       * src/abg-elf-helpers.h (architecture_is_ppc32): Declare new
+       function.
+       * src/abg-elf-helpers.cc (architecture_is_ppc32): Define it.
+       * src/abg-symtab-reader.cc
+       (symtab::setup_symbol_lookup_tables): Rename
+       symtab::get_symbol_value into this. Setup symbol aliases before
+       setting up function entry address maps for ppc{32,64} ELFv1 and
+       after fixing up arm32/64 addresses.
+       (symtab::load_): Invoke the new setup_symbol_lookup_tables.
+       update_function_entry_address_symbol_map after setting up aliases.
+       No need to setup symbol aliases anymore.
+       (symtab::add_alternative_address_lookups): Invoke the new
+       setup_symbol_lookup_tables.
+
+2022-05-16  Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
+
+       ctf-reader: add support to looking debug information in external path
+       * include/abg-ctf-reader.h (ctf_reader::create_read_context):
+       Add `debug_info_root_paths' argument.
+       (ctf_reader::reset_read_context): Likewise.
+       * src/abg-ctf-reader.cc: Add `read_context::elf_{handler,fd}_dbg',
+       data members.
+       (read_context::read_context): Add new `debug_info_root_paths'
+       argument.
+       (read_context::initialize): Likewise.
+       (ctf_reader::create_read_context): Likewise.
+       (ctf_reader::close_elf_handler): Release
+       `read_context::elf_{handler,fd}_dbg' members.
+       (ctf_reader::find_alt_debuginfo): Add new function.
+       (ctf_reader::slurp_elf_info): Add new argument `status'. Use
+       `find_alt_debuginfo' and `elf_helpers::find_section_by_name'
+       to read the symtab and ctf information from an external .debug
+       file, the `status' reference is updated.
+       (ctf_reader::read_corpus): Verify `status' after `slurp_elf_info'.
+       (ctf_reader::reset_read_context): Add new `debug_info_root_path'
+       argument.
+       * src/abg-elf-helpers.cc (elf_helpers::find_section_by_name): Update
+       comment.
+       * src/abg-tools-utils.cc (maybe_load_vmlinux_ctf_corpus):
+       Adjust `ctf_reader::{create,reset}_read_context'.
+       * tests/test-read-ctf.cc: Likewise.
+       * tools/abidiff.cc (display_usage): Add `--ctf' command line
+       option.
+       (main): Adjust `ctf_reader::create_read_context'.
+       Likewise.
+       * tools/abidw.cc (load_corpus_and_write_abixml): Adjust
+       `ctf_reader::create_read_context'.
+       * tools/abilint.cc (main): Likewise.
+       * tools/abipkgdiff.cc (compare, compare_to_self): Likewise.
+
+2022-05-16  Vanessa Sochat <sochat1@llnl.gov>
+
+       Adding missing newline to build-container workflow
+       * .github/workflows/build-container.yaml: Add missing newline.
+       Reviewed-by: Ben Woodard <woodard@redhat.com>
+
+2022-05-16  Ben Woodard <woodard@redhat.com>
+
+       Add github actions to support workflows
+       * .github/workflows/build-container.yaml: New file.
+       * .github/workflows/libabigail.yaml: Likewise.
+       * .github/workflows/test.yaml: Likewise.
+       * .github/workflows/test-fedora.yaml: Likewise.
+       * .github/README.md: Likewise.
+       * docker/Dockerfile.fedora: Likewise.
+       * docker/Dockerfile.ubuntu: Likewise.
+       * docker/Dockerfile.fedora-base: Likewise.
+       * docker/Dockerfile.test: Likewise.
+       * README-DOCKER.md: Likewise.
+       Reviewed-by: Ben Woodard <woodard@redhat.com>
+
+2022-05-06  Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
+
+       abipkgdiff: Add support to compare packages with CTF debug format
+       * tools/abipkgdiff.cc: Include `abg-ctf-reader.h'.
+       (options::use_ctf): Add new data member.
+       (display_usage): Add `--ctf' usage.
+       (compare): Add condition to use ctf-reader to extract
+       (parse_command_line): Set `options::use_ctf' when --ctf
+       option is provided.
+       and build CTF corpora when `options::use_ctf' is set.
+       (compare_to_self): Likewise.
+
+2022-05-06  Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
+
+       ctf-reader: CTF debug info for some symbols is not found
+       * src/abg-ctf-reader.cc (read_context::is_elf_exec): Remove
+       data member.
+       (ctf_reader::process_ctf_qualified_type): Add condition to avoid
+       use qualifier in functions.
+       (ctf_reader::process_ctf_archive): Use `ctf_lookup_by_symbol_name'
+       to find debug information when `ctf_lookup_variable' was not
+       lucky iff `corpus::CTF_ORIGIN'.
+       (ctf_reader::slurp_elf_info): Use `elf_helpers::find_section_by_name'
+       to read .dynsym and .dynstr when {EXEC,DYN}.
+       * src/abg-elf-helpers.h (elf_helpers::find_section_by_name): Add new
+       declaration.
+       * src/abg-elf-helpers.cc (elf_helpers::find_section_by_name): Add new
+       definition.
+
+2022-05-06  Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
+
+       ctf-reader: shows incomplete summary changes
+       * src/abg-ctf-reader.cc (read_context::exported_decls_builder_):
+       Add new data member.
+       (read_context::exported_decls_builder): Add new get/set member functions.
+       (read_context::maybe_add_{fn,var}_to_exported_decls): Likewise.
+       (read_context::initialize): Initialize exported_decls_builder_ member.
+       (read_context::build_ir_node_for_variadic_parameter_type): Add new function.
+       (read_context::process_ctf_function_type): Add additional code to handle
+       function's variadic parameter.
+       (read_context::process_ctf_archive): Rename variable for clarity
+       from `ctf_var_type' to `ctf_sym_type', using new member functions
+       `maybe_add_{fn,var}_to_exported_decls'.
+       (read_context::read_corpus): Set `exported_decls_builder'.
+       * tests/test-read-common.cc (test_task::run_abidw): Fix error message.
+       * tests/data/test-read-ctf/test-PR26568-1.o.abi: Adjust test case.
+       * tests/data/test-read-ctf/test-PR26568-2.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-anonymous-fields.o.abi Likewise.
+       * tests/data/test-read-ctf/test5.o.abi: Likewise.
+       * tests/data/test-read-ctf/test7.o.abi: Likewise.
+
+2022-05-06  Frederic Cambus <fred@statdns.com>
+
+       Fix numbering error in the abidiff manual.
+       * doc/manuals/abidiff.rst: Fix numbering error for the
+       --headers-dir2 option.
+
+2022-05-04  Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
+
+       ctf-reader: Add support to read CTF information from the Linux Kernel
+       * abg-elf-reader-common.h: Include ctf-api.h file.
+       (read_and_add_corpus_to_group_from_elf, set_read_context_corpus_group)
+       (reset_read_context, dic_type_key): Declare new member functions.
+       * include/abg-ir.cc (types_defined_same_linux_kernel_corpus_public): Use
+       bitwise to know the corpus `origin'.
+       * src/abg-ctf-reader.cc: Include map, algorithms header files.
+       (read_context::type_map): Change from unordered_map to std::map storing
+       ctf dictionary name as part of the key.
+       (read_context::is_elf_exec): Add new member variable.
+       (read_context::{cur_corpus_, cur_corpus_group_}): Likewise.
+       (read_context::unknown_types_set): Likewise.
+       (read_context::{current_corpus_group, main_corpus_from_current_group,
+       has_corpus_group, current_corpus_is_main_corpus_from_current_group,
+       should_reuse_type_from_corpus_group}): Add new member functions.
+       (read_context::{add_unknown_type, lookup_unknown_type, initialize}):
+       Likewise.
+       (read_context::{add_type, lookup_type}): Add new `ctf_dict_t' type
+       argument.
+       (ctf_reader::{process_ctf_typedef, process_ctf_base_type,
+       process_ctf_function_type, process_ctf_forward_type,
+       process_ctf_struct_type, process_ctf_union_type, process_ctf_array_type,
+       process_ctf_qualified_type, process_ctf_enum_type}): Add code to `reuse'
+       types already registered in main corpus `should_reuse_type_from_corpus_group'.
+       Use new `lookup_type' and `add_type' operations on `read_context::types_map'.
+       Replace function calls to the new ctf interface. Add verifier to not build
+       types duplicated by recursive calling chain.
+       (ctf_reader::process_ctf_type): Add code to return immediately if the
+       ctf type is unknown. Add unknown types to `unknown_types_set'.
+       (ctf_reader::process_ctf_archive): Change comment.
+       Add code to iterate over global symbols, searching by symbol name in the
+       ctf dictionary using `ctf_lookup_{variable,by_symbol_name}' depending of
+       the ELF file type and corpus type, creating a `{var,fuc}_decl' using the
+       return type of `ctf_type_kind'.  Also close the ctf dict and call
+       `canonicalize_all_types'.
+       (slurp_elf_info): Set `is_elf_exec' depending of ELF type.  Also return
+       success if corpus origin is Linux and symbol table was read.
+       (ctf_reader::read_corpus): Add current corpus.  Set corpus origin to
+       `LINUX_KERNEL_BINARY_ORIGIN' if `is_linux_kernel' returns true.  Verify
+       the ctf reader status, now the ctf archive is 'opened' using
+       `ctf_arc{open,bufopen}' depending if the corpus origin has
+       `corpus::LINUX_KERNEL_BINARY_ORIGIN' bit set. Use
+       `sort_{function,variables}' calls after extract ctf information.
+       `ctf_close' is called from `read_context' destructor.
+       (read:context::{set_read_context_corpus_group, reset_read_context,
+       read_and_add_corpus_to_group_from_elf, dic_type_key): Add new member
+       function implementation.
+       * include/abg-tools-utils.h (build_corpus_group_from_kernel_dist_under):
+       Add `origin' parameter with default `corpus::DWARF_ORIGIN'.
+       * src/abg-tools-utils.cc: Use `abg-ctf-reader.h' file.
+       (maybe_load_vmlinux_dwarf_corpus): Add new function.
+       (maybe_load_vmlinux_ctf_corpus): Likewise.
+       (build_corpus_group_from_kernel_dist_under): Update comments.
+       Add new `origin' argument. Use `maybe_load_vmlinux_dwarf_corpus'
+       or `maybe_load_vmlinux_ctf_corpus' according to `origin' value.
+       * src/abg-corpus.h (corpus::origin): Update `origin' type
+       values in enum.
+       * src/abg-corpus-priv.h (corpus::priv): Replace `origin' type
+       from `corpus::origin' to `uint32_t'.
+       * src/abg-corpus.cc (corpus::{get,set}_origin): Replace data
+       type from `corpus::origin' to `uint32_t'.
+       * tools/abidw.cc (main): Use of --ctf argument to set format debug.
+       * tests/test-read-ctf.cc: Add new tests to harness.
+       * tests/data/test-read-ctf/test-PR27700.abi: New test expected
+       result.
+       * tests/data/test-read-ctf/test-anonymous-fields.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-enum-many-ctf.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-enum-many.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-enum-symbol-ctf.o.hash.abi: Likewise.
+       * tests/data/test-read-common/test-PR26568-2.o: Adjust.
+       * tests/data/test-read-ctf/test-PR26568-1.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-PR26568-2.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-A.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-B.c: Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-B.o: Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-B.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-array-of-pointers.abi: Likewise.
+       * tests/data/test-read-ctf/test-callback.abi: Likewise.
+       * tests/data/test-read-ctf/test-callback2.abi: Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-a.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-b.o.hash.abi:
+       Likewise.
+       * tests/data/test-read-ctf/test-dynamic-array.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-enum-ctf.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-enum-symbol.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-enum.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-forward-type-decl.abi: Likewise.
+       * tests/data/test-read-ctf/test-functions-declaration.abi: Likewise.
+       * tests/data/test-read-ctf/test-list-struct.abi: Likewise.
+       * tests/data/test-read-ctf/test0: Likewise.
+       * tests/data/test-read-ctf/test0.abi: Likewise.
+       * tests/data/test-read-ctf/test0.c: Likewise.
+       * tests/data/test-read-ctf/test0.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test1.so.abi: Likewise.
+       * tests/data/test-read-ctf/test1.so.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test2.so.abi: Likewise.
+       * tests/data/test-read-ctf/test2.so.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test3.so.abi: Likewise.
+       * tests/data/test-read-ctf/test3.so.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test4.so.abi: Likewise.
+       * tests/data/test-read-ctf/test4.so.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test5.o.abi: Likewise.
+       * tests/data/test-read-ctf/test7.o.abi: Likewise.
+       * tests/data/test-read-ctf/test8.o.abi: Likewise.
+       * tests/data/test-read-ctf/test9.o.abi: Likewise.
+
+2022-05-04  vsoch <vsoch@users.noreply.github.com>
+
+       Add Logic to detect file type by extension
+       * tools/fedabipkgdiff - add logic to detect file type by extension
+       Reviewed-by: Ben Woodard <woodard@redhat.com>
+
+2022-05-04  Ben Woodard <woodard@redhat.com>
+
+       Add an option ignore SONAME differences in libraries
+       * doc/manuals/abicompat.rst - added new option
+       * doc/manuals/abidiff.rst - added new option to manpage
+       * src/abg-comparison.cc (compute_diff): don't bother comparing the
+       sonames if you aren't going to print them.
+       * tools/abicompat.cc (options::ignore_soname): Add new data
+       member.
+       (parse_command_line): Support the new --ignore-soname command line
+       option.
+       (display_usage): Add a description string for the new
+       --ignore-soname command line option.
+       (create_diff_context): Set the diff_context::show_soname_change
+       from the new options::ignore_soname data member.
+       * tools/abidiff.cc (options::ignore_soname): Add new data member.
+       (display_usage): Add a description string for the new
+       --ignore-soname command line option.
+       (parse_command_line): Support the new --ignore-soname command line
+       option.
+       (set_diff_context_from_opts): Set the
+       diff_context::show_soname_change from the new
+       options::ignore_soname.
+
+2022-04-07  Giuliano Procida <gprocida@google.com>
+
+       symtab: fix up 64-bit ARM address which may contain tags
+       * src/abg-elf-helpers.cc: (architecture_is_arm64): Add helper.
+       * src/abg-elf-helpers.h: Likewise.
+       * src/abg-symtab-reader.cc: (get_symbol_value): Adjust 64-bit
+       ARM symbol values by extending bit 55 into bits 56 to 63.
+
+2022-04-07  Giuliano Procida <gprocida@google.com>
+
+       symtab: refactor ELF symbol value tweaks
+       * src/abg-symtab-reader.cc (symtab::load_): Replace address
+       tweaking logic with a call to get_symbol_value.
+       (symtab::add_alternative_address_lookups): Likewise.
+       (symtab::get_symbol_value): New function containing address
+       tweaking logic for PPC and ARM.
+
+2022-04-29  Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
+
+       ctf-reader: Fix multiple var-decl in anonymous struct/uninons
+       * src/abg-ctf-reader.cc (process_ctf_sou_members): Remove
+       CTF_MN_RECURSE flag.
+       * tests/data/Makefile.am: Add new input test files.
+       * tests/data/test-read-ctf/test-anonymous-fields.c: New
+       test file.
+       * tests/data/test-read-ctf/test-anonymous-fields.o: New
+       expected test output.
+       * tests/data/test-read-ctf/test-anonymous-fields.o.abi:
+       Likewise.
+       * tests/test-read-ctf.cc: Add new test.
+
+2022-04-25  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       tools-utils: `entry_of_file_with_name' returns incorrect result
+       * src/abg-tools-utils.cc (entry_of_file_with_name): Replace
+       call `string_ends_with' by `basename'.
+
+2022-04-19  Ben Woodard <woodard@redhat.com>
+
+       Fix typo in abipkgdiff manpage
+       * doc/manuals/abipkgdiff.rst: add missing `--`
+
+2022-03-17  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       ctf-reader: Add support to undefined forward declaration types
+       * src/abg-ctf-reader.cc (process_ctf_forward_type): New
+       function.
+       (process_ctf_type): New CTF_K_FORWARD case.
+       * tests/data/test-read-ctf/test-forward-undefine-type-decl.c:
+       New testcase.
+       * tests/data/test-read-ctf/test-forward-undefine-type-decl.abi:
+       New expected result.
+       * tests/data/test-read-ctf/test-forward-undefine-type-decl.o
+       New test input.
+       * tests/test-read-ctf.cc: Add new testcase to test harness.
+       * tests/data/Makefile.am: Add new test input files to test harness.
+
+2022-03-07  Dodji Seketeli <dodji@redhat.com>
+
+       comparison: Avoid sorting diff nodes with wrong criteria
+       * src/abg-comparison.cc (diff::append_child_node): Do not sort
+       children nodes here because they must have been sorted already.
+       * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust.
+       * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise.
+       * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise.
+       * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise.
+       * tests/data/test-diff-filter/test41-report-0.txt: Likewise.
+       * tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt:
+       Likewise.
+
+2022-03-07  Dodji Seketeli <dodji@redhat.com>
+
+       comparison: Factorize the code that inserts diff nodes to the graph
+       * include/abg-comparison.h ({distinct, var, pointer, reference,
+       array, qualified_type, enum, class_or_union, class, union, base,
+       scope, fn_parm, function_type, function_decl, type_decl,
+       typedef}_diff::finish_diff_type): Remove these declarations.
+       * src/abg-comparison.cc ({distinct, var, pointer, reference,
+       array, qualified_type, enum, class_or_union, class, union, base,
+       scope, fn_parm, function_type, function_decl, type_decl,
+       typedef}_diff::finish_diff_type): Remove these definitions.
+       (diff::finish_diff_type): Add the code to connect the children
+       nodes to the current node, making the generic view of the diff
+       node usable to walk the graph.
+
+2022-03-07  Dodji Seketeli <dodji@redhat.com>
+
+       comparison: Describe the "generic view" of a diff node
+       * include/abg-comparison.h (class diff): Add comments to this class.
+       (diff::chain_into_hierarchy): Add comment to this method.
+       * src/abg-comparison-priv.h (diff::priv): Add comment to this class.
+       * src/abg-comparison.cc (diff::finish_diff_type): Add comment to
+       this method.
+       (diff::traverse): Add comment.
+
+2022-03-03  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 28013 - Acknowledge variadic parameter type is not canonicalized
+       * src/abg-ir.cc (is_non_canonicalized_type): Recognize variadic
+       parameter types.
+       * tests/data/test-diff-filter/test-PR28013-fn-variadic.c.{0,1}.abi: New test inputs.
+       * tests/data/test-diff-filter/test-PR28013-fn-variadic.c.report.txt: Likewise.
+       * tests/data/Makefile.am: Add the new test files to source distribution.
+       * tests/test-diff-filter.cc (in_out_specs): Add the new tests to
+       this harness.
+       * tests/data/test-annotate/libtest23.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-annotate/test0.abi: Likewise.
+       * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-diff-filter/test-PR28013-fn-variadic.c.0.abi: Likewise.
+       * tests/data/test-diff-filter/test-PR28013-fn-variadic.c.1.abi: Likewise.
+       * tests/data/test-diff-filter/test-PR28013-fn-variadic.c.report.txt: Likewise.
+       * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+
+2022-02-24  Dodji Seketeli <dodji@redhat.com>
+
+       dwarf-reader: Don't propagate canonical type upon aggregate redundancy
+       * src/abg-dwarf-reader.cc (compare_dies): Do not propagate
+       canonical type when aggregate redundancy is detected.
+
+2022-02-10  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 26646 - unexpected declaration-only types (part 2)
+       * src/abg-dwarf-reader.cc (struct dwarf_offset_pair_hash)
+       (dwarf_offset_pair_set_type): Define new type.
+       (die_offset, has_offset_pair, insert_offset_pair)
+       (erase_offset_pair): Define new static helper functions.
+       (compare_dies): Use a set of DWARF offsets for the
+       'aggregates_being_compared' data structure, rather than a set of
+       string representation of the DIEs.  Always look at the size of the
+       types being compared first so that we can get out quickly if they
+       differ.  For DIEs of DW_TAG_{union,struct}_type kind, don't limit
+       the depth of the stack of DIEs being compared to 5; so we don't
+       consider two types as being equal just because the depth of the
+       stack being compared is 5 and the two types have the same size and
+       are equal.  Hopefully things don't take too long.
+
+2022-03-01  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Remove obsolete comment from enumerator equal operator
+       * src/abg-ir.cc (enum_type_decl::enumerator::operator==): Remove
+       the obsolete parts from the comment.
+
+2022-03-01  Dodji Seketeli <dodji@redhat.com>
+
+       reader: Fix a compilation warning
+       * src/abg-reader.cc (build_var_decl): Add braces to an 'if'
+       statement.
+
+2022-02-28  Dodji Seketeli <dodji@redhat.com>
+
+       abilint --show-type-use: Show results for global decls that have no symbols
+       * include/abg-fwd.h (is_at_global_scope): Declare ...
+       * src/abg-ir.cc (is_at_global_scope): ... new overload.
+       * tools/abilint.cc (emit_artifact_use_trace): Emit the trace also
+       when the decl is at global scope or has a linkage name.
+
+2022-02-17  Dodji Seketeli <dodji@redhat.com>
+
+       abilint: add the --show-type-use option
+       * configure.ac: Define the --enable-show-type-use-in-abilint
+       configure option.  It defines the WITH_SHOW_TYPE_USE_IN_ABILINT
+       macro.
+       * include/abg-reader.h (read_translation_unit): Add an overload
+       that takes the read context.
+       (get_types_from_type_id, get_artifact_used_by_relation_map):
+       Declare new functions.
+       * src/abg-reader.cc (get_types_from_type_id)
+       (get_artifact_used_by_relation_map): Declare these functions as
+       friend of the read_context type.
+       (read_context::m_artifact_used_by_map):
+       (read_context::key_type_decl): Replace the shared_ptr<type_base>
+       type of the first parm by the equivalent type_base_sptr type.
+       (read_context::{record_artifact_as_used_by,
+       record_artifacts_as_used_in_fn_decl,
+       record_artifacts_as_used_in_fn_type}): Add new methods guarded by
+       the WITH_SHOW_TYPE_USE_IN_ABILINT macro.
+       (get_types_from_type_id, get_artifact_used_by_relation_map): Define
+       new functions guarded by the WITH_SHOW_TYPE_USE_IN_ABILINT macro.
+       (read_translation_unit): Define new overload.
+       (RECORD_ARTIFACT_AS_USED_BY, RECORD_ARTIFACTS_AS_USED_IN_FN_DECL)
+       (RECORD_ARTIFACTS_AS_USED_IN_FN_TYPE): Define new macros.
+       (build_function_decl, build_var_decl, build_qualified_type_decl)
+       (build_pointer_type_def, build_reference_type_def)
+       (build_function_type, build_array_type_def, build_enum_type_decl)
+       (build_typedef_decl, build_class_decl, build_union_decl): Use the
+       macros above to mark the relevant sub-types as used by the
+       artifact being built.
+       * tools/abilint.cc (struct artifact_use_relation_tree): Define new
+       type, guarded by the WITH_SHOW_TYPE_USE_IN_ABILINT macro.
+       (fill_artifact_use_tree, build_type_use_tree, emit_trace)
+       (emit_artifact_use_trace, emit_artifact_use_trace)
+       (show_how_type_is_used): Define static functions guarded by the
+       WITH_SHOW_TYPE_USE_IN_ABILINT macro.
+       (display_usage): Add doc string for the --show-type-use option,
+       guarded by the WITH_SHOW_TYPE_USE_IN_ABILINT macro.
+       (parse_command_line): Parse the --show-type-use option, guarded by
+       the WITH_SHOW_TYPE_USE_IN_ABILINT macro.
+       (main): Slight re-organisation to make the abixml file reading use
+       a read_context.  That read context is then used to analyze how a
+       given type is used whenever the --show-type-use option is used.
+
+2022-02-17  Dodji Seketeli <dodji@redhat.com>
+
+       configure: Remove use of obsolete AC_CONFIG_HEADER
+       * configure.ac: Replace the use of the obsolete AC_CONFIG_HEADER
+       by AC_CONFIG_HEADERS.
+
+2022-02-08  Randy MacLeod <Randy.MacLeod@windriver.com>
+
+       Improve some grammar
+       * COMPILING: Improve grammar
+       * CONTRIBUTING: Improve grammar
+       * README: Improve grammar
+       * VISIBILITY: Improve grammar
+
+2022-01-21  Giuliano Procida <gprocida@google.com>
+
+       XML writer: do not create extra temporary referenced type shared_ptr
+       * src/abg-writer.cc (write_referenced_types): Create temporary
+       shared_ptr objects within each conditional branch instead of
+       outside the conditionals and within one of the branches.
+       Reviewed-by: Matthias Maennich <maennich@google.com>
+
+2022-01-21  Giuliano Procida <gprocida@google.com>
+
+       XML writer: improve slightly emission of top-level declarations
+       * src/abg-writer.cc (decl_is_emitted): Make decl_base_sptr
+       argument a const reference.
+       (write_translation_unit): Eliminate a typedef and just use a
+       range-for loop without the extra dynamic cast for the non-type
+       case. Use else instead of continue to make it clear there are
+       only two possibilities.
+       Reviewed-by: Matthias Maennich <maennich@google.com>
+
+2022-01-21  Giuliano Procida <gprocida@google.com>
+
+       XML writer: drop write_elf_symbols_table variable emitted_syms
+       * src/abg-writer.cc (write_elf_symbols_table): Drop unused
+       local variable emitted_syms.
+       Reviewed-by: Matthias Maennich <maennich@google.com>
+
+2022-01-21  Giuliano Procida <gprocida@google.com>
+
+       XML writer: remove type_hasher and remaining comment
+       * src/abg-writer.cc (type_hasher): Remove this unused functor.
+       Remove a following comment referencing it.
+       Reviewed-by: Matthias Maennich <maennich@google.com>
+
+2022-02-07  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 26646 - unexpected declaration-only types
+       * src/abg-dwarf-reader.cc (add_or_update_class_type): Do not reuse
+       the IR for a DIE with the same textual representation as the one
+       we are seeing now.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
+
+2022-02-07  Dodji Seketeli <dodji@redhat.com>
+
+       symtab-reader: Remove an over-agressive assertion
+       * src/abg-symtab-reader.cc
+       (symtab::add_alternative_address_lookups): Remove over-aggressive
+       assert.
+       Reviewed-by: Giuliano Procida <gprocida@google.com>
+
+2022-01-29  David Seifert <soap@gentoo.org>
+
+       Find fts-standalone on musl
+       * configure.ac: Invoke AC_CANONICAL_HOST to compute the host_cpu,
+       host_vendor, host_os parts of the 'host" variable.  Then if the
+       host_os ends up with "musl" then, check for the fts-standalone
+       pkgconfig module and record the fts library into
+       FTS_{LIBS,CFLAGS}.
+       * src/Makefile.am: Link to $FTS_LIBS and use $FTS_CFLAGS for
+       compilation.
+       * tools/Makefile.am: Likewise.
+       * tools/abisym.cc: Include libgen.h
+       * tools/kmidiff.cc: Remove useless fts.h header file.
+
+2022-02-07  Dodji Seketeli <dodji@redhat.com>
+
+       symtab-reader: Fix typo in comment
+       * src/abg-symtab-reader.cc
+       (symtab::update_function_entry_address_symbol_map): Fix typo in
+       comment.
+
+2022-01-20  Dodji Seketeli <dodji@redhat.com>
+
+       writer: small compilation error fix
+       * abg-writer.cc (write_type_record): Fix const-ness in argument
+       passing.
+
+2021-11-26  Matthias Maennich <maennich@google.com>
+
+       abidiff: improve whitespace generation in symbol diff report
+       * src/abg-reporter-priv.cc (maybe_report_diff_for_symbol):
+       Make return void. Simplify and fix new-line emission. Remove
+       comma emission. Tweak CRC wording.
+       * src/abg-reporter-priv.h (maybe_report_diff_for_symbol):
+       Return void.
+       * tests/data/test-abidiff-exit/test-crc-report.txt: Shorten CRC
+       wording.
+       * tests/data/test-abidiff/test-crc-report.txt: Likewise.
+       * tests/data/test-diff-filter/test-PR27569-report-0.txt:
+       Likewise.
+       Reviewed-by: Giuliano Procida <gprocida@google.com>
+
+2022-01-19  George Rawlinson <grawlinson@archlinux.org>
+
+       Bug 28663 - generate man page for kmidiff
+       * doc/manuals/conf.py: Update copyright year.  Generate man page
+       for the kmidiff tool.
+
+2021-12-03  Matthias Maennich <maennich@google.com>
+
+       XML writer: resolve declaration-only enum definitions
+       * src/abg-writer.cc (write_enum_type_decl): Look through
+       declaration-only types the same as for structs and unions.
+       Reviewed-by: Giuliano Procida <gprocida@google.com>
+
+2021-12-03  Matthias Maennich <maennich@google.com>
+
+       XML writer: map type ids by bare pointer
+       * src/abg-writer.cc (type_ptr_map): use default equality on
+       type_base pointer.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Refresh
+       test case, as described above.
+       * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
+       Reviewed-by: Giuliano Procida <gprocida@google.com>
+
+2021-12-03  Matthias Maennich <maennich@google.com>
+
+       XML writer: track emitted types by bare pointer
+       * src/abg-writer.cc (type_ptr_set_type): Change typedef
+       container type to use default equality and hashing for pointer
+       keys.
+       (fn_type_ptr_set_type): Likewise.
+       Reviewed-by: Giuliano Procida <gprocida@google.com>
+
+2022-01-18  Giuliano Procida <gprocida@google.com>
+
+       abidiff: include ABI XML versions when reporting a mismatch cont.
+       * tools/abidiff.cc
+       (emit_incompatible_format_version_error_message): Fix
+       parameter documentation.
+       Fixes: b251bc611eb6 ("abidiff: include ABI XML versions when reporting a mismatch")
+
+2022-01-18  Giuliano Procida <gprocida@google.com>
+
+       abidiff: include ABI XML versions when reporting a mismatch
+       * tools/abidiff.cc
+       (emit_incompatible_format_version_error_message): Add version1
+       and version2 arguments. Add versions to error message.
+       (main): Pass emit_incompatible_format_version_error_message
+       mismatching versions.
+
+2022-01-18  Mark Wielaard <mark@klomp.org>
+
+       DWARF reader: use size_t for DWARF expression length cont.
+       * src/abg-dwarf-reader.cc (eval_last_constant_dwarf_sub_expr):
+       Change expr_len argument type to size_t.
+       (op_pushes_constant_value): Update ops_len and index argument
+       types to size_t. Update next_index argument type to size_t&.
+       (op_pushes_non_constant_value): Likewise.
+       (op_is_arith_logic): Update expr_len and index argument types
+       to size_t. Update next_index argument type to size_t&.
+       (op_is_control_flow): Likewise.
+       Fixes: 16207c4af7bc ("Bug 28191 - Interpret DWARF 5 addrx locations")
+
+2022-01-17  Giuliano Procida <gprocida@google.com>
+
+       DWARF reader: use size_t for DWARF expression length
+       * src/abg-dwarf-reader.cc (die_location_expr): Change expr_len
+       argument type to size_t*.
+       (op_manipulates_stack): Change expr_len and index argument
+       types to size_t; change next_index argument type to size_t&.
+       (eval_last_constant_dwarf_sub_expr): Change expr_len argument
+       and local variables index and next_index types to size_t.
+       (die_member_offset): Change local variable expr_len type to
+       size_t.
+       (die_location_address): Likewise.
+       (die_virtual_function_index): Likewise.
+       Fixes: 16207c4af7bc ("Bug 28191 - Interpret DWARF 5 addrx locations")
+
+2022-01-11  Giuliano Procida <gprocida@google.com>
+
+       symtab reader: fix up alternative addresses
+       * src/abg-symtab-reader.cc
+       (symtab::add_alternative_address_lookups): Tweak function
+       addresses in the same manner as done in symtab::load_.
+
+2022-01-14  David Cantrell <dcantrell@redhat.com>
+
+       Include <libgen.h> in tools/abisym.cc for basename(3)
+       * tools/abisym.cc:
+
+2022-01-13  Giuliano Procida <gprocida@google.com>
+
+       Bug 28191 - Interpret DWARF 5 addrx locations
+       * src/abg-dwarf-reader.cc (die_location_address): Use
+       dwarf_attr_integrate, dwarf_getlocation and
+       dwarf_getlocation_attr to decode addreses, instead of
+       die_location_expr and eval_last_constant_dwarf_sub_expr.
+       * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
+       Refresh test reference output; two more symbols have types.
+
+2022-01-14  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 28319 - re-fix of rhbz1951526 - SELF CHECK FAILED for 'gimp-2.10'
+       * include/abg-ir.h (environment::use_enum_binary_only_equality):
+       Remove.
+       * src/abg-comparison.cc (compute_diff): In the overload for
+       enum_type_decl, stop using binary-only-equality for enums.
+       * src/abg-dwarf-reader.cc
+       (read_context::compare_before_canonicalisation): Likewise.
+       * src/abg-ir.cc (environment::use_enum_binary_only_equality):
+       Remove.
+       (enumerators_values_are_equal)
+       (is_enumerator_value_present_in_enum)
+       (is_enumerator_value_redundant): Define new static functions.
+       (equals): In the overload for enum_type_decl, use the new
+       is_enumerator_value_redundant to detect if two enums are equal
+       modulo a redundant enumerator value.  In that case, consider they
+       are equal.
+       * tests/data/test-abidiff/test-enum0-report.txt: Adjust.
+       * tests/data/test-annotate/test-anonymous-members-0.o.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: Likewise.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
+
+2022-01-05  Thomas Schwinge <thomas@codesourcery.com>
+
+       Handle several variants of Python 'imp', 'importlib' modules
+       * tests/mockfedabipkgdiff.in: Handle several variants of Python
+       'imp', 'importlib' modules.
+       Tested-by: Mark Wielaard <mark@klomp.org> (CentOS 7)
+
+2021-12-21  Dodji Seketeli <dodji@redhat.com>
+
+       suppression: Fix compilation warning on el7
+       * src/abg-suppression.cc (type_suppression::suppresses_diff):
+       Remove the unused variable second_type_decl.
+
+2021-12-21  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       ctf-reader: Assert on ir::hash_as_canonical_type_or_constant
+       * src/abg-ctf-reader.cc (process_ctf_base_type): Add new
+       `translation_unit_sptr' parameter. Add condition to validate
+       success 'base_type' construction and register type object.
+       (process_ctf_typedef): Add `lookup_type' to get a `type_base'
+       object when this was previously created, if this is not the
+       case, register ctf type. Add condition to validate success
+       'base_type' construction and register type object.
+       (process_ctf_function_type): Likewise.
+       (process_ctf_array_type): Likewise.
+       (process_ctf_qualified_type): Likewise.
+       (process_ctf_pointer_type): Likewise.
+       (process_ctf_struct_type): Add `add_decl_to_scope'.
+       (process_ctf_union_type): Likewise.
+       (process_ctf_type): Add `lookup_type' to get a `type_base'
+       object when this was previously created. Delegate register
+       type object to `process_ctf_*'.
+       * tests/data/Makefile.am: Add tests I/O and expected files.
+       * tests/data/test-read-ctf/test-array-of-pointers.[co]: New
+       testcase.
+       * tests/data/test-read-ctf/test-list-struct.[co]: Likewise.
+       * tests/data/test-read-ctf/test-callback.[co]: Likewise.
+       * tests/data/test-read-ctf/test-callback2.[co]: Likewise.
+       * tests/data/test-read-ctf/test-functions-declaration.[co]: Likewise.
+       * tests/data/test-read-ctf/test-forward-type-decl.[co]: Likewise.
+       * tests/data/test-read-ctf/test-array-of-pointers.abi:
+       Expected test output.
+       * tests/data/test-read-ctf/test-callback.abi: Likewise.
+       * tests/data/test-read-ctf/test-callback2.abi: Likewise.
+       * tests/data/test-read-ctf/test-forward-type-decl.abi: Likewise.
+       * tests/data/test-read-ctf/test-functions-declaration.abi: Likewise.
+       * tests/data/test-read-ctf/test-list-struct.abi: Likewise.
+       * tests/test-read-ctf.cc: Add testcases to CTF test harness.
+
+2021-12-21  Thomas Schwinge <thomas@codesourcery.com>
+
+       Replace Python 'import importlib' with 'import importlib.machinery'
+       * tests/mockfedabipkgdiff.in: Replace Python 'import importlib'
+       with 'import importlib.machinery'.
+
+2021-12-17  Thomas Schwinge <thomas@codesourcery.com>
+
+       fedabipkgdiff: Also accept MIME type 'application/x-redhat-package-manager' for RPM files
+       *** 4.0.0 900
+       900 http://ftp.de.debian.org/debian testing/main amd64 Packages
+       900 http://ftp.de.debian.org/debian testing/main i386 Packages
+       800 http://ftp.de.debian.org/debian unstable/main amd64 Packages
+       800 http://ftp.de.debian.org/debian unstable/main i386 Packages
+       100 /var/lib/dpkg/status
+       $ awk '$2 ~ /rpm/' < /etc/mime.types
+       application/x-redhat-package-manager            rpm
+       $ dpkg -S /etc/mime.types
+       mime-support: /etc/mime.types
+       $ apt policy mime-support
+       mime-support:
+       Installed: 3.64ubuntu1
+       Candidate: 3.64ubuntu1
+       Version table:
+       *** 3.64ubuntu1 500
+       500 http://de.archive.ubuntu.com/ubuntu focal/main amd64 Packages
+       500 http://de.archive.ubuntu.com/ubuntu focal/main i386 Packages
+       100 /var/lib/dpkg/status
+       $ awk '$2 ~ /rpm/' < /etc/mime.types
+       application/x-redhat-package-manager            rpm
+       $ dpkg -S /etc/mime.types
+       mime-support: /etc/mime.types
+       $ apt-cache policy mime-support
+       mime-support:
+       Installed: 3.54ubuntu1.1
+       Candidate: 3.54ubuntu1.1
+       Version table:
+       *** 3.54ubuntu1.1 0
+       500 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
+       500 http://us.archive.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
+       100 /var/lib/dpkg/status
+       3.54ubuntu1 0
+       500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
+       Otherwise, 'is_rpm_file' fails, resulting in a few test cases failing with an
+       unhelpful 'Unknown arguments. Please refer to --help.' message (similar to what
+       had been observed in PR22077 "runtestfedabipkgdiff.py fails on centos-x86_64").
+       * tools/fedabipkgdiff (is_rpm_file): Also accept MIME type
+       'application/x-redhat-package-manager' for RPM files.
+       CC: Chenxiong Qi <cqi@redhat.com>
+
+2021-12-17  Thomas Schwinge <thomas@codesourcery.com>
+
+       Replace use of deprecated Python 'imp' module with 'importlib'
+       * tests/mockfedabipkgdiff.in: Replace use of deprecated Python
+       'imp' module with 'importlib'.
+       CC: Chenxiong Qi <cqi@redhat.com>
+
+2021-12-17  Thomas Schwinge <thomas@codesourcery.com>
+
+       fedabipkgdiff: Enable testing without proper Koji installation
+       * tools/fedabipkgdiff: Handle 'koji.ConfigurationError'.
+       * configure.ac: Likewise.
+       * CONTRIBUTING: Document "fedabipkgdiff testing".
+       Documenting/providing a way to enable such testing, this commit can be
+       considered a sequel to commit 90d236a03343d75ea504d53c73270e50b9000e75
+       "Bug 22076 - Disable fedabipkgdiff for old koji clients", for Mark Wielaard's
+       PR22076 "runtestfedabipkgdiff.py fails on debian-amd64".
+
+2021-12-10  Thomas Schwinge <thomas@codesourcery.com>
+
+       abipkgdiff: Use 'convert_path_to_relative' in 'create_abi_file_path'
+       * tools/abipkgdiff.cc (create_abi_file_path): Use
+       'convert_path_to_relative'.
+
+2021-12-10  Thomas Schwinge <thomas@codesourcery.com>
+
+       abipkgdiff: Respect 'create_abi_file_path' interface
+       * tools/abipkgdiff.cc (compare_to_self): Respect
+       'create_abi_file_path' interface.
+
+2021-12-10  Thomas Schwinge <thomas@codesourcery.com>
+
+       configure: Instead of for rpm 4.15+ version, test actual rpm/zstd support
+       * configure.ac: Instead of for rpm 4.15+ version, test actual
+       rpm/zstd support.
+       * tests/test-diff-pkg.cc: Adjust.
+
+2021-12-14  Thomas Schwinge <thomas@codesourcery.com>
+
+       Further update 'make distcheck-fast'
+       * CONTRIBUTING: Further update 'make distcheck-fast'.
+       Suggested-by: Matthias Maennich <maennich@google.com>
+
+2021-12-14  Thomas Schwinge <thomas@codesourcery.com>
+
+       Add '.mailmap'
+       * .mailmap: New.
+       CC: Ben Woodard <woodard@redhat.com>
+       CC: Guillermo E. Martinez <guillermo.e.martinez@oracle.com>
+       CC: Jose E. Marchesi <jose.marchesi@oracle.com>
+       CC: Matthias Maennich <maennich@google.com>
+       CC: Xiao Jia <xiaoj@google.com>
+
+2021-12-11  Thomas Schwinge <thomas@codesourcery.com>
+
+       configure: Tune fedabipkgdiff dependencies detection
+       * configure.ac: Tune fedabipkgdiff dependencies detection.
+
+2021-12-11  Thomas Schwinge <thomas@codesourcery.com>
+
+       CONTRIBUTING: Move "Coding language and style" section
+       * CONTRIBUTING: Move "Coding language and style" section.
+
+2021-12-15  Mark Wielaard <mark@klomp.org>
+
+       dwarf-reader: Workaround libdw dwarf_location_expression bug
+       * src/abg-dwarf-reader.cc (die_constant_data_member_location):
+       New function.
+       (die_member_offset): Use die_constant_data_member_location
+       before calling die_location_expr and eval_quickly.
+
+2021-12-14  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       Add regression tests for ctf reading
+       * tests/test-read-ctf.cc: New ctf reading regression test.
+       * tests/test-read-common.cc: New library to be used with
+       test-read-{ctf,dwarf}.cc.
+       * tests/test-read-common.h: Likewise.
+       * tests/test-annotate.cc (in_out_specs): Adjust path for input files.
+       * tests/Makefile.am: Build new tests/test-read-ctf.cc file.
+       * tests/data/Makefile.am: Add test inputs and expected files.
+       Add libtestreadcommon.a test library and use it for test-read-{ctf,dwarf}.
+       * tests/test-read-dwarf.cc: Adapt test to use libtestreadcommon.a in
+       test-read-common.{cc,h}.
+       * tests/data/test-annotate/test3.so.abi: Adjust ELF input path file
+       location to ./tests/data/test-read-common.
+       * tests/data/test-annotate/test4.so.abi: Likewise.
+       * tests/data/test-read-common/PR26261: Move test harness to
+       test-read-common directory.
+       * tests/data/test-read-common/PR27700: Likewise.
+       * tests/data/test-read-common/test-PR26568-*: Likewise.
+       * tests/data/test-read-common/test3.{c,so}: Likewise.
+       * tests/data/test-read-common/test4.{c,so}: Likewise.
+       * tests/data/test-read-common/crti*: Helper object to export
+       _init and _fini sysmbols.
+       * tests/data/test-read-ctf/test-ambiguous-struct-A.c: New testcase.
+       * tests/data/test-read-ctf/test-ambiguous-struct-B.c: Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-a.c: Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-b.c: Likewise.
+       * tests/data/test-read-ctf/test-enum.c: Likewise.
+       * tests/data/test-read-ctf/test-enum-many.c: Likewise.
+       * tests/data/test-read-ctf/test-enum-symbol.c: Likewise.
+       * tests/data/test-read-ctf/test-struct-iteration.c: Likewise.
+       * tests/data/test-read-ctf/test-dynamic-array.c: Likewise.
+       * tests/data/test-read-ctf/test0.c: Likewise.
+       * tests/data/test-read-ctf/test1.c: Likewise.
+       * tests/data/test-read-ctf/test2.c: Likewise.
+       * tests/data/test-read-ctf/test5.c: Likewise.
+       * tests/data/test-read-ctf/test7.{c,h}: Likewise.
+       * tests/data/test-read-ctf/test8.c: Likewise.
+       * tests/data/test-read-ctf/test9.c: Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-A.o.hash.abi: Testcase
+       expected result.
+       * tests/data/test-read-ctf/PR26261/PR26261-exe.abi: Likewise.
+       * tests/data/test-read-ctf/PR27700/test-PR27700.abi: Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-A.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-ambiguous-struct-B.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-a.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-conflicting-type-syms-b.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-enum.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-enum-many.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-enum-symbol.o.hash.abi: Likewise.
+       * tests/data/test-read-ctf/test-struct-iteration.o.abi: Likewise.
+       * tests/data/test-read-ctf/test-dynamic-array.o.abi: Likewise.
+       * tests/data/test-read-ctf/test0: Likewise.
+       * tests/data/test-read-ctf/test0*.abi: Likewise.
+       * tests/data/test-read-ctf/test1.so: Likewise.
+       * tests/data/test-read-ctf/test1*.abi: Likewise.
+       * tests/data/test-read-ctf/test2.so: Likewise.
+       * tests/data/test-read-ctf/test2*.abi: Likewise.
+       * tests/data/test-read-ctf/test3.so.abi: Likewise.
+       * tests/data/test-read-ctf/test4*.abi: Likewise.
+       * tests/data/test-read-ctf/test5.o.abi: Likewise.
+       * tests/data/test-read-ctf/test7.o.abi: Likewise.
+       * tests/data/test-read-ctf/test8.o.abi: Likewise.
+       * tests/data/test-read-ctf/test9.o.abi: Likewise.
+       * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Update
+       expected abixml file.
+       * tests/data/test-read-dwarf/PR27700/test-PR27700.abi: Likewise.
+       * tests/data/test-read-dwarf/test-PR26568-1.*.abi: Likewise.
+       * tests/data/test-read-dwarf/test3*.abi: Likewise.
+       * tests/data/test-read-dwarf/test4*.abi: Likewise.
+       * doc/api/libabigail.doxy: Add tests/test-read-common.{cc,h} to
+       doxygen.
+
+2021-11-27  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       ctf-reader: Fix length in dynamic array definition
+       * src/abg-ctf-reader.cc (process_ctf_array_type):
+       set subrange_type::is_infinite when `upper_bound' value
+       is equal to `0'.
+
+2021-12-09  Thomas Schwinge <thomas@codesourcery.com>
+
+       Better highlight 'make distcheck-fast'
+       * CONTRIBUTING: Better highlight 'make distcheck-fast'.
+
+2021-12-03  Matthias Maennich <maennich@google.com>
+
+       XML writer: use exemplar types for tracking referenced types
+       * src/abg-writer.cc (record_type_as_referenced): Use exemplar
+       type with referenced type sets.
+       (type_is_referenced): Likewise.
+       (tests/data/test-annotate/test14-pr18893.so.abi): Duplicate
+       type(s) removed, as described above.
+       (tests/data/test-read-dwarf/test14-pr18893.so.abi): Likewise.
+       (tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi):
+       Likewise.
+       (tests/data/test-read-dwarf/test16-pr18904.so.abi): Likewise.
+       (tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi):
+       Likewise.
+       (tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi):
+       Likewise.
+       (tests/data/test-read-dwarf/PR25007-sdhci.ko.abi): Some
+       function type(s) reordered, as described above.
+       (tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi):
+       Likewise.
+       (tests/data/test-annotate/test15-pr18892.so.abi):: Duplicate
+       type(s) removed and some function type(s) reordered, as
+       described above.
+       (tests/data/test-read-dwarf/test15-pr18892.so.abi): Likewise.
+       (tests/data/test-annotate/test21-pr19092.so.abi): Likewise.
+       (tests/data/test-read-dwarf/test21-pr19092.so.abi): Likewise
+       Reviewed-by: Giuliano Procida <gprocida@google.com>
+
+2021-12-03  Matthias Maennich <maennich@google.com>
+
+       XML writer: use consistent type pointers for type ids and emission tracking
+       * include/abg-fwd.h (get_exemplar_type): Declare new function.
+       * src/abg-ir.cc (get_exemplar_type): Define new function.
+       * src/abg-writer.cc (type_has_existing_id): use get_exemplar_type
+       for resolution.
+       (get_id_for_type): Likewise.
+       (record_type_as_emitted): Likewise.
+       (type_is_emitted): Likewise.
+       Reviewed-by: Giuliano Procida <gprocida@google.com>
+
+2021-12-06  Dodji Seketeli <dodji@redhat.com>
+
+       reader: Build array types with their element type "a priori"
+       * src/abg-ir.cc (var_decl::get_pretty_representation): Assert that
+       array element types are not empty.
+       * src/abg-reader.cc (build_array_type_def): Set array element
+       types a priori.
+
+2021-12-02  Dodji Seketeli <dodji@redhat.com>
+
+       suppression: Fix has_data_member_inserted_between = {offset_of(), offset_of()}
+       * doc/manuals/libabigail-concepts.rst: Update the documentation to
+       reflect that has_data_member* properties will never suppress any
+       type change if the change carries a data member suppression or a
+       type size reduction.
+       * include/abg-fwd.h (get_last_data_member)
+       (get_next_data_member_offset): Declare new functions.
+       * include/abg-suppression.h
+       (insertion_range::boundary_value_is_end): Declare new static
+       member function.
+       (type_supression::insertion_range::eval_boundary): Make this
+       static function take an uint64_t rather than ssize_t.
+       (type_suppression::insertion_range::integer_boundary::{integer_boundary,
+       as_integer, operator int}): Make these member functions and
+       operator take or return uint64_t rather than int.
+       * src/abg-ir.cc (get_last_data_member)
+       (get_next_data_member_offset): Define new functions.
+       * src/abg-suppression.cc
+       (type_suppression::suppresses_diff): Rework logic to better handle
+       "has_data_member_inserted_*" properties in the context of class
+       diffs.  If the diff object carries data member removal or size
+       reduction, the diff object is not suppressed by the current type
+       suppression.  Also, the property "has_data_member_inserted_at =
+       end", is now represented by an insertion range where the beginning
+       and the end of the range are both the max possible value of
+       insertion range boundaries; the code is made to recognize that.
+       (type_suppression::insertion_range::eval_boundary): Make this
+       static function take an uint64_t rather than ssize_t.  If the
+       boundary is expressed as a "offset_after" expression, make sure
+       the offset of the next data member is considered if it's present.
+       (type_suppression::insertion_range::integer_boundary::{integer_boundary,
+       as_integer, operator int}): Make these take or return uint64_t
+       rather than int.
+       (type_suppression::insertion_range::boundary_value_is_end): Define
+       new member function.
+       (type_suppression::insertion_range::integer_boundary::priv::value_):
+       Turn the type of this into uint64_t, from int.
+       (type_suppression::insertion_range::integer_boundary::priv::priv):
+       The parameter of this is now uint64_t, from int.
+       * tests/data/test-diff-suppr/PR28073/PR28073-bitfield-removed.c:
+       New test source code.
+       * tests/data/test-diff-suppr/PR28073/PR28073-bitfield-removed.o:
+       New test binary.
+       * tests/data/test-diff-suppr/PR28073/PR28073-bitfield-removed.o.abi:
+       New test input.
+       * tests/data/test-diff-suppr/PR28073/PR28073-output-{1,2}.txt: New
+       test reference output.
+       * tests/data/test-diff-suppr/PR28073/PR28073.after.o: New test
+       binary.
+       * tests/data/test-diff-suppr/PR28073/PR28073.after.o.abi: New test
+       input.
+       * tests/data/test-diff-suppr/PR28073/PR28073.before.o: New test
+       binary.
+       * tests/data/test-diff-suppr/PR28073/PR28073.before.o.abi: New
+       test input.
+       * tests/data/test-diff-suppr/PR28073/PR28073.c: New test source
+       code.
+       * tests/data/test-diff-suppr/PR28073/bitfield.suppr: New test
+       input.
+       * tests/data/Makefile.am: Add the new test material to source
+       distribution.
+       * tests/test-diff-suppr.cc: Add the new test input to this test
+       harness.
+
+2021-11-24  Matthias Maennich <maennich@google.com>
+
+       XML writer: adjust tracking of emitted declarations
+       * abg-writer.cc (write_context): Replace mutable
+       m_emitted_decls_map with plain m_emitted_decls_set.
+       (decl_name_is_emitted): Inlined into decl_is_emitted; dropped.
+       (decl_is_emitted): Turn the is_type check into an assert and
+       inline decl_name_is_emitted. Look up in set instead of map.
+       (record_decl_as_emitted): Make non-const. Insert into set
+       instead of map.
+       Reviewed-by: Giuliano Procida <gprocida@google.com>
+
+2021-11-22  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       ctf-reader: Fix memory leak reported by valgrind
+       * src/abg-ctf-reader.cc (process_ctf_archive): Add
+       ctf_dict_close
+
+2021-11-18  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       ctf-reader: Use ABG_ASSERT instead of assert
+       * tools/abidiff.cc (main): Use ABG_ASSERT instead of assert.
+       * tools/abilint.cc: Likewise.
+
+2021-11-18  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       ctf-reader: Make create_read_context return a smart pointer.
+       * include/abg-ctf-reader.h (read_context_sptr): New typedef.
+       (create_read_context): Use read_context_sptr as return value.
+       (read_corpus): New overload that takes a read_context_sptr.
+       * src/abg-ctf-reader.cc (create_read_context): Use
+       read_context_sptr as return value.
+       (read_corpus): New overload that takes a read_context_sptr.
+       * tools/abidiff.cc (main): Use read_context_sptr.
+       * tools/abidw.cc (load_corpus_and_write_abixml): Adjust call to
+       create_read_context.
+       * tools/abilint.cc: Likewise.
+
+2021-11-22  Dodji Seketeli <dodji@redhat.com>
+
+       ctf-reader: Remove useless parameter from fill_ctf_section
+       * src/abg-ctf-reader.cc (fill_ctf_section): Remove the now useless
+       context parameter.  Adjust the comment accordingly.
+       (slurp_elf_info): Adjust the invocation of fill_ctf_section.
+
+2021-11-17  Guillermo E. Martinez via Libabigail <libabigail@sourceware.org>
+
+       ctf-reader: Use argument by reference reading the context
+       * include/abg-ctf-reader.h (create_read_context): Pass the string
+       by reference.
+       * src/abg-ctf-reader.cc (ctf_reader::read_context): Likewise.
+       (create_read_context): Likewise.
+
+2021-11-17  Jose E. Marchesi via Libabigail <libabigail@sourceware.org>
+
+       abidw: add support for CTF
+       * tools/abidw.cc: Conditionally include abg-ctf-reader.h.
+       (load_corpus_and_write_abixml): Do not get a
+       dwarf_reader::read_context as an argument.
+       (main): Adjust call to load_corpus_and_write_abixml accordingly.
+       (struct options): New option use_ctf.
+       (options): ... and initialize it.
+       (display_usage): Document --ctf.
+       (parse_command_line): Handle --ctf.
+       * doc/manuals/abidw.rst: Document --ctf.
+
+2021-11-16  Jose E. Marchesi via Libabigail <libabigail@sourceware.org>
+
+       ctf: ctf_reader::read_corpus now sets a status
+       * include/abg-ctf-reader.h: Include abg-elf-reader-common.h.
+       read_corpus now gets an extra argument `status'.
+       * src/abg-ctf-reader.cc (read_corpus): Likewise, and set `status'
+       accordingly when the debug info is not found.
+       * tools/abilint.cc (main): Pass a status argument to
+       ctf_reader::read_corpus.
+       * tools/abidiff.cc (main): Likewise.
+
+2021-11-11  tangmeng <tangmeng@uniontech.com>
+
+       Standardize and improve the output of several tests
+       * tests/test-abidiff-exit.cc (main): Use
+       abigail::tests::emit_test_{summary, status_and_update_counters}
+       functions to ameliorate and standardize test output.
+       * tests/test-alt-dwarf-file.cc (main): Likewise.
+       * tests/test-annotate.cc (main): Likewise.
+       * tests/test-diff-dwarf-abixml.cc (main): Likewise.
+       * tests/test-ini.cc (main): Likewise.
+       * tests/test-lookup-syms.cc (main): Likewise.
+
+2021-11-17  Dodji Seketeli <dodji@redhat.com>
+
+       test-utils: Define test status reporting functions
+       * tests/test-utils.h (emit_test_status_and_update_counters)
+       (emit_test_summary): Declare ...
+       * tests/test-utils.cc (emit_test_status_and_update_counters)
+       (emit_test_summary): ... new functions.
+
+2021-11-17  Dodji Seketeli <dodji@redhat.com>
+
+       test-utils: Define colors for test status messages
+       * tests/test-utils.h (TEST_FAILURE_COLOR, TEST_SUCCESS_COLOR):
+       Define macros.
+
+2021-11-15  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 28584 - Don't drop global variables that lack DW_AT_external
+       * src/abg-dwarf-reader.cc (die_is_effectively_public_decl): Define
+       new static function.
+       (die_flag_attribute, die_is_public_decl): Adjust const-ness.
+       (build_ir_node_from_die): When building an IR for a variable,
+       consider the variable as being external if the variable is at
+       namespace scope, even if its DIE doesn't have the DW_AT_external
+       attribute.
+       * tests/data/test-read-dwarf/PR28584/PR28584-smv.cc: New source
+       code for a new clang-built binary.
+       * tests/data/test-read-dwarf/PR28584/PR28584-smv.clang.o: New
+       clang-built input binary for testing purposes.
+       * tests/data/test-read-dwarf/PR28584/PR28584-smv.clang.o.abi: The
+       reference output abixml.
+       * tests/data/Makefile.am: Add the new test material above to
+       source distribution.
+       * tests/test-read-dwarf.cc (in_out_specs): Add the new test input
+       to this test harness.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+
+2021-11-12  Jose E. Marchesi via Libabigail <libabigail@sourceware.org>
+
+       Move dwarf_reader::status facilities to an abigail::elf_reader namespace
+       * include/abg-reader-common.h: New file.
+       * include/abg-dwarf-reader.h (enum status): Move to
+       abg-reader-status.h.
+       (status_to_diagnostic_string): Likewise.
+       (operator|): Likewise.
+       (operator&): Likewise.
+       (operator|=): Likewise.
+       (operator&=): Likewise.
+       Include abg-reader-common.h.
+       * include/Makefile.am (pkginclude_HEADERS): Add
+       abg-elf-reader-common.h.
+       * src/abg-elf-reader-status.cc: New file.
+       * src/abg-dwarf-reader.cc (operator|): Move to
+       abg-elf-reader-common.cc.
+       (operator&): Likewise.
+       (operator|): Likewise.
+       (operator|=): Likewise.
+       (operator&=): Likewise.
+       (status_to_diagnostic_string): Likewise.
+       * src/Makefile.am (libabigail_la_SOURCES): Add
+       elf-reader-common.cc.
+       * src/abg-tools-utils.cc: Use abigail::elf_reader instead of
+       abigail::dwarf_reader for the status definitions.
+       * tools/abicompat.cc: Likewise.
+       * tools/abidiff.cc: Likewise.
+       * tools/abidw.cc: Likewise.
+       * tools/abilint.cc: Likewise.
+       * tools/abipkgdiff.cc: Likewise.
+       * tests/print-diff-tree.cc: Likewise.
+       * tests/test-diff-dwarf.cc: Likewise.
+       * tests/test-read-dwarf.cc: Likewise.
+       * tests/test-symtab.cc: Likewise.
+       * tests/test-ir-walker.cc: Likewise.
+
+2021-11-12  Dodji Seketeli <dodji@redhat.com>
+
+       abg-config.{cc,h}: Misc comment cleanups
+       * include/abg-config.h (abigail_get_library_version): Remove the
+       comment from the header file ...
+       * src/abg-config.cc (abigail_get_library_version): ... to put it
+       in the definition.
+
+2021-11-12  Dodji Seketeli <dodji@redhat.com>
+
+       abidw: Add --abixml-version
+       * doc/manuals/abidw.rst: Document the --abixml-version command
+       line option.
+       * configure.ac (ABIXML_VERSION_MAJOR, ABIXML_VERSION_MINOR):
+       Define these two new autoconf variables.
+       * include/abg-config.h (abigail_get_abixml_version): Declare new
+       function.
+       * include/abg-tools-utils.h (get_abixml_version_string): Declare
+       new function.
+       * include/abg-version.h.in (ABIGAIL_ABIXML_VERSION_MAJOR)
+       (ABIGAIL_ABIXML_VERSION_MINOR): Define new preprocessor macros.
+       * src/abg-config.cc (config::config): Initialize
+       config::m_format_{minor,major} using the newly defined
+       preprocessor macros ABIGAIL_ABIXML_VERSION_M{IN,AJ}OR.
+       * src/abg-tools-utils.cc (get_abixml_version_string): Define new
+       function.
+       * tools/abidw.cc (options::display_abixml_version): Define new
+       data member.
+       (options::options): Initialize it.
+       (display_usage): Emit a help string for the new --abixml-version
+       option.
+       (parse_command_line): Parse the --abixml-version string.
+       (main): Emit the abixml version when asked.
+
+2021-11-04  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 28450 - Fix cloned member function handling in DWARF
+       * ABIXML-FORMAT-VERSIONS: New file that documents the version
+       changes of the ABIXML-FORMAT-VERSIONS.
+       * include/abg-fwd.h (look_through_no_op_qualified_type): Remove
+       this function declaration.
+       (strip_useless_const_qualification): Declare new function
+       declaration.
+       * src/abg-comparison.cc (compute_diff_for_types): Avoid stripping
+       off no-op-qualified types as these beasts don't exist anymore.
+       (redundancy_marking_visitor::visit_end): Allow a variable which
+       type has local changes to be considered redundant if its type is
+       itself redundant.
+       * src/abg-config.cc (config::config): Bump the abixml version from
+       2.0 to 2.1.
+       * src/abg-dwarf-reader.cc (maybe_strip_qualification): Factorize
+       out the new strip_useless_const_qualification function from here.
+       (build_or_get_fn_decl_if_not_suppressed): If the function is
+       created but doesn't have an ELF symbol associated to it, then
+       update it so that the ELF symbol can be associated.  Otherwise,
+       potential_member_fn_should_be_dropped might later drop that
+       function on the floor because it doesn't have any ELF symbol
+       associated.
+       * src/abg-ir.cc (strip_useless_const_qualification): Define this,
+       which is has been factorized out of maybe_strip_qualification.
+       (look_through_no_op_qualified_type): Remove this definition.
+       (equals): In the overload for reference_type_def, do not peel
+       typedefs off from the reference before comparison.  This is now
+       useless as the comparison infrastructure got a lot better.  In the
+       overload for references, stop using
+       look_through_no_op_qualified_type as this function doesn't exist
+       anymore.
+       * src/abg-tools-utils.cc (abidiff_status_has_error): Detect when
+       there is a usage error as well.
+       * tests/data/test-types-stability/PR28450-libepetra.so.13.0: Add
+       new testing binary to the repository.
+       * tests/data/Makefile.am: Add the new testing binary above to
+       source distribution.
+       * tests/test-types-stability.cc (elf_paths): Add the new test to
+       this test harness.
+       * tests/test-diff-dwarf-abixml.cc (main): Add better error messages.
+       * tests/data/test-abidiff-exit/test-member-size-report0.txt: Adjust.
+       * tests/data/test-annotate/libtest23.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-annotate/test-anonymous-members-0.o.abi: Likewise.
+       * tests/data/test-annotate/test0.abi: Likewise.
+       * tests/data/test-annotate/test1.abi: Likewise.
+       * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test6.so.abi: Likewise.
+       * tests/data/test-annotate/test7.so.abi: Likewise.
+       * tests/data/test-annotate/test8-qualified-this-pointer.so.abi: Likewise.
+       * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: Likewise.
+       * tests/data/test-diff-dwarf/test0-report.txt: Likewise.
+       * tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: Likewise.
+       * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise.
+       * tests/data/test-diff-filter/test0-report.txt: Likewise.
+       * tests/data/test-diff-filter/test01-report.txt: Likewise.
+       * tests/data/test-diff-filter/test10-report.txt: Likewise.
+       * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise.
+       * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise.
+       * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise.
+       * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise.
+       * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise.
+       * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise.
+       * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt: Likewise.
+       * tests/data/test-diff-filter/test41-report-0.txt: Likewise.
+       * tests/data/test-diff-filter/test9-report.txt: Likewise.
+       * tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt:
+       Likewise.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
+       Likewise.
+       * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
+       Likewise.
+       * tests/data/test-diff-suppr/test24-soname-report-1.txt: Likewise.
+       * tests/data/test-diff-suppr/test24-soname-report-10.txt: Likewise.
+       * tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise.
+       * tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise.
+       * tests/data/test-diff-suppr/test24-soname-report-16.txt: Likewise.
+       * tests/data/test-diff-suppr/test24-soname-report-4.txt: Likewise.
+       * tests/data/test-diff-suppr/test31-report-1.txt: Likewise.
+       * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test1.abi: Likewise.
+       * tests/data/test-read-dwarf/test1.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test2.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test2.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-1.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-2.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-3.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-4.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test3.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test4.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test4.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test5.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test5.o.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test6.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test6.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test7.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test7.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+       * tests/data/test-read-write/test-crc.xml: Likewise.
+       * tests/data/test-read-write/test26.xml: Likewise.
+       * tests/data/test-read-write/test27.xml: Likewise.
+       * tests/data/test-read-write/test28-without-std-fns-ref.xml: Likewise.
+       * tests/data/test-read-write/test28-without-std-vars-ref.xml: Likewise.
+
+2021-11-10  Jose E. Marchesi via Libabigail <libabigail@sourceware.org>
+
+       abg-ctf-reader: use the right string table for CTF data
+       * src/abg-ctf-reader.cc (slurp_elf_info): Use
+       find_strtab_for_symtab_section.
+
+2021-11-10  Jose E. Marchesi via Libabigail <libabigail@sourceware.org>
+
+       elf_helpers: new utility function find_strtab_for_symtab_section
+       * src/abg-elf-helpers.h: Prototype for find_strtab_for_symtab_section.
+       * src/abg-elf-helpers.cc (find_strtab_for_symtab_section): New function.
+
+2021-11-09  tangmeng <tangmeng@uniontech.com>
+
+       test-abicompat: Make the test output more pleasant
+       * test/test-abicompat.cc (main): make test output more pleasant.
+
+2021-11-05  tangmeng <tangmeng@uniontech.com>
+
+       abicompat: Add prompt message for abnormal operation
+       * tools/abicompat.cc (parse_command_line): Notify the user
+       when --redundant and --no-redundant are used at the same time
+
+2021-11-05  tangmeng <tangmeng@uniontech.com>
+
+       abilint: Add prompt message for abnormal operation
+       * tools/abilint.cc (parse_command_line): Notify the user when the
+       path to the file is ignored because the --stdin option was
+       provided.
+
+2021-11-03  Jose E. Marchesi via Libabigail <libabigail@sourceware.org>
+
+       ctf: make libabigail::ctf_reader::read_corpus reentrant
+       * src/abg-ctf-reader.cc (class read_context): New attributes
+       elf_handler, elf_fd, ctf_sect, symtab_sec and strtab_sect.
+       (read_context): Do not read the CTF archive here.
+       (slurp_elf_info): Adjust to use attributes instead of locals, and
+       fetch the raw ELF section contents for libctf.
+       (close_elf_handler): New function.
+       (fill_ctf_section): Likewise.
+       (read_corpus): Call open_elf_handler, close_elf_handler and build
+       the CTF archive using ctf_arc_bufopen instead of ctf_open.
+       Signed-by: Jose E. Marchesi <jose.marchesi@oracle.com>
+
+2021-11-03  tangmeng <tangmeng@uniontech.com>
+
+       Fix trivial typo when printing message
+       * tools/abilint.cc (main): End the 'FILE_TYPE_UNKNOWN' tips with a
+       newline.
+       * tools/abisym.cc (main): Add a newline after version string.
+
+2021-10-29  Jose E. Marchesi via Libabigail <libabigail@sourceware.org>
+
+       Add support for the CTF debug format to libabigail.
+       * configure.ac: Check for libctf.
+       * src/abg-ctf-reader.cc: New file.
+       * include/abg-ctf-reader.h: Likewise.
+       * src/Makefile.am (libabigail_la_SOURCES): Add abg-ctf-reader.cc
+       conditionally.
+       * include/Makefile.am (pkginclude_HEADERS): Add abg-ctf-reader.h
+       conditionally.
+       * tools/abilint.cc (struct options): New option `use_ctf'.
+       (display_usage): Documentation for --ctf.
+       (parse_command_line): Handle --ctf.
+       (main): Honour --ctf.
+       * tools/abidiff.cc (struct options): New option `use_ctf'.
+       (display_usage): Documentation for --ctf.
+       (parse_command_line): Handle --ctf.
+       (main): Honour --ctf.
+       * doc/manuals/abidiff.rst: Document --ctf.
+       * doc/manuals/abilint.rst: Likewise.
+
+2021-10-29  tangmeng <tangmeng@uniontech.com>
+
+       abicompat: Add prompt message for abnormal operation
+       * tools/abicompat.cc (main): Notify the user when the path to
+       the second library is ignored because the --weak-mode option
+       was provided.  Also, fix comment.
+
+2021-10-29  tangmeng <tangmeng@uniontech.com>
+
+       abilint: fix trivial typo when using abilint
+       * tools/abilint.cc (display_usage): Correct the errors and
+       redundant content in the help information.
+       (main): Add a newline after version string.
+
+2021-10-27  tangmeng <tangmeng@uniontech.com>
+
+       Fix trivial typo when printing help information
+       * tools/abicompat.cc (display_usage): End the usage message with a
+       newline and properly indent it.
+
+2021-10-20  Dodji Seketeli <dodji@redhat.com>
+
+       PR28365 - Assert on empty typedef on webkit2gtk3-jsc-2.32.3-1.fc34.x86_64
+       * src/abg-reader.cc (build_enum_type_decl): Set the naming typedef
+       only after the enum is created and keyed.
+       (build_typedef_decl): Build the underlying type of the typedef
+       first.
+
+2021-10-11  Giuliano Procida <gprocida@google.com>
+
+       Tweak clang-format configuration
+       * .clang-format: Various tweaks to Clang format configuration.
+
+2021-10-15  Vanessa Sochat <sochat1@llnl.gov>
+
+       Fixing incorrect symbol
+       * include/abg-ir.h (translation_unit::language<>LANG_PLI): Rename
+       LANG_PL1 into this.
+       * src/abg-dwarf-reader.cc (dwarf_language_to_tu_language): Rename
+       DW_LANG_PL1 into DW_LANG_PLI.
+       (get_default_array_lower_bound): Rename translation_unit::LANG_PL1
+       into translation_unit::LANG_PLI.
+       * src/abg-ir.cc (translation_unit_language_to_string): Rename
+       translation_unit::LANG_PL1 into case translation_unit::LANG_PLI.
+       (string_to_translation_unit_language): Rename
+       translation_unit::LANG_PL1 into translation_unit::LANG_PLI.
+
+2021-10-18  Dodji Seketeli <dodji@redhat.com>
+
+       Update licensing information on the web page after 2.0
+       * doc/website/mainpage.txt: Libabigail is now Apache V2 + LLVM
+       exception.
+
+2021-10-18  Dodji Seketeli <dodji@redhat.com>
+
+       Add debug info package for wireshark-cli-3.4.9-1.fc36.x86_64.rpm
+       * tests/data/test-diff-pkg/wireshark/wireshark-debuginfo-3.4.9-1.fc36.x86_64.rpm:
+       Add new debug info package.
+       * tests/data/Makefile.am: Add it to the source distribution.
+       * tests/test-diff-pkg.cc: Use the new debug info package in the
+       test harness.
+
+2021-10-14  Dodji Seketeli <dodji@redhat.com>
+
+       Bug 28364 - libwiretap fails self comparison
+       * src/abg-dwarf-reader.cc (build_function_type): Associate the DIE
+       representation to the constructed type once it's fully built.
+       * src/abg-reader.cc (build_function_type): Support member function of unions.
+       * tests/data/Makefile.am: Add the new test input files to the
+       source distribution.
+       * tests/data/test-diff-pkg/wireshark/wireshark-cli-3.4.9-1.fc36.x86_64-self-check-report.txt:
+       Add new test input file.
+       * tests/data/test-diff-pkg/wireshark/wireshark-cli-3.4.9-1.fc36.x86_64.rpm:
+       Likewise.
+       * tests/data/test-diff-pkg/wireshark/wireshark-cli-debuginfo-3.4.9-1.fc36.x86_64.rpm:
+       Likewise.
+       * tests/test-diff-pkg.cc (in_out_specs): Add these new test input
+       files to this test harness.
+       * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Adjust.
+
+2021-10-14  Dodji Seketeli <dodji@redhat.com>
+
+       writer: Don't forget that a naming typedef is referenced
+       * src/abg-writer.cc (write_naming_typedef): Notice that the naming
+       typedef is referenced.
+
+2021-10-14  Dodji Seketeli <dodji@redhat.com>
+
+       writer: Don't forget when emitting array subrange types
+       * src/abg-writer.cc (write_array_subrange_type): Record the type
+       as emitted.
+
+2021-10-14  Dodji Seketeli <dodji@redhat.com>
+
+       writer: Don't forget to emit types referenced by function types
+       * src/abg-writer.cc (write_referenced_types): Factorize out of ...
+       (write_translation_unit): ... here.  Also, use it to write the
+       types referenced by emitted function types.
+
+2021-10-14  Dodji Seketeli <dodji@redhat.com>
+
+       ir: Avoid canonicalizing types that are not meant to
+       * src/abg-ir.cc (type_base::get_canonical_type_for): Do not
+       canonicalize types that are not meant to.
+       (maybe_adjust_canonical_type): Do not crash when dealing with a
+       nil canonical type.
+       * tests/data/test-annotate/libtest23.so.abi: Adjust.
+       * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-annotate/test-anonymous-members-0.o.abi: Likewise.
+       * tests/data/test-annotate/test0.abi: Likewise.
+       * tests/data/test-annotate/test1.abi: Likewise.
+       * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-annotate/test2.so.abi: Likewise.
+       * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
+       * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-annotate/test3.so.abi: Likewise.
+       * tests/data/test-annotate/test5.o.abi: Likewise.
+       * tests/data/test-annotate/test8-qualified-this-pointer.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
+       * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: Likewise.
+       * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise.
+       * tests/data/test-read-dwarf/PR27700/test-PR27700.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise.
+       * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-PR26568-1.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test-PR26568-2.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test-suppressed-alias.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.abi: Likewise.
+       * tests/data/test-read-dwarf/test0.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test1.abi: Likewise.
+       * tests/data/test-read-dwarf/test1.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test2.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test2.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-1.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-2.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3-alias-3.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test3.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test3.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test5.o.abi: Likewise.
+       * tests/data/test-read-dwarf/test5.o.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: Likewise.
+       * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi: Likewise.
+       * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
+
+2021-10-14  Dodji Seketeli <dodji@redhat.com>
+
+       tests/Makefile.am: Fix warning
+       * tests/Makefile.am: Stop referring to test-dot.cc which is no
+       more.
+
+2021-10-14  Dodji Seketeli <dodji@redhat.com>
+
+       Add --enable-debug-type-canonicalization to configure
+       * configure.ac: Support the new
+       --enable-debug-type-canonicalization option.  Define macro
+       WITH_DEBUG_TYPE_CANONICALIZATION accordingly.
+       * doc/manuals/abidw.rst: Update documentation.
+       * include/abg-ir.h
+       (environment::debug_type_canonicalization_is_on): Declare new
+       member function if WITH_DEBUG_TYPE_CANONICALIZATION is defined.
+       * src/abg-ir-priv.h
+       (environment::priv::{use_canonical_type_comparison_,
+       debug_type_canonicalization_}): Define new data members if
+       WITH_DEBUG_TYPE_CANONICALIZATION is defined.
+       (environment::priv::priv): Initialize them.
+       * src/abg-ir.cc (try_canonical_compare): When
+       WITH_DEBUG_TYPE_CANONICALIZATION is defined, perform comparison
+       using either structural or canonical equality depending on the
+       environment::priv::use_canonical_type_comparison_ flag.
+       (environment::debug_type_canonicalization_is_on): Define member
+       function when WITH_DEBUG_TYPE_CANONICALIZATION is defined.
+       (compare_types_during_canonicalization): Define new function.
+       (type_base::get_canonical_type_for): Use the new function
+       compare_types_during_canonicalization.
+       * tools/abidw.cc (options::debug_type_canonicalization): Define
+       new data member.
+       (option::option): Initialize it.
+       (display_usage): Add help string for --debug-tc.
+       (parse_command_line): Support new option --debug-tc or
+       --debug-type-canonicalization.
+       (load_corpus_and_write_abixml): Turn type canonicalization
+       debugging on if --enable-tc is provided.
+
+2021-10-13  Dodji Seketeli <dodji@redhat.com>
+
+       Improve type (de)serialization instability debugging
+       * include/abg-fwd.h (is_non_canonicalized_type): Declare new
+       function.
+       * src/abg-ir-priv.h: Include abg-corpus.h
+       (environment::priv::pointer_type_id_map_): Fix comment.
+       (environment::priv::check_canonical_type_from_abixml_during_self_comp):
+       Define new member function.
+       * src/abg-ir.cc (unmark_types_as_being_compared): Factorize this
+       from ...
+       (return_comparison_result): ... here.  Also, add a parameter to
+       control whether this function should perform the "canonical type
+       propagation optimization" or not.  By default the optimization is
+       performed.  This can be changed for debugging purposes later.
+       (type_base::get_canonical_type_for): Re-organise the self
+       comparison debugging process to invoke the new function
+       environment::priv::check_canonical_type_from_abixml_during_self_comp
+       each time a canonical type is computed, in addition to doing the
+       previous verification that was done when no canonical type was
+       found.  Emit better error messages.
+       (is_non_canonicalized_type): Rename the static function
+       is_allowed_non_canonicalized_type into this and make it
+       non-static.
+       (hash_as_canonical_type_or_constant): Adjust.
+       * src/abg-reader.cc (maybe_map_type_with_type_id): Define new
+       static function.
+       (read_context::maybe_check_abixml_canonical_type_stability):
+       Ignore types that were not canonicalized.
+       (read_corpus_from_input): Set the origin of the corpus early
+       enough so that it's available to the canonicalizer even for types
+       being canonicalized early.
+       (MAYBE_MAP_TYPE_WITH_TYPE_ID): Factorize this macro out of ...
+       (build_type): ... this.  That macro is defined only when debugging
+       self comparison.
+       (build_array_type_def): Map the read subrange type with its
+       type-id.
+       (handle_{type_decl, qualified_type, pointer_type_def,
+       reference_type_def, function_type, array_type_def,enum_type_decl,
+       typedef_decl, class_decl, union_decl}): Map the read type with its
+       type-id.
+       (load_canonical_type_ids): Ignore non-canonicalized types that
+       which ids were saved in the type-id file.
+       * src/abg-writer.cc (write_type_record): Factorize from ...
+       (write_canonical_type_ids): ... here.  Don't forget to write the
+       type-ids of decl-only types.  This can be useful for eye
+       inspection.
+       * tools/abidw.cc (load_corpus_and_write_abixml): Wait until the
+       end of the function before removing the type-id file.  This can be
+       useful for eye inspection.
+
+2021-10-05  Dodji Seketeli <dodji@redhat.com>
+
+       Bump to 2.1 version
+       * configure.ac: Bump to 2.1 version.
+
+2021-10-04  Dodji Seketeli <dodji@redhat.com>
+
+       Update libabigail web page for 2.0 release
+       * doc/website/mainpage.txt: Update.
+
+2021-10-04  Dodji Seketeli <dodji@redhat.com>
+
+       Fix tarball upload directory
+       * Makefile.am: The tarball upload director is really /var/ftp.
+
+2021-10-04  Dodji Seketeli <dodji@redhat.com>
+
+       Update ChangeLog for 2.0
+       * ChangeLog: Update automatically with make update-changelog.
+
 2021-10-04  Dodji Seketeli <dodji@redhat.com>
 
        Update NEWS file for 2.0