From 204504db24f46c50ff0fca4b7a68b335e95dbb4b Mon Sep 17 00:00:00 2001 From: Dodji Seketeli Date: Mon, 27 Jun 2016 19:55:27 +0200 Subject: [PATCH] Update ChangeLog for 1.0.rc5 * ChangeLog: Update by doing "make update-changelog" in the build directory. Signed-off-by: Dodji Seketeli --- ChangeLog | 1273 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1273 insertions(+) diff --git a/ChangeLog b/ChangeLog index 15b8ee24..4459f7bb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1276 @@ +2016-06-27 Dodji Seketeli + + Update ChangeLog for 1.0.rc5 + * ChangeLog: Update by doing "make update-changelog" in the build + directory. + +2016-06-27 Dodji Seketeli + + Update NEWS file in preparation for 1.0.rc5 + * NEWS: update with the edited content of the command: + git shortlog libabigail-1.0.rc4..HEAD + +2016-06-27 Dodji Seketeli + + Fix python interpreter path for el6 + * tests/runtestdefaultsupprs.py.in: Use the python interpreter at + /usr/bin/python, not the one at /bin/python. + +2016-06-24 Dodji Seketeli + + Misc cleanup in abg-reader.cc + * src/abg-reader.cc (read_context::push_decl_to_current_scope): + Pass the decl smart pointer by value. + +2016-06-22 Dodji Seketeli + + Use ODR-based optimization on C/C++ translation unit only + * src/abg-ir.cc (strip_typedef): Set the translation unit of the + new ABI artifact. + (type_base::get_canonical_type_for): Perform the ODR-based + optimization only for ABI artifact in C and C++ language + translation units. + * src/abg-dwarf-reader.cc (build_ir_node_from_die): Assert that + the new ABI artifact has its translation unit set. + * src/abg-reader.cc (read_context::{push_decl_to_current_scope, + push_and_key_type_decl}): Set the translation unit of the current + decl, irrespective of if it was added to the current scope or not. + Assert that the decl that was newly pushed to the current scope is + added to the current translation unit. + +2016-06-10 Dodji Seketeli + + Misc white space and comment cleanups + * include/abg-ir.h (typedef type_or_decl_base): Cleanup comment. + * src/abg-ir.cc (struct type_or_decl_base::priv): Fix comment. + +2016-06-10 Dodji Seketeli + + Cleanup function_decl::parameter::get_pretty_representation + * src/abg-ir.cc + (function_decl::parameter::get_pretty_representation): Assert that + the environment is always non-nil. Then no needs to check for it + being non-nil anymore. Use is_type_decl instead of + dynamic_pointer_cast. + +2016-06-07 Chenxiong Qi + + Fix package NVR comparison in fedabipkgdiff + * configure.ac: Add new dependency. + * tests/runtestfedabipkgdiff.py.in (builds): Add new builds for + running tests to test selecting latest build from a package. + (packages): Add new package gnutls. + (GetPackageLatestBuildTest.{test_get_latest_one, + test_cannot_find_a_latest_build_with_invalid_distro}): Use new + builds of package gnutls to run tests. + * tools/fedabipkgdiff (cmp_nvr): New function used to compare nvrs + by Python built-in function sorted. + (Brew.listBuilds): Use the new cmp_nvr function. + +2016-06-06 Chenxiong Qi + + Bug 20135 - Make fedabipkgdiff compare ABIs using devel packages + * doc/manuals/fedabipkgdiff.rst: Add documentation for the new + --no-devel-pkg command line option, as well as for the new default + behaviour of taking devel packages into account during ABI + comparison. + * tools/fedabipkgdiff (PkgInfo): Add new attribute + devel_package. + (RPM.is_devel): New property to determine if rpm is a + development package. + (LocalRPM._find_rpm): New method to find a specific rpm. + (LocalRPM.find_debuginfo): Use new method _find_rpm to find + debuginfo package. + (LocalRPM.find_devel): New method to find an associated + development package. + (Brew.select_rpms_from_a_build): RPMs selector method is + changed to select development package also. + (abipkgdiff): Construct and run abipkgdiff with and without + --devel-pkg[12] options. + (magic_construct): Construct PkgInfo with development package. + (run_abipkgdiff): Run abipkgdiff against rpms with development + packages. + (diff_local_rpm_with_latest_rpm_from_koji): Find development + package, and call method abipkgdiff with development package. + (build_commandline_args_parser): add new option --no-devel-pkg. + * tests/runtestfedabipkgdiff.py.in (packages): Add new package + nss-util. + (builds): Add new builds of nss-utils, nss-util-3.12.6-1.fc14 + and nss-util-3.24.0-2.0.fc25. + (rpms): Add new associated rpms of the two new builds. + (AssertionHelper.assert_functions_changes_summary): New method + to match and assert functions changes summary. + (AssertionHelper.assert_abi_comparison_result): Changed to + support to help assert functions changes summary. + (MockGlobalConfig.{no_devel_pkg, check_all_subpackages}): New + fake options with default value for running tests. + (RPMTest.setUp): add new development package for running test + case. + (RPMTest.test_is_devel): New test to test is_devel property. + (RunAbipkgdiffTest.setUp): Add new development packages for + running test case. + (RunAbipkgdiffTest.{test_all_success, test_all_failure, + test_partial_failure}): Mock global config. + (RunAbipkgdiffWithDSOOnlyOptionTest): Removed. + (CompareABIFromCommandLineTest.test_compare_with_no_devel_pkg): + New test to test fedabipkgdiff with or without --no-devel-pkg + option. + * tests/data/Makefile.am: Add new rpms. + * tests/data/test-fedabipkgdiff/packages/nss-util/3.12.6/1.fc14/ + x86_64/nss-util-3.12.6-1.fc14.x86_64.rpm: New rpm for running + tests. + * tests/data/test-fedabipkgdiff/packages/nss-util/3.12.6/1.fc14/ + x86_64/nss-util-debuginfo-3.12.6-1.fc14.x86_64.rpm: New rpm for + running tests. + * tests/data/test-fedabipkgdiff/packages/nss-util/3.12.6/1.fc14/ + x86_64/nss-util-devel-3.12.6-1.fc14.x86_64.rpm: New rpm for + running tests. + * tests/data/test-fedabipkgdiff/packages/nss-util/3.24.0/2.0.fc25/ + x86_64/nss-util-3.24.0-2.0.fc25.x86_64.rpm: New rpm for running + tests. + * tests/data/test-fedabipkgdiff/packages/nss-util/3.24.0/2.0.fc25/ + x86_64/nss-util-debuginfo-3.24.0-2.0.fc25.x86_64.rpm: New rpm + for running tests. + * tests/data/test-fedabipkgdiff/packages/nss-util/3.24.0/2.0.fc25/ + x86_64/nss-util-devel-3.24.0-2.0.fc25.x86_64.rpm: New rpm for + running tests. + +2016-06-03 Dodji Seketeli + + Improve python modules detection + * configure.ac: Include + autoconf-archive/ax_check_python_modules.m4 rather than + autoconf-archive/ax_python_module.m4. Use AX_CHECK_PYTHON_MODULES + rather than AX_PYTHON_MODULE. + * Makefile.am: Add the new file + autoconf-archive/ax_check_python_modules.m4 to source distribution + and remove the older autoconf-archive/ax_python_module.m4 one. + * autoconf-archive/ax_check_python_modules.m4: New file. + * autoconf-archive/ax_python_module.m4: Remove. + +2016-05-30 Chenxiong Qi + + Add integration tests for fedabipkgdiff + * configure.ac: do not detect shutil module. + * tests/runtestfedabipkgdiff.py.in: do not import shutil + anymore. + (BUILT_ABIPKGDIFF): new global variable to reference the + abipkgdiff built from source code, as the new test case' tests + require this command directly rather than mocking the + global_config. + (test_data_dir): convert variable name to uppercase, + reference to the test data directory by absolute path instead of + relative path. + (TEST_TOPDIR): new global variable to use data directory as the + topdir passed to fedabpkgdiff to download rpms. + (TEST_DOWNLOAD_CACHE_DIR): new global variable referencing a + fake download cache directory for tests only. + (packages, builds, rpms): new global variables as a fake + storage holding packages, builds and rpms. + (AssertionHelper): new class helping to assert abipkgdiff + result easily. + (MockClientSession): new class to mock koji.ClientSession. + (MockGlobalConfig.abipkgdiff): set this option to global + variable BUILT_ABIPKGDIFF. + (MockKojiClientSessin): removed. + (mock_get_session): removed. + (GetPackageLatestBuildTest.{test_get_latest_one, + test_cannot_find_a_latest_build_with_invalid_distro, + test_cannot_find_a_latest_build_with_invalid_distro}): mock + koji.ClientSession with new class MockClientSession. Remove + invalid documentation from docstring. Use new package rather + than httpd. + (DownloadRPMTest.setUp): remove self.download_dir and use global + TEST_DOWNLOAD_CACHE_DIR. + (DownloadRPMTest.tearDown): do not remove download cache + directory. + (DownloadRPMTest.make_remote_file_url): do not omit positional + argument specifiers in string format. + (DownloadRPMTest.{test_succeed_to_download_a_rpm, + test_failed_to_download_a_rpm}): set fake download cache + directory to mocked get_download_dir in mock.patch decorator. + (BrewListRPMsTest.test_select_specific_rpms): use new + MockClientSession to mock koji.ClientSession. Rewrite test by + using the new package listed in global variable packages. + (RunAbipkgdiffWithDSOOnlyOptionTest.{test_abipkgdiff_with_dso_only, + test_abipkgdiff_without_dso_only}): set fake download cache + directory to mocked get_download_dir in mock.patch decorator. + (CompareABIFromCommandLineTest): new integration test case. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ + i686/dbus-glib-0.100.2-2.fc20.i686.rpm: new rpm for running tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ + i686/dbus-glib-debuginfo-0.100.2-2.fc20.i686.rpm: new rpm for + running tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ + i686/dbus-glib-devel-0.100.2-2.fc20.i686.rpm: new rpm for + running tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ + x86_64/dbus-glib-0.100.2-2.fc20.x86_64.rpm: new rpm for running + tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ + x86_64/dbus-glib-debuginfo-0.100.2-2.fc20.x86_64.rpm: new rpm + for running tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ + x86_64/dbus-glib-devel-0.100.2-2.fc20.x86_64.rpm: new rpm for + running tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ + i686/dbus-glib-0.106-1.fc23.i686.rpm: new rpm for running tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ + i686/dbus-glib-debuginfo-0.106-1.fc23.i686.rpm: new rpm for + running tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ + i686/dbus-glib-devel-0.106-1.fc23.i686.rpm: new rpm for running + tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ + x86_64/dbus-glib-0.106-1.fc23.x86_64.rpm: new rpm for running + tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ + x86_64/dbus-glib-debuginfo-0.106-1.fc23.x86_64.rpm: new rpm for + running tests. + * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ + x86_64/dbus-glib-devel-0.106-1.fc23.x86_64.rpm: new rpm for + running tests. + * tests/data/Makefile.am: add new rpms. + +2016-05-31 Dodji Seketeli + + Bug 19967 - System-level suppressions for glibc + * default.abignore: Add initial suppression specifications for + glibc. + +2016-05-31 Dodji Seketeli + + Escape all characters when reading a string in ini files + * src/abg-ini.cc (read_context::peek): Take an output parameter to + tell the caller when this function escaped the returned + character. Added an overload without this new parameter. + (read_context::read_string): Accept all characters as part of the + string. + * tests/data/test-diff-suppr/test7-var-suppr-9.suppr: New test + input. + * tests/data/test-diff-suppr/test7-var-suppr-report-9.txt: New + test reference output. + * tests/data/Makefile.am: Add the files above to source + distribution. + * tests/test-diff-suppr.cc (in_out_spec): Run a new comparison of + libtest7-var-suppr-v{0,1}.so this time using the new + test7-var-suppr-9.suppr specification that exercices a string with + the escaped characters that we were having difficulty with. + +2016-05-31 Dodji Seketeli + + Don't require all version symbol sections to present + * src/abg-dwarf-reader.cc (get_symbol_versionning_sections): Allow + returning just some of the three version-related section, not + necessarily all of them. Adjust comment. + (get_version_for_symbol): Be ready to not necessarily having the + three version-related sections available. + +2016-05-30 Dodji Seketeli + + Bug 20180 - Support system-wide suppression specifications + * doc/manuals/abidiff.rst: Document the default suppression + scheme, its interaction with the --supprs option and the new + --no-default option. + * doc/manuals/abipkgdiff.rst: Likewise. + * doc/manuals/fedabipkgdiff.rst: Likewise. + * configure.ac: Generate the tests/runtestdefaultsupprs.py file + from the new tests/runtestdefaultsupprs.py.in template. + * default.abignore: New file. + * Makefile.am: Add it to source distribution. + * src/Makefile.am: Define the ABIGAIL_ROOT_SYSTEM_LIBDIR + preprocessor macro that is set the value of the $libdir autotools + macro. + * include/abg-tools-utils.h: Update copyright years. + (get_system_libdir, get_default_system_suppression_file_path) + (get_default_user_suppression_file_path) + (load_default_system_suppressions) + (load_default_user_suppressions): Declare new functions + * src/abg-tools-utils.cc (get_system_libdir) + (get_default_system_suppression_file_path) + (get_default_user_suppression_file_path) + (load_default_system_suppressions) + (load_default_user_suppressions): Define new functions. + (is_regular_file): Amend this so that it return true for symlinks + to regular files too. + (is_dir): Amend this so that it returns true for symlinks to + directories too. + * tools/abidiff.cc (options::no_default_supprs): New data member. + (options::options): Initialize the new data member. + (display_usage): Display a new help string for the new + --no-default-suppression command line option. + (parse_command_line): Parse this new command line option. + (set_diff_context_from_opts): Load the default suppression + specifications, unless --no-default-suppression or --supprs was + provided. + * tools/abipkgdiff.cc (options::no_default_supprs): New data + member. + (options::options): Initialize the new data member. + (parse_command_line): Parse the new --no-default-suppression + command line option. + (main): Load the default suppression specifications, unless + --no-default-suppression or --supprs was provided. + * tools/fedabipkgdiff (abipkgdiff): Add --no-default-suppression + to the invocation of abipkgdiff if it was provided on the command + line. + (build_commandline_args_parser): Parse the new + --no-default-suppression command line option. + * tests/runtestdefaultsupprs.py.in: New test harness template. + * tests/Makefile.am: Add the new runtestdefaultsupprs.py to the + set of tests. + * tests/data/test-default-supprs/test0-type-suppr-0.suppr: New + test input. + * tests/data/test-default-supprs/test0-type-suppr-report-0.txt: Likewise. + * tests/data/test-default-supprs/test0-type-suppr-v0.o: Likewise. + * tests/data/test-default-supprs/test0-type-suppr-v1.o: Likewise. + * tests/data/test-default-supprs/dirpkg-1-dir-report-0.txt: + Likewise. + * tests/data/test-default-supprs/dirpkg-1-dir1: Likewise. + * tests/data/test-default-supprs/dirpkg-1-dir2: Likewise. + * tests/data/Makefile.am: Add new the new tests input above to + Makefile.am. + * tests/runtestcanonicalizetypes.sh.in: Pass + --no-default-suppression to abidiff invocations. + * tests/runtestdefaultsupprs.py.in: Likewise. + * tests/test-abidiff-exit.cc: Likewise. + * tests/test-diff-dwarf-abixml.cc: Likewise. + * tests/test-diff-filter.cc: Likewise. + * tests/test-diff-suppr.cc: Likewise. + * tools/abidiff.cc: Likewise. + +2016-05-30 Dodji Seketeli + + Add --abipkgdiff option to fedabipkgdiff + * tools/fedabipkgdiff (build_path_to_abipkgdiff): Define new + function. + (abipkgdiff): Invoke the new build_path_to_abipkgdiff() here. + (build_commandline_args_parser): Parse the new --abipkgdiff + option. + +2016-05-28 Dodji Seketeli + + Better diagnostics when abipkgdiff has an extra argument + * tools/abipkgdiff.cc (options::wrong_arg): New data member. + (parse_command_line): Set options::wrong_arg + to the wrong argument passed. + (main): Tell wrong argument case apart, and report it. + +2016-05-26 Dodji Seketeli + + Fix suppr spec wording in abipkgdiff manual + * doc/manuals/abipkgdiff.rst: Fix the wording for the --suppr + option. + +2016-05-26 Dodji Seketeli + + Update reference to tools in libabigail-concepts manual + * doc/manuals/libabigail-concepts.rst: Do not refer just to + abidiff when talking about suppression specification. Also + refer to abipkgdiff and other tools. + +2016-05-30 Dodji Seketeli + + Fix some wording in the Libabigail overview manual page + * doc/manuals/libabigail-overview.rst: Cleanup some confusion + about Abigail-the-framework and libabigail-the-library. + +2016-05-25 Dodji Seketeli + + Add test data for tests/runtestfedabipkgdiff.py + * tests/data/test-fedabipkgdiff/dbus-glib-0.104-3.fc23.x86_64.rpm: + New file. + * tests/data/test-fedabipkgdiff/dbus-glib-0.80-3.fc12.x86_64.rpm: Likewise. + * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm: + Likewise. + * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm: + Likewise. + +2016-05-25 Dodji Seketeli + + Add a 'check-valgrind' target to the top-most Makefile.am + * Makefile.am (check-valgrind): Add this new target here. + +2016-05-21 Chenxiong Qi + + Bug 20085 - Add --dso-only option to fedabipkgdiff + * tools/fedabipkgdiff: Do not import shlex anymore. + (ABIDIFF_OK, ABIDIFF_ERROR, ABIDIFF_USAGE_ERROR) + (ABIDIFF_ABI_CHANGE): New global constant variables. + (abipkgdiff): Pass the --dso-only option to the abipkgdiff command + line tool, if that option was passed to fedabipkgdiff. Build this + abipkgdiff command invocation from an array of strings, rather + than from formatting a string. This makes us get rid of the shlex + module. Fix typo in dry-run logged string. If there was an + internal error reported by abipkgdiff, report it to stderr. + (build_commandline_args_parser): Parse the --dso-only command line + option. + * tests/runtestfedabipkgdiff.py.in (fedabipkgdiff_mod): Fix a typo + in initializing this global variable. + (test_data_dir): New global variable, that is used to reference + tests/data/test-fedabipkgdiff/. + (RunAbipkgdiffTest.{test_all_success, test_partial_failure}): Fix + typo. + (Mockglobalconfig.{koji_topdir, dso_only}): New data members. + (GetPackageLatestBuildTest.{test_get_latest_one, + test_cannot_find_a_latest_build_with_invalid_distro, + test_succeed_to_download_a_rpm, test_failed_to_download_a_rpm}): + Fix typo. + (BrewListRPMsTest.test_select_specific_rpms): Fix typo. + (RunAbipkgdiffWithDSOOnlyOptionTest): New test case class. + * doc/manuals/fedabipkgdiff.rst: update document for this new + --dso-only option. + * tests/data/test-fedabipkgdiff/dbus-glib-0.104-3.fc23.x86_64.rpm: + New symbolic link to + test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64.rpm. + * tests/data/test-fedabipkgdiff/dbus-glib-0.80-3.fc12.x86_64.rpm: + New symbolic link to + test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm. + * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm: + New symbolic link to + test-diff-pkg/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm. + * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm: + New symbolic link to + test-diff-pkg/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm. + * tests/data/Makefile.am: add tests/data/test-fedabipkgdiff so + that this data directory and all things within it can be included + in tarball. + +2016-05-24 Sinny Kumari + + Change parent directory for keeping extracted packages in abipkgdiff + * tools/abipkgdiff.cc (extracted_packages_parent_dir): Change + TMPDIR environment variable to XDG_CACHE_HOME and default + temporary parent directory to $HOME/.cache/libabigail/ + +2016-05-20 Dodji Seketeli + + Make abi{pkg}diff filter out changes about private types + * include/abg-comp-filter.h: Update copyright year. + * src/abg-comp-filter.cc (has_virtual_mem_fn_change): Make this + static function become exported. + (has_virtual_mem_fn_change): Declare new function. + * include/abg-suppression.h + (suppression_base::{get,set}_is_artificial): Declare new + accessors. + (type_suppression::get_source_locations_to_keep): Return an + unordered set of strings, not a vector. Add a non-const overload. + (type_suppression::set_source_locations_to_keep): Set an unordered + set of strings, not a vector. + * src/abg-suppression.cc (suppression_base::priv::is_artificial_): + New data member. + (suppression_base::priv::priv): Initialize the new data member. + (suppression_base::{get,set}_is_artificial): Define new accessors. + (type_suppression::priv::source_locations_to_keep_): Change the + vector of strings representing source file names into unordered + set of string. + (type_suppression::get_source_locations_to_keep): Return an + unordered set of strings, not a vector. Define a non-const + overload. + (type_suppression::set_source_locations_to_keep): Set an unordered + set of strings, not a vector. + (type_suppression::suppresses_diff): Make this suppress virtual + member function diffs if the enclosing type of the changed virtual + member is suppressed by the current type_suppression. + (read_type_suppression): Adjust to use the fact that the source + locations are not stored in an unordered set, not in a vector + anymore. Otherwise, using a vector here make things too slow. + (type_suppression::suppresses_type): Likewise. Also, If the type + we are looking at has no location because it's a true opaque type + and if the current suppression is an artificial suppression that + is meant to suppress change reports about non-public types, then + suppress the type. + * include/abg-tools-utils.h (gen_suppr_spec_from_headers): Declare + new public function. + * src/abg-tools-utils.cc (PRIVATE_TYPES_SUPPR_SPEC_NAME): Define a + new constant variable. + (handle_fts_entry): Define new static function. + (gen_suppr_spec_from_headers): Define new public function. + * src/abg-comparison.cc + (corpus_diff::priv::apply_suppressions_to_added_removed_fns_vars): + If a type suppression suppresses a given class C, make it change + added/removed virtual functions whose enclosing type is C. + * tools/abidiff.cc (options::{headers_dir1, headers_dir2}): New + data members. + (display_usage): Add help strings for --headers-dir1 and + --headers-dir2. + (parse_command_line): Parse the new --headers-dir1 and + --headers-dir2 options. + (set_diff_context_from_opts): Generate suppression specifications + to filter out changes on private types, if --headers-dir1 or + --headers-dir2 is given. + * tools/abipkgdiff.cc (options::{devel_package1, devel_package2}): + New data members. + (typedef package_sptr): New typedef. + (enum package::kind): New enum. + (package::kind_): New data member. This replaces ... + (package::is_debug_info_): ... this data member. + (package::{devel_package_, private_types_suppressions_}): New data + members. + (package::package): Adjust. + (package::get_kind): Define new member function. This replaces + ... + (package::is_debug_info): ... this member function overload. + (package::set_kind): Define new member functin. It replaces ... + (package::is_debug_info): ... this member function overload. + (package::{devel_package, private_types_suppressions}): Define new + accessors. + (package::erase_extraction_directies): Erase the sub-directory + where development packages are extracted to. + (compare_args::private_types_suppr{1,2}): New data members. + (compare_args::compare_args): Adjust. + (display_usage): Add help strings for --devel-pkg1/--devel-pkg2. + (compare): Make the overload that compares elf files take private + types suppressions. Add the private types suppressions to the + diff context. + (pthread_routine_compare): Adjust the call to compare. + (maybe_create_private_types_suppressions): Define new static + function. + (pthread_routine_extract_pkg_and_map_its_content): If a devel + package was specified for the main package then extract it in + parallel with the other package extraction. When the extraction + is done, create private types suppressions by visiting the + directories that contain the header files. + (compare): In the overload that compares packages by scheduling + comparison of individual elf files that are in the packages, pass + in the private type suppressions too. + (parse_command_line): Parse the new --devel-pkg{1,2} command line + options. + (main): Associate the devel package to the main package, if the + --devel-pkg{1,2}. + * doc/manuals/abidiff.rst: Add documentation about the new + --headers-dir1 and --headers-dir2 options. + * doc/manuals/abipkgdiff.rst: Likewise, add documentation about + the new --devel-pkg1 and --devel-pkg2 libraries. + * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: + New test reference output. + * tests/data/test-diff-pkg/tbb-devel-4.1-9.20130314.fc22.x86_64.rpm: + New test input package. + * tests/data/test-diff-pkg/tbb-devel-4.3-3.20141204.fc23.x86_64.rpm: Likewise. + * tests/test-diff-pkg.cc b/tests/test-diff-pkg.cc + (InOutSpec::{first,second}_in_devel_package_path): New data + members. + (in_out_specs): Adjust. Also, add a new entry describing the new + test inputs above. + (test_task::perform): When the new test entry contains devel + packages, pass them to abipkgdiff using the --devel1 and --devel2 + options. + * tests/data/test-diff-suppr/test30-include-dir-v0/test30-pub-lib-v0.h: + A new test input source code. + * tests/data/test-diff-suppr/test30-include-dir-v1/test30-pub-lib-v1.h: Likewise. + * tests/data/test-diff-suppr/test30-priv-lib-v0.cc: Likewise. + * tests/data/test-diff-suppr/test30-priv-lib-v0.h: Likewise. + * tests/data/test-diff-suppr/test30-priv-lib-v1.cc: Likewise. + * tests/data/test-diff-suppr/test30-priv-lib-v1.h: Likewise. + * tests/data/test-diff-suppr/test30-pub-lib-v0.cc: Likewise. + * tests/data/test-diff-suppr/test30-pub-lib-v0.so: Add new test + binary input. + * tests/data/test-diff-suppr/test30-pub-lib-v1.cc: Add new test + input source code. + * tests/data/test-diff-suppr/test30-pub-lib-v1.so: Add new test + binary input. + * tests/data/test-diff-suppr/test30-report-0.txt: Add new test + reference output. + * tests/data/test-diff-suppr/test30-report-1.txt: Add new test + reference output. + * tests/test-diff-suppr.cc (InOutSpec::headers_dir{1,2}): New data + members. + (InOutSpec::abidiff_options): Renamed the bidiff_options data + member into this. + (in_out_specs): Adjust. Also, added the new test input above to + this. + (main): Adjust to invoke abidiff with the new --hd1 and --hd2 + options if the input specs for the tests has the new + InOutSpec::headers_dir{1,2} data member set. Renamed bidiff into + abidiff. + * tests/data/Makefile.am: Add the new test inputs to the source + distribution. + +2016-05-24 Dodji Seketeli + + Fix the number of removed functions in change report + * src/abg-suppression.cc (corpus_diff::report): Show the net + number of removed functions, not the total number of the removed + functions. + +2016-05-23 Dodji Seketeli + + Document how to handle regression tests in CONTRIBUTING + * CONTRIBUTING: Add a section about regression tests. + * Makefile.am: Add a check-valgrind-recursive target. + +2016-05-21 Dodji Seketeli + + Fix whitespaces in autotools files + * configure.ac: Fix some white spaces. + * tests/Makefile.am: Likewise. + +2016-05-22 Dodji Seketeli + + Fix white space in abg-comparison.cc + * src/abg-comparison.cc (struct diff_context::priv): Fix indentation. + +2016-05-21 Dodji Seketeli + + Fix bash completion configure status + * configure.ac: If bash completion is disabled, say so. + +2016-05-22 Dodji Seketeli + + Enhance API doc for diff_context::add_diff + * src/abg-comparison.cc (diff_context::add_diff): Enhance the API + doc string. + +2016-05-20 Dodji Seketeli + + Add missing API doc strings + * src/abg-comparison.cc (diff::diff) + (decl_diff_base::decl_diff_base, distinct_diff::distinct_diff) + (base_diff::base_diff, scope_diff::scope_diff) + (fn_parm_diff::fn_parm_diff) + (function_type_diff::function_type_diff) + (type_decl_diff::type_decl_diff, typedef_diff::typedef_diff) + (translation_unit_diff::translation_unit_diff) + (corpus_diff::corpus_diff): Add missing API doc strings. + +2016-05-20 Dodji Seketeli + + Optimize out some shared_ptr use + * include/abg-ir.h (pointer_type_def::get_naked_pointed_to_type): + Declare new member function. + * src/abg-ir.cc (pointer_type_def::priv::naked_pointed_to_type_): + New data member. + (pointer_type_def::priv::priv): Adjust to initialize the new data + member. + (pointer_type_def::pointer_type_def): Adjust to use the + constructor pointer_type_def::priv::priv to initialize the + pointed-to type (including its new naked pointer variant). So we + do not have to initialize the priv_->pointed_to_type_ explicitely + in the constructor anymore. + (pointer_type_def::get_naked_pointed_to_type): Define new data + member. + (pointer_type_def::get_qualified_name): Use a naked pointer to the + pointed-to type, rather than a smart pointer. + +2016-05-20 Dodji Seketeli + + Light optimizations by passing reference to smart pointers around + * include/abg-fwd.h (get_type_name): Take a reference to type_sptr. + * src/abg-ir.cc (get_type_name): Take a reference to type_sptr. + (suppression_base::priv::{get_file_name_regex, + get_file_name_not_regex, get_soname_regex, get_soname_not_regex}): + Return a reference to regex_t_sptr. + +2016-05-20 Dodji Seketeli + + Minimize number of string::length calculation + * src/abg-tools-utils.cc (string_ends_with): Call string::length + just once on each instance of string that matters. + +2016-05-20 Dodji Seketeli + + Avoid unnecessary computation of type name in suppression evaluation + * src/abg-suppression.cc (type_suppression::suppresses_type): If + neither the type suppression "name" or "name_regex" properties + where provided in the suppression specification, then do not try + to look at the type name. + +2016-05-22 Dodji Seketeli + + Plug leak of diffs of member variables of class type + * include/abg-comparison.h (diff_wptr, unordered_diff_sptr_set): New typedefs. + (struct diff_sptr_hasher): Define new type. + (diff_context::keep_diff_alive): Declare new member function. + (diff::children_nodes): Return a vector of diff*, rather than a + vector of diff_sptr. + * src/abg-comparison.cc (diff_context::priv::live_diffs_): New + data member. + (diff_context::keep_diff_alive): Define new data member. + (diff::priv::children_): Make this be a vector of diff*, rather + than a vector of diff_sptr. + (diff_less_than_functor::operator()): Add a new overload for + diff*. Make the existing overload of diff_sptr use the new one. + (diff::children_nodes): Adjust; + (diff::append_child_node): Make sure the child node is kept + alive. Only add the naked pointer to the child node to the vector + of children. + (diff::traverse): Adjust. + (var_diff::priv::type_diff_): Make this be a weak pointer, rather + than a shared pointer. + (var_diff::type_diff): The var_diff::priv::type_diff_ data member + is now a weak pointer, so make this accessor convert it to a + shared pointer. + (corpus_diff::priv::children_): Turn this into a vector of diff*, + rather than a vector of diff_sptr. + (corpus_diff::children_nodes): Adjust. + (corpus_diff::append_child_node): Make sure the child node is kept + alive. Only add the naked pointer to the child node to the vector + of children. + (category_propagation_visitor::visit_end): Adjust. + (suppression_categorization_visitor::visit_end): Adjust. + (redundancy_marking_visitor::{visit_begin, visit_end}): Adjust. + +2016-05-20 Dodji Seketeli + + Speedup diff node child insertion + * src/abg-comparison.cc (corpus_diff::append_child_node): Insert + the new child at the right point in the vector of children, so + that it remains sorted. + +2016-05-21 Dodji Seketeli + + Fix invocation of delete operator in test-read-dwarf.cc + * tests/test-read-dwarf.cc (main): Call delete[], not delete. + +2016-05-22 Dodji Seketeli + + Plug leak of debug info handles + * configure.ac: Check the presence of dwarf_getalt in libdw. If + it's present, define the preprocessor macro + LIBDW_HAS_DWARF_GETALT. Update the autoconf configuration + summary. + * src/abg-dwarf-reader.cc: Add config.h. + (find_alt_debug_info_location): Factorize this out of ... + (find_alt_debug_info): ... this function. Use dwarf_getalt if + present, otherwise, keep using dwfl_standard_find_debuginfo. In + the later case, return the file descriptor opened to access the + alternate debug info, by parameter, so that the caller can fclose + it. + (read_context::alt_fd_): New data member. + (read_context::read_context): Initialize the new alt_fd_ data + member. + (read_context::load_debug_info): Store the file descriptor used to + access the alternate debug info into the new alt_fd_ data member. + (read_context::~read_context): New desctructor. + (get_soname_of_elf_file, get_type_of_elf_file): Free the elf + handle. + (read_context::load_debug_info): Be paranoid in making sure we + never override alt_dwarf_. + * tests/data/test-alt-dwarf-file/test0-report.txt: Adjust. + +2016-05-22 Dodji Seketeli + + Plug leak of shared private data of class_diff type + * include/abg-comparison.h (class_diff::get_priv): Declare new + member function. + (class_diff::get_priv): Define new member function. + (class_diff::{chain_into_hierarchy, base_changes, deleted_bases, + inserted_bases, changed_bases, base_changes, member_types_changes, + member_types_changes, data_members_changes, inserted_data_members, + deleted_data_members, member_fns_changes, changed_member_fns, + member_fns_changes, deleted_member_fns, inserted_member_fns, + member_fn_tmpls_changes, member_class_tmpls_changes, + member_class_tmpls_changes, report}): Rather than accessing + class_diff::priv directly, use the new class_diff::get_priv. + +2016-05-21 Dodji Seketeli + + Remove circular ref from class_decl::priv::definition_of_declaration + * include/abg-ir.cc (class_decl::get_definition_of_declaration): + Return a shared pointer, rather than a reference to a shared pointer. + * src/abg-ir.cc (class_decl::priv::definition_of_declaration_): + Make this be a weak pointer. + (class_decl::get_definition_of_declaration): + Likewise. And return the shared pointer built out of the weak + pointer we have in there now. + +2016-05-21 Dodji Seketeli + + Plug leak of regex_t in suppression engine + * include/abg-sptr-utils.h (build_sptr): Declare an overload that + allocates a T* and wraps it into a shared_ptr. + (build_sptr): Declare a specialization for regex_t. + * src/abg-corpus.cc (build_sptr()): Define the + specialization here. + * src/abg-suppression.ccp + (suppression_base::priv::{get_file_[not]_name_regex, + get_soname_[not]_regex}): Use the new build_sptr(). + (type_suppression::priv::{get_type_name_regex, + get_source_location_to_keep_regex}): Likewise. + (function_suppression::parameter_spec::priv::get_type_name_regex): + Likewise. + (function_suppression::priv::{get_name_regex, + get_return_type_regex, get_symbol_name_regex, + get_symbol_version_regex}): Likewise. + (variable_suppression::priv::{get_name_regex, + get_symbol_name_regex, get_symbol_version_regex, + get_type_name_regex}): Likewise. + +2016-05-18 Dodji Seketeli + + Plug leak of diff_context_sptr after calling compute_diff + * src/abg-comparison.cc (diff::priv::ctxt_): Make this a weak_ptr. + (diff::priv::get_context): Convert the weak pointer to the context + into a shared_ptr and return it. + (diff::priv::is_filtered_out): Adjust to use + diff::priv::get_context() to access the context. + (diff::context): Likewise. + (corpus_diff::priv::ctxt_): Make this a weak_ptr. + (corpus_diff::priv::priv): Add a new overload that takes two + corpora and a diff context. + (corpus_diff::priv::get_context): Convert the weak pointer to the + context into a shared_ptr and return it. + (corpus_diff::priv::ensure_lookup_tables_populated): Adjust to use + the new corpus_diff::priv::get_context to get the context. + (variable_is_suppressed): Likewise. + (corpus_diff::priv::{apply_suppressions_to_added_removed_fns_vars, + apply_filters_and_compute_diff_stats, emit_diff_stats, + categorize_redundant_changed_sub_nodes, + clear_redundancy_categorization}): Likewise. + (corpus_diff::{corpus_diff, context, + apply_filters_and_suppressions_before_reporting}): Adjust. + * tools/abipkgdiff.cc (compare): Make the overload that compares + elf binaries take a diff context output parameter. After the + context is created by this function, it's return to the caller, so + that it's life time is bound to the scope this function was + called from. + (pthread_routine_compare): Create a shared pointer to hold a + reference on a diff context. Pass that shared pointer by + reference to the compare function that compares elf binaries. + Rather than storing corpora in the reports_map, (as those corpora + would then out-live the diff context and thus create memory + corruption issues), emit the report directly into an ostringstream + and store that stream in reports_map. + (compare): In the overoad that compares packages, rather than + trying to get corpora from the report_map, just emit the content + of the ostringstream that is now there. + +2016-05-22 Dodji Seketeli + + Fix a read passed-the-end in abg-dwarf-reader.cc + * src/abg-dwarf-reader.cc (lookup_symbol_from_gnu_hash_tab): Do + not read passed the end of the array. + +2016-05-21 Dodji Seketeli + + Support running "make check-valgrind" + * autoconf-archive/ax_valgrind_check.m4: Add new file. Copied it + from http://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html. + * configure.ac: Include the new ax_valgrind_check.m4 file. + Initialize the valgrind checking on tests. Update the configure + status. + * tests/test-valgrind-suppressions.supp: New valgrind suppression + file to silence memcheck leak errors from python. + * tests/Makefile.am: Add test-valgrind-suppressions.supp to source + distribution. Add check-valgrind-memcheck-recursive target. + +2016-05-22 Dodji Seketeli + + Update the CONTRIBUTING file + * CONTRIBUTING: Cleanup. + +2016-05-22 Dodji Seketeli + + Update the COMMIT-LOG-GUIDELINES file + * COMMIT-LOG-GUIDELINES: Various enhancements. + +2016-05-16 Dodji Seketeli + + Do not run fedabipkgdiff tests if --enable-fedabipkgdiff is turned off + * tests/Makefile.am: Make running runtestfedabipkgdiff be + dependent on ENABLE_FEDABIPKGDIFF. + +2016-05-13 Chenxiong Qi + + Fix pep8 error + * tools/fedabipkgdiff (build_commandline_args_parser): Fix + PEP8 error, line is too long. + +2016-05-13 Chenxiong Qi + + Use consistent string format + * tools/fedabipkgdiff (download_rpm): do not omit positional + argument specifiers in string format. + +2016-05-16 Dodji Seketeli + + Remove config.h.in from the repository + * config.h.in: Remove from repository. + +2016-02-09 Chenxiong Qi + + Bug 19428 - New fedabipkgdiff utility + * autoconf-archive/ax_compare_version.m4: New file copied from the + autoconf-archive project. + * autoconf-archive/ax_prog_python_version.m4: Likewise. + * autoconf-archive/ax_python_module.m4: Likewise. + * Makefile.am: Add the new files above to the source distribution. + * configure.ac: Include the new m4 macros from the autoconf + archive. Add a new --enable-fedabipkgdiff option. Update the + report at the end of the configure process to show the status of + the fedabipkgdiff feature. Add check for prerequisite python + modules argparse, glob, logging, os, re, shlex, subprocess, sys, + itertools, urlparse, itertools, shutil, unittest, xdg, koji and + mock. These are necessary for the unit test of + fedabipkgdiff. Generate tests/runtestfedabipkgdiff.py into the + build directory, from the tests/runtestfedabipkgdiff.py.in input + file. + * tools/Makefile.am: Include the fedabipkgdiff to the source + distribution and install it if the "fedabipkgdiff" feature is + enabled. + * tests/Makefile.am: Rename runtestfedabipkgdiff.sh into + runtestfedabipkgdiff.py. Add the new runtestfedabipkgdiff.py.in + autoconf template file in here. + * tests/runtestfedabipkgdiff.py.in: New unit test file. + * tools/fedabipkgdiff: New fedabipkgdiff tool. + * doc/manuals/fedabipkgdiff.rst: New manual. + +2016-05-07 Dodji Seketeli + + Implement a [suppress_file] suppression directive + * doc/manuals/libabigail-concepts.rst: Document the new + 'suppress_file' directive. + * include/abg-suppression.h (file_suppression): Define new class. + (file_suppression_sptr): Define new typedef. + (is_file_suppression, file_is_suppressed): Declare new functions. + * src/abg-suppression.cc (): + (read_file_suppression, is_file_suppression, file_is_suppressed): + Define new functions. + (file_suppression::{file_suppression, suppresses_file, + ~file_suppression}): Define new member functions. + * tools/abidiff.cc (main): If a suppression specification + suppresses one of the input files, then do not perform the + comparison. + * tools/abipkgdiff.cc (compare): If a suppression specification + suppresses a file that is to be compared, then do not perform the + comparison. + * tools/abicompat.cc (create_diff_context): New static function. + (perform_compat_check_in_normal_mode) + (perform_compat_check_in_weak_mode): Adjust to take a context in + parameter. Do not create a diff context here anymore, do not load + suppression files here either. + (main): Use the new create_diff_context to create a diff context + and initialize it, including loading suppression specifications. + If any suppression specification suppresses a file to load, then + do not load perform any compatibility checking. Adjust + invocations of perform_compat_check_in_weak_mode and + perform_compat_check_in_normal_mode to pass the diff context. + * tests/data/test-diff-suppr/test0-type-suppr-3.suppr: New test + input. + * tests/data/test-diff-suppr/test0-type-suppr-4.suppr: Likewise. + * tests/data/test-diff-suppr/test0-type-suppr-report-4.txt: Likewise. + * tests/data/test-diff-suppr/test0-type-suppr-5.suppr: Likewise. + * tests/data/test-diff-suppr/test0-type-suppr-report-5.txt: + Likewise. + * tests/data/test-diff-suppr/test0-type-suppr-6.suppr: Likewise. + * tests/data/test-diff-suppr/test0-type-suppr-report-6.txt: + Likewise. + * tests/data/test-diff-suppr/test0-type-suppr-report-7.txt: + Likewise. + * tests/test-diff-suppr.cc (in_out_specs): Use the new test + inputs. + * tests/data/test-abicompat/test0-fn-changed-1.suppr: New test + input. + * tests/data/test-abicompat/test0-fn-changed-report-3.txt: + Likewise. + * tests/test-abicompat.cc (in_out_specs):: Use the new test + inputs. + * tests/data/Makefile.am: Add the new test material to source + distribution. + +2016-05-07 Dodji Seketeli + + Split suppression engine off of abg-comparison.{cc,h} + * include/Makefile.am: Add abg-suppression.h to source + distribution. + * include/abg-comparison.h: Remove abg-ini.h include directive. + (suppression_sptr, suppressions_type): Move these typedefs to + abg-fwd.h. + (class suppression_base, type_suppression) + (type_suppression::insertion_range) + (type_suppression::insertion_range::boundary) + (type_suppression::insertion_range::integer_boundary) + (type_suppression::insertion_range::fn_call_expr_boundary) + (function_suppression, function_suppression::parameter_spec) + (variable_suppression): Move these type definitions to the new + abg-suppression.h. + (read_suppressions, is_type_suppression, is_integer_boundary) + (is_fn_call_expr_boundary, is_function_suppression) + (is_variable_suppression, operator&) + (operator|): Move these function declarations to the new + abg-suppression.h. + (type_suppression, type_suppression_sptr, type_suppression_type) + (function_suppression, function_suppression_sptr) + (function_suppressions_type, variable_suppression) + (variable_suppression_sptr, variable_suppressions_type): Move + these forward declaration and typedefs to the new + abg-suppression.h. + (diff_context::suppressions): Adjust return type to + suppr::suppressions_type&. + (diff_context::add_suppression): Adjust parameter type to + suppr::suppressions_sptr. + (diff_context::add_suppressions): Adjust parameter type + suppr::suppressions_type&. + (is_type_diff, is_decl_diff, is_var_diff, is_function_decl_diff) + (is_pointer_diff, is_reference_diff, is_fn_parm_diff) + (is_base_diff, is_child_node_of_function_parm_diff) + (is_child_node_of_base_diff): Declare these new functions. They + were previously static, local to abg-comparison.cc only. Now they + need to be exported because they are used by the suppression + engine's code that now lives in its one files. + * include/abg-fwd.h (suppr::{suppression_base, suppression_sptr, + suppressions_type}): Forward declare these here. + * include/abg-suppression.h (class suppression_base) + (type_suppression, type_suppression::insertion_range) + (type_suppression::insertion_range::boundary) + (type_suppression::insertion_range::integer_boundary) + (type_suppression::insertion_range::fn_call_expr_boundary) + (function_suppression, function_suppression::parameter_spec) + (variable_suppression): Move these type definitions here, in the + namespace suppr. + (read_suppressions, is_type_suppression, is_integer_boundary) + (is_fn_call_expr_boundary, is_function_suppression) + (is_variable_suppression, operator&) + (operator|): Move these function decalration here, in the + namespace suppr. + (type_suppression_sptr, type_suppressions_type) + (function_suppression_sptr, function_suppressions_type) + (variable_suppression_sptr, variable_suppressions_type): Move + these typedefs here, in the namespace suppr. + * src/Makefile.am: add src/abg-suppression.cc to source + distribution. + * src/abg-comparison.cc (is_type_diff, is_decl_diff, is_var_diff) + (is_function_decl_diff, is_pointer_diff, is_reference_diff) + (is_reference_or_pointer_diff, is_fn_parm_diff, is_base_diff) + (is_child_node_of_function_parm_diff, is_child_node_of_base_diff): + Export these functions. + (*suppression*): Move all the suppression-related definitions to + the new abg-suppression.cc. + * src/abg-suppression.cc: New file. Contains all the *suppression* + definitions from src/abg-comparison.cc, that are put in the suppr + namespace. + * tools/abicompat.cc: Adjust. + * tools/abidiff.cc: Likewise. + * tools/abipkgdiff.cc: Likewise. + +2016-05-08 Dodji Seketeli + + Fix indentation for abidiff manual + * doc/manuals/abidiff.rst: Fix indentation for the --suppression + paragraph. + +2016-05-08 Dodji Seketeli + + Add several shortcuts to options for abicompat + * doc/manuals/abicompat.rst: Update documentation. + * tools/abicompat.cc (display_usage): Update help strings. + (parse_command_line): Add shortcuts --suppr, --appd, --libd1 and + --libd2. + +2016-05-08 Dodji Seketeli + + Update copyright year in tools/abicompat.cc + * tools/abicompat.cc: Update copyright years to 2016. + +2016-05-07 Dodji Seketeli + + Fix mention of tool's name in abidiff error message + * src/abg-tools-utils.cc (emit_prefix): Try to emit the prefix + only if the program name was provided. + * abidiff.cc (maybe_check_suppression_files): Pass the name of the + tool to the check_file function. + +2016-05-07 Dodji Seketeli + + Update copyright year on abg-comparison.h + * include/abg-comparison.h: Update copyright year. + +2016-05-08 Dodji Seketeli + + Doc not show classes' inherited members in apidoc + * doc/api/libabigail.doxy: Don't show inherited member functions + or variables of a given class. + +2016-05-08 Dodji Seketeli + + Fix typo in concept manual + * doc/manuals/libabigail-concepts.rst: Do not refer to abidiff + specifically for suppressions because several tools use + suppressions. + +2016-05-08 Dodji Seketeli + + Fix indentation in concepts manual + * doc/manuals/libabigail-concepts.rst: Fix indentation. + +2016-05-06 Dodji Seketeli + + Add some apidoc to dwarf_reader + * include/abg-dwarf-reader.h (namespace dwarf_reader): Add apidoc. + (enum elf_type): Add an apidoc for each enumerator. + * src/abg-dwarf-reader.cc (get_type_of_elf_file): Add an apidoc + for the 'type' parameter. + +2016-04-28 Dodji Seketeli + + [abipkgdiff] Show SONAME of removed/added libraries + * tools/abipkgdiff.cc (abi_diff::{added,removed}_binaries): Change + the type of these data member from vector to + vector. + (compare): Adjust. Show the soname of added/removed binaries. + +2016-04-27 Dodji Seketeli + + Bug 20015 - support file_name_not_regexp and soname_not_regexp in suppr specs + * include/abg-comparison.h + (suppression_base::{get,set}_file_name_not_regex_str): Declare new + member functions. + (suppression_base::{get,set}_soname_not_regex_str): Likewise. + (suppression_base::{names,sonames}_of_binaries_match): Likewise. + * src/abg-comparison.cc + (suppression_base::priv::get_file_name_regex): Fix comment. + (suppression_base::priv::get_file_name_not_regex): New member + function. + (suppression_base::priv::get_soname_regex): Fix comment. + (suppression_base::priv::get_soname_not_regex): New member + function. + (suppression_base::{get,set}_file_name_not_regex_str): Define new + member functions. + (suppression_base::{get,set}_soname_not_regex_str): Likewise. + (suppression_base::{names,sonames}_of_binaries_match): Likewise. + These got factorized out of type_suppression::suppresses_type, + function_suppression::suppresses_function, + function_suppression::suppresses_function_symbol, + variable_suppression::suppresses_variable, + variable_suppression::suppresses_variable_symbol. + (type_suppression::suppresses_type): Use the new + suppression_base::{names,sonames}_of_binaries_match. + (read_type_suppression): Read the new file_name_not_regexp and + soname_not_regexp properties. + (function_suppression::{suppresses_function, + suppresses_function_symbol}): Use the new + suppression_base::{names,sonames}_of_binaries_match. + (read_function_suppression): Read the new file_name_not_regexp and + soname_not_regexp properties. + (variable_suppression::{suppresses_variable, + variable_suppression::suppresses_variable_symbol}): Use the new + suppression_base::{names,sonames}_of_binaries_match. + (read_variable_suppression): Use the new + suppression_base::{names,sonames}_of_binaries_match. + * doc/manuals/libabigail-concepts.rst: Document the new + file_name_not_regexp and soname_not_regexp suppression properties. + * tests/data/test-diff-suppr/test24-soname-report-10.txt: New test + reference output. + * tests/data/test-diff-suppr/test24-soname-report-11.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-report-13.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-report-15.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-report-16.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-report-9.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-suppr-10.txt: New test input. + * tests/data/test-diff-suppr/test24-soname-suppr-11.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-suppr-12.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-suppr-13.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-suppr-14.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-suppr-15.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-suppr-16.txt: Likewise. + * tests/data/test-diff-suppr/test24-soname-suppr-9.txt: Likewise. + * tests/data/test-diff-suppr/test29-soname-report-2.txt: New test + reference output. + * tests/data/test-diff-suppr/test29-soname-report-3.txt: Likewise. + * tests/data/test-diff-suppr/test29-soname-report-4.txt: Likewise. + * tests/data/test-diff-suppr/test29-soname-report-5.txt: Likewise. + * tests/data/test-diff-suppr/test29-soname-report-6.txt: Likewise. + * tests/data/test-diff-suppr/test29-soname-report-7.txt: Likewise. + * tests/data/test-diff-suppr/test29-soname-report-8.txt: Likewise. + * tests/data/test-diff-suppr/test29-suppr-2.txt: New test input. + * tests/data/test-diff-suppr/test29-suppr-3.txt: Likewise. + * tests/data/test-diff-suppr/test29-suppr-4.txt: Likewise. + * tests/data/test-diff-suppr/test29-suppr-5.txt: Likewise. + * tests/data/test-diff-suppr/test29-suppr-6.txt: Likewise. + * tests/data/test-diff-suppr/test29-suppr-7.txt: Likewise. + * tests/data/test-diff-suppr/test29-suppr-8.txt: Likewise. + * tests/data/Makefile.am: Add the new test material to source + distribution. + * tests/test-diff-suppr.cc (in_out_specs): Make this test harness + run over the new test inputs. + +2016-04-27 Dodji Seketeli + + Make API documentation of thread pools visible + * include/abg-workers.h: Document the workers namespace, the task, + queue and queue::task_done_notify types. + * src/abg-workers.cc: Move the documentation of the thread_pool + module inside the abigail::worker namespace, so that references to + task and queue types (which are also in the abigail::worker + namespace) can be resolved in the apidoc. + +2016-04-27 Dodji Seketeli + + Update documentation to require doxygen and python-sphinx for building + * COMPILING: Add python-sphinx to the set of required packages to + build the documentation. + * doc/website/mainpage.txt: Update the website to mention doxygen + and python-sphinx for documentation. + +2016-04-27 Dodji Seketeli + + Add doc, info, man and html-doc targets to generate documentation + * Makefile.am: Add info, man and html-doc targets to generate + documentation in info, man and html formats. If you want to + generate them all, then the doc target is the one to be used. + * COMPILING: Add documentation for the above. + +2016-04-25 Dodji Seketeli + + Bug 19964 - Cannot load function aliases on ppc64 + * src/abg-dwarf-reader.cc (read_context::load_symbol_maps): While + filling the ppc64-specific "function-entry-address => symbol" map, + if we stumble accross a function-entry-address that belongs to an + alias of 'symbol', then assume the alias must have been registered + as an alias already, by the platform-agnostic code. Do not try to + register the alias again. + * tests/data/Makefile.am: Add the new test input binaries to the + source distribution. + * tests/data/test-diff-dwarf/libtest36-ppc64-aliases-v0.so: New + binary test input. + * tests/data/test-diff-dwarf/libtest36-ppc64-aliases-v1.so: Likewise. + * tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt: + New test reference output. + * tests/data/test-diff-dwarf/test36-ppc64-aliases-v0.cc: Source + code for the new binary test input above. + * tests/data/test-diff-dwarf/test36-ppc64-aliases-v1.cc: Likewise. + * tests/test-diff-dwarf.cc: Add the new test input to the list of + test inputs considered by this test harness. + +2016-04-20 Sinny Kumari + + Bug 19961 - Distinguish between PI executable and shared library + * include/abg-dwarf-reader.h (elf_type): Add new enumerator + ELF_TYPE_PI_EXEC. + * src/abg-dwarf-reader.cc + (lookup_data_tag_from_dynamic_segment): New function for + data tag lookup in dynamic segment of an elf + (elf_file_type): Return ELF_TYPE_PI_EXEC file type for + a PI executable. + (get_elf_file_type): Change this to take an elf handle. + (get_type_of_elf_file): New function that got factorized out of ... + (load_dt_soname_and_needed): ... this one. + * tools/abipkgdiff.cc (create_maps_of_package_content): Also + consider ELF_TYPE_PI_EXEC file type. + (compare): Likewise. + * tests/test-diff-pkg.cc (in_out_specs): Test case additions + * tests/data/Makefile.am: Include test files + * tests/data/test-diff-pkg/tarpkg-1-dir1.tar.gz: New test data + * tests/data/test-diff-pkg/tarpkg-1-dir2.tar.gz: New test data + * tests/data/test-diff-pkg/tarpkg-1-report-0.txt: New test result + +2016-04-17 Dodji Seketeli + + Update website to 1.0.rc4 + * doc/website/mainpage.txt: Update tarball reference to 1.0.rc4 + +2016-04-17 Dodji Seketeli + + Bump current version number to 1.0.rc5 + * configure.ac: Bump current version number to 1.0.rc5 + +2016-04-17 Dodji Seketeli + + Add a 'release' target to main Makefile + * Makefile.am: Add tarball, upload-release-only, upload-release + and release targets. + 2016-04-11 Dodji Seketeli Update ChangeLog for 1.0.rc4 -- 2.34.1