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