summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorDodji Seketeli <dodji@redhat.com>2016-01-05 15:32:22 +0100
committerDodji Seketeli <dodji@redhat.com>2016-01-05 15:32:22 +0100
commit8a2cc3ceb764e858d7eaee7a09e82253ceda7b0a (patch)
tree6bcf93beb94e10b00a108c660828ca8124d11fe1 /ChangeLog
parentFix abidw -v (diff)
downloadlibabigail-8a2cc3ceb764e858d7eaee7a09e82253ceda7b0a.tar.gz
libabigail-8a2cc3ceb764e858d7eaee7a09e82253ceda7b0a.tar.bz2
libabigail-8a2cc3ceb764e858d7eaee7a09e82253ceda7b0a.tar.xz
Update ChangeLog before 1.0.rc1libabigail-1.0.rc1
* ChangeLog: Update automatically with make update-changelog Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog472
1 files changed, 472 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 94bef679..cd04433b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,475 @@
12016-01-05 Dodji Seketeli <dodji@redhat.com>
2
3 Fix abidw -v
4 * tools/abidw.cc (parse_command_line): Simplify logic.
5 (main): Fix logic.
6
72016-01-05 Dodji Seketeli <dodji@redhat.com>
8
9 Add a NEWS file
10 * NEWS: New file.
11 * Makefile.am: Add NEWS file to source distribution.
12
132016-01-04 Dodji Seketeli <dodji@redhat.com>
14
15 Bug 19355 - Libabigail slow on r300_dri.so
16 * src/abg-dwarf-reader.cc (struct imported_unit_point): Define new
17 type.
18 (operator<(const imported_unit_point&, const
19 imported_unit_point&)): Define less-than operator for new
20 imported_unit_point& type.
21 (imported_unit_points_type, tu_die_imported_unit_points_map_type):
22 New typedefs.
23 (find_lower_bound_in_imported_unit_points): Define new static function.
24 (read_context::tu_die_imported_unit_points_map_): New data member.
25 (read_context::tu_die_imported_unit_points_map): New getter.
26 (die_die_attribute): Define new overload.
27 (build_die_parent_relations_under): Take imported_unit_points_type
28 output parameter and populate it along the way. Remove the
29 overload that takes a read_context as a parameter.
30 (build_primary_die_parent_relations_under)
31 (build_alternate_die_parent_relations_under): Remove.
32 (build_die_parent_maps): Pass an instance of
33 imported_unit_points_type to build_die_parent_relations_under.
34 (find_import_unit_point_between_dies): Rename one overload of
35 find_last_import_unit_point_before_die into this. Adjust to make
36 it find the import point between two offsets.
37 (find_import_unit_point_before_die): Rename the other overload of
38 find_last_import_unit_point_before_die into this. Adjust to use
39 find_import_unit_point_between_dies.
40 (get_parent_die): Adjust to use find_import_unit_point_before_die.
41
422016-01-04 Dodji Seketeli <dodji@redhat.com>
43
44 Support two different variables having the same underlying symbol
45 * src/abg-ir.cc (var_decl::get_id()): Include the name of the
46 variable in the ID.
47
482016-01-04 Dodji Seketeli <dodji@redhat.com>
49
50 Avoid adding the same base class twice
51 * src/abg-dwarf-reader.cc:
52 * src/abg-reader.cc:
53
542016-01-04 Dodji Seketeli <dodji@redhat.com>
55
56 Speed up class_decl::find_base_class
57 * src/abg-ir.cc (class_decl::priv::bases_map_): New data member.
58 (class_decl::add_base_specifier): Add the new base specifier to
59 the new class_decl::priv::bases_map_ data member.
60 (class_decl::find_base_class): Use the new
61 class_decl::priv::bases_map_ data member to speed up finding the
62 base class.
63
642016-01-04 Dodji Seketeli <dodji@redhat.com>
65
66 Make class_decl::base_spec class follow the pimpl pattern
67 * include/abg-ir.h (class_decl::base_spec::priv): Declare new
68 private data type.
69 (class_decl::base_spec::priv_): Declare new pimpl data member.
70 (class_decl::base_spec::{base_class_, offset_in_bits_,
71 is_virtual_}): Remove.
72 (class_decl::base_spec::{get_base_class, get_is_virtual,
73 get_offset_in_bits}): Make these member functions out of line.
74 * src/abg-ir.cc (struct class_decl::base_spec::priv): New type.
75 (class_decl::base_spec::{get_base_class, get_is_virtual,
76 get_offset_in_bits}): Define these functions here.
77 (class_decl::base_spec::base_spec): Adjust because now there is
78 only one pimpl data member to initialize.
79
802015-11-16 Ondrej Oprala <ooprala@redhat.com>
81
82 Add the option of printing the file, line and column information about a type being reported.
83 * bash-completion/abicompat: Complete the new "--no-show-locs" option.
84 * bash-completion/abidiff: Likewise.
85 * bash-completion/abidw: Likewise.
86 * bash-completion/abipkgdiff: Likewise.
87 * doc/manuals/abicompat.rst: Mention the new "--no-show-locs" option.
88 * doc/manuals/abidiff.rst: Likewise.
89 * doc/manuals/abidw.rst: Likewise.
90 * doc/manuals/abipkgdiff.rst: Likewise.
91 * include/abg-comparison.h (show_locs): Add declarations.
92 * src/abg-comparison.cc: (diff_context::priv): Add a new switch
93 called "show_locs_" and set its default value to false.
94 (report_loc_info): New function. Outputting the extra information
95 is conditionalized based on the associated diff contexts settings.
96 (show_locs): define a getter/setter for
97 diff_context::priv::show_locs_.
98 ({distinct,pointer,reference,qualified_type,enum,class,scope,fn_parm,
99 typedef,corpus}_diff::report): Call report_loc_info when
100 appropriate.
101 (maybe_report_diff_for_member): Likewise.
102 (represent): Accept a const reference to a diff_context_sptr as a first
103 argument and call report_loc_info on its second argument.
104 * src/abg-dwarf-reader.cc:
105 * tests/data/Makefile.am: Add the new test reference files.
106 * tests/data/test-abicompat/test0-fn-changed-report-2.txt: New test
107 reference output.
108 * tests/data/test-abicompat/test5-fn-changed-report-1.txt: Likewise.
109 * tests/data/test-abicompat/test6-var-changed-report-1.txt: Likewise.
110 * tests/data/test-abicompat/test7-fn-changed-report-2.txt: Likewise.
111 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt:
112 Likewise.
113 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt:
114 Likewise.
115 * tests/data/test-diff-pkg/dirpkg-3-report-2.txt: Likewise.
116 * tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt: Likewise.
117 * tests/test-abidiff.cc: Explicitly create a diff context and turn off
118 location emitting.
119 * tests/test-diff-dwarf.cc: Likewise.
120 * tests/test-abicompat.cc: Add --no-show-locs to all existing test
121 arguments. Run a few of the existing tests again, but without this
122 option.
123 * tests/test-diff-filter.cc: Likewise.
124 * tests/test-diff-pkg.cc: Likewise.
125 * tests/test-diff-suppr.cc: Likewise.
126 * tools/abicompat.cc: Handle the new "--no-show-locs" option.
127 * tools/abidiff.cc: Likewise.
128 * tools/abidw.cc: Likewise.
129 * tools/abipkgdiff.cc: Likewise.
130
1312015-11-16 Ondrej Oprala <ooprala@redhat.com>
132
133 Fix a function doc
134 * src/abg-ir.cc: (location_manager::expand_location): Fix a factual
135 error in the function documentation.
136
1372015-12-11 Dodji Seketeli <dodji@redhat.com>
138
139 [PERF] Speedup comparing declaration-only class_decls
140 * src/abg-ir.cc (equals): In the overload for class_decl, avoid
141 calling class_decl::get_is_declaration_only() several times.
142 Avoid copying the qualified name of the class_decl. Also, use the
143 == operator to compare strings, rather than the != one.
144
1452015-12-11 Dodji Seketeli <dodji@redhat.com>
146
147 [PERF] Access naked pointers for canonical types and function types
148 * include/abg-ir.h (type_base::get_naked_canonical_type): Declare
149 new accessor.
150 (function_decl::get_naked_canonical_type): Likewise.
151 (function_decl::set_type): Pass a reference to the shared_ptr.
152 * src/abg-ir.cc (type_base::priv::naked_canonical_type): New data
153 member.
154 (type_base::priv::priv): Initialize it.
155 (canonicalize): Set the naked canonicalize type when we set its
156 shared pointer.
157 (type_base::get_naked_canonical_type): Define new accessor.
158 ({pointer_type_def,reference_type_def,function_type,class_decl}::operator==):
159 Use naked canonical pointers rather than the slower shared_ptr to
160 canonical pointers.
161 (function_decl::priv::naked_type_): New data member.
162 (function_decl::priv::priv): Initialize it.
163 (function_decl::get_naked_type): Define new accessor.
164 (function_decl::set_type): Pass a reference to the shared_ptr .
165 (equals): In the overload for function_decl, use the faster naked
166 pointers to the type of the function.
167
1682015-12-11 Dodji Seketeli <dodji@redhat.com>
169
170 [PERF] Turn some pimpl pointers into naked pointers
171 * include/abg-ir.h ({decl_base, type_base, function_decl}::priv_)
172 Make this a naked pointer to priv, rather than a shared_ptr<priv>.
173 * src/abg-ir.cc (decl_base::~decl_base): Destroy the private data
174 pointer, aka pimpl pointer.
175 (type_base::~type_base): Likewise.
176 (function_decl::~function_decl): Likewise.
177 (class_decl::~class_decl): Likewise.
178
1792015-12-11 Dodji Seketeli <dodji@redhat.com>
180
181 [PERF] Pass a bunch of perf-sensitive smart pointers by reference
182 * include/abg-fwd.h (lookup_type_in_corpus, lookup_type_in_scope)
183 (lookup_var_decl_in_scope): Pass the decls smart pointers by
184 reference.
185 * src/abg-ir.cc (lookup_type_in_corpus, lookup_type_in_scope)
186 (lookup_var_decl_in_scope): Pass the decls smart pointers by
187 reference, for performance reasons.
188
1892015-12-10 Dodji Seketeli <dodji@redhat.com>
190
191 Bug 19126 - abidw segv on a dwz compressed version of r300_dri.so
192 * include/abg-ir.h (class location_manager): Forward declare it
193 before class location.
194 (location::loc_manager_): New data member.
195 (location::location): Take the location manager in one overload
196 and initialize the new loc_managers_ in all the overloads.
197 (location::get_location_manager): New getter.
198 (location::expand): New member function.
199 (location::*): Add API doc to all entry points.
200 (location_manager::expand_location): Take a const location.
201 (type_or_decl_base::set_corpus): Remove.
202 (type_or_decl_base::{get,set}_translation): New accessors.
203 (decl_base::{decl_base,get_location}): Take or return a reference
204 on location.
205 (scope_decl::scope_decl): Likewise.
206 (type_decl::type_decl): Likewise.
207 (namespace_decl::namespace_decl): Likewise.
208 (qualified_type_def::qualified_type_def): Likewise.
209 (pointer_type_def::pointer_type_def): Likewise.
210 (reference_type_def::reference_type_def): Likewise.
211 (array_type_def::subrange_type::{subrange_type,
212 get_location}): Likewise.
213 (enum_type_decl::enum_type_decl): Likewise.
214 (typedef_decl::typedef_decl): Likewise.
215 (var_decl::var_decl): Likewise.
216 (function_decl::function_decl): Likewise.
217 (function_decl::parameter::parameter): Likewise.
218 (template_decl::template_decl): Likewise.
219 (type_tparameter::type_tparameter): Likewise.
220 (non_type_tparameter::non_type_tparameter): Likewise.
221 (function_tdecl::function_tdecl): Likewise.
222 (class_tdecl::class_tdecl): Likewise.
223 (class_decl::class_decl): Likewise.
224 (class_decl::method_decl::method_decl): Likewise.
225 * src/abg-ir.cc (location::expand_location): Define new member
226 function.
227 (type_or_decl_base::priv::corpus_): Remove.
228 (type_or_decl_base::priv::translation_unit_): New data member.
229 (type_or_decl_base::priv::priv): Adjust.
230 (type_or_decl_base::set_corpus): Remove.
231 (type_or_decl_base::get_corpus): Adjust.
232 (type_or_decl_base::{get,set}_translation_unit): New member
233 functions.
234 (decl_base::priv::priv): Take a reference to location.
235 (decl_base::decl_base): Likewise.
236 (decl_base::get_location): Return a reference to location.
237 (location_manager::create_new_location): Adjust.
238 (location_manager::expand_location): Take a reference to location.
239 (translation_unit::get_global_scope()): Adjust.
240 (translation_unit::bind_function_type_life_time): Likewise.
241 (scope_decl::{add,insert}_member_decl): Adjust.
242 (get_translation_unit): Likewise.
243 (type_decl::type_decl): Take a reference to location.
244 (namespace_decl::namespace_decl): Likewise.
245 (qualified_type_def::qualified_type_def): Likewise.
246 (pointer_type_def::pointer_type_def): Likewise.
247 (reference_type_def::reference_type_def): Likewise.
248 (array_type_def::subrange_type::priv::priv): Likewise.
249 (array_type_def::subrange_type::{subrange_type,
250 get_location}): Likewise.
251 (enum_type_decl::enum_type_decl): Likewise.
252 (typedef_decl::typedef_decl): Likewise.
253 (var_decl::var_decl): Likewise.
254 (function_decl::function_decl): Likewise.
255 (function_decl::parameter::parameter): Likewise.
256 (template_decl::template_decl): Likewise.
257 (type_tparameter::type_tparameter): Likewise.
258 (non_type_tparameter::non_type_tparameter): Likewise.
259 (function_tdecl::function_tdecl): Likewise.
260 (class_tdecl::class_tdecl): Likewise.
261 (class_decl::class_decl): Likewise.
262 (class_decl::method_decl::method_decl): Likewise.
263 * src/abg-writer.cc (write_location): Take a reference to
264 location and adjust.
265 (write_array_type_def, write_function_decl, dump_decl_location):
266 Adjust.
267
2682015-12-08 Dodji Seketeli <dodji@redhat.com>
269
270 Fix some white space nits
271 * src/abg-comparison.cc (class_diff::report): Remove a useless
272 horizontal white space.
273 * src/abg-ir.cc (operator==): Add a vertical space.
274
2752015-12-08 Dodji Seketeli <dodji@redhat.com>
276
277 Filter out harmless diagnostics glitches due to some ODR violation
278 * src/abg-comp-filter.cc
279 (class_diff_has_harmless_odr_violation_change): New static
280 function.
281 (harmless_filter::visit): Call it.
282
2832015-12-08 Dodji Seketeli <dodji@redhat.com>
284
285 Fix internal name for pointers, typedefs and arrays
286 * include/abg-ir.h (pointer_type_def::priv_): New data structure.
287 The type is now pimpled.
288 (typedef_decl::priv_): Likewise.
289 * src/abg-ir.cc (struct pointer_type_def::priv): New struct.
290 (pointer_type_def::pointer_type_def): Adjust.
291 (pointer_type_def::get_pointed_to_type): Likewise.
292 (pointer_type_def::get_qualified_name): Store temporary/internal
293 names into different caches.
294 (array_type_def::priv::{temp_internal_qualified_name_,
295 internal_qualified_name_}): New data members.
296 (get_type_representation): In the overload for array_type_def,
297 take requests for internal names into account.
298 (array_type_def::get_qualified_name): Take requests for internal
299 names into account. Store temporary/internal names into different
300 caches.
301 (typedef_decl::priv): New struct.
302 (typedef_decl::typedef_decl): Adjust.
303 (typedef_decl::get_underlying_type): Likewise.
304
3052015-12-08 Dodji Seketeli <dodji@redhat.com>
306
307 Avoid try/catch code paths when that is possible
308 * src/abg-ir.cc (is_type, equals): Do not use try/catch based
309 dynamic_cast.
310
3112015-12-08 Dodji Seketeli <dodji@redhat.com>
312
313 Fix comparison in qualified_type_diff::has_changes
314 * src/abg-comparison.cc (qualified_type_diff::has_changes): Make
315 this stupid and simple, now that we have (fast) canonical type
316 based comparison.
317 * include/abg-ir.h (qualified_type_diff::operator==): Add an
318 overload for qualified_type_diff here.
319 (operator==): Likewise.
320 * src/abg-ir.cc (qualified_type_diff::operator==): Define it.
321 (operator==): Likewise.
322
3232015-12-06 Dodji Seketeli <dodji@redhat.com>
324
325 Bug 19336 - Better handle redundantly qualified reference types
326 * src/abg-dwarf-reader.cc (maybe_strip_qualification): Do not nuke
327 the qualified type. Rather, just turn the redundant const
328 qualifier into a no-op one.
329 * src/abg-comparison.cc (compute_diff_for_types): Look through
330 no-op qualified types.
331 * include/abg-ir.h
332 (decl_base::{peek,set}_temporary_qualified_name): Declare new
333 accessors.
334 * src/abg-ir.cc (decl_base::priv::temporary_qualified_name_): New
335 data member.
336 (decl_base::{peek,set}_temporary_qualified_name): Define new
337 accessors.
338 (qualified_type_def::priv::{temporary_internal_name_,
339 internal_name}): New data members.
340 (qualified_type_def::build_name): For a no-op qualified type, the
341 internal name (which contains the 'none' qualifier) is different
342 from the non-internal name.
343 (qualified_type_def::get_qualified_name): Handle temporary names
344 and non-temporary names in two different caches. Also handle
345 internal and non-internal names in two different caches. This
346 makes four different caches.
347 (qualified_name_setter::do_update): Do not touch the non-internal,
348 non-temporary qualified name cache if the qualified parent name is
349 empty.
350 * tools/abidw.cc (main): change --check-alternate-debug-info to
351 make it *not* display the name/path to the alternate debug info,
352 when it's found. Rather, only
353 --check-alternate-debug-info-base-name keeps displaying the base
354 name of the alternate debug info.
355 * tests/data/test-alt-dwarf-file/test1-libgromacs-debug-dir/*: New
356 test material.
357 * tests/data/Makefile.am: Add the new test material to the build
358 system.
359 * tests/test-alt-dwarf-file.cc (in_out_specs): Take the new test
360 input into account.
361 * tests/data/test-read-dwarf/test1.abi: Adjust.
362 * tests/data/test-read-dwarf/test7.so.abi: Likewise.
363 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
364 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
365 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
366 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
367 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
368 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
369 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
370 Likewise.
371 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
372 Likewise.
373 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
374 Likewise.
375 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
376 Likewise.
377
3782015-12-06 Dodji Seketeli <dodji@redhat.com>
379
380 Do not forget to peel qualified type off when peeling types
381 * include/abg-fwd.h (peel_qualified_type): Declare new function
382 ...
383 * src/abg-ir.cc (peel_qualified_type): ... and define it.
384 (peel_typedef_pointer_or_reference_type): Peel qualified types
385 here too.
386
3872015-12-06 Dodji Seketeli <dodji@redhat.com>
388
389 Find more spots where to discriminate internal and non-internal names
390 * src/abg-ir.cc (get_type_name, get_method_type_name)
391 ({typedef_decl,var_decl,function_decl,class_decl}::get_pretty_representation):
392 Propagate the internal-ness to the call to get_qualified_name().
393
3942015-12-06 Dodji Seketeli <dodji@redhat.com>
395
396 Constify is_qualified_type()
397 * include/abg-fwd.h (is_qualified_type): Make this take a const
398 parameter.
399 * src/abg-ir.cc (is_qualified_type): Likewise.
400
4012015-11-28 Dodji Seketeli <dodji@redhat.com>
402
403 Add missing new line to abidiff help message
404 * tools/abidiff.cc (display_usage): Add missing new line.
405
4062015-11-26 Dodji Seketeli <dodji@seketeli.org>
407
408 Do not abort when there is no binary to compare in a package
409 * tests/data/test-diff-pkg/empty-pkg-libvirt-0.9.11.3-1.el7.ppc64.rpm:
410 New input test package.
411 * tests/data/test-diff-pkg/empty-pkg-libvirt-1.2.17-13.el7_2.2.ppc64.rpm:
412 Likewise.
413 * tests/data/test-diff-pkg/empty-pkg-report-0.txt: New test
414 reference output.
415 * data/Makefile.am: Add the new test material above to the build system.
416 * tests/test-diff-pkg.cc (int_out_specs): Add the new test inputs
417 to the set of tests.
418 * tools/abipkgdiff.cc (compare): Do not abort if there is no
419 binary to compare.
420
4212015-11-14 Ondrej Oprala <ooprala@redhat.com>
422
423 Abidiff: Remove doubled line in help.
424 * tools/abidiff.cc (display_usage): Remove a doubled help message.
425
4262015-11-14 Ondrej Oprala <ooprala@redhat.com>
427
428 Add bash-completion scripts for the libabigail tools
429 * Makefile.am: include bash-completion/Makefile.am
430 * bash-completion/Makefile.am: New makefile for the bash-completion
431 directory.
432 * bash-completion/abicompat: New completion script.
433 * bash-completion/abidiff: Likewise.
434 * bash-completion/abidw: Likewise.
435 * bash-completion/abilint: Likewise.
436 * bash-completion/abinilint: Likewise.
437 * bash-completion/abipkgdiff: Likewise.
438 * bash-completion/abisym: Likewise.
439 * configure.ac: Check for the bash-completion package. Handle
440 the new --enable-bash-completion[=WHEN] configure option.
441 * manuals/libabigail-tools.rst: Mention the scripts.
442
4432015-11-17 Dodji Seketeli <dodji@redhat.com>
444
445 Read enum values in the size_t and write them in ssize_t
446 * include/abg-ir.h (enum_type_def::enumerator::get_value): Return
447 a size_t.
448 * src/abg-ir.cc (enum_type_decl::enumerator::get_value): Likewise.
449 * src/abg-dwarf-reader.cc (die_signed_constant_attribute): #if-out
450 this static function that is not used anymore.
451 (build_enum_type): Read the value of the enumerator using a size_t
452 value.
453 * src/abg-reader.cc (build_enum_type_decl): Read the enum value
454 using a long long int.
455 * src/abg-writer.cc (write_enum_type_decl): Write using a ssize_t.
456
4572015-11-17 Dodji Seketeli <dodji@redhat.com>
458
459 Bump version to release candidate 1.0.rc1
460 * configure.ac: Bump version to release candidate 1.0.rc1
461
4622015-11-17 Dodji Seketeli <dodji@redhat.com>
463
464 Do not use designated initializers in abipkgdiff.cc
465 * tools/abipkgdiff.cc (prepare_packages): Do not use designated
466 initializers syntax.
467
4682015-11-16 Dodji Seketeli <dodji@redhat.com>
469
470 Update ChangeLog for 1.0.rc0
471 * ChangeLog: Udpate using make update-changelog
472
12015-11-16 Dodji Seketeli <dodji@redhat.com> 4732015-11-16 Dodji Seketeli <dodji@redhat.com>
2 474
3 Fix doxygen configuration file paths in doc/Makefile.am 475 Fix doxygen configuration file paths in doc/Makefile.am