@@ -1,8 +1,1946 @@
+2024-04-17 Dodji Seketeli <dodji@redhat.com>
+
+ ChangeLog: Update for 2.5 release
+ * ChangeLog: Update for 2.5 release by running the "make
+ update-changelog" command.
+
+2024-04-17 Dodji Seketeli <dodji@redhat.com>
+
+ NEWS: Update for 2.5 release
+ * NEWS: Update for the 2.5 release with the command git
+ shortlog libabigail-2.4..HEAD.
+
+2024-04-18 Dodji Seketeli <dodji@redhat.com>
+
+ configure: Add option to disable abidb
+ * configure.ac: Add a --disable-abidb option to configure to
+ disable the abidb tool and related tests.
+
+2024-04-17 Dodji Seketeli <dodji@redhat.com>
+
+ tests/runtestabidb?.sh.in: Fix git initialization
+ * tests/runtestabidb[1-2].sh.in: Initialize email & user name
+ for the local git repository.
+
+2024-04-15 Dodji Seketeli <dodji@redhat.com>
+
+ Bug 31646: Fix type suppression tactics for webkit2gtk3
+ * default.abignore: Split the libwebkit2gtk suppression
+ specification for types whose names match the regexp
+ ^std::.*|WebCore::.*|WebKit::.* into two. One that drops type
+ with names being ^std::.* and another one that turns type being
+ WebCore::.*|WebKit::.* into opaque types.
+ * doc/manuals/libabigail-concepts.rst: Add documentation for the
+ new special label libabigail::OPAQUE_TYPE_LABEL that transforms
+ types matching a [suppress_type] into opaque types.
+ * include/abg-suppression.h (is_opaque_type_suppr_spec): Renamed
+ is_private_type_suppr_spec into this.
+ (get_opaque_types_suppr_spec_label): Renamed
+ get_private_types_suppr_spec_label.
+ * src/abg-comparison.cc (diff::is_suppressed): Adjust.
+ * src/abg-dwarf-reader.cc (type_is_suppressed): Adjust. Change the
+ name of the type_is_private parameter into type_is_opaque.
+ (get_opaque_version_of_type): Do not return early if the type has
+ no associated location. What was I thinking.
+ (build_ir_node_from_die): For enums, struct and classes adjust
+ call to type_is_suppressed.
+ * src/abg-suppression.cc (type_suppression::suppresses_diff):
+ Adjust to using is_opaque_type_suppr_spec and
+ get_opaque_version_of_type in lieu of is_private_type_suppr_spec
+ and get_private_types_suppr_spec_label.
+ (get_opaque_types_suppr_spec_label): Rename
+ get_private_types_suppr_spec_label into this. Also, rename the
+ name of the special label that specifies opaque types from
+ "Artificial private types suppression specification" to
+ "libabigail::OPAQUE_TYPE_LABEL".
+ (is_opaque_type_suppr_spec): Rename is_private_type_suppr_spec
+ into this.
+ (is_type_suppressed): Rename the "type_is_private" parameter into
+ "type_is_opaque".
+ * src/abg-tools-utils.cc (handle_file_entry): Adjust to using
+ get_opaque_types_suppr_spec_label rather than
+ get_private_types_suppr_spec_label.
+ * tools/abipkgdiff.cc (compare): Use the supprs variable where all
+ the suppression specifications got accumulated, not just the
+ priv_types_supprs1.
+ (compare_to_self): Add a suppression specifications variable for
+ private types. Add those private types specs to the user-provided
+ ones.
+ * tools/fedabipkgdiff (abipkgdiff): In the self comparison mode,
+ take into account devel packages and suppression specifications.
+ Pass those to the abipkgdiff tool's invocation.
+ * tests/data/test-diff-suppr/PR31646/test-PR31646-result-[1-3].txt:
+ New reference test output files.
+ * tests/data/test-diff-suppr/PR31646/test-PR31646-v{0,1}.cc:
+ Source code of binary inputs below.
+ * tests/data/test-diff-suppr/PR31646/test-PR31646-v{0,1}.o: Binary
+ input files.
+ * tests/data/test-diff-suppr/PR31646/test-PR31646.2.abignore:
+ Suppression specification file.
+ * tests/data/test-diff-suppr/PR31646/test-PR31646.abignore:
+ Likewise.
+ * tests/data/Makefile.am: Add the new test material above to
+ source distribution.
+ * tests/test-diff-suppr.cc (in_out_specs): Add the new test input
+ to this harness.
+
+2024-04-03 Dodji Seketeli <dodji@redhat.com>
+
+ Bug 29160 - support fn symbol aliasing a var symbol
+ * src/abg-reader.cc (typedef string_strings_map_type): Define new
+ typedef.
+ (resolve_symbol_aliases): Define new function.
+ (build_elf_symbol_db): Add two new parameters to carry unresolved
+ function and variable symbol aliases. When a symbol alias can't
+ resolve to any of the symbols of its kind (function or variable)
+ then stage the alias away in the set of unresolved aliases. That
+ set is then going to be resolved later.
+ (read_symbol_db_from_input): Add two new parameters to carry
+ unresolved function and variable symbol aliases. Pass them down
+ to build_elf_symbol_db.
+ (reader::read_corpus): Adjust the invocation of
+ read_symbol_db_from_input to get the sets of unresolved function &
+ variable symbol aliases. Invoke the new resolve_symbol_aliases
+ the unresolved function & variable aliases.
+ * tests/data/test-diff-pkg/PR29610/guestfs-tools-1.51.6-2.el9.s390x-self-check-report.txt:
+ New test reference output.
+ * tests/data/test-diff-pkg/PR29610/guestfs-tools-1.51.6-2.el9.s390x.rpm:
+ New binary test input.
+ * tests/data/test-diff-pkg/PR29610/guestfs-tools-debuginfo-1.51.6-2.el9.s390x.rpm:
+ Likewise.
+ * tests/data/Makefile.am: Add this new test material to source
+ distribution.
+ * tests/test-diff-pkg.cc (in_out_specs): Add the new test input to
+ this test harness.
+
+2024-04-03 Dodji Seketeli <dodji@redhat.com>
+
+ Bug 31513 - Fix fallout of initial patch
+ * src/abg-comp-filter.cc (has_subtype_changes): Reset s_member in
+ the loop, just like f_member.
+ * tests/data/test-abidiff-exit/PR31513/non-regr/report1.txt: Adjust.
+ * tests/data/test-abidiff-exit/PR31513/non-regr/report2.txt: Adjust.
+ * tests/test-abidiff-exit.cc (in_out_specs): Adjust.
+
+2024-03-29 Dodji Seketeli <dodji@redhat.com>
+
+ comparison: Fix erroneous detection of deleted anonymous data members
+ * src/abg-comparison.cc
+ (class_or_union_diff::ensure_lookup_tables_populated): If leaf
+ data members of an anonymous data member are still present in the
+ new version of the class, then the anonymous data member cannot be
+ considered as being removed from the second version of the class.
+ * tests/data/test-abidiff-exit/non-del-anon-dm/non-regr/report0.txt:
+ Reference test output.
+ * tests/data/test-abidiff-exit/non-del-anon-dm/non-regr/test0-v{0,1}.c:
+ Source code of the binary input below.
+ * tests/data/test-abidiff-exit/non-del-anon-dm/non-regr/test0-v{0,1}.o:
+ New binary test input.
+ * tests/data/test-abidiff-exit/non-del-anon-dm/reported/binaries-origin.txt:
+ File mentioning the origin of the reported binary.
+ * tests/data/test-abidiff-exit/non-del-anon-dm/reported/librte_graph.so.24.{0,1}:
+ Binary test input.
+ * tests/data/test-abidiff-exit/non-del-anon-dm/reported/report0.txt:
+ Reference test output.
+ * tests/data/Makefile.am: Add the test material above to source
+ distribution.
+ * tests/test-abidiff-exit.cc (in_out_specs): Add test material
+ above to this harness.
+
+2024-03-28 Dodji Seketeli <dodji@redhat.com>
+
+ Bug 31513 - abidiff considers data members moved to base class as harmful
+ * include/abg-comparison.h (typedef string_decl_base_sptr_map):
+ Move this typedef to include/abg-fwd.h:
+ (HARMLESS_UNION_OR_CLASS_CHANGE_CATEGORY): Inside the enum
+ diff_category, rename the enumerator
+ HARMLESS_UNION_CHANGE_CATEGORY into this.
+ (EVERYTHING_CATEGORY): Adjust this enum to refer to
+ HARMLESS_UNION_OR_CLASS_CHANGE_CATEGORY, no more HARMLESS_UNION_CHANGE_CATEGORY
+ * include/abg-fwd.h (typedef string_decl_base_sptr_map): Move this
+ typedef here from abg-comparison.h
+ (collect_non_anonymous_data_members): Declare new function.
+ * src/abg-comp-filter.cc (has_offset_changes)
+ (type_has_offset_changes, has_offset_changes)
+ (has_subtype_changes, class_diff_has_only_harmless_changes):
+ Define new static functions.
+ (base_classes_removed): Rename base_classes_added_or_removed into
+ this and update comment.
+ (categorize_harmless_diff_node): Changes that were categorized as
+ HARMLESS_UNION_CHANGE_CATEGORY is now categorized as
+ HARMLESS_UNION_OR_CLASS_CHANGE_CATEGORY. Also, a diff that
+ satisfies either union_diff_has_harmless_changes or
+ class_diff_has_only_harmless_changes is categorized as
+ HARMLESS_UNION_OR_CLASS_CHANGE_CATEGORY.
+ (categorize_harmful_diff_node): Adjust to invoke
+ base_classes_removed instead of base_classes_added_or_removed. An
+ added base class doesn't necessarily qualifies as a harmful change
+ anymore. Rather, a diff node that carries an offset change as
+ detected by type_has_offset_changes is categorized as
+ SIZE_OR_OFFSET_CHANGE_CATEGORY.
+ * src/abg-comparison.cc (get_default_harmless_categories_bitmap):
+ Adjust to use
+ abigail::comparison::HARMLESS_UNION_OR_CLASS_CHANGE_CATEGORY
+ rather than abigail::comparison::HARMLESS_UNION_CHANGE_CATEGORY.
+ (operator<<(ostream& o, diff_category c)): Likewise.
+ (class_diff::ensure_lookup_tables_populated): Detect data members
+ that are moved into base classes to avoid considering those data
+ members as being removed from the class.
+ * src/abg-default-reporter.cc (default_reporter::report): Adjust
+ to use HARMLESS_UNION_OR_CLASS_CHANGE_CATEGORY rather than
+ HARMLESS_UNION_CHANGE_CATEGORY.
+ * src/abg-ir.cc (collect_non_anonymous_data_members): Define
+ function overloads.
+ * tests/data/test-abidiff-exit/PR31513/non-regr/libtest[1-4]-v{0,1}.so:
+ New binary test input files.
+ * tests/data/test-abidiff-exit/PR31513/non-regr/report[1-4.txt:
+ New reference output files.
+ * tests/data/test-abidiff-exit/PR31513/non-regr/test[1-4]-v{0,1}.cc:
+ Source code of the binary input files above.
+ * tests/data/test-abidiff-exit/PR31513/reported/PR31513-reported-report-{1,2}.txt:
+ New reference output files.
+ * tests/data/test-abidiff-exit/PR31513/reported/libloremipsum_gcc{7,11}.so:
+ New binary test input files.
+ * tests/data/test-abidiff-exit/PR31513/reported/libstdcpp.suppr:
+ New test suppression file.
+ * tests/data/Makefile.am: Add new test files above to source
+ distribution.
+ * tests/test-abidiff-exit.cc (in_out_specs): Add the new input
+ test files to this test harness.
+ * 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.
+
+2024-03-28 Dodji Seketeli <dodji@redhat.com>
+
+ abidiff: Fix indentation of help string
+ * tools/abidiff.cc (display_usage): Fix indentation of help string
+
+2024-03-29 Dodji Seketeli <dodji@redhat.com>
+
+ suppression: Fix indentation
+ * src/abg-suppression.cc
+ (function_suppression::suppresses_function_symbol): Fix
+ indentation.
+
+2024-03-28 Dodji Seketeli <dodji@redhat.com>
+
+ comparison: Fix typo
+ * src/abg-comparison.cc
+ (class_or_union_diff::ensure_lookup_tables_populated): Fix a
+ comment typo.
+
+2024-03-28 Dodji Seketeli <dodji@redhat.com>
+
+ ir: Fix Emacs C++ mode header
+ * src/abg-ir.cc: Fix the Emacs C++ mode header.
+
+2024-03-22 Frank Ch. Eigler <fche@redhat.com>
+
+ abidb: drop the TODO items from the python script
+ * tools/abidb:
+
+2023-12-05 Frank Ch. Eigler <fche@redhat.com>
+
+ abidb: Introduce a tool to manage the ABI of a Linux distribution
+ * configure.ac: Condition building abidb on the presence of python
+ and the required modules.
+ * doc/manuals/Makefile.am: Add the abidb.rst documentation to
+ source distribution. Distribute the abidb.1 manpage file as well.
+ * doc/manuals/abidb.rst: New documentation file.
+ * doc/manuals/conf.py: Configure the generation of the abidb.1
+ manage from the abidb.rst file above.
+ * doc/manuals/libabigail-tools.rst: Add a reference to the new
+ abidb tool.
+ * tests/Makefile.am: Register runabidb1.sh and runabidb2.sh as
+ tests for abidb. Register runabidb1.sh.in and runabidb2.sh.in as
+ input files for autoconf generated runabidb1.sh and runabidb2.sh.
+ * tests/data/Makefile.am: Add abidb2client.c, abidb2so.c and
+ abidb2soBAD.c to source distribution.
+ * tests/data/abidb2client.c: New source file for test input binaries.
+ * tests/data/abidb2so.c: Likewise.
+ * tests/data/abidb2soBAD.c: Likewise.
+ * tests/runtestabidb1.sh.in: New test script input for autoconf generation.
+ * tests/runtestabidb2.sh.in: Likewise.
+ * tools/Makefile.am: Add the new abidb tool to the set of tools.
+ * tools/abidb: The New Tool, ladies and gentlemen!
+
+2024-03-15 Dodji Seketeli <dodji@redhat.com>
+
+ abicompat: Fix exit code in weak mode
+ * tools/abicompat.cc (perform_compat_check_in_weak_mode): Do not
+ override the status code when doing the comparison in the reverse
+ direction.
+ (compare_expected_against_provided_functions)
+ (compare_expected_against_provided_variables): Set the status code
+ close to the detected diff. In the future, this might help us
+ provide finer grained status.
+ * tests/test-abicompat.cc (InOutSpec::status): Add a new data
+ member to represent the expected exit code.
+ (in_out_specs): Adjust the array of tests.
+ (main): If the actual exit code is different from the expected
+ one, then the test failed so let's report it.
+
+2024-03-08 Dodji Seketeli <dodji@redhat.com>
+
+ Emit & read undefined interfaces to & from ABIXML
+ * include/abg-writer.h (set_write_undefined_symbols): Declare new
+ function.
+ (set_common_options): Use the new set_write_undefined_symbols in
+ this function template.
+ * src/abg-dwarf-reader.cc (reader::{get_die_language, die_is_in_c,
+ die_is_in_cplus_plus, die_is_in_c_or_cplusplus}): Move these
+ member functions into ...
+ (get_die_language, die_is_in_c, die_is_in_cplus_plus)
+ (die_is_in_c_or_cplusplus): ... these static non-member functions.
+ (fn_die_equal_by_linkage_name): Adjust and remove the now useless
+ reader parameter.
+ (compare_dies, get_scope_die, function_is_suppressed)
+ (variable_is_suppressed): Adjust.
+ (build_translation_unit_and_add_to_ir): When we are asked to load
+ undefined symbol, make sure to also analyze top-level class types
+ and if we are in C++, also analyze top-level unions and structs as
+ these might also have some undefined interfaces.
+ * src/abg-reader.cc (build_elf_symbol_db): Let's not construct and
+ return the symbol DB anymore. Rather, let's let the caller
+ construct it, so we can just update it with the input gathered.
+ (read_symbol_db_from_input): Support getting undefined function
+ and variable symbols from the new undefined-elf-function-symbols
+ and undefined-elf-variable-symbols elements. Note that undefined
+ and defined function symbols go into the same symbol DB whereas
+ undefined and defined variable symbols go into another symbol DB.
+ Now, we suppose that the variable & symbol DBs are allocated by
+ the caller. We pass it down to build_elf_symbol_db that populates
+ it. Maybe we should rename build_elf_symbol_db into
+ populate_elf_symbol_db.
+ (reader::read_corpus): Allocate the function
+ and variable symbol DB and let read_symbol_db_from_input populate
+ it. Sort functions and variables after reading the whole ABIXML.
+ * src/abg-writer.cc (write_context::write_context): Define new
+ data member.
+ (write_context::write_context): Initialize it.
+ (write_context::{get,set}::write_undefined_symbols): Define
+ accessors.
+ (set_write_undefined_symbols): Define a new function.
+ (write_context::decl_is_emitted): Add a new overload.
+ (write_elf_symbol_reference): Add a writer context and a corpus
+ parameter. If the symbol is not in the corpus or if the symbol is
+ undefined and we were not asked to emit undefined symbols then do
+ not emit any reference to it.
+ (write_translation_unit): Emit the undefined functions and
+ variables that belong to the current translation unit, along with
+ their reference to the undefined ELF symbol they are associated
+ to.
+ (write_var_decl, write_function_decl): Let
+ write_elf_symbol_reference decide whether it should emit the
+ reference to ELF symbol or not, as it now know how to make that
+ decision.
+ (write_corpus): Write the undefined function & variable ELF symbol
+ data bases. These in the new 'undefined-elf-function-symbols' and
+ 'undefined-elf-variable-symbols' elements.
+ * tools/abidw.cc (options::load_undefined_interfaces): Define new
+ data member.
+ (options:options): Initialize it.
+ (display_usage): Add a help string for the
+ --no-load-undefined-interfaces option.
+ (parse_command_line): Parse the --no-load-undefined-interfaces
+ option.
+ (set_generic_options): Set the
+ fe_iface::option_type::load_undefined_interfaces option.
+ * doc/manuals/abidw.rst: Document the new
+ --no-load-undefined-interfaces of abidw.
+ * tests/data/test-abicompat/test10/libtest10-with-exported-symbols.so:
+ New binary input file.
+ * tests/data/test-abicompat/test10/libtest10-with-incompatible-exported-symbols.so:
+ New binary input file.
+ * tests/data/test-abicompat/test10/libtest10-with-incompatible-exported-symbols.so.abi:
+ New abixml input file.
+ * tests/data/test-abicompat/test10/test10-app-with-undefined-symbols:
+ New binary input file.
+ * tests/data/test-abicompat/test10/test10-app-with-undefined-symbols.abi:
+ New abixml input file.
+ * tests/data/test-abicompat/test10/test10-app-with-undefined-symbols.cc:
+ New source file for binary test input
+ * tests/data/test-abicompat/test10/test10-fn-changed-report-0.txt:
+ New source file for binary test input
+ * tests/data/test-abicompat/test10/test10-fn-changed-report-1.txt:
+ New source file for binary test input
+ * tests/data/test-abicompat/test10/test10-fn-changed-report-2.txt:
+ New source file for binary test input
+ * tests/data/test-abicompat/test10/test10-fn-changed-report-3.txt:
+ New source file for binary test input
+ * tests/data/test-abicompat/test10/test10-fn-changed-report-4.txt:
+ New source file for binary test input
+ * tests/data/test-abicompat/test10/test10-with-exported-symbols.cc:
+ New source file for binary test input
+ * tests/data/test-abicompat/test10/test10-with-exported-symbols.h:
+ New source file for binary test input
+ * tests/data/test-abicompat/test10/test10-with-incompatible-exported-symbols.cc:
+ New source file for binary test input
+ * tests/data/test-abicompat/test10/test10-with-incompatible-exported-symbols.h:
+ New source file for binary test input.
+ * tests/data/Makefile.am: Add new test input files to source
+ distribution.
+ * tests/test-abicompat.cc (in_out_specs): Add the new test inputs
+ to this test harness.
+ * tests/test-annotate.cc (main): Use the new
+ --no-load-undefined-interfaces option of abidw to keep the old
+ behavior.
+ * tests/test-read-common.cc (test_task::serialize_corpus): Do not
+ emit undefined symbols.
+ * tests/test-read-dwarf.cc (test_task_dwarf::perform): Likewise.
+
+2024-03-12 Dodji Seketeli <dodji@redhat.com>
+
+ Add support for undefined symbols in the BTF reader
+ * doc/manuals/abicompat.rst: Update documentation for the --btf
+ option of abicompat.
+ * include/abg-elf-reader.h
+ (elf::reader::{function,variable}_symbol_is_undefined): Declare
+ new member functions.
+ * src/abg-btf-reader.cc
+ (reader::read_debug_info_into_corpus): Sort functions &
+ variables after canonicalization.
+ (reader::build_ir_node_from_btf_type): Always call
+ fe_iface::add_{fn,var}_to_exported_or_undefined_decls with the
+ decl that was constructed.
+ (reader::build_function_decl): Support setting an undefined symbol
+ to the function decl.
+ (reader::build_var_decl): Likewise, support setting undefined
+ symbol the variable decl.
+ * src/abg-elf-reader.cc
+ ((elf::reader::{function,variable}_symbol_is_undefined): Declare
+ new member functions.): Define new member functions.
+ * src/abg-symtab-reader.cc
+ (symtab::{function,variable}_symbol_is_undefined): Return the
+ undefined symbol that was found.
+ * src/abg-symtab-reader.h
+ (symtab::{function,variable}_symbol_is_undefined): Return an
+ undefined symbol rather than just a boolean value.
+ * tools/abicompat.cc: Add support for BTF here.
+ (options::use_btf): Define new data member ...
+ (options::options): ... and initialize it.
+ (display_usage): Add a help string for the --btf option.
+ (parse_command_line): Parse the --btf option.
+ * tests/data/test-abicompat/test7-fn-changed-report-0.1.txt: New
+ reference test output file.
+ * tests/data/test-abicompat/test7-fn-changed-report-2.1.txt:
+ Likewise.
+ * tests/data/test-abicompat/libtest7-fn-changed-libapp-btf-v0.so:
+ New binary input file.
+ * tests/data/test-abicompat/libtest7-fn-changed-libapp-btf-v1.so:
+ Likewise.
+ * tests/data/test-abicompat/test7-fn-changed-app.btf: Likewise.
+ * tests/data/Makefile.am: Add the new test material to source
+ distribution.
+ * tests/test-abicompat.cc (in_out_specs): Add the new test input
+ to the test harness.
+ * tests/data/test-abicompat/test7-fn-changed-app.c: Adjust.
+ * tests/data/test-abicompat/test7-fn-changed-libapp-v0.c:
+ Likewise.
+ * tests/data/test-abicompat/test7-fn-changed-libapp-v1.c: Likewise
+
+2024-03-12 Dodji Seketeli <dodji@redhat.com>
+
+ Factorize elf-reader::{variable,function}_symbol_is_exported into symtab
+ * src/abg-elf-reader.cc (reader::function_symbol_is_exported): Use
+ the new symtab::function_symbol_is_exported.
+ (reader::variable_symbol_is_exported): Use the new
+ symtab::variable_symbol_is_exported.
+ * src/abg-symtab-reader.cc
+ (symtab::{function,variable}_symbol_is_exported): Factorize
+ elf::reader::{function,variable}_symbol_is_exported into this.
+ * src/abg-symtab-reader.h
+ (symtab::{function,variable}_symbol_is_exported): Declare new
+ member functions.
+
+2024-02-21 Dodji Seketeli <dodji@redhat.com>
+
+ Represent undefined corpus interfaces to analyze app compatibility
+ * include/abg-corpus.h (corpus::{lookup_variable,
+ get_undefined_functions, get_undefined_variables}): Declare new
+ member functions.
+ (corpus::exported_decls_builder::maybe_add_{fn,var}_to_exported_fns):
+ Make this return a boolean.
+ * include/abg-fe-iface.h (fe_iface::options_type): Add a new
+ load_undefined_interfaces enumerator.
+ (fe_iface::add_fn_to_exported_or_undefined_decls): Rename
+ maybe_add_fn_to_exported_decls into this.
+ (fe_iface::add_var_to_exported_or_undefined_decls): Rename
+ maybe_add_var_to_exported_decls into this.
+ * src/abg-btf-reader.cc (reader::build_ir_node_from_btf_type):
+ Adjust call to maybe_add_fn_to_exported_decls as
+ add_fn_to_exported_or_undefined_decls. Similarly, adjust call to
+ maybe_add_var_to_exported_decls as
+ add_var_to_exported_or_undefined_decls.
+ * src/abg-corpus-priv.h (corpus::priv::undefined_{fns,vars}): Add
+ new member variables.
+ * src/abg-corpus.cc
+ (corpus::exported_decls_builder::maybe_add_{fn,var}_to_exported_fns):
+ Return a bool iff the decl was added to the set of exported decls.
+ (corpus::{lookup_variable, get_undefined_functions,
+ get_undefined_variables}): Define new member functions.
+ (corpus::sort_{functions,variables}): Sort the undefined decls
+ too.
+ * (corpus::lookup_{function,variable}_symbol): Lookup the symbol
+ also among undefined symbols, not just among defined symbols.
+ * src/abg-ctf-reader.cc (reader::process_ctf_archive): Adjust call
+ to maybe_add_fn_to_exported_decls as
+ add_fn_to_exported_or_undefined_decls. Similarly, adjust call to
+ maybe_add_var_to_exported_decls as
+ add_var_to_exported_or_undefined_decls. Also, sort functions &
+ variables in the corpus.
+ * src/abg-dwarf-reader.cc (die_name_and_linkage_name): Define new
+ static function.
+ (reader::fixup_functions_with_no_symbols): Adjust call to
+ maybe_add_fn_to_exported_decls as
+ add_fn_to_exported_or_undefined_decls.
+ (reader::{is_decl_die_with_undefined_symbol,
+ load_undefined_interfaces}): Define new member functions.
+ (build_translation_unit_and_add_to_ir): Analyze DIEs of interfaces
+ that have undefined symbols if we were asked to load undefined
+ interfaces.
+ (variable_is_suppressed): Add a boolean parameter to tell if the
+ var is decl-only. Use that decl-only flag to determine if the
+ variable is suppressed. A non-member decl-only variable won't be
+ suppressed if we were asked to load undefined interfaces.
+ (build_or_get_var_decl_if_not_suppressed): Add a boolean parameter
+ to tell if the var is decl-only.
+ (potential_member_fn_should_be_dropped): A potential non-virtual
+ member function with no symbol is now dropped on the floor
+ regardless of it has a mangled name or not.
+ (build_var_decl): If the var has an undefined symbol, then set
+ that symbol.
+ (build_function_decl): If the function has an undefined symbol,
+ then set that symbol.
+ (build_ir_node_from_die): Add a var or function with undefined
+ symbol to the set of undefined vars or functions of the current
+ corpus.
+ * src/abg-fe-iface.cc
+ (fe_iface::add_fn_to_exported_or_undefined_decls): Renamed
+ fe_iface::maybe_add_fn_to_exported_decls into this. If the
+ function has an undefined symbol then add the function to the set
+ of undefined functions.
+ (fe_iface::add_var_to_exported_or_undefined_decls): Renamed
+ fe_iface::maybe_add_var_to_exported_decls into this. If the
+ variable has an undefined symbol then add the variable to the set
+ of undefined variables.
+ * src/abg-ir.cc (elf_symbol::is_variable): Undefined symbol with
+ type STT_NOTYPE are actually for undefined variables.
+ (maybe_adjust_canonical_type): It's here, after type
+ canonicalization that a member function is added to either the set
+ of defined & exported functions, or to the set of functions with
+ undefined symbols.
+ * src/abg-reader.cc (build_function_decl, build_class_decl)
+ (build_union_decl, handle_var_decl): Adjust.
+ * src/abg-symtab-reader.cc
+ (symtab::{lookup_undefined_function_symbol,
+ lookup_undefined_variable_symbol, function_symbol_is_undefined,
+ variable_symbol_is_undefined,
+ collect_undefined_fns_and_vars_linkage_names}): Define new member
+ functions.
+ (symtab::symtab): Initialize the new
+ cached_undefined_symbol_names_ data member.
+ * src/abg-symtab-reader.h
+ (symtab::{lookup_undefined_function_symbol,
+ lookup_undefined_variable_symbol, function_symbol_is_undefined,
+ variable_symbol_is_undefined,
+ collect_undefined_fns_and_vars_linkage_names}): Declare new member
+ functions.
+ (symtab::{undefined_variable_linkage_names_,
+ cached_undefined_symbol_names_}): Define new data members.
+ (symtab::load_): Consider undefined symbol of type STT_NOTYPE as
+ being undefined global variables. It's what I am seeing in ELF
+ binaries.
+ * src/abg-symtab-reader.h
+ (symtab::{lookup_undefined_function_symbol,
+ lookup_undefined_variable_symbol, function_symbol_is_undefined,
+ variable_symbol_is_undefined}): Declare new member functions.
+ (symtab::{undefined_function_linkage_names_,
+ undefined_variable_linkage_names_}): Define new member variables.
+ * src/abg-writer.cc (write_var_decl, write_function_decl): Emit a
+ reference to a symbol only when the symbol is defined.
+ * tools/abicompat.cc (report_function_changes)
+ (report_variable_changes)
+ (compare_expected_against_provided_functions)
+ (compare_expected_against_provided_variables): Define new static
+ functions.
+ (perform_compat_check_in_weak_mode): Use the new static functions
+ above. Compare interfaces expected by the application corpus
+ against interfaces provided by the library. Report the changes.
+ Do that in the reverse direction as well.
+ (read_corpus): Instruct the corpus reader to load the set of
+ undefined interfaces too.
+ * tests/data/test-abicompat/test6-var-changed-app: Remove file.
+ * tests/data/test-abicompat/test6-var-changed-app.cc: Likewise.
+ * tests/data/test-abicompat/libtest6-undefined-var.so: Add new
+ binary input file.
+ * tests/data/test-abicompat/test6-undefined-var.cc: Add sourcefile
+ for the binary input file above.
+ * tests/data/test-abicompat/test6-var-changed-report-2.txt: New
+ reference output file.
+ * tests/data/Makefile.am: Update the list of distributed files
+ accordingly.
+ * tests/data/test-abicompat/libtest5-fn-changed-libapp-v0.so:
+ Adjust.
+ * tests/data/test-abicompat/libtest5-fn-changed-libapp-v1.so:
+ Likewise.
+ * tests/data/test-abicompat/libtest6-var-changed-libapp-v0.so:
+ Likewise.
+ * tests/data/test-abicompat/libtest6-var-changed-libapp-v1.so:
+ Likewise.
+ * tests/data/test-abicompat/libtest7-fn-changed-libapp-v0.so:
+ Likewise.
+ * tests/data/test-abicompat/libtest7-fn-changed-libapp-v1.so:
+ Likewise.
+ * tests/data/test-abicompat/libtest8-fn-changed-libapp-v0.so:
+ Likewise.
+ * tests/data/test-abicompat/libtest8-fn-changed-libapp-v1.so:
+ Likewise.
+ * tests/data/test-abicompat/libtest9-fn-changed-v0.so: Likewise.
+ * tests/data/test-abicompat/libtest9-fn-changed-v1.so: Likewise.
+ * tests/data/test-abicompat/test5-fn-changed-app: Likewise.
+ * tests/data/test-abicompat/test6-var-changed-libapp-v0.cc:
+ Likewise.
+ * tests/data/test-abicompat/test6-var-changed-libapp-v1.cc:
+ Likewise.
+ * tests/data/test-abicompat/test6-var-changed-report-0.txt:
+ Likewise.
+ * tests/data/test-abicompat/test6-var-changed-report-1.txt:
+ Likewise.
+ * tests/data/test-abicompat/test7-fn-changed-app: Likewise.
+ * tests/data/test-abicompat/test7-fn-changed-report-1.txt:
+ Likewise.
+ * tests/data/test-abicompat/test7-fn-changed-report-2.txt:
+ Likewise.
+ * tests/data/test-abicompat/test8-fn-changed-app: Likewise.
+ * tests/data/test-abicompat/test8-fn-changed-libapp-v1.c:
+ Likewise.
+ * tests/data/test-abicompat/test9-fn-changed-app: Likewise.
+ * tests/data/test-abicompat/test9-fn-changed-app.cc: Likewise.
+ * 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/test1.abi: Likewise.
+ * tests/data/test-annotate/test14-pr18893.so.ab: Likewise.i
+ * 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/test8-qualified-this-pointer.so.abi:
+ Likewise.
+ * tests/data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64--dbus-glib-0.104-3.fc23.armv7hl-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.
+ * tests/data/test-fedabipkgdiff/test0-from-fc20-to-fc23-dbus-glib-report-0.txt:
+ Likewise.
+ * tests/data/test-fedabipkgdiff/test2-dbus-glib-0.100.2-2.fc20--dbus-glib-0.106-1.fc23-report-0.txt:
+ Likewise.
+ * tests/data/test-fedabipkgdiff/test3-dbus-glib-0.100.2-2.fc20.i686--dbus-glib-0.106-1.fc23.i686-report-0.txt:
+ Likewise.
+ * tests/data/test-fedabipkgdiff/vte291-0.39.1-1.fc22.x86_64--vte291-0.39.90-1.fc22.x86_64-report-0.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/PR26261/PR26261-exe.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/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/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/test-abicompat.cc (in_out_specs): Adjust.
+ * tests/test-read-ctf.cc (test_task_ctf::perform): Do not load
+ undefined interfaces, by default.
+ * tests/test-symtab.cc (Symtab::SimpleSymtabs)
+ (Symtab::SymtabWithWhitelist, Symtab::AliasedFunctionSymbols):
+ Adjust the expected undefined variable symbols counts.
+
+2024-03-13 Dodji Seketeli <dodji@redhat.com>
+
+ tools-utils.cc: Fix potential crash when testing for CTF debug info
+ * src/abg-tools-utils.cc (file_has_ctf_debug_info): Do not crash
+ on empty debug info paths.
+
+2024-03-08 Dodji Seketeli <dodji@redhat.com>
+
+ abidw: Add a -o short option for --out-file
+ * doc/manuals/abidw.rst: Document the -o option.
+ * tools/abidw.cc (display_usage): Update doc string for the
+ --out-file|-o option.
+ (parse_command): Support the -o short option.
+
+2024-03-08 Dodji Seketeli <dodji@redhat.com>
+
+ dwarf-reader: Support creating functions from DW_TAG_inlined_subroutine
+ * src/abg-dwarf-reader.cc (build_function_decl): Loosen the assert
+ to accept DW_TAG_inlined_subroutine DIEs.
+
+2024-03-05 Dodji Seketeli <dodji@redhat.com>
+
+ ir,dwarf-reader: Peel const-qualifier from const this pointers
+ * include/abg-fwd.h (is_const_qualified_type)
+ (peel_const_qualified_type): Declare ...
+ * src/abg-ir.cc (is_const_qualified_type)
+ (peel_const_qualified_type): ... new functions.
+ * src/abg-dwarf-reader.cc (build_function_type): Trim the const
+ qualifier off of the this pointer representation if present.
+ * tests/data/test-annotate/test1.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/test2.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/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/test29-vtable-changes-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test5-report.txt: Likewise.
+ * tests/data/test-diff-dwarf/test8-report.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/test13-report.txt: Likewise.
+ * tests/data/test-diff-filter/test2-report.txt: Likewise.
+ * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.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/test35-pr18754-no-added-syms-report-0.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/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/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/test22-pr19097-libstdc++.so.6.0.17.so.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/test8-qualified-this-pointer.so.abi:
+ Likewise.
+ * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi:
+ Likewise.
+
+2024-03-04 Dodji Seketeli <dodji@redhat.com>
+
+ comparison: Better sort function difference report
+ * src/abg-comparison-priv.h (is_less_than): Declare new helper
+ function.
+ (function_decl_diff_comp::operator(const function_decl_diff&,
+ const function_decl_diff&)):
+ Use it here.
+ (virtual_member_function_diff_comp::operator(const function_decl_diff&,
+ const function_decl_diff&)):
+ Likewise.
+ * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust.
+ * tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt:
+ Adjust.
+ * tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt:
+ Adjust.
+ * tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt:
+ Adjust.
+ * tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt:
+ Adjust.
+
+2024-03-04 Dodji Seketeli <dodji@redhat.com>
+
+ ir,dwarf-reader: Better handle inline-ness setting or detection
+ * include/abg-ir.h (function_decl::is_declared_inline): Add a
+ setter overload.
+ * src/abg-dwarf-reader.cc (die_is_declared_inline): Take into the
+ account values DW_INL_declared_inlined and
+ DW_INL_declared_not_inlined of DW_AT_inline attribute. Not just
+ DW_INL_declared_inlined.
+ (finish_member_function_reading): Set the inline-ness declaration
+ here.
+ (build_ir_node_from_die): Handle DW_TAG_inlined_subroutine just as
+ DW_TAG_subprogram.
+ * src/abg-ir.cc (function_decl::is_declared_inline): Add a setter
+ overload.
+ * tests/data/test-annotate/test1.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-diff-dwarf/test42-PR21296-clanggcc-report0.txt:
+ Likewise.
+ * tests/data/test-diff-filter/test41-report-0.txt: 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/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/test22-pr19097-libstdc++.so.6.0.17.so.abi:
+ Likewise.
+
+2024-03-02 Dodji Seketeli <dodji@redhat.com>
+
+ tests/data/test-diff-pkg: Update dpkg related reference output
+ * 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:
+ Adjust.
+
+2024-02-28 Dodji Seketeli <dodji@redhat.com>
+
+ dwarf-reader: Fix DIE origin handling & scope getting
+ * src/abg-dwarf-reader.cc (die_origin_die): New static function.
+ (get_scope_die, get_scope_for_die): Use the new die_origin_die
+ above.
+ (build_ir_node_from_die): Don't handle DW_AT_abstract_origin and
+ DW_AT_specification here. In general, do not handle getting the
+ scope. Rather, just rely on get_scope_for_die.
+ * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Adjust.
+ * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
+ * tests/data/test-annotate/test1.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/test6.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/test29-vtable-changes-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test5-report.txt: Likewise.
+ * tests/data/test-diff-dwarf/test8-report.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/test13-report.txt: Likewise.
+ * tests/data/test-diff-filter/test2-report.txt: Likewise.
+ * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.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/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/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/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/test22-pr19097-libstdc++.so.6.0.17.so.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/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.
+
+2024-02-27 Dodji Seketeli <dodji@redhat.com>
+
+ dwarf-reader, ir: Add member fns to exported corpus fns after c14n
+ * src/abg-dwarf-reader.cc
+ (reader::fixup_functions_with_no_symbols): Do not export the
+ virtual member function here.
+ (build_ir_node_from_die): For DW_TAG_subprogram DIEs, likewise.
+ * src/abg-ir.cc (maybe_adjust_canonical_type): Walk the member
+ functions of the canonical type and export them in the ABI corpus
+ if they have a defined and exported elf symbol.
+ * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust.
+
+2024-02-27 Dodji Seketeli <dodji@redhat.com>
+
+ ir: Use linkage name to sort virtual function members
+ * src/abg-ir.cc (virtual_member_function_less_than::operator()):
+ Take the linkage name into account during sorting before taking
+ into account the presence of elf symbols.
+ * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust.
+ * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust.
+
+2024-02-21 Dodji Seketeli <dodji@redhat.com>
+
+ abicompat: Port this to the multi-front-end architecture
+ * tools/abicompat.cc (read_corpus): Use
+ abigail::tools_utils::create_best_elf_based_reader to create the
+ right reader depending on the debug information at hand.
+
+2024-02-20 Dodji Seketeli <dodji@redhat.com>
+
+ ir,corpus,comparison: Const-iffy the access to corpus interfaces
+ * include/abg-comparison.h (typedef string_function_ptr_map): Make
+ this typedef use a const function_decl*, not just a
+ function_decl*.
+ (typedef string_var_ptr_map): Make this typedef use a const
+ var_decl*, not just a var_decl*.
+ * include/abg-corpus.h (typedef corpus::functions): Make this
+ typedef be a vector<const function_decl*>, not just a
+ vector<function_decl*>.
+ (corpus::exported_decls_builder::fn_id_maps_to_several_fns):
+ Adjust declaration to const function_decl*.
+ * include/abg-fwd.h (typedef istring_var_decl_ptr_map_type)
+ (typedef istring_function_decl_ptr_map_type): Move these typedefs to
+ abg-ir.h.
+ (get_function_id_or_pretty_representation): Use const function_decl*.
+ * include/abg-ir.h (typedef istring_var_decl_ptr_map_type)
+ (typedef istring_function_decl_ptr_map_type): Move these here from
+ abg-fwd.h. Also make these use const var_decl* and const.
+ function_decl.
+ * src/abg-comparison-priv.h (sort_string_function_ptr_map)
+ (sort_string_var_ptr_map): Use vector<const function_decl*> and
+ vector<const var_decl*> rather than their non-const variants.
+ * src/abg-comparison.cc (sort_string_function_ptr_map)
+ (sort_string_var_ptr_map): Likewise.
+ (corpus_diff::priv::{ensure_lookup_tables_populated,
+ apply_supprs_to_added_removed_fns_vars_unreachable_types}):
+ Adjust.
+ * src/abg-corpus-priv.h (corpus::priv::{fns,vars}): Make these
+ data members use vector<const function_decl*> and vector<const
+ var_decl*> types.
+ * src/abg-corpus.cc
+ (corpus::exported_decls_builder::fn_id_maps_to_several_fns)
+ (corpus::maybe_drop_some_exported_decls): Adjust.
+ (corpus_group::priv::{fns,vars}): Make these data members use
+ vector<const function_decl*> and vector<const var_decl*> types.
+ * src/abg-default-reporter.cc (default_reporter::report): In the
+ overload for const corpus_diff&, adjust.
+ * src/abg-ir.cc (get_function_id_or_pretty_representation):
+ Adjust.
+ * src/abg-leaf-reporter.cc (leaf_reporter::report): In the
+ overload for const corpus_diff&, adjust.
+ * tools/abicompat.cc (perform_compat_check_in_normal_mode):
+ Adjust.
+
+2024-02-28 Dodji Seketeli <dodji@redhat.com>
+
+ ir: Fix indentation
+ * src/abg-ir.cc (function_decl::clone): Fix indentation.
+
+2024-02-28 Dodji Seketeli <dodji@redhat.com>
+
+ test-abicomat.cc: Don't show details about PASSing tests.
+ * tests/test-abicompat.cc (main): Don,'t emit details for PASSed
+ tests.
+
+2024-02-28 Dodji Seketeli <dodji@redhat.com>
+
+ test-alt-dwarf-file.cc: Fix test result accounting
+ * tests/test-alt-dwarf-file.cc (main): Re-set the is_ok variable
+ to true in the loop.
+
+2024-02-16 Dodji Seketeli <dodji@redhat.com>
+
+ ir,{btf,ctf,dwarf}-reader: Rename {subrange_type,array_type_def}::is_infinite.
+ * include/abg-ir.h
+ ({array_type_def,subrange_type}::is_non_finite): Rename
+ {array_type_def,subrange_type}::is_infinite into this.
+ * src/abg-btf-reader.cc (reader::build_array_type): Add a missing
+ call to subrange_type::is_non_finite.
+ * src/abg-comp-filter.cc
+ (is_var_1_dim_unknown_size_array_change):Rename
+ subrange_type::is_infinite into subrange_type::is_non_finite.
+ * src/abg-ctf-reader.cc (build_array_ctf_range): Likewise.
+ * src/abg-dwarf-reader.cc (build_subrange_type): Likewise.
+ * src/abg-ir.cc (clone_array, has_flexible_array_data_member)
+ (array_type_def::subrange_type::as_string): Likewise.
+ ({array_type_def,subrange_type}::is_non_finite): Rename
+ {array_type_def,subrange_type}::is_infinite into this.
+ * src/abg-reader.cc (build_subrange_type): Rename
+ subrange_type::is_infinite into subrange_type::is_non_finite.
+ * src/abg-reporter-priv.cc (report_size_and_alignment_changes):
+ Likewise.
+ * src/abg-writer.cc (write_array_size_and_alignment): Likewise.
+
+2024-02-15 Dodji Seketeli <dodji@redhat.com>
+
+ btr-reader: Fix wording typo
+ * src/abg-btf-reader.cc (reader::build_array_type): It's
+ lower_bound, not lower_boud. Duh.
+
+2024-02-15 Dodji Seketeli <dodji@redhat.com>
+
+ PR25409-librte_bus_dpaa.so.20.0.abi: Update to 2.3
+ * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi:
+ Bump ABIXML version to 2.3.
+
+2024-02-15 Dodji Seketeli <dodji@redhat.com>
+
+ dwarf-reader: Bug 31377 - Fix the IR for zero length arrays
+ * src/abg-dwarf-reader.cc (build_subrange_type): In the absence of
+ DW_AT_upper_bound and DW_AT_lower_bound, make DW_AT_count being
+ zero the same as if no DW_AT_count is present.
+ * src/abg-reader.cc (build_subrange_type): Add a comment about how
+ things were in the past (before this patch) and document the fact
+ that we want to stay compatible with ABIXML from before this
+ patch.
+ * tests/data/test-abidiff-exit/PR31377/flex/include/rte_pipeline.h:
+ New header file input for this test.
+ * tests/data/test-abidiff-exit/PR31377/flex/lib64/librte_pipeline.so.24.1:
+ New binary input for this test.
+ * tests/data/test-abidiff-exit/PR31377/reference/include/rte_pipeline.h:
+ New header file input for this test.
+ * tests/data/test-abidiff-exit/PR31377/reference/lib64/librte_pipeline.so.24.0:
+ New binary input for this test.
+ * tests/data/test-abidiff-exit/PR31377/test-PR31377-report-1.txt:
+ New reference test output.
+ * tests/data/Makefile.am: Add the
+ * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi:
+ Adjust.
+ * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
+ * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
+ * tests/test-abidiff-exit.cc
+
+2024-01-12 Dodji Seketeli <dodji@redhat.com>
+
+ dwarf-reader,corpus: Use interned string to lookup corpus interfaces by ID.
+ * include/abg-corpus.h (corpus::lookup_functions): Take an
+ interned_string instead of an std::string. Add an overload for
+ const char* string too, for debugging purposes.
+ * src/abg-corpus-priv.h (istr_fn_ptr_set_map_type)
+ (istr_var_ptr_map_type): Define new typedefs.
+ (corpus::exported_decls_builder::priv::{id_fns_map_,
+ id_var_map_}): Use the new istr_fn_ptr_set_map_type and
+ istr_var_ptr_map_type types for these data members.
+ (corpus::exported_decls_builder::priv::{id_fns_map, id_var_map,
+ add_fn_to_id_fns_map, var_id_is_in_id_var_map, add_var_to_map,
+ add_var_to_exported}): Adjust.
+ (corpus::priv::lookup_functions): Declare new member function.
+ * src/abg-corpus.cc
+ (corpus::exported_decls_builder::maybe_add_var_to_exported_vars): Adjust.
+ (corpus::priv::lookup_functions): Define new member function. The
+ code here comes from the code that was in
+ corpus::lookup_functions. This is a factorization of
+ corpus::lookup_functions.
+ (corpus::lookup_functions): Take an interned_string instead of the
+ previous. Factorize the code that was here into the new
+ corpus::priv::lookup_functions.
+ * src/abg-dwarf-reader.cc
+ (reader::symbol_already_belongs_to_a_function): Adjust the call to
+ corpus::lookup_functions to use an interned_string.
+
+2024-02-01 Dodji Seketeli <dodji@redhat.com>
+
+ ir: Cache internal name for several types
+ * src/abg-ir.cc ({qualified_type_def, pointer_type_def,
+ reference_type_def}::get_qualified_name): Cache the internal
+ qualified type name for non-canonicalized types.
+ (function_type::get_cached_name): Cache the internal function type
+ name.
+
+2024-02-08 Dodji Seketeli <dodji@redhat.com>
+
+ ir: Introduce a missing IR kind for subrange types
+ * include/abg-ir.h (type_or_decl_kind::SUBRANGE_TYPE): Add a new
+ enumerator to enum type_or_decl_kind::type_or_decl_kind.
+ * src/abg-ir.cc (array_type_def::subrange_type::subrange_type):
+ Use the new type_or_decl_kind::SUBRANGE_TYPE to flag the IR node
+ representing array_type_def::subrange_type.
+
+2024-02-08 Dodji Seketeli <dodji@redhat.com>
+
+ writer: Don't forget data members when emitting referenced types
+ * src/abg-writer.cc (write_decl_in_scope): If the scope of the
+ decl to write is a type that was not yet emitted, then emit it in
+ full. Otherwise, just do things as we were doing previously.
+
+2024-01-06 Dodji Seketeli <dodji@redhat.com>
+
+ writer: Avoid emitting a canonical type twice
+ * src/abg-writer.cc (write_canonical_types_of_scope): Don't emit a
+ canonical type if it's already been emitted.
+ * tests/data/test-annotate/test13-pr18894.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-read-dwarf/PR22122-libftdc.so.abi: Likewise.
+ * tests/data/test-read-dwarf/test-libandroid.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/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.
+
+2024-01-12 Dodji Seketeli <dodji@redhat.com>
+
+ dwarf-reader: Fix detection of C language DIEs
+ * src/abg-dwarf-reader.cc (build_ir_node_from_die): Use
+ reader::die_is_in_c rather than looking at the language of the
+ current translation unit.
+
+2024-01-12 Dodji Seketeli <dodji@redhat.com>
+
+ dwarf-reader: Avoid duplicating union members
+ * src/abg-dwarf-reader.cc (add_or_update_union_type): Do not add
+ an union member that already exists in the union.
+
+2023-12-22 Dodji Seketeli <dodji@redhat.com>
+
+ ir: Avoid duplicates when reading member functions
+ * src/abg-ir.cc (fixup_virtual_member_function): Check if a
+ virtual member function with the same linkage name exists already
+ before adding it in.
+ * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+ Adjust.
+ * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
+ Adjust.
+ * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust.
+ * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust.
+ * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
+ Adjust.
+ * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.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.
+
+2024-01-06 Dodji Seketeli <dodji@redhat.com>
+
+ ir: Fix wording of several comments
+ * src/abg-ir.cc: (get_decl_name_for_comparison)
+ (class_or_union::add_data_member) Fix comment wording.
+
+2023-12-22 Dodji Seketeli <dodji@redhat.com>
+
+ abidw: Fix indentation
+ * tools/abidw.cc (load_corpus_and_write_abixml): Fix indentation.
+
+2024-01-26 Dodji Seketeli <dodji@redhat.com>
+
+ Remove python3-mock dependency and use unittest.mock instead
+ * configure.ac: Do not require python-mock anymore.
+ * tests/mockfedabipkgdiff.in: Use unittest.mock, not mock from
+ python-mock.
+
+2024-01-25 Dodji Seketeli <dodji@redhat.com>
+
+ Bug 31279 - Acknowledge that opaque types are always decl-only
+ * src/abg-dwarf-reader.cc
+ (reader::maybe_schedule_declaration_only_{class,enum}_for_resolution):
+ Do not schedule anonymous decl-only types for resolution to their
+ definition.
+ (build_typedef_type): When an anonymous decl-only type has just
+ been named by a typedef, schedule it for resolution to its
+ definition.
+ (add_or_update_class_type): Do not assert that /anonymous/
+ decl-only types are scheduled for resolution to their definition.
+
+2024-01-15 Dodji Seketeli <dodji@redhat.com>
+
+ Bug 31236 - Fix removing a member declaration from its scope
+ * src/abg-ir.cc (scope_decl::remove_member_decl): Reset the
+ translation unit and the scope of the removed decl.
+ (remove_decl_from_scope): Do not reset the scope of the removed
+ decl here as it's now done above.
+
+2023-12-29 Mark Wielaard <mark@klomp.org>
+
+ Recognize EM_RISCV in e_machine_to_string
+ * configure.ac: Defining HAVE_EM_RISCV_MACRO if EM_RISCV
+ is defined in elf.h.
+ * src/abg-dwarf-reader.cc (e_machine_to_string): Handle
+ EM_RISCV if HAVE_EM_RISCV_MACRO is defined.
+
+2023-12-29 Mark Wielaard <mark@klomp.org>
+
+ Fix ABG_ASSERT in build_ir_node_from_die for DW_TAG_member
+ * src/abg-dwarf-reader.cc (build_ir_node_from_die): ABG_ASSERT
+ !rdr.die_is_in_c(), not rdr.cur_transl_unit().
+
+2024-01-04 Giuliano Procida <gprocida@google.com>
+
+ website: doxygen: set PROJECT_NAME to libabigail
+ * doc/website/libabigail-website.doxy: Set PROJECT_NAME to
+ libabigail.
+
+2023-11-29 Dodji Seketeli <dodji@redhat.com>
+
+ Bump LIBABIGAIL_SO_CURRENT version to 4
+ * configure.ac: Set LIBABIGAIL_SO_CURRENT to 4.
+
+2023-12-01 Dodji Seketeli <dodji@redhat.com>
+
+ Bump abixml version to 2.3
+ * configure.ac: Bump ABIXML_VERSION_MINOR to 3.
+ * 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/test-pointer-to-member-1.o.annotated.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
+ * tests/data/test-read-btf/test0.o.abi: Likewise
+ * tests/data/test-read-btf/test1.o.abi: Likewise
+ * tests/data/test-read-ctf/PR27700/test-PR27700.abi: Likewise
+ * 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-alias.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-mdimension.abi: Likewise
+ * tests/data/test-read-ctf/test-array-of-pointers.abi: Likewise
+ * tests/data/test-read-ctf/test-array-size.abi: Likewise
+ * tests/data/test-read-ctf/test-bitfield-enum.abi: Likewise
+ * tests/data/test-read-ctf/test-bitfield.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-const-array.abi: Likewise
+ * tests/data/test-read-ctf/test-dynamic-array.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-enum.o.abi: Likewise
+ * tests/data/test-read-ctf/test-fallback.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-linux-module.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/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
+ * 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/PR28584/PR28584-smv.clang.o.abi:
+ Likewise
+ * tests/data/test-read-dwarf/PR29443-missing-xx.o.abi: Likewise
+ * tests/data/test-read-dwarf/PR29692-kdelibs3-libkjava.so.1.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-PR26568-1.o.abi: Likewise
+ * tests/data/test-read-dwarf/test-PR26568-2.o.abi: Likewise
+ * tests/data/test-read-dwarf/test-fallback.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-pointer-to-member-1.o.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/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
+
+2023-11-30 Dodji Seketeli <dodji@redhat.com>
+
+ Bug 30260 - Support pointer-to-member type
+ * include/abg-comparison.h (class ptr_to_mbr_diff): Declare new
+ class.
+ (ptr_to_mbr_diff_sptr): Declare new typedef.
+ (compute_diff): Declare new overload for ptr_to_mbr_diff.
+ (ptr_to_mbr_type_sptr): Declare new typedef.
+ * src/abg-comparison-priv.h (struct ptr_to_mbr_diff::priv): Define
+ * src/abg-comparison.cc (compute_diff_for_types): Support new
+ ptr_to_mbr_type type.
+ (ptr_to_mbr_diff::{ptr_to_mbr_diff, first_ptr_to_mbr_type,
+ second_ptr_to_mbr_type, member_type_diff, containing_type_diff,
+ has_changes, has_local_changes, get_pretty_representation, report,
+ chain_into_hierarchy, ~ptr_to_mbr_diff}): Define member functions
+ of class ptr_to_mbr_diff.
+ (compute_diff): Define overload for ptr_to_mbr_type_sptr.
+ * include/abg-fwd.h (ptr_to_mbr_type_sptr): Declare new typedef.
+ (is_ptr_to_mbr_type, is_pointer_to_ptr_to_mbr_type)
+ (is_typedef_of_maybe_qualified_class_or_union_type): Declare new
+ functions.
+ * include/abg-ir.h (type_maps::ptr_to_mbr_types): Declare new
+ accessor.
+ (POINTER_TO_MEMBER_TYPE): Add new enumerator to enum
+ type_or_decl_base::type_or_decl_kind.
+ (class ptr_to_mbr_type): Declare new class.
+ (equals): Declare new overload for ptr_to_mbr_type.
+ (ir_node_visitor::visit_{begin,end}): Declare new member
+ functions.
+ * src/abg-ir.cc (ptr_to_mbr_declaration_name)
+ (ptr_to_mbr_declaration_name, add_outer_ptr_to_mbr_type_expr)
+ (add_outer_pointer_to_ptr_to_mbr_type_expr): Define new static
+ functions.
+ (type_maps::priv::ptr_to_mbr_types_): Define new
+ data member.
+ (type_maps::ptr_to_mbr_types): Define new accessor.
+ (is_ptr_to_mbr_type, is_pointer_to_ptr_to_mbr_type)
+ (is_typedef_of_maybe_qualified_class_or_union_type): Define new
+ functions.
+ (maybe_update_types_lookup_map, equals): Define new overloads for
+ ptr_to_mbr_type_sptr.
+ (is_npaf_type): Use is_ptr_to_mbr_type.
+ (maybe_update_types_lookup_map): In the overload for
+ decl_base_sptr, call the new overload for ptr_to_mbr_type_sptr
+ above.
+ (struct ptr_to_mbr_type::priv): Define new struct.
+ (ptr_to_mbr_type::{ptr_to_mbr_type, get_member_type,
+ get_containing_type, operator==, get_qualified_name, traverse,
+ ~ptr_to_mbr_type}): Define member functions of ptr_to_mbr_type.
+ (types_have_similar_structure): Support the new ptr_to_mbr_type
+ type.
+ (ir_node_visitor::visit_{begin,end}): Add new member functions.
+ (var_decl::get_pretty_representation): Support pretty-printing
+ pointer-to-member types.
+ (pointer_declaration_name, array_declaration_name): Likewise.
+ * include/abg-reporter.h ({reporter_base, default_reporter,
+ leaf_reporter}::report): Add an overload for ptr_to_mbr_diff.
+ (default_reporter::report_local_ptr_to_mbr_type_changes): Declare
+ a member function.
+ private data class of ptr_to_mbr_diff.
+ * src/abg-default-reporter.cc
+ (default_reporter::report_local_ptr_to_mbr_type_changes): Define
+ member functions.
+ (default_reporter::report): Define an overload for
+ ptr_to_mbr_diff.
+ * src/abg-leaf-reporter.cc (leaf_reporter::report): Likewise.
+ * src/abg-dwarf-reader.cc (build_ptr_to_mbr_type): Define new
+ function.
+ (build_ir_node_from_die): Use the new build_ptr_to_mbr_type
+ function.
+ * src/abg-reader.cc (build_ptr_to_mbr_type): Define new function.
+ (build_type): Use the new build_ptr_to_mbr_type above.
+ * src/abg-writer.cc (write_ptr_to_mbr_type): Define new function.
+ (write_type, write_decl, write_member_type): Use the new
+ write_ptr_to_mbr_type above.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-output-1.txt:
+ Add new test material.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v0.o:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr1-v1.o:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-output-1.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v0.o:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr2-v1.o:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-output-1.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v0.o:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr3-v1.o:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-output-1.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v0.o:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr4-v1.o:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-output-1.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v0.o:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.cc:
+ Likewise.
+ * tests/data/test-abidiff-exit/pointer-to-member/test-ptr-to-mbr5-v1.o:
+ Likewise.
+ * tests/data/test-read-dwarf/test-pointer-to-member-1.cc:
+ Likewise.
+ * tests/data/test-read-dwarf/test-pointer-to-member-1.o: Likewise.
+ * tests/data/test-read-dwarf/test-pointer-to-member-1.o.abi:
+ Likewise.
+ * tests/data/Makefile.am: Add the new test material above to
+ source distribution.
+ * tests/test-abidiff-exit.cc (in_out_specs): Add the test material
+ above to this test harness.
+ * tests/test-annotate.cc (in_out_specs): Likewise.
+ * tests/test-read-dwarf.cc: Likewise.
+ * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Adjust.
+ * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
+
+2023-11-30 Dodji Seketeli <dodji@redhat.com>
+
+ Improve type naming
+ * include/abg-fwd.h (is_npaf_type, is_pointer_to_function_type)
+ (is_pointer_to_array_type, is_pointer_to_npaf_type): Declare new
+ functions.
+ (is_pointer_type, is_reference_type, is_array_type): Take a
+ boolean parameter to look through qualifiers.
+ * include/abg-ir.h (is_pointer_type): Do not make this function a
+ friend of the type_or_decl_base class anymore.
+ * src/abg-ir.cc (pointer_declaration_name, array_declaration_name)
+ (stream_pretty_representation_of_fn_parms)
+ (add_outer_pointer_to_fn_type_expr)
+ (add_outer_pointer_to_array_type_expr): Define new static
+ functions.
+ (is_npaf_type, is_pointer_to_function_type)
+ (is_pointer_to_array_type, is_pointer_to_npaf_type): Define new
+ functions.
+ (get_type_representation): Remove the overload for array_type_def.
+ (get_function_type_name, get_method_type_name)
+ (function_decl::get_pretty_representation_of_declarator): Use the
+ new stream_pretty_representation_of_fn_parms. This actually
+ factorizes parameters pretty-printing by reusing
+ stream_pretty_representation_of_fn_parms.
+ (is_pointer_type, is_reference_type, is_array_type): Take a
+ boolean parameter to look through qualifiers.
+ (is_void_pointer_type): Use const where it's due.
+ (pointer_type_def::get_qualified_name): Use the new
+ pointer_declaration_name in lieu of the old and removed
+ get_name_of_pointer_to_type.
+ (array_type_def::{get_pretty_representation, get_qualified_name}):
+ Use the new array_declaration_name instead of the old and removed
+ get_type_representation.
+ (var_decl::get_pretty_representation): Use the new
+ array_declaration_name and pointer_declaration_name.
+ (function_decl::get_pretty_representation): Use the new
+ add_outer_pointer_to_array_type_expr, and
+ add_outer_pointer_to_array_type_expr function to support the
+ proper syntax for function returning pointers and arrays.
+ (function_decl::parameter::get_pretty_representation): Fix the
+ pretty-printing of each function parameter.
+ * tests/data/test-abicompat/test0-fn-changed-report-0.txt: Adjust.
+ * tests/data/test-abicompat/test0-fn-changed-report-2.txt:
+ Likewise.
+ * tests/data/test-abicompat/test1-fn-removed-report-0.txt:
+ Likewise.
+ * tests/data/test-abicompat/test3-fn-removed-report-0.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/PR30048-test-2-report-1.txt: Likewise.
+ * tests/data/test-abidiff-exit/PR30048-test-report-0.txt: Likewise.
+ * tests/data/test-abidiff-exit/PR30329/PR30329-report-1.txt: Likewise.
+ * tests/data/test-abidiff-exit/PR30503/libsdl/libsdl-1.2.60-1.2.64-report.txt: Likewise.
+ * tests/data/test-abidiff-exit/ada-subrange/test1-ada-subrange/test1-ada-subrange-report-1.txt: Likewise.
+ * tests/data/test-abidiff-exit/ada-subrange/test1-ada-subrange/test1-ada-subrange-report-2.txt: Likewise.
+ * tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/test-fun-param-report.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/test-ld-2.28-210.so--ld-2.28-211.so.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/test-leaf-fun-type-report.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/test-leaf-more-report.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/test-leaf-peeling-report.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/test-leaf-stats-report.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/test-net-change-report0.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/test-net-change-report2.txt:
+ Likewise.
+ * tests/data/test-abidiff-exit/test2-filtered-removed-fns-report0.txt:
+ Likewise.
+ * tests/data/test-abidiff/test-PR18791-report0.txt: Likewise.
+ * tests/data/test-abidiff/test-crc-report-0-1.txt: Likewise.
+ * tests/data/test-abidiff/test-crc-report-1-0.txt: Likewise.
+ * tests/data/test-abidiff/test-crc-report-1-2.txt: 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/test21-pr19092.so.abi: Likewise.
+ * tests/data/test-annotate/test7.so.abi: Likewise.
+ * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test-23-diff-arch-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test18-alias-sym-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test19-soname-report-0.txt: Likewise.
+ * tests/data/test-diff-dwarf/test24-added-fn-parms-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-dwarf/test5-report.txt: Likewise.
+ * tests/data/test-diff-filter/test-PR26739-2-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.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/test6-report.txt: Likewise.
+ * tests/data/test-diff-filter/test7-report.txt: 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-diff-pkg/PR24690/PR24690-report-0.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/libxcrypt-4.1.1-6.el8.x86_64--libxcrypt-compat-4.4.18-3.el9.x86_64-report-1.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/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.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-pkg-ctf/gmp-6.x.x86_64-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-pkg-ctf/test-rpm-report-0.txt: Likewise.
+ * tests/data/test-diff-suppr/test0-type-suppr-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test0-type-suppr-report-3.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test0-type-suppr-report-5.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test0-type-suppr-report-7.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test15-suppr-added-fn-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test15-suppr-added-fn-report-2.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test15-suppr-added-fn-report-5.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-3.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-5.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test27-add-aliased-function-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test27-add-aliased-function-report-3.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test27-add-aliased-function-report-4.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test28-add-aliased-function-report-0.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test28-add-aliased-function-report-1.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test28-add-aliased-function-report-2.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test28-add-aliased-function-report-4.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test28-add-aliased-function-report-5.txt:
+ Likewise.
+ * tests/data/test-diff-suppr/test30-report-0.txt: Likewise.
+ * tests/data/test-diff-suppr/test32-report-0.txt: Likewise.
+ * tests/data/test-diff-suppr/test32-report-1.txt: Likewise.
+ * tests/data/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-1.txt:
+ Likewise.
+ * tests/data/test-fedabipkgdiff/vte291-0.39.1-1.fc22.x86_64--vte291-0.39.90-1.fc22.x86_64-report-0.txt:
+ Likewise.
+ * tests/data/test-read-ctf/test9.o.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/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/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/test19-pr19023-libtcmalloc_and_profiler.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/test7.so.abi: Likewise.
+ * tests/data/test-read-dwarf/test7.so.hash.abi: Likewise.
+
+2023-11-30 Dodji Seketeli <dodji@redhat.com>
+
+ abilint: Alphabetically sort programs options
+ * doc/manuals/abilint.rst: Alphabetically sort options in the
+ manual.
+ * tools/abilint.cc (display_usage): Likewise for the help strings.
+
+2023-10-31 Dodji Seketeli <dodji@redhat.com>
+
+ abilint: Support --annotate
+ * tools/abilint.cc (options::annotate): Define new data member.
+ (options::options): Initialize.
+ (display_usage): Add help string.
+ (parse_command): Support the --annotate command options.
+ (main): Set the annotate option on the context.
+
+2023-11-03 Dodji Seketeli <dodji@redhat.com>
+
+ suppression: Add "has_strict_flexible_array_data_member_conversion" property
+ * include/abg-comp-filter.h (has_strict_fam_conversion): Declare
+ new functions.
+ * include/abg-fwd.h
+ (ir::has_fake_flexible_array_data_member): Declare new accessor
+ functions.
+ * include/abg-suppression.h
+ (type_suppression::{,set_}has_strict_fam_conversion): Declare new
+ accessor functions.
+ * src/abg-comp-filter.cc (has_strict_fam_conversion): Define new
+ functions.
+ * src/abg-ir.cc
+ (ir::has_fake_flexible_array_data_member): Define new accessor
+ functions.
+ * src/abg-suppression-priv.h
+ (type_suppression::priv::has_strict_fam_conv_): Define new
+ data member.
+ * src/abg-suppression.cc
+ (type_suppression::{,set_}has_strict_fam_conversion): Define new
+ accessor functions.
+ (type_suppression::suppresses_diff): For a type suppression to
+ match a fake flex array conversion, either the size of the type
+ hasn't change or has_size_change must be true and then the type
+ must change from a fake flex array to a real flex array.
+ (read_type_suppression): Parse the new
+ 'has_strict_flexible_array_data_member_conversion' property to
+ set the type_suppression::set_has_strict_fam_conversion property.
+ * doc/manuals/libabigail-concepts.rst: Add an entry for the new
+ 'has_strict_flexible_array_data_member_conversion' property.
+ * tests/data/test-diff-suppr/test-has-strict-flexible-array-data-member-conversion-{1,2}.suppr:
+ Add new test suppression files.
+ * tests/data/test-diff-suppr/test-has-strict-flexible-array-data-member-conversion-report-{1,2}.txt:
+ Add new test reference output files.
+ * tests/data/test-diff-suppr/test-has-strict-flexible-array-data-member-conversion-v{0,1}.c:
+ Add source code for new binary test input files.
+ * tests/data/test-diff-suppr/test-has-strict-flexible-array-data-member-conversion-v{0,1}.o:
+ Add new binary test input files.
+ * tests/data/Makefile.am: Add the new test files to the source
+ distribution.
+ * tests/test-diff-suppr.cc (in_out_specs): Add the new test input
+ files to this test harness.
+
+2023-11-08 Dodji Seketeli <dodji@redhat.com>
+
+ Bug 31045 - Don't try setting translation unit for unique types
+ * src/abg-ir.cc (maybe_set_translation_unit): Define new static
+ function.
+ (scope_decl::{add,insert}_member_decl): Use it.
+ * tests/data/test-abidiff-exit/PR31045/zfs-abigail-2.4/libnvpair.{abi,so,suppr}:
+ New test input files.
+ * tests/data/test-abidiff-exit/PR31045/zfs-abigail-2.4/test-PR31045-report-1.txt:
+ New reference test output.
+ * tests/data/Makefile.am: Add the new test material above to
+ source distribution.
+ * tests/test-abidiff-exit.cc (in_out_specs): Add the input above
+ to this test harness.
+ Tested-by: Paolo Pisati <paolo.pisati@canonical.com>
+
+2023-10-21 Dodji Seketeli <dodji@redhat.com>
+
+ configure: Bump development version to 2.5
+ * configure.ac: Bump version to 2.5
+
+2023-10-20 Dodji Seketeli <dodji@redhat.com>
+
+ ChangeLog: Update for 2.4 release
+ * ChangeLog: Update automatically with make update-changelog.
+
2023-10-20 Dodji Seketeli <dodji@redhat.com>
Update NEWS file for 2.4 release
* NEWS: Update for 2.4 release.
+2023-10-20 Dodji Seketeli <dodji@redhat.com>
+
+ doc/website/mainpage.txt: Update for 2.4 release
+ * doc/website/mainpage.txt: Update download link for 2.4 release.
+ Use the .xz tarball.
+
+2023-10-20 Dodji Seketeli <dodji@redhat.com>
+
+ gen-changelog.py: Remove long standing debugging output
+ * gen-changelog.py (gen-changelog.py): Remove debugging output.
+
2023-10-20 Dodji Seketeli <dodji@redhat.com>
gen-changelog.py: Fix a long standing typo