summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorDodji Seketeli <dodji@redhat.com>2016-06-27 19:55:27 +0200
committerDodji Seketeli <dodji@redhat.com>2016-06-28 09:14:28 +0200
commit204504db24f46c50ff0fca4b7a68b335e95dbb4b (patch)
treeb4ba13ad1e0c39f0aa59ff98472cc928cd64a381 /ChangeLog
parentUpdate NEWS file in preparation for 1.0.rc5 (diff)
downloadlibabigail-204504db24f46c50ff0fca4b7a68b335e95dbb4b.tar.gz
libabigail-204504db24f46c50ff0fca4b7a68b335e95dbb4b.tar.bz2
libabigail-204504db24f46c50ff0fca4b7a68b335e95dbb4b.tar.xz
Update ChangeLog for 1.0.rc5libabigail-1.0.rc5
* ChangeLog: Update by doing "make update-changelog" in the build directory. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog1273
1 files changed, 1273 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 15b8ee24..4459f7bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1276 @@
12016-06-27 Dodji Seketeli <dodji@redhat.com>
2
3 Update ChangeLog for 1.0.rc5
4 * ChangeLog: Update by doing "make update-changelog" in the build
5 directory.
6
72016-06-27 Dodji Seketeli <dodji@redhat.com>
8
9 Update NEWS file in preparation for 1.0.rc5
10 * NEWS: update with the edited content of the command:
11 git shortlog libabigail-1.0.rc4..HEAD
12
132016-06-27 Dodji Seketeli <dodji@redhat.com>
14
15 Fix python interpreter path for el6
16 * tests/runtestdefaultsupprs.py.in: Use the python interpreter at
17 /usr/bin/python, not the one at /bin/python.
18
192016-06-24 Dodji Seketeli <dodji@redhat.com>
20
21 Misc cleanup in abg-reader.cc
22 * src/abg-reader.cc (read_context::push_decl_to_current_scope):
23 Pass the decl smart pointer by value.
24
252016-06-22 Dodji Seketeli <dodji@redhat.com>
26
27 Use ODR-based optimization on C/C++ translation unit only
28 * src/abg-ir.cc (strip_typedef): Set the translation unit of the
29 new ABI artifact.
30 (type_base::get_canonical_type_for): Perform the ODR-based
31 optimization only for ABI artifact in C and C++ language
32 translation units.
33 * src/abg-dwarf-reader.cc (build_ir_node_from_die): Assert that
34 the new ABI artifact has its translation unit set.
35 * src/abg-reader.cc (read_context::{push_decl_to_current_scope,
36 push_and_key_type_decl}): Set the translation unit of the current
37 decl, irrespective of if it was added to the current scope or not.
38 Assert that the decl that was newly pushed to the current scope is
39 added to the current translation unit.
40
412016-06-10 Dodji Seketeli <dodji@redhat.com>
42
43 Misc white space and comment cleanups
44 * include/abg-ir.h (typedef type_or_decl_base): Cleanup comment.
45 * src/abg-ir.cc (struct type_or_decl_base::priv): Fix comment.
46
472016-06-10 Dodji Seketeli <dodji@redhat.com>
48
49 Cleanup function_decl::parameter::get_pretty_representation
50 * src/abg-ir.cc
51 (function_decl::parameter::get_pretty_representation): Assert that
52 the environment is always non-nil. Then no needs to check for it
53 being non-nil anymore. Use is_type_decl instead of
54 dynamic_pointer_cast.
55
562016-06-07 Chenxiong Qi <cqi@redhat.com>
57
58 Fix package NVR comparison in fedabipkgdiff
59 * configure.ac: Add new dependency.
60 * tests/runtestfedabipkgdiff.py.in (builds): Add new builds for
61 running tests to test selecting latest build from a package.
62 (packages): Add new package gnutls.
63 (GetPackageLatestBuildTest.{test_get_latest_one,
64 test_cannot_find_a_latest_build_with_invalid_distro}): Use new
65 builds of package gnutls to run tests.
66 * tools/fedabipkgdiff (cmp_nvr): New function used to compare nvrs
67 by Python built-in function sorted.
68 (Brew.listBuilds): Use the new cmp_nvr function.
69
702016-06-06 Chenxiong Qi <cqi@redhat.com>
71
72 Bug 20135 - Make fedabipkgdiff compare ABIs using devel packages
73 * doc/manuals/fedabipkgdiff.rst: Add documentation for the new
74 --no-devel-pkg command line option, as well as for the new default
75 behaviour of taking devel packages into account during ABI
76 comparison.
77 * tools/fedabipkgdiff (PkgInfo): Add new attribute
78 devel_package.
79 (RPM.is_devel): New property to determine if rpm is a
80 development package.
81 (LocalRPM._find_rpm): New method to find a specific rpm.
82 (LocalRPM.find_debuginfo): Use new method _find_rpm to find
83 debuginfo package.
84 (LocalRPM.find_devel): New method to find an associated
85 development package.
86 (Brew.select_rpms_from_a_build): RPMs selector method is
87 changed to select development package also.
88 (abipkgdiff): Construct and run abipkgdiff with and without
89 --devel-pkg[12] options.
90 (magic_construct): Construct PkgInfo with development package.
91 (run_abipkgdiff): Run abipkgdiff against rpms with development
92 packages.
93 (diff_local_rpm_with_latest_rpm_from_koji): Find development
94 package, and call method abipkgdiff with development package.
95 (build_commandline_args_parser): add new option --no-devel-pkg.
96 * tests/runtestfedabipkgdiff.py.in (packages): Add new package
97 nss-util.
98 (builds): Add new builds of nss-utils, nss-util-3.12.6-1.fc14
99 and nss-util-3.24.0-2.0.fc25.
100 (rpms): Add new associated rpms of the two new builds.
101 (AssertionHelper.assert_functions_changes_summary): New method
102 to match and assert functions changes summary.
103 (AssertionHelper.assert_abi_comparison_result): Changed to
104 support to help assert functions changes summary.
105 (MockGlobalConfig.{no_devel_pkg, check_all_subpackages}): New
106 fake options with default value for running tests.
107 (RPMTest.setUp): add new development package for running test
108 case.
109 (RPMTest.test_is_devel): New test to test is_devel property.
110 (RunAbipkgdiffTest.setUp): Add new development packages for
111 running test case.
112 (RunAbipkgdiffTest.{test_all_success, test_all_failure,
113 test_partial_failure}): Mock global config.
114 (RunAbipkgdiffWithDSOOnlyOptionTest): Removed.
115 (CompareABIFromCommandLineTest.test_compare_with_no_devel_pkg):
116 New test to test fedabipkgdiff with or without --no-devel-pkg
117 option.
118 * tests/data/Makefile.am: Add new rpms.
119 * tests/data/test-fedabipkgdiff/packages/nss-util/3.12.6/1.fc14/
120 x86_64/nss-util-3.12.6-1.fc14.x86_64.rpm: New rpm for running
121 tests.
122 * tests/data/test-fedabipkgdiff/packages/nss-util/3.12.6/1.fc14/
123 x86_64/nss-util-debuginfo-3.12.6-1.fc14.x86_64.rpm: New rpm for
124 running tests.
125 * tests/data/test-fedabipkgdiff/packages/nss-util/3.12.6/1.fc14/
126 x86_64/nss-util-devel-3.12.6-1.fc14.x86_64.rpm: New rpm for
127 running tests.
128 * tests/data/test-fedabipkgdiff/packages/nss-util/3.24.0/2.0.fc25/
129 x86_64/nss-util-3.24.0-2.0.fc25.x86_64.rpm: New rpm for running
130 tests.
131 * tests/data/test-fedabipkgdiff/packages/nss-util/3.24.0/2.0.fc25/
132 x86_64/nss-util-debuginfo-3.24.0-2.0.fc25.x86_64.rpm: New rpm
133 for running tests.
134 * tests/data/test-fedabipkgdiff/packages/nss-util/3.24.0/2.0.fc25/
135 x86_64/nss-util-devel-3.24.0-2.0.fc25.x86_64.rpm: New rpm for
136 running tests.
137
1382016-06-03 Dodji Seketeli <dodji@redhat.com>
139
140 Improve python modules detection
141 * configure.ac: Include
142 autoconf-archive/ax_check_python_modules.m4 rather than
143 autoconf-archive/ax_python_module.m4. Use AX_CHECK_PYTHON_MODULES
144 rather than AX_PYTHON_MODULE.
145 * Makefile.am: Add the new file
146 autoconf-archive/ax_check_python_modules.m4 to source distribution
147 and remove the older autoconf-archive/ax_python_module.m4 one.
148 * autoconf-archive/ax_check_python_modules.m4: New file.
149 * autoconf-archive/ax_python_module.m4: Remove.
150
1512016-05-30 Chenxiong Qi <cqi@redhat.com>
152
153 Add integration tests for fedabipkgdiff
154 * configure.ac: do not detect shutil module.
155 * tests/runtestfedabipkgdiff.py.in: do not import shutil
156 anymore.
157 (BUILT_ABIPKGDIFF): new global variable to reference the
158 abipkgdiff built from source code, as the new test case' tests
159 require this command directly rather than mocking the
160 global_config.
161 (test_data_dir): convert variable name to uppercase,
162 reference to the test data directory by absolute path instead of
163 relative path.
164 (TEST_TOPDIR): new global variable to use data directory as the
165 topdir passed to fedabpkgdiff to download rpms.
166 (TEST_DOWNLOAD_CACHE_DIR): new global variable referencing a
167 fake download cache directory for tests only.
168 (packages, builds, rpms): new global variables as a fake
169 storage holding packages, builds and rpms.
170 (AssertionHelper): new class helping to assert abipkgdiff
171 result easily.
172 (MockClientSession): new class to mock koji.ClientSession.
173 (MockGlobalConfig.abipkgdiff): set this option to global
174 variable BUILT_ABIPKGDIFF.
175 (MockKojiClientSessin): removed.
176 (mock_get_session): removed.
177 (GetPackageLatestBuildTest.{test_get_latest_one,
178 test_cannot_find_a_latest_build_with_invalid_distro,
179 test_cannot_find_a_latest_build_with_invalid_distro}): mock
180 koji.ClientSession with new class MockClientSession. Remove
181 invalid documentation from docstring. Use new package rather
182 than httpd.
183 (DownloadRPMTest.setUp): remove self.download_dir and use global
184 TEST_DOWNLOAD_CACHE_DIR.
185 (DownloadRPMTest.tearDown): do not remove download cache
186 directory.
187 (DownloadRPMTest.make_remote_file_url): do not omit positional
188 argument specifiers in string format.
189 (DownloadRPMTest.{test_succeed_to_download_a_rpm,
190 test_failed_to_download_a_rpm}): set fake download cache
191 directory to mocked get_download_dir in mock.patch decorator.
192 (BrewListRPMsTest.test_select_specific_rpms): use new
193 MockClientSession to mock koji.ClientSession. Rewrite test by
194 using the new package listed in global variable packages.
195 (RunAbipkgdiffWithDSOOnlyOptionTest.{test_abipkgdiff_with_dso_only,
196 test_abipkgdiff_without_dso_only}): set fake download cache
197 directory to mocked get_download_dir in mock.patch decorator.
198 (CompareABIFromCommandLineTest): new integration test case.
199 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/
200 i686/dbus-glib-0.100.2-2.fc20.i686.rpm: new rpm for running tests.
201 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/
202 i686/dbus-glib-debuginfo-0.100.2-2.fc20.i686.rpm: new rpm for
203 running tests.
204 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/
205 i686/dbus-glib-devel-0.100.2-2.fc20.i686.rpm: new rpm for
206 running tests.
207 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/
208 x86_64/dbus-glib-0.100.2-2.fc20.x86_64.rpm: new rpm for running
209 tests.
210 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/
211 x86_64/dbus-glib-debuginfo-0.100.2-2.fc20.x86_64.rpm: new rpm
212 for running tests.
213 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/
214 x86_64/dbus-glib-devel-0.100.2-2.fc20.x86_64.rpm: new rpm for
215 running tests.
216 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/
217 i686/dbus-glib-0.106-1.fc23.i686.rpm: new rpm for running tests.
218 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/
219 i686/dbus-glib-debuginfo-0.106-1.fc23.i686.rpm: new rpm for
220 running tests.
221 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/
222 i686/dbus-glib-devel-0.106-1.fc23.i686.rpm: new rpm for running
223 tests.
224 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/
225 x86_64/dbus-glib-0.106-1.fc23.x86_64.rpm: new rpm for running
226 tests.
227 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/
228 x86_64/dbus-glib-debuginfo-0.106-1.fc23.x86_64.rpm: new rpm for
229 running tests.
230 * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/
231 x86_64/dbus-glib-devel-0.106-1.fc23.x86_64.rpm: new rpm for
232 running tests.
233 * tests/data/Makefile.am: add new rpms.
234
2352016-05-31 Dodji Seketeli <dodji@redhat.com>
236
237 Bug 19967 - System-level suppressions for glibc
238 * default.abignore: Add initial suppression specifications for
239 glibc.
240
2412016-05-31 Dodji Seketeli <dodji@redhat.com>
242
243 Escape all characters when reading a string in ini files
244 * src/abg-ini.cc (read_context::peek): Take an output parameter to
245 tell the caller when this function escaped the returned
246 character. Added an overload without this new parameter.
247 (read_context::read_string): Accept all characters as part of the
248 string.
249 * tests/data/test-diff-suppr/test7-var-suppr-9.suppr: New test
250 input.
251 * tests/data/test-diff-suppr/test7-var-suppr-report-9.txt: New
252 test reference output.
253 * tests/data/Makefile.am: Add the files above to source
254 distribution.
255 * tests/test-diff-suppr.cc (in_out_spec): Run a new comparison of
256 libtest7-var-suppr-v{0,1}.so this time using the new
257 test7-var-suppr-9.suppr specification that exercices a string with
258 the escaped characters that we were having difficulty with.
259
2602016-05-31 Dodji Seketeli <dodji@redhat.com>
261
262 Don't require all version symbol sections to present
263 * src/abg-dwarf-reader.cc (get_symbol_versionning_sections): Allow
264 returning just some of the three version-related section, not
265 necessarily all of them. Adjust comment.
266 (get_version_for_symbol): Be ready to not necessarily having the
267 three version-related sections available.
268
2692016-05-30 Dodji Seketeli <dodji@redhat.com>
270
271 Bug 20180 - Support system-wide suppression specifications
272 * doc/manuals/abidiff.rst: Document the default suppression
273 scheme, its interaction with the --supprs option and the new
274 --no-default option.
275 * doc/manuals/abipkgdiff.rst: Likewise.
276 * doc/manuals/fedabipkgdiff.rst: Likewise.
277 * configure.ac: Generate the tests/runtestdefaultsupprs.py file
278 from the new tests/runtestdefaultsupprs.py.in template.
279 * default.abignore: New file.
280 * Makefile.am: Add it to source distribution.
281 * src/Makefile.am: Define the ABIGAIL_ROOT_SYSTEM_LIBDIR
282 preprocessor macro that is set the value of the $libdir autotools
283 macro.
284 * include/abg-tools-utils.h: Update copyright years.
285 (get_system_libdir, get_default_system_suppression_file_path)
286 (get_default_user_suppression_file_path)
287 (load_default_system_suppressions)
288 (load_default_user_suppressions): Declare new functions
289 * src/abg-tools-utils.cc (get_system_libdir)
290 (get_default_system_suppression_file_path)
291 (get_default_user_suppression_file_path)
292 (load_default_system_suppressions)
293 (load_default_user_suppressions): Define new functions.
294 (is_regular_file): Amend this so that it return true for symlinks
295 to regular files too.
296 (is_dir): Amend this so that it returns true for symlinks to
297 directories too.
298 * tools/abidiff.cc (options::no_default_supprs): New data member.
299 (options::options): Initialize the new data member.
300 (display_usage): Display a new help string for the new
301 --no-default-suppression command line option.
302 (parse_command_line): Parse this new command line option.
303 (set_diff_context_from_opts): Load the default suppression
304 specifications, unless --no-default-suppression or --supprs was
305 provided.
306 * tools/abipkgdiff.cc (options::no_default_supprs): New data
307 member.
308 (options::options): Initialize the new data member.
309 (parse_command_line): Parse the new --no-default-suppression
310 command line option.
311 (main): Load the default suppression specifications, unless
312 --no-default-suppression or --supprs was provided.
313 * tools/fedabipkgdiff (abipkgdiff): Add --no-default-suppression
314 to the invocation of abipkgdiff if it was provided on the command
315 line.
316 (build_commandline_args_parser): Parse the new
317 --no-default-suppression command line option.
318 * tests/runtestdefaultsupprs.py.in: New test harness template.
319 * tests/Makefile.am: Add the new runtestdefaultsupprs.py to the
320 set of tests.
321 * tests/data/test-default-supprs/test0-type-suppr-0.suppr: New
322 test input.
323 * tests/data/test-default-supprs/test0-type-suppr-report-0.txt: Likewise.
324 * tests/data/test-default-supprs/test0-type-suppr-v0.o: Likewise.
325 * tests/data/test-default-supprs/test0-type-suppr-v1.o: Likewise.
326 * tests/data/test-default-supprs/dirpkg-1-dir-report-0.txt:
327 Likewise.
328 * tests/data/test-default-supprs/dirpkg-1-dir1: Likewise.
329 * tests/data/test-default-supprs/dirpkg-1-dir2: Likewise.
330 * tests/data/Makefile.am: Add new the new tests input above to
331 Makefile.am.
332 * tests/runtestcanonicalizetypes.sh.in: Pass
333 --no-default-suppression to abidiff invocations.
334 * tests/runtestdefaultsupprs.py.in: Likewise.
335 * tests/test-abidiff-exit.cc: Likewise.
336 * tests/test-diff-dwarf-abixml.cc: Likewise.
337 * tests/test-diff-filter.cc: Likewise.
338 * tests/test-diff-suppr.cc: Likewise.
339 * tools/abidiff.cc: Likewise.
340
3412016-05-30 Dodji Seketeli <dodji@redhat.com>
342
343 Add --abipkgdiff option to fedabipkgdiff
344 * tools/fedabipkgdiff (build_path_to_abipkgdiff): Define new
345 function.
346 (abipkgdiff): Invoke the new build_path_to_abipkgdiff() here.
347 (build_commandline_args_parser): Parse the new --abipkgdiff
348 option.
349
3502016-05-28 Dodji Seketeli <dodji@redhat.com>
351
352 Better diagnostics when abipkgdiff has an extra argument
353 * tools/abipkgdiff.cc (options::wrong_arg): New data member.
354 (parse_command_line): Set options::wrong_arg
355 to the wrong argument passed.
356 (main): Tell wrong argument case apart, and report it.
357
3582016-05-26 Dodji Seketeli <dodji@redhat.com>
359
360 Fix suppr spec wording in abipkgdiff manual
361 * doc/manuals/abipkgdiff.rst: Fix the wording for the --suppr
362 option.
363
3642016-05-26 Dodji Seketeli <dodji@redhat.com>
365
366 Update reference to tools in libabigail-concepts manual
367 * doc/manuals/libabigail-concepts.rst: Do not refer just to
368 abidiff when talking about suppression specification. Also
369 refer to abipkgdiff and other tools.
370
3712016-05-30 Dodji Seketeli <dodji@redhat.com>
372
373 Fix some wording in the Libabigail overview manual page
374 * doc/manuals/libabigail-overview.rst: Cleanup some confusion
375 about Abigail-the-framework and libabigail-the-library.
376
3772016-05-25 Dodji Seketeli <dodji@redhat.com>
378
379 Add test data for tests/runtestfedabipkgdiff.py
380 * tests/data/test-fedabipkgdiff/dbus-glib-0.104-3.fc23.x86_64.rpm:
381 New file.
382 * tests/data/test-fedabipkgdiff/dbus-glib-0.80-3.fc12.x86_64.rpm: Likewise.
383 * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm:
384 Likewise.
385 * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm:
386 Likewise.
387
3882016-05-25 Dodji Seketeli <dodji@redhat.com>
389
390 Add a 'check-valgrind' target to the top-most Makefile.am
391 * Makefile.am (check-valgrind): Add this new target here.
392
3932016-05-21 Chenxiong Qi <cqi@redhat.com>
394
395 Bug 20085 - Add --dso-only option to fedabipkgdiff
396 * tools/fedabipkgdiff: Do not import shlex anymore.
397 (ABIDIFF_OK, ABIDIFF_ERROR, ABIDIFF_USAGE_ERROR)
398 (ABIDIFF_ABI_CHANGE): New global constant variables.
399 (abipkgdiff): Pass the --dso-only option to the abipkgdiff command
400 line tool, if that option was passed to fedabipkgdiff. Build this
401 abipkgdiff command invocation from an array of strings, rather
402 than from formatting a string. This makes us get rid of the shlex
403 module. Fix typo in dry-run logged string. If there was an
404 internal error reported by abipkgdiff, report it to stderr.
405 (build_commandline_args_parser): Parse the --dso-only command line
406 option.
407 * tests/runtestfedabipkgdiff.py.in (fedabipkgdiff_mod): Fix a typo
408 in initializing this global variable.
409 (test_data_dir): New global variable, that is used to reference
410 tests/data/test-fedabipkgdiff/.
411 (RunAbipkgdiffTest.{test_all_success, test_partial_failure}): Fix
412 typo.
413 (Mockglobalconfig.{koji_topdir, dso_only}): New data members.
414 (GetPackageLatestBuildTest.{test_get_latest_one,
415 test_cannot_find_a_latest_build_with_invalid_distro,
416 test_succeed_to_download_a_rpm, test_failed_to_download_a_rpm}):
417 Fix typo.
418 (BrewListRPMsTest.test_select_specific_rpms): Fix typo.
419 (RunAbipkgdiffWithDSOOnlyOptionTest): New test case class.
420 * doc/manuals/fedabipkgdiff.rst: update document for this new
421 --dso-only option.
422 * tests/data/test-fedabipkgdiff/dbus-glib-0.104-3.fc23.x86_64.rpm:
423 New symbolic link to
424 test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64.rpm.
425 * tests/data/test-fedabipkgdiff/dbus-glib-0.80-3.fc12.x86_64.rpm:
426 New symbolic link to
427 test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm.
428 * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm:
429 New symbolic link to
430 test-diff-pkg/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm.
431 * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm:
432 New symbolic link to
433 test-diff-pkg/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm.
434 * tests/data/Makefile.am: add tests/data/test-fedabipkgdiff so
435 that this data directory and all things within it can be included
436 in tarball.
437
4382016-05-24 Sinny Kumari <sinny@redhat.com>
439
440 Change parent directory for keeping extracted packages in abipkgdiff
441 * tools/abipkgdiff.cc (extracted_packages_parent_dir): Change
442 TMPDIR environment variable to XDG_CACHE_HOME and default
443 temporary parent directory to $HOME/.cache/libabigail/
444
4452016-05-20 Dodji Seketeli <dodji@redhat.com>
446
447 Make abi{pkg}diff filter out changes about private types
448 * include/abg-comp-filter.h: Update copyright year.
449 * src/abg-comp-filter.cc (has_virtual_mem_fn_change): Make this
450 static function become exported.
451 (has_virtual_mem_fn_change): Declare new function.
452 * include/abg-suppression.h
453 (suppression_base::{get,set}_is_artificial): Declare new
454 accessors.
455 (type_suppression::get_source_locations_to_keep): Return an
456 unordered set of strings, not a vector. Add a non-const overload.
457 (type_suppression::set_source_locations_to_keep): Set an unordered
458 set of strings, not a vector.
459 * src/abg-suppression.cc (suppression_base::priv::is_artificial_):
460 New data member.
461 (suppression_base::priv::priv): Initialize the new data member.
462 (suppression_base::{get,set}_is_artificial): Define new accessors.
463 (type_suppression::priv::source_locations_to_keep_): Change the
464 vector of strings representing source file names into unordered
465 set of string.
466 (type_suppression::get_source_locations_to_keep): Return an
467 unordered set of strings, not a vector. Define a non-const
468 overload.
469 (type_suppression::set_source_locations_to_keep): Set an unordered
470 set of strings, not a vector.
471 (type_suppression::suppresses_diff): Make this suppress virtual
472 member function diffs if the enclosing type of the changed virtual
473 member is suppressed by the current type_suppression.
474 (read_type_suppression): Adjust to use the fact that the source
475 locations are not stored in an unordered set, not in a vector
476 anymore. Otherwise, using a vector here make things too slow.
477 (type_suppression::suppresses_type): Likewise. Also, If the type
478 we are looking at has no location because it's a true opaque type
479 and if the current suppression is an artificial suppression that
480 is meant to suppress change reports about non-public types, then
481 suppress the type.
482 * include/abg-tools-utils.h (gen_suppr_spec_from_headers): Declare
483 new public function.
484 * src/abg-tools-utils.cc (PRIVATE_TYPES_SUPPR_SPEC_NAME): Define a
485 new constant variable.
486 (handle_fts_entry): Define new static function.
487 (gen_suppr_spec_from_headers): Define new public function.
488 * src/abg-comparison.cc
489 (corpus_diff::priv::apply_suppressions_to_added_removed_fns_vars):
490 If a type suppression suppresses a given class C, make it change
491 added/removed virtual functions whose enclosing type is C.
492 * tools/abidiff.cc (options::{headers_dir1, headers_dir2}): New
493 data members.
494 (display_usage): Add help strings for --headers-dir1 and
495 --headers-dir2.
496 (parse_command_line): Parse the new --headers-dir1 and
497 --headers-dir2 options.
498 (set_diff_context_from_opts): Generate suppression specifications
499 to filter out changes on private types, if --headers-dir1 or
500 --headers-dir2 is given.
501 * tools/abipkgdiff.cc (options::{devel_package1, devel_package2}):
502 New data members.
503 (typedef package_sptr): New typedef.
504 (enum package::kind): New enum.
505 (package::kind_): New data member. This replaces ...
506 (package::is_debug_info_): ... this data member.
507 (package::{devel_package_, private_types_suppressions_}): New data
508 members.
509 (package::package): Adjust.
510 (package::get_kind): Define new member function. This replaces
511 ...
512 (package::is_debug_info): ... this member function overload.
513 (package::set_kind): Define new member functin. It replaces ...
514 (package::is_debug_info): ... this member function overload.
515 (package::{devel_package, private_types_suppressions}): Define new
516 accessors.
517 (package::erase_extraction_directies): Erase the sub-directory
518 where development packages are extracted to.
519 (compare_args::private_types_suppr{1,2}): New data members.
520 (compare_args::compare_args): Adjust.
521 (display_usage): Add help strings for --devel-pkg1/--devel-pkg2.
522 (compare): Make the overload that compares elf files take private
523 types suppressions. Add the private types suppressions to the
524 diff context.
525 (pthread_routine_compare): Adjust the call to compare.
526 (maybe_create_private_types_suppressions): Define new static
527 function.
528 (pthread_routine_extract_pkg_and_map_its_content): If a devel
529 package was specified for the main package then extract it in
530 parallel with the other package extraction. When the extraction
531 is done, create private types suppressions by visiting the
532 directories that contain the header files.
533 (compare): In the overload that compares packages by scheduling
534 comparison of individual elf files that are in the packages, pass
535 in the private type suppressions too.
536 (parse_command_line): Parse the new --devel-pkg{1,2} command line
537 options.
538 (main): Associate the devel package to the main package, if the
539 --devel-pkg{1,2}.
540 * doc/manuals/abidiff.rst: Add documentation about the new
541 --headers-dir1 and --headers-dir2 options.
542 * doc/manuals/abipkgdiff.rst: Likewise, add documentation about
543 the new --devel-pkg1 and --devel-pkg2 libraries.
544 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
545 New test reference output.
546 * tests/data/test-diff-pkg/tbb-devel-4.1-9.20130314.fc22.x86_64.rpm:
547 New test input package.
548 * tests/data/test-diff-pkg/tbb-devel-4.3-3.20141204.fc23.x86_64.rpm: Likewise.
549 * tests/test-diff-pkg.cc b/tests/test-diff-pkg.cc
550 (InOutSpec::{first,second}_in_devel_package_path): New data
551 members.
552 (in_out_specs): Adjust. Also, add a new entry describing the new
553 test inputs above.
554 (test_task::perform): When the new test entry contains devel
555 packages, pass them to abipkgdiff using the --devel1 and --devel2
556 options.
557 * tests/data/test-diff-suppr/test30-include-dir-v0/test30-pub-lib-v0.h:
558 A new test input source code.
559 * tests/data/test-diff-suppr/test30-include-dir-v1/test30-pub-lib-v1.h: Likewise.
560 * tests/data/test-diff-suppr/test30-priv-lib-v0.cc: Likewise.
561 * tests/data/test-diff-suppr/test30-priv-lib-v0.h: Likewise.
562 * tests/data/test-diff-suppr/test30-priv-lib-v1.cc: Likewise.
563 * tests/data/test-diff-suppr/test30-priv-lib-v1.h: Likewise.
564 * tests/data/test-diff-suppr/test30-pub-lib-v0.cc: Likewise.
565 * tests/data/test-diff-suppr/test30-pub-lib-v0.so: Add new test
566 binary input.
567 * tests/data/test-diff-suppr/test30-pub-lib-v1.cc: Add new test
568 input source code.
569 * tests/data/test-diff-suppr/test30-pub-lib-v1.so: Add new test
570 binary input.
571 * tests/data/test-diff-suppr/test30-report-0.txt: Add new test
572 reference output.
573 * tests/data/test-diff-suppr/test30-report-1.txt: Add new test
574 reference output.
575 * tests/test-diff-suppr.cc (InOutSpec::headers_dir{1,2}): New data
576 members.
577 (InOutSpec::abidiff_options): Renamed the bidiff_options data
578 member into this.
579 (in_out_specs): Adjust. Also, added the new test input above to
580 this.
581 (main): Adjust to invoke abidiff with the new --hd1 and --hd2
582 options if the input specs for the tests has the new
583 InOutSpec::headers_dir{1,2} data member set. Renamed bidiff into
584 abidiff.
585 * tests/data/Makefile.am: Add the new test inputs to the source
586 distribution.
587
5882016-05-24 Dodji Seketeli <dodji@redhat.com>
589
590 Fix the number of removed functions in change report
591 * src/abg-suppression.cc (corpus_diff::report): Show the net
592 number of removed functions, not the total number of the removed
593 functions.
594
5952016-05-23 Dodji Seketeli <dodji@redhat.com>
596
597 Document how to handle regression tests in CONTRIBUTING
598 * CONTRIBUTING: Add a section about regression tests.
599 * Makefile.am: Add a check-valgrind-recursive target.
600
6012016-05-21 Dodji Seketeli <dodji@redhat.com>
602
603 Fix whitespaces in autotools files
604 * configure.ac: Fix some white spaces.
605 * tests/Makefile.am: Likewise.
606
6072016-05-22 Dodji Seketeli <dodji@redhat.com>
608
609 Fix white space in abg-comparison.cc
610 * src/abg-comparison.cc (struct diff_context::priv): Fix indentation.
611
6122016-05-21 Dodji Seketeli <dodji@redhat.com>
613
614 Fix bash completion configure status
615 * configure.ac: If bash completion is disabled, say so.
616
6172016-05-22 Dodji Seketeli <dodji@redhat.com>
618
619 Enhance API doc for diff_context::add_diff
620 * src/abg-comparison.cc (diff_context::add_diff): Enhance the API
621 doc string.
622
6232016-05-20 Dodji Seketeli <dodji@redhat.com>
624
625 Add missing API doc strings
626 * src/abg-comparison.cc (diff::diff)
627 (decl_diff_base::decl_diff_base, distinct_diff::distinct_diff)
628 (base_diff::base_diff, scope_diff::scope_diff)
629 (fn_parm_diff::fn_parm_diff)
630 (function_type_diff::function_type_diff)
631 (type_decl_diff::type_decl_diff, typedef_diff::typedef_diff)
632 (translation_unit_diff::translation_unit_diff)
633 (corpus_diff::corpus_diff): Add missing API doc strings.
634
6352016-05-20 Dodji Seketeli <dodji@redhat.com>
636
637 Optimize out some shared_ptr use
638 * include/abg-ir.h (pointer_type_def::get_naked_pointed_to_type):
639 Declare new member function.
640 * src/abg-ir.cc (pointer_type_def::priv::naked_pointed_to_type_):
641 New data member.
642 (pointer_type_def::priv::priv): Adjust to initialize the new data
643 member.
644 (pointer_type_def::pointer_type_def): Adjust to use the
645 constructor pointer_type_def::priv::priv to initialize the
646 pointed-to type (including its new naked pointer variant). So we
647 do not have to initialize the priv_->pointed_to_type_ explicitely
648 in the constructor anymore.
649 (pointer_type_def::get_naked_pointed_to_type): Define new data
650 member.
651 (pointer_type_def::get_qualified_name): Use a naked pointer to the
652 pointed-to type, rather than a smart pointer.
653
6542016-05-20 Dodji Seketeli <dodji@redhat.com>
655
656 Light optimizations by passing reference to smart pointers around
657 * include/abg-fwd.h (get_type_name): Take a reference to type_sptr.
658 * src/abg-ir.cc (get_type_name): Take a reference to type_sptr.
659 (suppression_base::priv::{get_file_name_regex,
660 get_file_name_not_regex, get_soname_regex, get_soname_not_regex}):
661 Return a reference to regex_t_sptr.
662
6632016-05-20 Dodji Seketeli <dodji@redhat.com>
664
665 Minimize number of string::length calculation
666 * src/abg-tools-utils.cc (string_ends_with): Call string::length
667 just once on each instance of string that matters.
668
6692016-05-20 Dodji Seketeli <dodji@redhat.com>
670
671 Avoid unnecessary computation of type name in suppression evaluation
672 * src/abg-suppression.cc (type_suppression::suppresses_type): If
673 neither the type suppression "name" or "name_regex" properties
674 where provided in the suppression specification, then do not try
675 to look at the type name.
676
6772016-05-22 Dodji Seketeli <dodji@redhat.com>
678
679 Plug leak of diffs of member variables of class type
680 * include/abg-comparison.h (diff_wptr, unordered_diff_sptr_set): New typedefs.
681 (struct diff_sptr_hasher): Define new type.
682 (diff_context::keep_diff_alive): Declare new member function.
683 (diff::children_nodes): Return a vector of diff*, rather than a
684 vector of diff_sptr.
685 * src/abg-comparison.cc (diff_context::priv::live_diffs_): New
686 data member.
687 (diff_context::keep_diff_alive): Define new data member.
688 (diff::priv::children_): Make this be a vector of diff*, rather
689 than a vector of diff_sptr.
690 (diff_less_than_functor::operator()): Add a new overload for
691 diff*. Make the existing overload of diff_sptr use the new one.
692 (diff::children_nodes): Adjust;
693 (diff::append_child_node): Make sure the child node is kept
694 alive. Only add the naked pointer to the child node to the vector
695 of children.
696 (diff::traverse): Adjust.
697 (var_diff::priv::type_diff_): Make this be a weak pointer, rather
698 than a shared pointer.
699 (var_diff::type_diff): The var_diff::priv::type_diff_ data member
700 is now a weak pointer, so make this accessor convert it to a
701 shared pointer.
702 (corpus_diff::priv::children_): Turn this into a vector of diff*,
703 rather than a vector of diff_sptr.
704 (corpus_diff::children_nodes): Adjust.
705 (corpus_diff::append_child_node): Make sure the child node is kept
706 alive. Only add the naked pointer to the child node to the vector
707 of children.
708 (category_propagation_visitor::visit_end): Adjust.
709 (suppression_categorization_visitor::visit_end): Adjust.
710 (redundancy_marking_visitor::{visit_begin, visit_end}): Adjust.
711
7122016-05-20 Dodji Seketeli <dodji@redhat.com>
713
714 Speedup diff node child insertion
715 * src/abg-comparison.cc (corpus_diff::append_child_node): Insert
716 the new child at the right point in the vector of children, so
717 that it remains sorted.
718
7192016-05-21 Dodji Seketeli <dodji@redhat.com>
720
721 Fix invocation of delete operator in test-read-dwarf.cc
722 * tests/test-read-dwarf.cc (main): Call delete[], not delete.
723
7242016-05-22 Dodji Seketeli <dodji@redhat.com>
725
726 Plug leak of debug info handles
727 * configure.ac: Check the presence of dwarf_getalt in libdw. If
728 it's present, define the preprocessor macro
729 LIBDW_HAS_DWARF_GETALT. Update the autoconf configuration
730 summary.
731 * src/abg-dwarf-reader.cc: Add config.h.
732 (find_alt_debug_info_location): Factorize this out of ...
733 (find_alt_debug_info): ... this function. Use dwarf_getalt if
734 present, otherwise, keep using dwfl_standard_find_debuginfo. In
735 the later case, return the file descriptor opened to access the
736 alternate debug info, by parameter, so that the caller can fclose
737 it.
738 (read_context::alt_fd_): New data member.
739 (read_context::read_context): Initialize the new alt_fd_ data
740 member.
741 (read_context::load_debug_info): Store the file descriptor used to
742 access the alternate debug info into the new alt_fd_ data member.
743 (read_context::~read_context): New desctructor.
744 (get_soname_of_elf_file, get_type_of_elf_file): Free the elf
745 handle.
746 (read_context::load_debug_info): Be paranoid in making sure we
747 never override alt_dwarf_.
748 * tests/data/test-alt-dwarf-file/test0-report.txt: Adjust.
749
7502016-05-22 Dodji Seketeli <dodji@redhat.com>
751
752 Plug leak of shared private data of class_diff type
753 * include/abg-comparison.h (class_diff::get_priv): Declare new
754 member function.
755 (class_diff::get_priv): Define new member function.
756 (class_diff::{chain_into_hierarchy, base_changes, deleted_bases,
757 inserted_bases, changed_bases, base_changes, member_types_changes,
758 member_types_changes, data_members_changes, inserted_data_members,
759 deleted_data_members, member_fns_changes, changed_member_fns,
760 member_fns_changes, deleted_member_fns, inserted_member_fns,
761 member_fn_tmpls_changes, member_class_tmpls_changes,
762 member_class_tmpls_changes, report}): Rather than accessing
763 class_diff::priv directly, use the new class_diff::get_priv.
764
7652016-05-21 Dodji Seketeli <dodji@redhat.com>
766
767 Remove circular ref from class_decl::priv::definition_of_declaration
768 * include/abg-ir.cc (class_decl::get_definition_of_declaration):
769 Return a shared pointer, rather than a reference to a shared pointer.
770 * src/abg-ir.cc (class_decl::priv::definition_of_declaration_):
771 Make this be a weak pointer.
772 (class_decl::get_definition_of_declaration):
773 Likewise. And return the shared pointer built out of the weak
774 pointer we have in there now.
775
7762016-05-21 Dodji Seketeli <dodji@redhat.com>
777
778 Plug leak of regex_t in suppression engine
779 * include/abg-sptr-utils.h (build_sptr<T>): Declare an overload that
780 allocates a T* and wraps it into a shared_ptr<T>.
781 (build_sptr<regex_t>): Declare a specialization for regex_t.
782 * src/abg-corpus.cc (build_sptr<regex_t>()): Define the
783 specialization here.
784 * src/abg-suppression.ccp
785 (suppression_base::priv::{get_file_[not]_name_regex,
786 get_soname_[not]_regex}): Use the new build_sptr<regex_t>().
787 (type_suppression::priv::{get_type_name_regex,
788 get_source_location_to_keep_regex}): Likewise.
789 (function_suppression::parameter_spec::priv::get_type_name_regex):
790 Likewise.
791 (function_suppression::priv::{get_name_regex,
792 get_return_type_regex, get_symbol_name_regex,
793 get_symbol_version_regex}): Likewise.
794 (variable_suppression::priv::{get_name_regex,
795 get_symbol_name_regex, get_symbol_version_regex,
796 get_type_name_regex}): Likewise.
797
7982016-05-18 Dodji Seketeli <dodji@redhat.com>
799
800 Plug leak of diff_context_sptr after calling compute_diff
801 * src/abg-comparison.cc (diff::priv::ctxt_): Make this a weak_ptr.
802 (diff::priv::get_context): Convert the weak pointer to the context
803 into a shared_ptr and return it.
804 (diff::priv::is_filtered_out): Adjust to use
805 diff::priv::get_context() to access the context.
806 (diff::context): Likewise.
807 (corpus_diff::priv::ctxt_): Make this a weak_ptr.
808 (corpus_diff::priv::priv): Add a new overload that takes two
809 corpora and a diff context.
810 (corpus_diff::priv::get_context): Convert the weak pointer to the
811 context into a shared_ptr and return it.
812 (corpus_diff::priv::ensure_lookup_tables_populated): Adjust to use
813 the new corpus_diff::priv::get_context to get the context.
814 (variable_is_suppressed): Likewise.
815 (corpus_diff::priv::{apply_suppressions_to_added_removed_fns_vars,
816 apply_filters_and_compute_diff_stats, emit_diff_stats,
817 categorize_redundant_changed_sub_nodes,
818 clear_redundancy_categorization}): Likewise.
819 (corpus_diff::{corpus_diff, context,
820 apply_filters_and_suppressions_before_reporting}): Adjust.
821 * tools/abipkgdiff.cc (compare): Make the overload that compares
822 elf binaries take a diff context output parameter. After the
823 context is created by this function, it's return to the caller, so
824 that it's life time is bound to the scope this function was
825 called from.
826 (pthread_routine_compare): Create a shared pointer to hold a
827 reference on a diff context. Pass that shared pointer by
828 reference to the compare function that compares elf binaries.
829 Rather than storing corpora in the reports_map, (as those corpora
830 would then out-live the diff context and thus create memory
831 corruption issues), emit the report directly into an ostringstream
832 and store that stream in reports_map.
833 (compare): In the overoad that compares packages, rather than
834 trying to get corpora from the report_map, just emit the content
835 of the ostringstream that is now there.
836
8372016-05-22 Dodji Seketeli <dodji@redhat.com>
838
839 Fix a read passed-the-end in abg-dwarf-reader.cc
840 * src/abg-dwarf-reader.cc (lookup_symbol_from_gnu_hash_tab): Do
841 not read passed the end of the array.
842
8432016-05-21 Dodji Seketeli <dodji@redhat.com>
844
845 Support running "make check-valgrind"
846 * autoconf-archive/ax_valgrind_check.m4: Add new file. Copied it
847 from http://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html.
848 * configure.ac: Include the new ax_valgrind_check.m4 file.
849 Initialize the valgrind checking on tests. Update the configure
850 status.
851 * tests/test-valgrind-suppressions.supp: New valgrind suppression
852 file to silence memcheck leak errors from python.
853 * tests/Makefile.am: Add test-valgrind-suppressions.supp to source
854 distribution. Add check-valgrind-memcheck-recursive target.
855
8562016-05-22 Dodji Seketeli <dodji@redhat.com>
857
858 Update the CONTRIBUTING file
859 * CONTRIBUTING: Cleanup.
860
8612016-05-22 Dodji Seketeli <dodji@redhat.com>
862
863 Update the COMMIT-LOG-GUIDELINES file
864 * COMMIT-LOG-GUIDELINES: Various enhancements.
865
8662016-05-16 Dodji Seketeli <dodji@redhat.com>
867
868 Do not run fedabipkgdiff tests if --enable-fedabipkgdiff is turned off
869 * tests/Makefile.am: Make running runtestfedabipkgdiff be
870 dependent on ENABLE_FEDABIPKGDIFF.
871
8722016-05-13 Chenxiong Qi <cqi@redhat.com>
873
874 Fix pep8 error
875 * tools/fedabipkgdiff (build_commandline_args_parser): Fix
876 PEP8 error, line is too long.
877
8782016-05-13 Chenxiong Qi <cqi@redhat.com>
879
880 Use consistent string format
881 * tools/fedabipkgdiff (download_rpm): do not omit positional
882 argument specifiers in string format.
883
8842016-05-16 Dodji Seketeli <dodji@redhat.com>
885
886 Remove config.h.in from the repository
887 * config.h.in: Remove from repository.
888
8892016-02-09 Chenxiong Qi <cqi@redhat.com>
890
891 Bug 19428 - New fedabipkgdiff utility
892 * autoconf-archive/ax_compare_version.m4: New file copied from the
893 autoconf-archive project.
894 * autoconf-archive/ax_prog_python_version.m4: Likewise.
895 * autoconf-archive/ax_python_module.m4: Likewise.
896 * Makefile.am: Add the new files above to the source distribution.
897 * configure.ac: Include the new m4 macros from the autoconf
898 archive. Add a new --enable-fedabipkgdiff option. Update the
899 report at the end of the configure process to show the status of
900 the fedabipkgdiff feature. Add check for prerequisite python
901 modules argparse, glob, logging, os, re, shlex, subprocess, sys,
902 itertools, urlparse, itertools, shutil, unittest, xdg, koji and
903 mock. These are necessary for the unit test of
904 fedabipkgdiff. Generate tests/runtestfedabipkgdiff.py into the
905 build directory, from the tests/runtestfedabipkgdiff.py.in input
906 file.
907 * tools/Makefile.am: Include the fedabipkgdiff to the source
908 distribution and install it if the "fedabipkgdiff" feature is
909 enabled.
910 * tests/Makefile.am: Rename runtestfedabipkgdiff.sh into
911 runtestfedabipkgdiff.py. Add the new runtestfedabipkgdiff.py.in
912 autoconf template file in here.
913 * tests/runtestfedabipkgdiff.py.in: New unit test file.
914 * tools/fedabipkgdiff: New fedabipkgdiff tool.
915 * doc/manuals/fedabipkgdiff.rst: New manual.
916
9172016-05-07 Dodji Seketeli <dodji@redhat.com>
918
919 Implement a [suppress_file] suppression directive
920 * doc/manuals/libabigail-concepts.rst: Document the new
921 'suppress_file' directive.
922 * include/abg-suppression.h (file_suppression): Define new class.
923 (file_suppression_sptr): Define new typedef.
924 (is_file_suppression, file_is_suppressed): Declare new functions.
925 * src/abg-suppression.cc ():
926 (read_file_suppression, is_file_suppression, file_is_suppressed):
927 Define new functions.
928 (file_suppression::{file_suppression, suppresses_file,
929 ~file_suppression}): Define new member functions.
930 * tools/abidiff.cc (main): If a suppression specification
931 suppresses one of the input files, then do not perform the
932 comparison.
933 * tools/abipkgdiff.cc (compare): If a suppression specification
934 suppresses a file that is to be compared, then do not perform the
935 comparison.
936 * tools/abicompat.cc (create_diff_context): New static function.
937 (perform_compat_check_in_normal_mode)
938 (perform_compat_check_in_weak_mode): Adjust to take a context in
939 parameter. Do not create a diff context here anymore, do not load
940 suppression files here either.
941 (main): Use the new create_diff_context to create a diff context
942 and initialize it, including loading suppression specifications.
943 If any suppression specification suppresses a file to load, then
944 do not load perform any compatibility checking. Adjust
945 invocations of perform_compat_check_in_weak_mode and
946 perform_compat_check_in_normal_mode to pass the diff context.
947 * tests/data/test-diff-suppr/test0-type-suppr-3.suppr: New test
948 input.
949 * tests/data/test-diff-suppr/test0-type-suppr-4.suppr: Likewise.
950 * tests/data/test-diff-suppr/test0-type-suppr-report-4.txt: Likewise.
951 * tests/data/test-diff-suppr/test0-type-suppr-5.suppr: Likewise.
952 * tests/data/test-diff-suppr/test0-type-suppr-report-5.txt:
953 Likewise.
954 * tests/data/test-diff-suppr/test0-type-suppr-6.suppr: Likewise.
955 * tests/data/test-diff-suppr/test0-type-suppr-report-6.txt:
956 Likewise.
957 * tests/data/test-diff-suppr/test0-type-suppr-report-7.txt:
958 Likewise.
959 * tests/test-diff-suppr.cc (in_out_specs): Use the new test
960 inputs.
961 * tests/data/test-abicompat/test0-fn-changed-1.suppr: New test
962 input.
963 * tests/data/test-abicompat/test0-fn-changed-report-3.txt:
964 Likewise.
965 * tests/test-abicompat.cc (in_out_specs):: Use the new test
966 inputs.
967 * tests/data/Makefile.am: Add the new test material to source
968 distribution.
969
9702016-05-07 Dodji Seketeli <dodji@redhat.com>
971
972 Split suppression engine off of abg-comparison.{cc,h}
973 * include/Makefile.am: Add abg-suppression.h to source
974 distribution.
975 * include/abg-comparison.h: Remove abg-ini.h include directive.
976 (suppression_sptr, suppressions_type): Move these typedefs to
977 abg-fwd.h.
978 (class suppression_base, type_suppression)
979 (type_suppression::insertion_range)
980 (type_suppression::insertion_range::boundary)
981 (type_suppression::insertion_range::integer_boundary)
982 (type_suppression::insertion_range::fn_call_expr_boundary)
983 (function_suppression, function_suppression::parameter_spec)
984 (variable_suppression): Move these type definitions to the new
985 abg-suppression.h.
986 (read_suppressions, is_type_suppression, is_integer_boundary)
987 (is_fn_call_expr_boundary, is_function_suppression)
988 (is_variable_suppression, operator&)
989 (operator|): Move these function declarations to the new
990 abg-suppression.h.
991 (type_suppression, type_suppression_sptr, type_suppression_type)
992 (function_suppression, function_suppression_sptr)
993 (function_suppressions_type, variable_suppression)
994 (variable_suppression_sptr, variable_suppressions_type): Move
995 these forward declaration and typedefs to the new
996 abg-suppression.h.
997 (diff_context::suppressions): Adjust return type to
998 suppr::suppressions_type&.
999 (diff_context::add_suppression): Adjust parameter type to
1000 suppr::suppressions_sptr.
1001 (diff_context::add_suppressions): Adjust parameter type
1002 suppr::suppressions_type&.
1003 (is_type_diff, is_decl_diff, is_var_diff, is_function_decl_diff)
1004 (is_pointer_diff, is_reference_diff, is_fn_parm_diff)
1005 (is_base_diff, is_child_node_of_function_parm_diff)
1006 (is_child_node_of_base_diff): Declare these new functions. They
1007 were previously static, local to abg-comparison.cc only. Now they
1008 need to be exported because they are used by the suppression
1009 engine's code that now lives in its one files.
1010 * include/abg-fwd.h (suppr::{suppression_base, suppression_sptr,
1011 suppressions_type}): Forward declare these here.
1012 * include/abg-suppression.h (class suppression_base)
1013 (type_suppression, type_suppression::insertion_range)
1014 (type_suppression::insertion_range::boundary)
1015 (type_suppression::insertion_range::integer_boundary)
1016 (type_suppression::insertion_range::fn_call_expr_boundary)
1017 (function_suppression, function_suppression::parameter_spec)
1018 (variable_suppression): Move these type definitions here, in the
1019 namespace suppr.
1020 (read_suppressions, is_type_suppression, is_integer_boundary)
1021 (is_fn_call_expr_boundary, is_function_suppression)
1022 (is_variable_suppression, operator&)
1023 (operator|): Move these function decalration here, in the
1024 namespace suppr.
1025 (type_suppression_sptr, type_suppressions_type)
1026 (function_suppression_sptr, function_suppressions_type)
1027 (variable_suppression_sptr, variable_suppressions_type): Move
1028 these typedefs here, in the namespace suppr.
1029 * src/Makefile.am: add src/abg-suppression.cc to source
1030 distribution.
1031 * src/abg-comparison.cc (is_type_diff, is_decl_diff, is_var_diff)
1032 (is_function_decl_diff, is_pointer_diff, is_reference_diff)
1033 (is_reference_or_pointer_diff, is_fn_parm_diff, is_base_diff)
1034 (is_child_node_of_function_parm_diff, is_child_node_of_base_diff):
1035 Export these functions.
1036 (*suppression*): Move all the suppression-related definitions to
1037 the new abg-suppression.cc.
1038 * src/abg-suppression.cc: New file. Contains all the *suppression*
1039 definitions from src/abg-comparison.cc, that are put in the suppr
1040 namespace.
1041 * tools/abicompat.cc: Adjust.
1042 * tools/abidiff.cc: Likewise.
1043 * tools/abipkgdiff.cc: Likewise.
1044
10452016-05-08 Dodji Seketeli <dodji@redhat.com>
1046
1047 Fix indentation for abidiff manual
1048 * doc/manuals/abidiff.rst: Fix indentation for the --suppression
1049 paragraph.
1050
10512016-05-08 Dodji Seketeli <dodji@redhat.com>
1052
1053 Add several shortcuts to options for abicompat
1054 * doc/manuals/abicompat.rst: Update documentation.
1055 * tools/abicompat.cc (display_usage): Update help strings.
1056 (parse_command_line): Add shortcuts --suppr, --appd, --libd1 and
1057 --libd2.
1058
10592016-05-08 Dodji Seketeli <dodji@redhat.com>
1060
1061 Update copyright year in tools/abicompat.cc
1062 * tools/abicompat.cc: Update copyright years to 2016.
1063
10642016-05-07 Dodji Seketeli <dodji@redhat.com>
1065
1066 Fix mention of tool's name in abidiff error message
1067 * src/abg-tools-utils.cc (emit_prefix): Try to emit the prefix
1068 only if the program name was provided.
1069 * abidiff.cc (maybe_check_suppression_files): Pass the name of the
1070 tool to the check_file function.
1071
10722016-05-07 Dodji Seketeli <dodji@redhat.com>
1073
1074 Update copyright year on abg-comparison.h
1075 * include/abg-comparison.h: Update copyright year.
1076
10772016-05-08 Dodji Seketeli <dodji@redhat.com>
1078
1079 Doc not show classes' inherited members in apidoc
1080 * doc/api/libabigail.doxy: Don't show inherited member functions
1081 or variables of a given class.
1082
10832016-05-08 Dodji Seketeli <dodji@redhat.com>
1084
1085 Fix typo in concept manual
1086 * doc/manuals/libabigail-concepts.rst: Do not refer to abidiff
1087 specifically for suppressions because several tools use
1088 suppressions.
1089
10902016-05-08 Dodji Seketeli <dodji@redhat.com>
1091
1092 Fix indentation in concepts manual
1093 * doc/manuals/libabigail-concepts.rst: Fix indentation.
1094
10952016-05-06 Dodji Seketeli <dodji@redhat.com>
1096
1097 Add some apidoc to dwarf_reader
1098 * include/abg-dwarf-reader.h (namespace dwarf_reader): Add apidoc.
1099 (enum elf_type): Add an apidoc for each enumerator.
1100 * src/abg-dwarf-reader.cc (get_type_of_elf_file): Add an apidoc
1101 for the 'type' parameter.
1102
11032016-04-28 Dodji Seketeli <dodji@redhat.com>
1104
1105 [abipkgdiff] Show SONAME of removed/added libraries
1106 * tools/abipkgdiff.cc (abi_diff::{added,removed}_binaries): Change
1107 the type of these data member from vector<string> to
1108 vector<elf_file_sptr>.
1109 (compare): Adjust. Show the soname of added/removed binaries.
1110
11112016-04-27 Dodji Seketeli <dodji@redhat.com>
1112
1113 Bug 20015 - support file_name_not_regexp and soname_not_regexp in suppr specs
1114 * include/abg-comparison.h
1115 (suppression_base::{get,set}_file_name_not_regex_str): Declare new
1116 member functions.
1117 (suppression_base::{get,set}_soname_not_regex_str): Likewise.
1118 (suppression_base::{names,sonames}_of_binaries_match): Likewise.
1119 * src/abg-comparison.cc
1120 (suppression_base::priv::get_file_name_regex): Fix comment.
1121 (suppression_base::priv::get_file_name_not_regex): New member
1122 function.
1123 (suppression_base::priv::get_soname_regex): Fix comment.
1124 (suppression_base::priv::get_soname_not_regex): New member
1125 function.
1126 (suppression_base::{get,set}_file_name_not_regex_str): Define new
1127 member functions.
1128 (suppression_base::{get,set}_soname_not_regex_str): Likewise.
1129 (suppression_base::{names,sonames}_of_binaries_match): Likewise.
1130 These got factorized out of type_suppression::suppresses_type,
1131 function_suppression::suppresses_function,
1132 function_suppression::suppresses_function_symbol,
1133 variable_suppression::suppresses_variable,
1134 variable_suppression::suppresses_variable_symbol.
1135 (type_suppression::suppresses_type): Use the new
1136 suppression_base::{names,sonames}_of_binaries_match.
1137 (read_type_suppression): Read the new file_name_not_regexp and
1138 soname_not_regexp properties.
1139 (function_suppression::{suppresses_function,
1140 suppresses_function_symbol}): Use the new
1141 suppression_base::{names,sonames}_of_binaries_match.
1142 (read_function_suppression): Read the new file_name_not_regexp and
1143 soname_not_regexp properties.
1144 (variable_suppression::{suppresses_variable,
1145 variable_suppression::suppresses_variable_symbol}): Use the new
1146 suppression_base::{names,sonames}_of_binaries_match.
1147 (read_variable_suppression): Use the new
1148 suppression_base::{names,sonames}_of_binaries_match.
1149 * doc/manuals/libabigail-concepts.rst: Document the new
1150 file_name_not_regexp and soname_not_regexp suppression properties.
1151 * tests/data/test-diff-suppr/test24-soname-report-10.txt: New test
1152 reference output.
1153 * tests/data/test-diff-suppr/test24-soname-report-11.txt: Likewise.
1154 * tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise.
1155 * tests/data/test-diff-suppr/test24-soname-report-13.txt: Likewise.
1156 * tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise.
1157 * tests/data/test-diff-suppr/test24-soname-report-15.txt: Likewise.
1158 * tests/data/test-diff-suppr/test24-soname-report-16.txt: Likewise.
1159 * tests/data/test-diff-suppr/test24-soname-report-9.txt: Likewise.
1160 * tests/data/test-diff-suppr/test24-soname-suppr-10.txt: New test input.
1161 * tests/data/test-diff-suppr/test24-soname-suppr-11.txt: Likewise.
1162 * tests/data/test-diff-suppr/test24-soname-suppr-12.txt: Likewise.
1163 * tests/data/test-diff-suppr/test24-soname-suppr-13.txt: Likewise.
1164 * tests/data/test-diff-suppr/test24-soname-suppr-14.txt: Likewise.
1165 * tests/data/test-diff-suppr/test24-soname-suppr-15.txt: Likewise.
1166 * tests/data/test-diff-suppr/test24-soname-suppr-16.txt: Likewise.
1167 * tests/data/test-diff-suppr/test24-soname-suppr-9.txt: Likewise.
1168 * tests/data/test-diff-suppr/test29-soname-report-2.txt: New test
1169 reference output.
1170 * tests/data/test-diff-suppr/test29-soname-report-3.txt: Likewise.
1171 * tests/data/test-diff-suppr/test29-soname-report-4.txt: Likewise.
1172 * tests/data/test-diff-suppr/test29-soname-report-5.txt: Likewise.
1173 * tests/data/test-diff-suppr/test29-soname-report-6.txt: Likewise.
1174 * tests/data/test-diff-suppr/test29-soname-report-7.txt: Likewise.
1175 * tests/data/test-diff-suppr/test29-soname-report-8.txt: Likewise.
1176 * tests/data/test-diff-suppr/test29-suppr-2.txt: New test input.
1177 * tests/data/test-diff-suppr/test29-suppr-3.txt: Likewise.
1178 * tests/data/test-diff-suppr/test29-suppr-4.txt: Likewise.
1179 * tests/data/test-diff-suppr/test29-suppr-5.txt: Likewise.
1180 * tests/data/test-diff-suppr/test29-suppr-6.txt: Likewise.
1181 * tests/data/test-diff-suppr/test29-suppr-7.txt: Likewise.
1182 * tests/data/test-diff-suppr/test29-suppr-8.txt: Likewise.
1183 * tests/data/Makefile.am: Add the new test material to source
1184 distribution.
1185 * tests/test-diff-suppr.cc (in_out_specs): Make this test harness
1186 run over the new test inputs.
1187
11882016-04-27 Dodji Seketeli <dodji@redhat.com>
1189
1190 Make API documentation of thread pools visible
1191 * include/abg-workers.h: Document the workers namespace, the task,
1192 queue and queue::task_done_notify types.
1193 * src/abg-workers.cc: Move the documentation of the thread_pool
1194 module inside the abigail::worker namespace, so that references to
1195 task and queue types (which are also in the abigail::worker
1196 namespace) can be resolved in the apidoc.
1197
11982016-04-27 Dodji Seketeli <dodji@redhat.com>
1199
1200 Update documentation to require doxygen and python-sphinx for building
1201 * COMPILING: Add python-sphinx to the set of required packages to
1202 build the documentation.
1203 * doc/website/mainpage.txt: Update the website to mention doxygen
1204 and python-sphinx for documentation.
1205
12062016-04-27 Dodji Seketeli <dodji@redhat.com>
1207
1208 Add doc, info, man and html-doc targets to generate documentation
1209 * Makefile.am: Add info, man and html-doc targets to generate
1210 documentation in info, man and html formats. If you want to
1211 generate them all, then the doc target is the one to be used.
1212 * COMPILING: Add documentation for the above.
1213
12142016-04-25 Dodji Seketeli <dodji@redhat.com>
1215
1216 Bug 19964 - Cannot load function aliases on ppc64
1217 * src/abg-dwarf-reader.cc (read_context::load_symbol_maps): While
1218 filling the ppc64-specific "function-entry-address => symbol" map,
1219 if we stumble accross a function-entry-address that belongs to an
1220 alias of 'symbol', then assume the alias must have been registered
1221 as an alias already, by the platform-agnostic code. Do not try to
1222 register the alias again.
1223 * tests/data/Makefile.am: Add the new test input binaries to the
1224 source distribution.
1225 * tests/data/test-diff-dwarf/libtest36-ppc64-aliases-v0.so: New
1226 binary test input.
1227 * tests/data/test-diff-dwarf/libtest36-ppc64-aliases-v1.so: Likewise.
1228 * tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt:
1229 New test reference output.
1230 * tests/data/test-diff-dwarf/test36-ppc64-aliases-v0.cc: Source
1231 code for the new binary test input above.
1232 * tests/data/test-diff-dwarf/test36-ppc64-aliases-v1.cc: Likewise.
1233 * tests/test-diff-dwarf.cc: Add the new test input to the list of
1234 test inputs considered by this test harness.
1235
12362016-04-20 Sinny Kumari <sinny@redhat.com>
1237
1238 Bug 19961 - Distinguish between PI executable and shared library
1239 * include/abg-dwarf-reader.h (elf_type): Add new enumerator
1240 ELF_TYPE_PI_EXEC.
1241 * src/abg-dwarf-reader.cc
1242 (lookup_data_tag_from_dynamic_segment): New function for
1243 data tag lookup in dynamic segment of an elf
1244 (elf_file_type): Return ELF_TYPE_PI_EXEC file type for
1245 a PI executable.
1246 (get_elf_file_type): Change this to take an elf handle.
1247 (get_type_of_elf_file): New function that got factorized out of ...
1248 (load_dt_soname_and_needed): ... this one.
1249 * tools/abipkgdiff.cc (create_maps_of_package_content): Also
1250 consider ELF_TYPE_PI_EXEC file type.
1251 (compare): Likewise.
1252 * tests/test-diff-pkg.cc (in_out_specs): Test case additions
1253 * tests/data/Makefile.am: Include test files
1254 * tests/data/test-diff-pkg/tarpkg-1-dir1.tar.gz: New test data
1255 * tests/data/test-diff-pkg/tarpkg-1-dir2.tar.gz: New test data
1256 * tests/data/test-diff-pkg/tarpkg-1-report-0.txt: New test result
1257
12582016-04-17 Dodji Seketeli <dodji@redhat.com>
1259
1260 Update website to 1.0.rc4
1261 * doc/website/mainpage.txt: Update tarball reference to 1.0.rc4
1262
12632016-04-17 Dodji Seketeli <dodji@redhat.com>
1264
1265 Bump current version number to 1.0.rc5
1266 * configure.ac: Bump current version number to 1.0.rc5
1267
12682016-04-17 Dodji Seketeli <dodji@redhat.com>
1269
1270 Add a 'release' target to main Makefile
1271 * Makefile.am: Add tarball, upload-release-only, upload-release
1272 and release targets.
1273
12016-04-11 Dodji Seketeli <dodji@redhat.com> 12742016-04-11 Dodji Seketeli <dodji@redhat.com>
2 1275
3 Update ChangeLog for 1.0.rc4 1276 Update ChangeLog for 1.0.rc4