+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