2.4 === Dmitry V. Levin (1): elf-helpers: make sure config.h is included first Dodji Seketeli (58): Update website for the 2.3 release release-text-template.txt: Modernize a little bit. dwarf-reader: Don't compute canonical type while propagating one Bug 29693 - clang-libs from f37 fails self test Bug 30466 - harfbuzz fails self-check on f38 Bug 30467 - enlightenment fails self check on f38 configure.ac: Bump to 2.4 version Bug 30503 - Fail to compare non-anonymous struct vs named struct data members Bug 30461 - insight fails self-compare fedabipkgdiff: Don't choke Koji servers with self-signed SSL certs fedabipkgdiff: Fix previous commit Make fe_iface::initialize independent from the kind of interface corpus,tools-utils: Support loading a corpus, its deps & other binaries abidw: Add --{follow,list}-dependencies & --add-binaries support abidiff: Add --{follow,list}-dependencies & add-binaries{1,2} support reader: Fix a long standing Thinko ir: Remove an unnecessary comparison reader: fix indentation tools-utils: Fix indentation dwarf-reader,ir: Make logging a property of the middle end dwarf-reader: Fix some logging abipkgdiff: Initialize libxml2 to use it in a multi-thread context tools-utils: Avoid endless loop {dwarf,elf}reader: Don't consider no symbol table as an error abipkgdiff: Avoid comparing binaries that are outside of the package ir: Add missing ABG_RETURN in the comparison engine ir: Add fn types to type lookup maps ir: Fix forgetting canonicalizing some function types ir: Avoid forgetting potential seemingly duplicated member functions ir: Really avoid canonicalizing decl-only classes ir: Use non qualified typedef name for type canonicalization ir: Fix qualification as non-confirmed propagated canonical types dwarf-reader: Do not re-use typedefs in a scope elf-reader, ir: Fix compilation on GCC 4.8.5 configure,test-diff-pkg.cc: Handle symlinks presence in dist tarball libabigail-concepts.rst: Sort the properties of the directives libabigail-concepts.rst: Remove trailing white spaces test-abidiff-exit: Do not use debuginfo dir when its empty ir: Fix output of 'debug(enum-type)' comparison: Always apply filters on the diff graph abg-comparison[-priv]: Better detection of incompatible unreachable type changes doc/manuals/libabigail-concepts.rst: Fix typo suppression: Fix indentation suppression: Fix a typo in apidoc Bug 30959 - Crash on malformed fn call expression ini: Support '[' and ']' in arguments of function call expressions init: Fix thinko in apidoc ir: Remove redundant virtual member functions Bug 30971 - Wrong interpretation of "has_data_member_inserted_at" default-reporter,reporter-priv: Do not report names of anonymous enums ir,comparison,corpus: Better support anonymous enums comparison ir,comparison: Represent changed anonymous enums comparison: Represent changed unreachable anonymous unions, structs & enums Support suppressing data member insertion before a flexible array member suppression: Make the "end" data member offset selector be named boundary ir: Fix compilation error with GCC 4.8.5 gen-changelog.py: Don't escaping '/' with '\' in regexp gen-changelog.py: Fix a long standing typo Giuliano Procida (1): operator!= fixes for C++-20 John Moon (1): suppression: Add "changed_enumerators_regexp" property Matthias Maennich (2): symtab reader: use C++11 `using` syntax instead of typedefs symtab reader: fix symtab iterator to support C++20 Yaakov Selkowitz (1): Fix fedabipkgdiff configure check for Python 3.12 2.3 === Aleksei Vetrov (1): symtab: fix getting CRC in relocatable modules Ben Woodard (1): Have fedabipkgdiff sleep while waiting for abipkgdiff Dodji Seketeli (92): ir: Improve get_debug_representation ir: Add a debug_comp_stack debugging function Bug 29857 - Don't pop comparison operands that haven't been pushed Bug 29857 - dwarf-reader: Resolve decl-only unions Bug 29857 - Better detect comparison cycles in type graph ir: Cache more aggregate type comparison results NEWS: Update for 2.2 release ChangeLog: Update for 2.2 release configure: Bump version number to 2.3 Update website documentation for 2.2 Bug 29901 - abidiff hangs when comparing libgs.so.10 with itself Bug 29934 - Handle buggy data members with empty names dwarf-reader: Bug 29932 - Handle function DIE as type as needed elf-reader: Don't free CTF resources too early ir: misc cleanups ir: Bug 29934 - Fix propagated canonical type confirmation ir: Add sanity checking to canonical type propagation confirmation Update copyright year for 2023 Don't use the "infinite" keyword for arrays of unknown size dwarf-reader: Bug 29811 - Support updating of variable type Bug 29811 - Better categorize harmless unknown array size changes fix comparing array subrange DIEs configure: Enable the CTF front-end by default Add support for BTF Update the copyright notice for the BTF reader btf-reader: Use abigail::ir::canonicalize_types to canonicalize types Better detect suitable libctf version Update CTF's ctf_dict_t detection fe-iface: Add missing virtual destructor dwarf-reader: Remove unused code corpus: Handle empty symbol table cases {dwarf,elf_based}-reader,writer: Avoid duplicating corpora in corpus_group default-reporter: Fix source location in functions change report PR30048 - wrong pretty representation of qualified pointers configure: Bump the CURRENT library number ir: Add missing virtual methods overloads ctf-reader: Fix GCC 13 warnings abipkgdiff: Emit better logs in verbose mode abipkgdiff: Emit error when no vmlinux is found in debug package ini: Fix parsing list property values suppr: Support has_data_member and has_data_member_regexp properties suppression: Factorize out is_data_member_offset_in_range suppression: Support the has_size_change property for suppress_type suppression: Support offset_of_{first,last}_data_member_regexp offset selectors comparison, suppression: Support [allow_type] directive Misc white space fixes abidiff: Add extensive logging tools-utils: Support kernel stablelist comp-filter: Don't re-visit node while applying filters to diff nodes comparison: Add a mode to not apply filters on interface sub-graphs comparison: When marking leaf nodes don't do unnecessary impact analysis comp-filter: Speed up harmless/harmful categorization tools-utils: Improve logging in build_corpus_group_from_kernel_dist_under ir: Fix cycle detection for union types Bug 29977 - dwarf-reader: Fix canonical DIE propagation canceling dwarf-reader,abidiff: Fix compilation with --enable-debug-type-canonicalization Bug 29912 - Better support an ELF symbol alias that designates several functions Bug 29911 - fedabipkgdiff forgets to provide some debuginfo RPMs to abipkgdiff Bug 29692 - Support binaries with empty symbol table abipkgdiff: Fix a typo test-symtab: Update after support for empty symtabs Bug 29690 - Out of range exception in add_or_update_class_type Bug 29686 - Fix testing the presence of anonymous data member in a struct Bug 29345 - abipkgdiff is confused by symlinked binaries in RPMs Bug 29340 - Add support for Ada range types Fix redundancy filtering of range types Bug rhbz#2182807 -- abipkgdiff crashes on missing debuginfo package dwarf-reader: Support Ada subranges having upper_bound < lower_bound abipkgdiff: Don't use user-specific filesystem info in error msg reader: Make reader::get_scope_for_node handle subranges at array scope. dwarf-reader: Support DW_OP_GNU_variable_value dwarf-reader: Fix typo in comment dwarf-reader: Support indirectly referenced subrange_type DIEs fedabipkgdiff: Add timing data in debug logs fedabipkgdiff: Remove busy loop when forking abipkgdiff Bug 29339 - elf-helpers: Don't crash on unexpected ELF file abi{dw,diff}: Better error messages when alternate debuginfo not found abidiff,reader: Fix compilation with --debug-self-comparison ir: Add new environment::get_type_id_from_type ir: Recognize "void* as being equal to all other pointers in C tests/update-test-output.py: Adapt to some broken test output Improve self-comparison debug mode ir: Improve debugging type_base::get_canonical_type_for writer: Annotate pointer representation comparison: Fix index error when interpreting scope comparison ir: fix canonical type propagation canceling error reader: Recognize variadic parameter type from abixml Bug 30309 - Support absolute path to alt debug info file in DWARF Fix the test of the patch for Bug 30309 test-abidiff-exit: Fix the command line passed to abidiff ini: Do not crash on incorrect property value test-ini: Fix a typo Giuliano Procida (1): DWARF reader: avoid C++20 operator!= overload ambiguity Guillermo E. Martinez (4): ctf-front-end: Add test for alias symbols ctf-reader: Fix missing initializer for member in test suite abipkgdiff: Fix kernel package detection when comparing kABIs tools-utils: Fix looking for vmlinux binary in debuginfo package Mark Wielaard (1): doc: Fix some typos and add some missing references Petr Pavlu (2): Fix de-initialization of elf::reader::priv abidiff: Fix handling of linux-kernel-mode Xiaole He (1): elf-reader: reclaim fd and mem before break 2.2 === Aleksei Vetrov (1): symtab: add support for CRC values from __kcrctab Dodji Seketeli (20): Bump version number to 2.2 Update website for 2.1 release. ir: Fix documentation of canonical type propagation abidiff: add a --debug-tc option Bug 29650 - Caching class comparison result potentially too early ir: remove redundant cycle detection code in equals ir: Fix a wrong comment in canonicalize() ir: Properly indent overload of equals() for class_decl dwarf-reader: Fix class size setting bug rhbz2114909 - Refer to changed base classes using their non-qualified names ir: Don't crash when looking at corpus-less translation units kmidiff: Fix spacing in the help string Use environment by reference. Make Front Ends first class citizens test-read-ctf: Update tests for fixing size and name for underlying types Fix spurious deleted/added virtual destructor change report dwarf-reader: Leverage ODR & DWZ dwarf-reader: Avoid duplicating member functions dwarf-reader: Make die_peel_{qual_ptr,typedef} always set peeled type Bug 29829 - dwarf-reader: Allow DIEs to be in a lexical block Giuliano Procida (1): Narrow Linux symbol CRCs to 32 bits Guillermo E. Martinez (6): Use the CTF reader by default when applicable ctf-reader: Set alignment-in-bits property to 0 ctf-reader: Fix size and name for underlying types ctf-reader: Strip qualification from a qualified array type ctf-reader: Fix representation of multidimensional arrays ctf-reader: Fix array size representation Sam James (1): Use xz as the default tarball compression format Xiaole He (3): abg-ir: add missing else abg-reader: optimize if construction abg-diff-utils: fix typo in comments 2.1 === Ben Woodard (7): Fix typo in abipkgdiff manpage Add an option ignore SONAME differences in libraries Add github actions to support workflows abicompat: Add missing space abidiff: Remove redundant code abicompat: Support reading CTF and abixml Bug 28669 - Increment Library version David Cantrell (1): Include in tools/abisym.cc for basename(3) David Seifert (1): Find fts-standalone on musl Dodji Seketeli (90): Fix tarball upload directory Update libabigail web page for 2.0 release Bump to 2.1 version Improve type (de)serialization instability debugging Add --enable-debug-type-canonicalization to configure tests/Makefile.am: Fix warning ir: Avoid canonicalizing types that are not meant to writer: Don't forget to emit types referenced by function types writer: Don't forget when emitting array subrange types writer: Don't forget that a naming typedef is referenced Bug 28364 - libwiretap fails self comparison Add debug info package for wireshark-cli-3.4.9-1.fc36.x86_64.rpm Update licensing information on the web page after 2.0 PR28365 - Assert on empty typedef on webkit2gtk3-jsc-2.32.3-1.fc34.x86_64 Bug 28450 - Fix cloned member function handling in DWARF abidw: Add --abixml-version abg-config.{cc,h}: Misc comment cleanups Bug 28584 - Don't drop global variables that lack DW_AT_external test-utils: Define colors for test status messages test-utils: Define test status reporting functions ctf-reader: Remove useless parameter from fill_ctf_section suppression: Fix has_data_member_inserted_between = {offset_of(), offset_of()} reader: Build array types with their element type "a priori" suppression: Fix compilation warning on el7 Bug 28319 - re-fix of rhbz1951526 - SELF CHECK FAILED for 'gimp-2.10' writer: small compilation error fix symtab-reader: Fix typo in comment symtab-reader: Remove an over-agressive assertion Bug 26646 - unexpected declaration-only types configure: Remove use of obsolete AC_CONFIG_HEADER abilint: add the --show-type-use option abilint --show-type-use: Show results for global decls that have no symbols reader: Fix a compilation warning ir: Remove obsolete comment from enumerator equal operator Bug 26646 - unexpected declaration-only types (part 2) dwarf-reader: Don't propagate canonical type upon aggregate redundancy Bug 28013 - Acknowledge variadic parameter type is not canonicalized comparison: Describe the "generic view" of a diff node comparison: Factorize the code that inserts diff nodes to the graph comparison: Avoid sorting diff nodes with wrong criteria comparison: Fix leaf report summary Bug 29144 - abidiff doesn't report base class re-ordering abicompat: Properly guard inclusion of abg-ctf-reader.h ir, test-read-ctf: Remove uncertainty in sorting anonymous types Add better error messaging to several tests test-read-dwarf: Use abidw rather than using the library abidw, dwarf-reader: Add an option to debug DIE canonicalization dwarf-reader: compare_dies sometimes compares empty formal parms Canonicalize DIEs w/o assuming ODR & handle typedefs transparently dwarf-reader: Fix DWARF string comparison optimization reporter-priv: Passing a string parm by reference Update year in copyright notice ir: Make canonicalization stable wrt typedefs in fn return types test-alt-dwarf: Add missing dwz alt-debug file dwarf-reader: Avoid long comparisons when resolving C++ decl-only classes dwarf-reader: Don't consider top-level types as private Bug 29303 - Cache the result of structural aggregate comparison ir: Add some debugging facilities for the comparison machinery dwarf-reader,ir: Don't canonicalize enums too early & too naively Bug 29302 - Don't edit fn linkage name when not appropriate dwarf-reader: Fix a thinko when building vars Better Handle naming typedefs on anonymous enums dwarf-reader: Support DWARF incomplete class types tests-diff-{filter,pkg,pkg-ctf}: Fix tests broken by the previous commit ir: Make pointers name stable wrt decl-only-ness of pointed-to types ir: Disambiguate sorting of array element types dwarf-reader: Remove redundant qualifiers from qualified types ir: Consider integral types of same kind and size as equivalent writer: Make sorting referenced typedefs types stable in abixml ir: Don't consider different int types of same kind and size as equivalent Update test-read-ctf reference output dwarf-reader: Better handle the absence of a die->parent map Add test-abidiff-exit/ld-2.28-21{0,1}.so to source distribution ir: Don't overdo canonical type propagation control when comparing classes ir: translation_unit::is_empty should work without environment. dwarf-reader: Simplify the canonicalization decision of types added to IR Bug PR29443 - Global variables not emitted to abixml in some cases test-annotate: Don't emit architecture data Fix butchered tests/data/Makefile.am dwarf-reader: Revamp the canonical type DIE propagation algorithm Allow restricting analyzed decls to exported symbols Fix IR comparison result caching and canonical type propagation tracking ir, writer: Go back to canonicalizing typedefs in the IR test-read-ctf: Update test output files after typedef canonicalization comparison: Ensure that fn parms with basic types can't be redundant Better support for golang programs ir: Support cloning data members of unions dwarf-reader: Accept SHT_PROGBITS sections in .dynamic segment ir: Avoid cancelling a "confirmed" propagated canonical type Update ChangeLog for 2.1 release. Frederic Cambus (1): Fix numbering error in the abidiff manual. George Rawlinson (1): Bug 28663 - generate man page for kmidiff Giuliano Procida (22): Tweak clang-format configuration Bug 28191 - Interpret DWARF 5 addrx locations symtab reader: fix up alternative addresses DWARF reader: use size_t for DWARF expression length abidiff: include ABI XML versions when reporting a mismatch abidiff: include ABI XML versions when reporting a mismatch cont. XML writer: remove type_hasher and remaining comment XML writer: drop write_elf_symbols_table variable emitted_syms XML writer: improve slightly emission of top-level declarations XML writer: do not create extra temporary referenced type shared_ptr symtab: refactor ELF symbol value tweaks symtab: fix up 64-bit ARM address which may contain tags test-annotate.cc: ignore whitespace during diff XML writer: unify type emission tracking limit repeated DIE comparisons crc_changed: eliminate copying of shared_ptr values optional: minor improvements Linux symbol CRCs: support 0 and report presence changes add Linux kernel symbol namespace support abidw: fix --stats output for resolved classes and enums abidw: remove always true test in resolve_declaration_only_classes abidw: resolve declaration-only enums the same as classes Guillermo E. Martinez (20): ctf-reader: Use argument by reference reading the context ctf-reader: Make create_read_context return a smart pointer. ctf-reader: Use ABG_ASSERT instead of assert ctf-reader: Fix memory leak reported by valgrind ctf-reader: Fix length in dynamic array definition Add regression tests for ctf reading ctf-reader: Assert on ir::hash_as_canonical_type_or_constant ctf-reader: Add support to undefined forward declaration types tools-utils: `entry_of_file_with_name' returns incorrect result ctf-reader: Fix multiple var-decl in anonymous struct/uninons ctf-reader: Add support to read CTF information from the Linux Kernel ctf-reader: shows incomplete summary changes ctf-reader: CTF debug info for some symbols is not found abipkgdiff: Add support to compare packages with CTF debug format ctf-reader: add support to looking debug information in external path kmidiff: Add CTF support to comparing Kernel trees Add regression tests for abipkgdiff using ctf info ctf-reader: add support to looks for debug information to extract kABI ctf-reader: looks for debug information in out-of-tree modules ctf-reader: Lookup debug info for symbols in a non default archive member Jose E. Marchesi (7): Add support for the CTF debug format to libabigail. ctf: make libabigail::ctf_reader::read_corpus reentrant elf_helpers: new utility function find_strtab_for_symtab_section abg-ctf-reader: use the right string table for CTF data Move dwarf_reader::status facilities to an abigail::elf_reader namespace ctf: ctf_reader::read_corpus now sets a status abidw: add support for CTF Mark Wielaard (4): dwarf-reader: Workaround libdw dwarf_location_expression bug DWARF reader: use size_t for DWARF expression length cont. symtab-reader: Setup aliases before checking ppc64 opd function entries Handle zero sh_entsize in get_soname_of_elf_file Matthias Maennich (8): XML writer: adjust tracking of emitted declarations XML writer: use consistent type pointers for type ids and emission tracking XML writer: use exemplar types for tracking referenced types XML writer: track emitted types by bare pointer XML writer: map type ids by bare pointer XML writer: resolve declaration-only enum definitions abidiff: improve whitespace generation in symbol diff report tests: Update Catch2 library to v2.13.9 Randy MacLeod (1): Improve some grammar Thomas Schwinge (13): Better highlight 'make distcheck-fast' CONTRIBUTING: Move "Coding language and style" section configure: Tune fedabipkgdiff dependencies detection Add '.mailmap' Further update 'make distcheck-fast' configure: Instead of for rpm 4.15+ version, test actual rpm/zstd support abipkgdiff: Respect 'create_abi_file_path' interface abipkgdiff: Use 'convert_path_to_relative' in 'create_abi_file_path' fedabipkgdiff: Enable testing without proper Koji installation Replace use of deprecated Python 'imp' module with 'importlib' fedabipkgdiff: Also accept MIME type 'application/x-redhat-package-manager' for RPM files Replace Python 'import importlib' with 'import importlib.machinery' Handle several variants of Python 'imp', 'importlib' modules Vanessa Sochat (2): Fixing incorrect symbol Adding missing newline to build-container workflow Xiaole He via Libabigail (1): abg-reader: fix comment of function tangmeng (8): Fix trivial typo when printing help information abilint: fix trivial typo when using abilint abicompat: Add prompt message for abnormal operation Fix trivial typo when printing message abilint: Add prompt message for abnormal operation abicompat: Add prompt message for abnormal operation test-abicompat: Make the test output more pleasant Standardize and improve the output of several tests vsoch (1): Add Logic to detect file type by extension 2.0 === Ben Woodard via Libabigail (5): Fix declaratons of conditionally defined functions Fix declaratons of conditionally defined functions Bug 27512 - Remove broken zip-archive support Fix trivial typo when printing version string Fix trivial typo when printing version string Dodji Seketeli (90): configure: add --enable-rpm415 option Add check-self-compare to release regression testing Bump version number to 2.0 Add missing SPDX headers to source files not specifying any license Add has-spdx-header.sh script Add replace-spdx-license.sh script Add helper files to perform the re-licensing Re-license the project to Apache v2 With LLVM Exception Add the LICENSE.txt file Delete COPYING* files Add a license-change-2020.txt file Teach Automake that COPYING* files are gone from sources CONTRIBUTING: Update instructions about regression tests Use C++11 for the code base ir: Add better comments to types_have_similar_structure mainpage: Update web page for 1.8 release Bug 26992 - Try harder to resolve declaration-only classes Bug 27204 - potential loss of some aliased ELF function symbols Ignore duplicated functions and those not associated with ELF symbols Bug 27236 - Pointer comparison wrongly fails because of typedef change Bug 27233 - fedabipkgdiff fails on package gnupg2 from Fedora 33 Bug 27232 - fedabipkgdiff fails on gawk from Fedora 33 dwarf-reader: Support fast DW_FORM_line_strp string comparison Bug 27255 - fedabipkgdiff fails on nfs-utils on Fedora 33 Bug 26684 - Support DW_AT_data_bit_offset attribute Bump ABIXML format version to 2.0 Bug 27165 - Better support multi-language binaries Bug 27331 - Data member offset change not considered local Bug 27267 - Better support for opaque enum types dwarf-reader: Use DW_FORM_line_strp only if it's present Use generic internal type name to canonicalize anonymous enums Don't consider type name when comparing typedefs tests: Update to catch.hpp v2.13.4 and fix #2178 Better sorting of (anonymous) types in ABIXML files dwarf-reader: Keep stable order when de-duplicating class definitions tests/catch.hpp: Add SPDX header back Revert "Fix declaratons of conditionally defined functions" dwarf-reader: Support more DWARF-5 type DIEs Bug 27569 - abidiff misses a function parameter addition Bug 27598 - abidiff mishandles union member functions dwarf-reader: Canonicalize opaque enums and classes dwarf-reader: properly set artificial-ness in opaque types reader: Handle 'abi-corpus' element being possibly empty reader: Use xmlFirstElementChild and xmlNextElementSibling rather than xml::advance_to_next_sibling_element reader: Use xmlFirstElementChild/xmlNextElementSibling to iterate over children elements Fix thinko in configure.ac Miscellaneous indentation and comments cleanups Fix DWARF type DIE canonicalization Peel array types when peeling pointers from a type Add primitives callable from the command line of the debugger Detect failed self comparison in type canonicalization of abixml Detect abixml canonical type instability during abidw --debug-abidiff Introduce artificial locations abixml reader: Fix recursive type definition handling xml reader: Fix recursive qualified & reference type definition ir: Enable setting breakpoint on first type inequality Add environment::{get_type_id_from_pointer,get_canonical_type_from_type_id} location:expand() shouldn't crash when no location manager available ir: make 'debug(artefact)' support showing enums reader: Canonicalizing a type once is enough rhbz1951526 - SELF CHECK FAILED for 'gimp-2.10' Fix recursive array type definition abidw: Remove temporary .typeid files when using --debug-abidiff abg-reader: Fix typo doc: Fix typo Revert "Fix trivial typo when printing version string" Bug 27980 - Fix updating of type scope upon type canonicalization ir: Improve the debugging facilities ir: Tighten the test for anonymous data member ir: Tighten type comparison optimization for Linux kernel binaries Bug 27995 - Self comparison error from abixml file Bug 27236 - Fix the canonical type propagation optimization Bug 27236 - Allow updating classes from abixml Bug 27236 - Don't forget to emit some referenced types RHBZ 1925886 - Compare anonymous types without qualified names Bug 27985 - abidiff: bad array types in report RHBZ-1944096 - assertion failure during self comparison of systemd writer: escape enum linkage name in abixml ir: Avoid infinite loop during type canonicalization ir: Fix canonical type propagation cancelling xml-reader: Get back to original way of building qualified types writer: Avoid sigsev on types with no translation unit RHBZ1951496 - ir: Acknowledge that "void type" is not canonicalized RHBZ1944102 - self comparing ABI of protobuf-3.14.0-2.el9 failed abipkgdiff: Fix showing added/removed files Bug 28316 - Failure to represent typedef named anonymous enums abipkgdiff: Do not erase working dirs before we are done using them Bug 27970 - Duplicated member functions cause spurious self comparison changes dwarf-reader: Indent Bug 27086 - Consider all C++ virtual destructors when there are many Giuliano Procida (17): abidiff: support --dump-diff-tree with --leaf-changes-only ir: Arrays are indirect types for type structure similarity purposes Add qualifier / typedef / array / pointer test Refresh ABI cross check test files abidiff: do not qualify member names in diff report abg-dwarf-reader: Fix typo in compare_dies_string_attribute_value DWARF reader: Interpret ARM32 ELF addresses correctly DWARF reader: Comment ARM32 ELF address interpretation dwarf-reader: Treat union members as public by default. abg-writer.cc: fix write_elf_symbol_reference loop dwarf-reader: Create new corpus unconditionally abg-reader: Ensure corpus always has a symtab reader abg-reader: Create a fresh corpus object per corpus ir: remove "is Linux string constant" property from elf_symbol abg-ir.h: add declaration of operator<< for elf_symbol::visibility PR28060 - Invalid offset for bitfields abg-writer: faster referenced type emission tests Matthias Maennich (34): Replace individual license references with SPDX Identifiers Drop C++03 compatibility layer Remove usages from abg_compat Remove usages from abg_compat Remove usages from abg_compat Remove usages from abg_compat Drop unneccessary includes of abg-cxx-compat.h clang-format: define C++ standard to improve formatting Update catch2 testing framework: v1.12.2 -> v2.13.3 abg-ir: Optimize calls to std::string::find() for a single char. abipkgdiff: Address operator precedence warning abg-cxx-compat: add simplified version of std::optional abg-ir: elf_symbol: add is_in_ksymtab field abg-ir: elf_symbol: add is_suppressed field dwarf-reader split: create abg-symtab-reader.{h,cc} and test case clang-format: Minor correction to not break parameters on the first line Refactor ELF symbol table reading by adding a new symtab reader Integrate new symtab reader into corpus and read_context corpus: make get_(undefined_)?_(var|fun)_symbols use the new symtab corpus: make get_unreferenced_(function|variable)_symbols use the new symtab abg-reader: avoid using the (var|function)_symbol_map dwarf-reader: read_context: use new symtab in *_symbols_is_exported Switch kernel stuff over to new symtab and drop unused code abg-elf-helpers: migrate ppc64 specific helpers symtab_reader: add support for ppc64 ELFv1 binaries abg-corpus: remove symbol maps and their setters dwarf reader: drop (now) unused code related to symbol table reading test-symtab: add tests for whitelisted functions symtab/dwarf-reader: allow hinting of main symbols for aliases dwarf-reader/writer: consider aliases when dealing with suppressions symtab: Add support for MODVERSIONS (CRC checksums) elf-helpers: refactor find_symbol_table_section symtab-reader: add support for binaries compiled with CFI Consistently use std::unique_ptr for private implementations (pimpl) 1.8 === Dodji Seketeli (62): Bump version number to 1.8 Update fedabipkgdiff tests according to commit b602f46c abipkgdiff: fix documentation of --impacted-interface dwarf-reader: Fix bloom filter access in GNU_HASH section Update tests/data/test-abidiff-exit/test-leaf-peeling-report.txt Update the mailing list registration form on the web page abipkgdiff: Fix race condition while using private types suppr specs Fix compilation with g++ 4.8.5 on el7 Bug 25977 - runtestabidiffexit regression on EL7 Bug 25986 - Wrong name of function type used in change report Add -g back to ABIGAIL_DEVEL {default,leaf}-reporter: group data members changes reports together dwarf-reader: support several anonymous data members in a given class Bug 25661 - Support data member replacement by anonymous data member Bug 25989 - type_topo_comp doesn't meet irreflexive requirements abigail.m4: Fix copyright notice Bug 26127 - abidw --annotate emits incomplete function types Bug 26135 - Wrong linkage name causes anonymous classes miscomparison Support declaration-only enums in DWARF reader. reader: Remove useless support for WIP types Pimpl-ify traversable_base and remove its unused traverse method dwarf-reader: re-indent a block of code Bug 26261 - Fix logic for canonicalizing DW_TAG_subroutine_type DIEs Use flat representation to canonicalize anonymous classes and unions writer: Avoid using dynamic hashing in type maps Fix thinko in get_vmlinux_path_from_kernel_dist Bug 26309 - Wrong leaf reporting of changes to typedef underlying type Make abidiff and abidw support several --headers-dir{1,2} options Bug 26568 - Union should support more than one anonymous member Consider the implicit 'this' parameter when comparing methods Fix redundancy detection in the diff graph Structurally compare the few non-canonicalized types in general configure: Support ABIGAIL_NO_OPTIMIZATION_DEBUG environment variable abg-tools-utils: Fix comment Bug 26770 - Spurious declaration-only-ness induces spurious type changes update-test-output.py: Update syntax Update test-libandroid.so.abi Bug PR26739 - Handle qualified typedef array types writer: Sort decls and fix topological sorting for types ir: Add equality op to array_type_def::subrange_type::bound_value Make sure to canonicalize all types but decl-only classes Bug 26769 - Fix missing types in abixml output abipkgdiff: Add a new --self-check option fedabipkgdiff: make --self-compare use abipkgdiff --self-check dwarf-reader: support artificially generated translation units tests/data/test-fedabipkgdiff: Update reference output abipkgdiff: Avoid uncertainty when sorting worker tasks reader: Read array subrange length into an uint64_t Bug 26780 - Fix array subrange bounds (de)serialization writer: Emit definitions of declarations when they are present ir: Introduce internal pretty representation for anonymous classes reader: Don't lose anonymous-ness of decl-only classes dwarf-reader: Avoid having several functions with the same symbol abidw: make --abidiff report any change against own ABIXML abipkgdiff: make --self-check to fail on any change against own ABIXML writer: fix off-by-one error in assertion reader: Fix off-by-one error in assert dwarf-reader: Bug 26908 - don't crash on empty DW_TAG_partial_unit configure: add --enable-rpm415 option Add check-self-compare to release regression testing Update the Changelog for 1.8 Update NEWS file for 1.8 Giuliano Procida (112): Correct spelling of "alignment". Correct various inconsequential typos. Add space missing between "[C]" tag and description of changed item. Fix the reporting of leaf change statistics. abisym: Remove leading space in output. abg-comparison.cc: Remove stray function declaration. Fix spurious new lines after diff sections. Add more leaf change reporting. Fix interaction of --redundant and --leaf-changes-only options. abg-leaf-reporter.cc: Fix indentation of function parameter diffs. Eliminate some unnecessary blank lines in diff output. Output 2-space indentation consistently. Treat function type changes as local. Tag add/remove/change lines unconditionally with [A], [D], [C]. dwarf-reader: Use all bits of Bloom filter words. Ensure change_kind enum values are used consistently. Eliminate redundancy in representation of local change kinds. abg-ir.cc: Fix peel_typedef_type(const type_base*). abg-ir.cc: Remove always-true check. abg-ir.cc: Improve types_have_similar_structure. abidiff: Remove some more unnecessary blank lines. abg-reader.cc: Fix code indentation and tabify. abg-ir.cc: Add types_have_similar_structure tests. abidiff: Clean up new lines between sections. abidiff: Remove blank line after base class diffs. abidiff: Fix enum impacted interfaces blank line. abidiff: Remove member function diff blank lines. abidiff: Fix variable declaration formatting. abidiff: Eliminate leaf mode double blank lines. abidiff: Remove new lines after parameter diffs. Fix size calculations for multidimensional arrays. abidiff: Remove blank line after typedef changes. test-diff-suppr.cc: Add missing tests. abidiffpkg: Remove stray test report file. abg-dwarf-reader.cc: Avoid division by zero. Rename test-abidiff-exit/test-leaf[0-3] files. test-abidiff-exit.cc: Drop redundant --redundant. abidiff: More compact references to prior diffs. abg-reporter-priv.cc: Fix anonymous member size change reports. abg-reporter-priv.cc: Improve readability of represent helper function. abidiff: Document and refresh tests. Fix variable suppression name_not_regex. test35-leaf.suppr: fix regex typo. test24-soname-suppr*txt: Fix suppression syntax. Add tests for declaration-only struct diffs. abidiff: Blank line after declaration-only diff. abidiff: Omit declaration-only type size 0 diffs. Move regex definitions to own files. Move libxml bits out of abg-sptr-utils.h. Simplify generation of symbol whitelist regex. Remove excess whitespace. Remove stray semicolons. Eliminate redundant conditional operators. Make set_drops_artifact_from_ir non-const. Hoist some common expressions evaluating offsets. Tidy #includes in a few files. Document ^_^ regex in generate_from_strings. Escape names used in symbol whitelisting regex. abg-suppression.cc: More uniform variable naming. Add POSIX regex wrapper functions. Use regex::compile wrapper instead of regcomp. Tidy checks for sufficient suppression properties. Use regex::match wrapper instead of regexec. Refactor read_parameter_spec_from_string logic. abg-reader.cc: Remove key_replacement_type_map. Let std::unordered_map::operator[] insert keys. doc: Fix sufficient suppression property lists. Tidy get_pretty_representation qualified_name. clang-format: set continuation indentation to 2 Fix HARMLESS_SYMBOL_ALIAS_CHANGE_CATEGORY spelling Eliminate non-ASCII characters. abg-writer: Add support for stable hash type ids. Fix leaf-mode formatting of decl <-> defn diffs. Fix bug that suppressed DWARF read tests. get_canonical_type_for: restore environment better Improve code comments and whitespace. Refactor d.context() as ctxt in report(enum_diff). Tidy build_enum_type state variables. Rename declaration-definition change category. abg-ir.cc: Remove unused re_canonicalize function. Support incomplete enums in core and diff code. Add declaration-only enums to XML reader/writer. Add tests for declaration-only enums. Use pointers not strings in type graph comparison. abg-writer.cc: Clean up new line emission. reporter: Fix report whitespace typos. Fix corpus_diff::has_net_changes for --leaf-changes-only mode abg-ir.cc: Tidy some operator== definitions Fix --type-id-style hash for empty internal names. abg-comparison.cc: Tidy some corpus_diff code abg-ir.cc: Refactor operator== methods with helper function abg-comparison.h: Remove stray declaration Remove unused is_reference_or_pointer_diff. Simplify peel_typedef_pointer_or_reference_type Fix inheritance of scope_decl::insert_member_decl Enable Clang's -Werror-overloaded-virtual. abg-ir.cc: Fix incorrect pop of compared types. Remove ABI XML test data file blank lines abg-writer.cc: Fix indentation of XML output abg-ir.cc: Remove duplicated line of code Make decl_names_equal more accurate Fix decl_base comparison function Fix maybe_report_data_members_replaced_by_anon_dm Improve documentation of abidiff --type-id-style DWARF: look up DW_AT_declaration non-recursively DWARF: track chained DIE declaration-only status abg-corpus.cc: report architecture discrepancies Add missing newlines to end of test files. Fix two wrongs in test suppression regex Stabilise sort of canonical types Improve and stabilise sort of member functions Improve enum synthetic type names Mark Wielaard (10): Add --header-file option to add individual public header files. Add --drop-private-types to abidw. Add --drop-undefined-syms to abidw. Add no-parameter-names to drop function parameter names. Add --no-elf-needed option to drop DT_NEEDED list from corpus. Rename read_elf_symbol_binding to read_elf_symbol_visibility. Add --no-write-default-sizes option. Don't iterate before the start of a RandomAccessOutputIterator. dwarf-reader: get subrange_type bounds signedness from underlying type Assume subrange bounds types are unsigned if no underlying type is given. Matthias Maennich (38): dwarf-reader: gnu_hash_tab lookup: fix overflow in bloom hash calculation configure: add support for thread sanitizer (--enable-tsan) abg-workers: guard bring_workers_down to avoid dead lock abidiff: fix documentation of --impacted-interfaces configure: add support for memory sanitizer (--enable-msan) test-read-dwarf: ensure in_elf_path exists and add missing test files dwarf-reader: remove superfluous ABG_ASSERT make: add distcheck-fast target abg-dwarf-reader: simplify symbol map update tests: parallelize diff-suppr test abg-dwarf-reader split: create abg-elf-helpers.{h,cc} and test case abg-elf-helpers: move some elf helpers from abg-dwarf-reader abg-elf-helpers: move some versioning helpers from abg-dwarf-reader abg-elf-helpers: move some kernel helpers from abg-dwarf-reader abg-elf-helpers: consolidate the is_linux_kernel* helpers abg-dwarf-reader: migrate more ELF helpers to elf-helpers abg-elf-helpers: migrate more elf helpers (architecture specific helpers) abg-elf-helpers: migrate maybe_adjust_et_rel_sym_addr_to_abs_addr test-types-stability: parallelize test case alternatives tests: reorder test execution to optimize 'make check' runtime corpus/writer: sort emitted translation units by path name configure: set -Wno-error-overloaded-virtual for clang builds tests/.gitignore: ignore all files starting with runtest* dwarf-reader: read_context: drop some unused accessor methods cxx-compat: add test suite for cxx-compat configure: add ABIGAIL_DEBUG options configure: add more diagnostic options when ABIGAIL_DEVEL is set tests: Add symtab test suite tests: Add kernel symtab test suite dwarf-reader: Remove unused code dwarf-reader: read_context: drop unused symbol versioning code abg-reporter: fully qualify std::string and std::ostream abipkgdiff: remove unused includes of elfutils/libdw.h and elf.h dwarf-reader: get_die_source: always initialize return value cleanup: std::weak_ptr use: replace manual lock by std::weak_ptr::lock dwarf-reader: fix lookup for repeated translation unit paths dwarf-reader: Ignore zero length location expressions from DW_AT_location abipkgdiff: minor cleanups 1.7 == Dodji Seketeli: Internal pretty repr of union cannot be flat representation Fix anonymous union constructed under the wrong context Propagate private type diff category through refs/qualified type diffs Add test for the fix for PR24410 Fix "Add test for the fix for PR24410" Bug 24430 - Fold away const for array types Bug 24431 - ELF reader can't interpret ksymtab with Kernel 4.19+ Bug 24431 - ELF reader fails to determine __ksymtab format Enable building with AddressSanitizer activated Fix a memory leak in real_path Delay canonicalization for array and qualified types abg-tools-utils.cc: Plug a leak in find_file_under_dir Add --enable-{asan,ubsan} configure options Canonicalize types non tied to any DWARF DIE Don't try to de-duplicate all anonymous struct DIEs Use canonical types hash maps for type IDs in abixml writer Handle several member anonymous types of the same kind Better handle several anonymous types of the same kind Fix logic of get_binary_load_address Handle Linux kernel binaries with no __ksymtab section Bug 24560 - Assertion failure on an abixml with an anonymous type Bug 24552 - abidiff fails comparing a corpus against a corpus group Take anonymous scopes into account when comparing decls [dwarf-reader] const-ify Dwarf_Die* use in many places [dwarf-reader] Re-use function types inside a given TU [dwarf-reader] Better use of linkage name for fn decl de-duplication [dwarf-reader] Optimize speed of compare_as_decl_dies [dwarf-reader] Fix indentation in compare_dies_string_attribute_value Fully account for anonymous-ness of scopes when comparing decl names Bug 24731 - Wrongly reporting union members order change Make abidiff --harmless show harmless changes in unions [dwarf-reader] Constify the first parameter of maybe_canonicalize_type [dwarf-reader] Make sure to canonicalize anonymous types Implement a poor-man's RTTI for performance [xml-writter] Avoid using RTTI when dynamically hashing types [xml-writter] Speedup function_type::get_cached_name [xml-writer] Remove a useless kludge Misc indent cleanup Implement fast comparison of Linux Kernel types when applicable [ir] Fix indentation and add comments Add timing to the verbose logs of abidw Bug 24787 - Filter out enum changes into compatible integer types Serialize canonical types to avoid testing if types have been emitted Detect the presence of R_AARCH64_{ABS64, PREL32} macros Bug 25007 - Don't use section-relative symbol values on ET_REL binaries Remove the elf_symbol::get_value property Guard testing v4.19+ AARCH64 kernel module loading for EL6 support Fix reading of relocation sections when endianness mismatches [has_type_change] Better detect type size changes Better propagation of suppressed-ness to function types Support the "name_not_regexp" property in the [suppress_type] section PR25042 - Support string form DW_FORM_strx{1,4} from DWARF 5 Fix a typo in a comment of abg-dwar-reader.cc Fix thinkos in DW_FORM_strx detection in configure.ac PR25058 - Support decl DIEs referring to symbols using DW_AT_ranges PR25058 - Better support fn DIEs referring to symbols using DW_AT_ranges [abg-comparison.cc] Fix comments typo Support symbol_name_not_regexp in [suppress_{function, variable}] Bug 25095 - Apply symbol white lists to ELF symbols Bug 25128 - Leaf diff reporter shouldn't compare decl-only classes Bug 25128 - Handle decl-only classes that differ only in size Small style fix in abg-default-reporter.cc Bug 24690 - Support comparing non-reachable types of a binary Misc typo fixes Bug 25409 - Fix reading layout-offset-in-bits attribute of data-member suppression: Better handle soname/filename properties evaluation abixml-reader: Support SONAME related properties on file suppression tools-utils: Drop redefinition of fopen when BAD_FTS is defined gen-changelog.py: Update the script for python3 Giuliano Procida: Remove redundant mention of libtool in COMPILING documentation. Fix typo in COMPILING. Don't ignore options when diffing translation units (.bi files). Sort kernel module object files before processing them. Fix stray comma in leaf-changes-only mode. Jessica Yu: Support pre and post v4.19 ksymtabs for Linux kernel modules Mark Wielaard: Fix an undefined behaviour in has_var_type_cv_qual_change Don't try to read a build_id as string in find_alt_debug_info_link. Matthias Maennich: dwarf-reader: fix undefined behaviour in get_binary_load_address Add .clang-format approximation abg-writer: Simplify 'annotate' propagation Add deprecation facilities abg-writer: Refactor write_translation_unit API abg-writer: Refactor write_corpus API abg-writer: Refactor write_corpus_group API write_context: allow mutating the ostream used abidw: Consolidate setting options Make write_architecture and write_corpus_path flags in the write_context abidw: add option to omit the compilation directory abidw: add option to only emit file names (--short-locs) abg-writer: drop deprecated API .gitignore: Add libabigail-?.* *.orig files .clang-format: Add more options for match existing coding style abg-reporter.h: add missing includes / using declarations Drop requirement to compile with GNU extensions Update tests/.gitignore to ignore runtesttoolsutils Add compatibility layer for C++11 mode abg-tools-utils: add missing header include guards Ensure a consistent C++ standard use abg-dwarf-reader: detect kernel modules without exports as such dwarf-reader: read_corpus_from_elf: unconditionally load elf properties kmidiff: fix help message dwarf-reader: refactor try_reading_first_ksymtab_entry_using{pre,}_v4_19_format dwarf-reader: add support for symbol namespaces in ksymtab entries abg-dwarf-reader: resolve relocation sections by index dwarf-reader: relax restriction about relocation sections in try_reading_first_ksymtab_entry Add (undocumented) support for version suffixes abidiff/kmidiff: do not default-suppress added symbols abg-reader: handle empty corpus nodes in xml representation corpus: is_empty: consider actual translation unit contents writer: completely skip over empty corpora KMI Whitelists: Add functionality to make whitelists additive KMI Whitelists: Drop old whitelist extraction methods clang-format: Better approximation for binary operators and assignments dwarf-reader: handle symtab.section_header.sh_entsize == 0 dwarf-reader: handle binaries with missing symtab Fix / add include guards abg-fwd: drop duplicate forward declaration for corpus_sptr Testing: add Catch Unit test framework Fix some parameter name inconsistencies abg-comparison: prefer .empty() over implicit bool conversion of .size() abg-dwarf-reader: zero initialize local Dwarf_Addr values abg-workers: Rework the worker queue to improve concurrent behaviour abg-fwd.h: fix mismatched tags for ir_node_visitor abilint: fix return types bool -> int abg-reader: clarify boolean use of assignment diff-utils: point: fix postfix decrement/increment operator add missing virtual destructors viz-dot: remove unused members from dot suppressions: drop unused parameter from type_is_suppressed ir: drop unused data members from {environment,qualified_name}_setter distinct_diff: avoid expression with side effects within typeid dwarf-reader: fix recursion in expr_result::operator& Update .gitignore files to ignore typical dev side products dwarf-reader: Fix comments for try_reading_first_ksymtab_entry_using_{pre_,}v4_19_format dwarf-reader: templatize read_int_from_array_of_bytes Bug 24431 Read 32bit values when testing for the v4.19 symbol table format Bug 24431 Treat __ksymtab as int32_t for v4.19+ kernels 1.6 === Dodji Seketeli: Bump version number to 1.6 Update website for 1.5 Support having several debuginfo search dirs for a binary Add a --fail-no-debug-info to abidiff Some light style change in abidiff.cc Add basic support for Fortran binaries Update copyright for 2019 Bug 23044 - Assertions with side effects Separate public types of first binary from those of the second Add (very) basic support for Rust Support some new DWARF language encoding for C and C++ Fix a thinko Overhaul detection the DW_LANG_* enumerators from dwarf.h Fix a typo in the recent Rust support and update regression tests Conditionalize the Rust support regression test Properly add the new rust tests to EXTRA_DIST Bug 20175 - Classify CV qual changes in variable type as harmless Better comments in the comparison engine Bug 24139 - Support suppressing some enumerator changes Small apidoc fix Bug 24157 - Wrong support of Ada ranges Bug 24188 - Assertion failed while analysing a Fortran binary Avoid over-suppressing fns & vars when analysing the Kernel Do not build DIE -> parent map just because we see an asm TU PR24257 - Handle DW_TAG_typedef with no underlying type Better detection of void* to something* change Add ir::{lookup_data_member, get_function_parameter} Better pointer name equality optimization in DIE de-duplication code Misc cleanups Bug 24378 - DW_TAG_subroutine_type as a DIE scope causes infinite loop Add missing assignment operators Mark Wielaard: Conditionalize the use of DW_LANG_C_plus_plus_03 and DW_LANG_Rust Xiao Jia via libabigail: Some documentation fixes 1.5 === Dodji Seketeli: Bug 23533 - Accept '=' in ini property values PR23641 - Type definition DIE matched by a supprspec but not its decl PR23641 - confusion when a type definition DIE is matched by a supprspec and its decl DIEs aren't Bug 23708 - categorize void* to pointer change as harmless Bug rhbz1638554 - assertion failed in is_mostly_distinct_diff Bump version number to 1.5 Allow use of python even when fedabipkgdiff is disabled Make test-ir-walker work on ELF binaries directly Fix apidoc of dwarf_reader::get_soname_of_elf_file Add option to avoid walking abigail::ir nodes twice Fix propagation of private type suppression category Categorize CV qualifier changes on fn return types as harmless Misc comment fix Add default suppression specification for the krb5 project Add default suppression specification for the libvirt project Better support array with unknown upper bound Define UINT64_MAX when it's not defined 1.4 === Dodji Seketeli: Fix typo in tests/runtestdefaultsupprs.py Remove references, arrays and fn parms from leaf diff nodes Improve detection of local *type* changes Better detect when diff nodes only carry local type changes Better detect when pointer and qualified types carry local changes Use the flat representation for anonymous struct/unions Add test44-anon-struct-union-v{0,1}.o to source distribution Explicitely detect anonymous data member changes Identify a function using its symbol name and version Fix indentation of help string in abipkgdiff Fix redundancy detection through fn ptr and typedef paths Filter out changes like type to const type Initial basic support of union type in suppression specifications Ensure die_function_type_is_method_type returns a class type die Fix race between runtestdefaultsupprs{py3.sh,.py} Allow square brackets in ini property values Properly add test materials for test-diff-suppr/test38-char-class-in-ini* 1.3 === Chenxiong Qi: Bug 22722 - Make fedabipkgdiff and its tests support both python 3 and 2 Dodji Seketeli: Report change locations in leaf reports Skip changes to function *types* in the leaf reporter Make abipkgdiff avoid comparing private DSOs from RPMs Detect the presence of 'rpm' as it's now needed by abipkgdiff Do not enable fedabipkgdiff tests if fedabipkgdiff itself is disabled Don't crash when invoking kmidiff with no debug info root dir Don't possibly forget type definition when reading a CorpusGroup Do not show decl-only-to-def changes in the leaf reporter Overhaul of the report diff stats summary Do not mark "distinct" diff nodes as being redundant Fix meaning of "harmless name change" to avoid overfiltering Better handle category propagation of pointer changes Improve function changes reporting in leaf and default mode Don't filter out typedef changes with redundant underlying type changes Only show leaf type changes in the leaf type changes section Fix leaf report of class data member changes Always show redundant changes in leaf mode Avoid reporting an enum change if it has already been reported When we say a change was reported earlier give its source location [abipkgdiff]: in leaf mode we always show redundant changes Update tests for the "better leaf mode redundancy management" patchset Use absolute builddir paths in automake test files Represent sizes and offsets in bytes and hexadecimal values Initial support of anonymous data members Show data member offsets in bytes too Sort the output of the leaf reporter Use the dynamically selected python for Koji configure tests Use the correct python interpreter in runtestdefaultsupprs.py Handle cases where no python2 interpreter is found Don't bail because "rpm" issued an error Jonathan Wakely: Remove assertion with side-effects Remove unused local set variables Rename misleading remove_trailing_white_spaces functions Use std::string::substr instead of appending single chars 1.2 === Dodji Seketeli: Add newline at end of version string display Initial support for Ada ranges Bug 22913 - Correctly de-dup pointers to anonymous structs inside a TU Fix the output indentation of abidiff --help Fix indentation in the DWARF reader Update abipkgdiff documentation wrt suppression specifications Fix typo in abipkgdiff documentation 1.1 === Dodji Seketeli: Bug 22076 - Disable fedabipkgdiff for old koji clients Bug 22436 - make abipkgdiff accept several debuginfo packages Bug 22488 - Make abipkgdiff handle different binaries with same basename Bug 22437 - Make fedabipkgdiff use all debug info RPMs of a sub-RPM Bug 22684 - Add --d{1,2} options to kmidiff Bug 22692 - Consider Java as a language that supports the ODR Fully report diagnostic about alternate debug info file not found Update & cleanup the tools manuals summary Improve comments wording in fedabipkgdiff Update copyright notice for all source files Fix version revision number printing in tools --help option abipkgdiff --verbose shouldn't trigger --fail-no-dbg Fix logic in common_prefix Fix symlinks paths handling in abipkgdiff Suppress duplicates when listing package content Make kmidiff show the wrong option when it complains about it Only consider local changes when filtering subtype changes Skip class types with changed names in leaf reports Correctly link with pthread 1.0 ===== Ben Woodard: Fix some clang compile problems Fix more clang build warnings Chenxiong Qi: More document for local RPMs comparison Follow moved packages when download Read Koji config via Koji API Warn properly when cannot find peer RPM Fix wrong variable name Bug 20380 - Compare two local RPMs Bug 20087 - Clean cache before or after ABI comparison Dodji Seketeli: Forgot to consider libtest33-v{0,1}.so in test-diff-suppr.cc A suppressed diff node implies suppressing all equivalent nodes too Make bash completion files non-executable Allow pretty printing function decls for internal purposes Setup per-corpus type maps indexed by type names Implement de-duplication for types and decls at DWARF loading time Support naming typedef and use them to speed up type canonicalization Fix pretty representation of array types Introduce on-the-fly type canonicalization Very light speed improvements Add tests/data/test-diff-suppr/test33-report-0.txt to tarball Rename tests/update-test-read-dwarf-output.py Fix aborting when reading .foo symbols from a ppc64 binary Fix template_decl::hash::operator() Don't early-canonicalize function types when reading abixml Naming typedefs of classes are not read properly from abixml make is_anonymous_type work for unions and classes Misc style cleanup Make abg-fwd.h use *_sptr typedefs Handle per translation unit and per corpus types maps [dwarf-reader] Handle per translation-unit type de-duplication Update tests/data/test-read-write/test27.xml Update 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 Fix a typo in method name computation Cleanup ODR-based type canonicalization optimization gating logic Fix qualified name caching for some types [dwarf-reader] Don't early canonicalize function types [abixml writer] Fix comparison of pointer to types [abixml writer] Make sure all function types are emitted Update tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi Update tests/data/test-read-dwarf/*.abi files Avoid unnecessary updates to type lookup maps Speedup set_member_is_static Misc comments and apidoc fixes Misc style fixes [apidoc] Allow brief description at the top of class description pages Update copyright year on a bunch of files Adjust some reference outputs of the test-read-dwarf test harness Better de-duplicate classes, unions, enums in non-odr contexts Add debug routines to dump locations to a stream Support Linux Kernel binaries Support Linux Kernel ABI whitelist files Remove unused functions from abg-ir.cc Update copyright notice for abg-fwd.h, abg-ir.h and test-abidiff.cc Fix performance regression while analyzing libjvm.so Add missing deep comparison operators for {function, method}_decl_sptr Speed up pretty representing (function) types Handle several virtual member functions having the same vtable offset [dwarf reader] Fix pretty printing static methods from DWARF [dwarf reader] Do not over de-duplicate function *definitions* [dwarf reader] Allow updating and de-duplicating member functions [dwarf reader] properly separate function decls and types in lookup [dwarf reader] Don't abort when trying to canonicalize a non-type [comparison engine] Don't crash when the context is null Support virtual member functions with vtable offset not yet set Fix some include logic in abg-suppression.cc Fix suppression category propagation in diff node graph Add --harmless option to abipkgdiff Fix test-diff-pkg after commit 2dcc606 Make abidw --headers-dir work with the --out-file option Fix help string for --header-dirs Adjust reference output of test-annotate Fix indentation in src/abg-writer.cc Misc style fixes Fix silent failure of tests/runtestfedabipkgdiff.py Add missing new line to an error message of runtestfedabipkgdiff.py Add missing tests input files to distribution files fedabipkgdiff refuses to compare packages with the same release number Fix typo in help string of abipkgdiff Several fixes and enhancements to abigail::workers Add a "make check-valgrind-helgrind-recursive" target Do not ignore valgrind checks returning an error Make abipkgdiff.cc use the abigail::workers interface Display the command that failed the runtestfedabipkgdiff.py test Move test-read-dwarf.cc to abigail::workers Make the helgrind suppressions less specific Silence Helgrind reports about exception stack unwinding More Helgrind suppressions Make Helgrind suppressions less specific to libgcc_s version Fix virtual members sorting to unbreak the build on EL6 Consider file path when sorting virtual member functions Fix data race on worker::queue::priv::bring_workers_down Shut down a helgrind false positive in the "system" libc call Launch fedabipkgdiff tests first Fix some random deadlock while running fedabipkgidiff in tests Fix a race condition in queue::priv::do_bring_workers_down Fix buffer overrun in 'equals' function for arrays Fix array subranges (wrongly) having the same lower bound Ensure build_qualified_type can return non-qualified types Remove useless overloads of is_type Invalidate function and variable ID cache when invoking ::set_symbol Rename fn_parm_diff::get_type_diff into fn_parm_diff::type_diff Don't consider changes to basic types as being redundant Misc cleanups in abg-writer.cc Update the description of what abipkgdiff does Speedup comparison of decl-only classes Speed up access to the definition of a class declaration-only type Avoid building DIE -> parent DIE map when analyzing a C binary Do not forget to erase temporary directories in abipkgdiff Avoid comparing kernel.img file from the grub2 package Fix some typos in abidiff.cc Create a Corpus Group API extension Initial support to lookup types per location Support loading and comparing two kernel trees Avoid loading a translation unit twice from abixml Make abipkgdiff compare two kernel packages Make abidw support the --kmi-whitelist option Introduce the --kmi-whitelist option to abidiff Update the reference output of regression tests after kabidiff work Rename write_corpus_to_native_xml into write_corpus Avoid emitting duplicated decls in abixml Avoid emitting some empty translation units to abixml Fix indentation glitch before the tag in abixml Adjust test reference outputs after changes in abg-writer.cc Initial support of the serialization of the KMI of a Linux Kernel Tree Initial support of de-serializing the KMI of a Linux Kernel Tree Speedup access to unreferenced symbols when loading corpus_group Avoid de-duplicating different C types that have identical name Allow selective resolution of class declaration Speedup DIE representation computing esp function signature in C Do not report about voffset when it's not set in debug info Fix innacurate test condition when reading an enum type from abixml Cache function type name computation results Add --vmlinux{1,2} option to abidw and kmidiff Allow re-using the ELF/DWARF read_context when loading a corpus group Add documentation for the kmidiff tool Allow selective resolution of class declaration Do not report about voffset when it's not set in debug info Filter top cv qualifier changes on function parameter types Support ELF symbol visibility property Symbols with the same zero value are not aliases Fix doc glitch in abidiff.rst Misc style fixes Don't add empty translation unit to corpus Better handle decl-only classes being different from their definition Fix a typo when reporting size change wrt a decl-only class Fix typo in comments speed up class type lookup in a corpus Replace --lkaw with -w and --lkaw-pkg with --wp Add missing space in abipkgdiff error message Use shorter lines in abipkgdiff.cc Fix support of the --wp option of abipkgdiff Support up to two --wp options for abipkgdiff Avoid crashing when the elf file could not be read Fix some make distcheck failures Misc style fixes Finer detection of local changes of var_decl type Avoid adding the same data member twice in the DWARF reader Don't crash on classes that differ in their virtual member fn count 22160 - Annotate state flag unitialized in abidw Add missing newlines to kmidiff's usage strings Renamed offset_offset_map type name into offset_offset_map_type Remove redundant (useless) typedef declaration Use an unordered map for canonical DIE offsets [abixml writer] Store pointers to emitted types rather than type-ids [abixml writer] Use an unordered set when appropriate Initialize naked canonical type Misc style fixes in abg-writer.cc Add missing comment to type declaration Update copyright year to tools/abidiff.cc Allow several kinds of reports to be emitted Initial implementation of a --leaf-changes-only option to abidiff Add a --leaf-changes-only option to abipkgdiff Add --full-impact option to kmidiff Add --impacted-changes option to kmidiff Cleanup a switch-case logic to avoid a GCC 7.2.1 warning Fix a indentation warning from GCC 7.2.1 Handle exceptions when global_config is not yet set in fedabipkgdiff Add a --suppressions option to fedabipkgdiff Remove useless vertical space from src/abg-writer.cc Allow setting options to instances of xml_writer::write_context Wire the --no-show-locs option to abidw Support systems where fts.h can't be used with _FILE_OFFSET_BITS set Bug 20670 - abipkgdiff aborts if $XDG_CACHE_HOME does not exist Bug 20887 - Show relative change of offsets Bug 20927 - Segfault when $HOME is not set Bug 21058 - abipkgdiff wrongly drops non-public types Bug 20476 - Compare virtual member functions when comparing classes Bug 21228 - Handle cloning union member functions Bug 21296 - Reporting diff of const ref against non-const ref aborts Bug 21567 - Fedabipkgdiff matches build distro names too tightly Bug 21627 - Libabigail doesn't consider translation unit compile dir Bug 21629 - equivalent DIEs must be of the same DIE source Bug 21630 - A this pointer DIE can be const Bug 21631 - Forgot a "break" statement in stv_to_elf_symbol_visibility Bug 21153 - abipkgdiff reports undetermined interface subtype changes Bug 21644 - abipkgdiff does not emit diagnostics about comparison errors Bug 21730 - Make abipkgdiff compare Linux Kernel packages as expected Bug 22015 - Failing to return global scope of a DIE in certain cases Bug 22122 - Fail to represent 'const array' Bug 22190 - crash in read_context::get_or_compute_canonical_die Bug 22438 - Emit a clear message when debug info is not found Mark Wielaard: Declare eval_last_constant_dwarf_sub_expr with [u]int64_t not [s]size_t. readdir_r() is deprecated, use readdir(). Fix -Wmisleading-indentation warning in abg-leaf-reporter.cc. Bug 22075 - data_member_diff_comp forgets data members names Ondrej Oprala: Fix a few remarks made by cppcheck abipkgdiff doesn't mention --no-default-suppression in help Check --enable-rpm dependencies more rigorously Properly report missing files for abipkgdiff Fix comparison used instead of an assignment Clean up scripts/* Fix cppcheck error: "Same iterator is used with different containers" cppcheck: mitigate performance warnings Bug 19272 - abipkgdiff doesn't report arch change Bug 18754 - Add the "--no-added-syms" option to abidiff Bug 20970 - Add a --annotate option to abidw Sinny Kumari: Add --self-compare option in fedabipkgdiff Check if return_codes list is empty in fedabipkgdiff Slava Barinov: Fix types in header to meet sources 1.0.rc6 ======= Chenxiong Qi: Update bash completion for fedabipkgdiff Add fedabipkgdiff bash completion to dist Add --abipkgdiff option in manual and bash completion Make fedabipkgdiff consistent with Libabigail's other tests Dodji Seketeli: Bug 20332 - too many ...'s counted as parameters Bug 20194 - Fail to recognize void type represented by DW_TAG_base_type Bug 20199 - Consider integral type synonyms as being equal Bug 20420 - Wrong ODR-based type comparison optimization on qualified type Bug 20534 - abipkgdiff wrongly displays the name of added binary files Bug 20740 - Broken check for dwarf_getalt in configure.ac Add a new overload for is_type_decl Better recognize qualified void type Fix spurious type size change report for distinct_diff Prepare support for symbol visibility control Add ABG_ASSERT_NOT_REACHED macro Cleanup is_class and is_compatible_with_class_type Generalize DIE source concept in DWARF reader Support DW_TAG_type_unit Control symbols exported from libabigail.so Don't walk diff trees indefinitely when applying suppressions Fix misleading indentation issues Do not emit empty namespaces in abixml Add new helper functions Pimplify the abigail::ir::scope_decl type Drop suppressed ABI artifacts from the IR Add default suppression specification for webkitgtk Add default suppression specifications for C++ binaries Better handle fedabipkgdiff dependencies detection Update reference output of runtestreaddwarf Define a new interned_string_set_type typedef Prevent infinite loops while comparing two function_type Apply ODR-based type comparison optimization to function types Cleanup class_decl inifite comparison detection Cleanup functions to detect infinite comparison of class_decl Cleanup namespace importing in abg-interned-str.h Canonicalize function types when reading from DWARF Fix abigail::ir::get_type_scope() Cleanup some entry points in abg-fwd.h Cleanup void and variadic parameter type interfaces Consider a method_decl as always being a member decl Factorize out parsing of integral types Factorize out string representation of array_type_def::subrange_type Avoid stripping typedefs too much Apply harmless and harmful filters in one pass Rename config::property_vector into config::properties_type Support empty properties in INI files Support union types Better diagnostics when wget is missing Lexicographically sort union data members in change reports Support reading data member offset from DW_AT_bit_offset Fix indentation in abg-writer.cc Fix offset type mismatch Fix a compiler warning issued by GCC 6.2.1 Avoid using size_t to get DWARF data Matthias Klose: Fix typo in abipkgdiff 1.0.rc5 ======= Chenxiong Qi: Bug 19428 - New fedabipkgdiff utility Bug 20085 - Add --dso-only option to fedabipkgdiff Bug 20135 - Make fedabipkgdiff compare ABIs using devel packages Add integration tests for fedabipkgdiff Fix package NVR comparison in fedabipkgdiff Use consistent string format in fedabipkgdiff Fix pep8 error in fedabipkgdiff Dodji Seketeli: Bug 19964 - Cannot load function aliases on ppc64 Bug 20015 - support file_name_not_regexp and soname_not_regexp in suppr specs Bug 20180 - Support system-wide suppression specifications Bug 19967 - System-level suppressions for glibc Fix python interpreter path for el6 Add doc, info, man and html-doc targets to top-level Makefile Update documentation to require doxygen and python-sphinx for building Make API documentation of thread pools visible Show SONAME of removed/added libraries in abipkgdiff Fix indentation in concepts manual Fix typo in concept manual Doc not show classes' inherited members in apidoc Fix mention of tool's name in abidiff error message Add several shortcuts to options for abicompat Fix indentation for abidiff manual Split suppression engine off of abg-comparison.{cc,h} Implement a [suppress_file] suppression directive Remove config.h.in from the repository Do not run fedabipkgdiff tests if --enable-fedabipkgdiff is turned off Update the COMMIT-LOG-GUIDELINES file Update the CONTRIBUTING file Support running "make check-valgrind" Fix a read passed-the-end in abg-dwarf-reader.cc Plug leak of diff_context_sptr after calling compute_diff Plug leak of regex_t in suppression engine Remove circular ref from class_decl::priv::definition_of_declaration Plug leak of shared private data of class_diff type Plug leak of debug info handles Fix invocation of delete operator in test-read-dwarf.cc Speedup diff node child insertion Plug leak of diffs of member variables of class type Avoid unnecessary computation of type name in suppression evaluation Minimize number of string::length calculation Light optimizations by passing reference to smart pointers around Optimize out some shared_ptr use Add missing API doc strings Enhance API doc for diff_context::add_diff Fix bash completion configure status Fix white space in abg-comparison.cc Fix whitespaces in autotools files Document how to handle regression tests in CONTRIBUTING Fix the number of removed functions in change report Make abi{pkg}diff filter out changes about private types Add a 'check-valgrind' target to the top-most Makefile.am Add test data for tests/runtestfedabipkgdiff.py Fix some wording in the Libabigail overview manual page Update reference to tools in libabigail-concepts manual Fix suppr spec wording in abipkgdiff manual Better diagnostics when abipkgdiff has an extra argument Add --abipkgdiff option to fedabipkgdiff Don't require all version symbol sections to present Escape all characters when reading a string in ini files Improve python modules detection Cleanup function_decl::parameter::get_pretty_representation Misc white space and comment cleanups Use ODR-based optimization on C/C++ translation unit only Misc cleanup in abg-reader.cc Sinny Kumari: Bug 19961 - Distinguish between PI executable and shared library Change parent directory for keeping extracted packages in abipkgdiff 1.0.rc4 ======= Dodji Seketeli: Bug 19844 - Cannot try to canonicalize a type that is being constructed Bug 19846 - variable decl associated with the wrong debug info section Bug 19867 - abipkgdiff skips symbolic links Bug 19885 - Cannot associate a function DIE to a symbol on powerpc64 Ease use of soname_regexp/file_name_regexp in suppr specs More docs about ABIDIFF_ABI_INCOMPATIBLE_CHANGE Update copyright dates for the manuals Fix typos on the web page Fix typos in the manual of abidiff Fix typos in the suppression specifications manual Fix a typo in include/abg-tools-utils.h Fix typos in comments in src/abg-dwarf-reader.cc Fix comments in tests/test-diff-pkg.cc Fix logs in abipkgdiff and add some more Roland McGrath: Fix typo in configure --enable-deb help text 1.0.rc3 ======= Dodji Seketeli: Upate build instructions on the website Bug 19138 - Failure to relate variables address from DWARF and ELF Include missing to abg-dwarf-reader.cc Make enum values take 64 bits on all platforms Use worker threads pattern to speed up some tests Sort the tests run in tests/ by running the slowest ones first Bug 19434 - invalid character in attribute value Bug 19141 - Libabigail doesn't support common ELF symbols Pass parm of elf_symbol::add_alias by reference Bug 19204 - libabigail aborts on DWARF referencing non-existing DIE Comparing aliases of the same symbol must be done by pointer Do not crash when looking up a type from global scope Fix abicompat's handling of library types not used by the application Fix synthesizing of pointer type Fix synthesizing of reference type Bug 19596 - Incorrect exit status for incompatible ABI change Use proper WIFEXITED and WEXITSTATUS macros to get exit code Bug 19604 - abidiff --suppressions doesn't complain about invalid file name Make abipkgdiff return correct exit code on usage error Make abipkgdiff check for the presence of suppression spec files Talk about mandatory properties in suppress_* directives Add a comment about libabigail needing elfutils 0.159 at least. Bug 19606 - Need better error message for invalid options Prefix abidiff error message with the 'abidiff' program name Emit more informational messages on unrecognized options Bug 19619 - failing to suppress added aliased function reports for C++ Add function lookup by linkage name to libabigail::corpus Bug 19638 - DWARF reader fails to link clone function to its declaration Add --verbose option to abidiff Bug 19658 - Type canonicalization slow for the 2nd binary loaded Add missing inequality operators for ABI artifacts Fix crash when handling templates with empty patterns Implement string interning for Libabigail Some small speed optimizations Bug 19706 - Core dump from abidiff with suppression Update mentions to the build dependencies in the doc Make libabigail link with pthread Add --verbose to abidw Fixup virtual member functions with linkage and no underlying symbol Bug 19596 - Suppressed removed symbol changes still considered incompatible Bug 19778 - diff_has_ancestor_filtered_out() loops forever Bug 19780 - abipkgdiff doesn't support parallel execution Fix reference to test file in Makefile.am Walk function_type_diff tree in a deterministic way Mark Wielaard: Fix GCC6 -Wmisleading-indentation warnings. Make make more silent. Remove defined but not used functions pointed out by GCC6. Ondrej Oprala: Escape the value of the filepath attribute. 1.0.rc2 ====== Dodji Seketeli: Fix regression on the support for alternate debug info files Lexicographically sort added/removed base classes in change report 1.0.rc1 ======= Dodji Seketeli: Bug 19336 - Better handle redundantly qualified reference types Bug 19126 - abidw segv on a dwz compressed version of r300_dri.so Bug 19355 - Libabigail slow on r300_dri.so Do not use designated initializers in abipkgdiff.cc Read enum values in the size_t and write them in ssize_t Do not abort when there is no binary to compare in a package Add missing new line to abidiff help message Constify is_qualified_type() Find more spots where to discriminate internal and non-internal names Do not forget to peel qualified type off when peeling types Fix comparison in qualified_type_diff::has_changes Avoid try/catch code paths when that is possible Fix internal name for pointers, typedefs and arrays Filter out harmless diagnostics glitches due to some ODR violation [PERF] Pass a bunch of perf-sensitive smart pointers by reference [PERF] Turn some pimpl pointers into naked pointers [PERF] Access naked pointers for canonical types and function types [PERF] Speedup comparing declaration-only class_decls Speed up class_decl::find_base_class Avoid adding the same base class twice Support two different variables having the same underlying symbol Add a NEWS file Fix abidw -v Ondrej Oprala: Add bash-completion scripts for the libabigail tools Abidiff: Remove doubled line in help. Fix a function doc Support printing the file, line and column information in change reports