[applied] ChangeLog: Update for 2.5 release

Message ID 877cguir0x.fsf@redhat.com
State New
Headers
Series [applied] ChangeLog: Update for 2.5 release |

Commit Message

Dodji Seketeli April 18, 2024, 4:17 p.m. UTC
  Hello,

In preparation of the 2.5 release, this patch updates the ChangeLog file
shipped in the source distribution.

	* ChangeLog: Update for 2.5 release by running the "make
	update-changelog" command.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Applied to the master branch.
---
 ChangeLog | 1938 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1938 insertions(+)
  

Patch

diff --git a/ChangeLog b/ChangeLog
index 8272e1af..9d59c546 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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