summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1323
-rw-r--r--NEWS65
2 files changed, 1387 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 4459f7bb..e0ca790a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1326 @@
12016-11-24 Dodji Seketeli <dodji@redhat.com>
2
3 Avoid using size_t to get DWARF data
4 * src/abg-dwarf-reader.cc (die_size_in_bits, die_location_expr):
5 Take uint64_t rather than size_t and adjust.
6 (expr_result::const_value_): Make this be int64_t rather than
7 ssize_t.
8 (expr_result::expr_result): Take int64_t rather than ssize_t.
9 (expr_result::const_value): Return int64_t rather than ssize_t.
10 (expr_result::{operator(), operator=, operator+=}): Make these
11 operators return or take int64_t.
12 too.
13 (op_pushes_constant_value, op_manipulates_stack)
14 (op_is_arith_logic, op_is_control_flow)
15 (eval_last_constant_dwarf_sub_expr, die_member_offset)
16 (die_virtual_function_index): Take
17 uint64_t rather than size_t, or int64_t rather than ssize_t.
18 (finish_member_function_reading, build_class_type_and_add_to_ir)
19 (build_union_type_and_add_to_ir): Adjust.
20
212016-11-24 Dodji Seketeli <dodji@redhat.com>
22
23 Fix a compiler warning issued by GCC 6.2.1
24 * src/abg-dwarf-reader.cc (find_import_unit_point_between_dies):
25 Parameter 5 of find_import_unit_point_between_dies is not of type
26 Dwarf_Off.
27
282016-11-24 Dodji Seketeli <dodji@redhat.com>
29
30 Fix offset type mismatch
31 * src/abg-dwarf-reader.cc (die_member_offset): The last two
32 parameters of die_unsigned_constant_attribute must be of type
33 uint64_t.
34
352016-11-24 Dodji Seketeli <dodji@redhat.com>
36
37 Fix indentation in abg-writer.cc
38 * src/abg-writer.cc (write_union_decl_opening_tag): Fix
39 indentation.
40
412016-11-23 Dodji Seketeli <dodji@redhat.com>
42
43 Support reading data member offset from DW_AT_bit_offset
44 * src/abg-dwarf-reader.cc (die_member_offset): Better comments.
45 Support reading the bit offset also from the DW_AT_bit_offset
46 attribute when it's present. Make sure this always returns a
47 value in bits.
48 (build_class_type_and_add_to_ir): No need to multiply (by 8) the
49 value returned by die_member_offset anymore because it's now in
50 bits directly.
51 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust.
52 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Adjust.
53 * tests/data/test-read-dwarf/test1.abi: Adjust.
54 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust.
55 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust.
56 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust.
57 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust.
58 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust.
59 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust.
60 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust.
61 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
62 Adjust.
63 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust.
64 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
65 Adjust.
66
672016-11-23 Dodji Seketeli <dodji@redhat.com>
68
69 Update README and ChangeLog for 1.0.rc6
70 * ChangeLog: Update this automatically using "make
71 update-changelog".
72 * NEWS: update this by editing the output of 'git shortlog
73 libabigail-1.0.rc5..HEAD'.
74
752016-11-23 Dodji Seketeli <dodji@redhat.com>
76
77 Lexicographically sort union data members in change reports
78 * src/abg-comparison.cc (data_member_comp::operator()): Data
79 members with the same offset are sorted lexicographically, by
80 taking their name into account.
81 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt:
82 Adjust.
83 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt:
84 Likewise.
85
862016-11-23 Dodji Seketeli <dodji@redhat.com>
87
88 Better diagnostics when wget is missing
89 * configure.ac: When wget is missing then make the disabling of
90 the building of the fedabipkgdiff tool show up in the
91 configuration summary and emit a notice.
92
932016-11-15 Dodji Seketeli <dodji@redhat.com>
94
95 Support union types
96 * include/abg-fwd.h (class_or_union, union_decl): Forward-declare
97 new types.
98 (is_class_or_union_type, is_union_type): Declare new functions.
99 * include/abg-ir.h (method_type::class_type_): Make this be of
100 class_or_union_wptr type.
101 (method_type::method_type): Make the class_type parameter be of
102 class_or_union_wptr type.
103 (method_type::{g,s}et_class_type): Take or return a
104 class_or_union_sptr.
105 (member_base, method_decl, member_function_template)
106 (member_class_template, member_base::hash)
107 (member_function_template::hash, member_class_template::hash):
108 Take these class types out of the class_decl scope.
109 (is_method_decl): Adjust.
110 (operator==, opertor!=): Adjust overloads for
111 member_function_template_sptr and member_class_template_sptr.
112 (class class_or_union): Declare new type.
113 (class class_decl): Make this class inherit class_or_union class.
114 (class_decl::{add_member_decl, insert_member_decl,
115 remove_member_decl, set_size_in_bits, get_size_in_bits,
116 get_alignment_in_bits, set_alignment_in_bits,
117 get_is_declaration_only, set_is_declaration_only,
118 set_definition_of_declaration, get_definition_of_declaration,
119 get_earlier_declaration, set_earlier_declaration,
120 insert_member_type, add_member_type, remove_member_type,
121 get_member_type, find_member_type, add_data_member,
122 get_data_members, find_data_member, get_non_static_data_members,
123 add_member_function, get_member_functions, find_member_function,
124 add_member_function_template, get_member_function_templates,
125 add_member_class_template, get_member_class_templates): Move these
126 to the parent class class_or_union.
127 (copy_member_function, equals): Add overloads for class_or_union.
128 (struct class_or_union::hash): Declare new type.
129 (class union_decl): Declare new type.
130 (equals, copy_member_function): New overloads for class union_decl
131 type.
132 (ir_node_visitor::visit): Add new overloads for union_decl* and
133 class_or_union*.
134 * src/abg-ir.cc (get_member_function_is_ctor)
135 (set_member_function_is_ctor, get_member_function_is_dtor)
136 (set_member_function_is_dtor, get_member_function_is_const)
137 (set_member_function_is_const, get_member_function_vtable_offset)
138 (set_member_function_vtable_offset)
139 (get_member_function_is_virtual, set_member_function_is_virtual)
140 (maybe_update_types_lookup_map, get_location)
141 (get_method_type_name, is_at_global_scope, is_at_class_scope):
142 Adjust.
143 (is_class_or_union_type, is_union_type): Define new functions.
144 (type_base::get_canonical_type_for, maybe_adjust_canonical_type)
145 (method_type::method_type, method_type::set_class_type)
146 (function_decl::get_pretty_representation)
147 (function_decl::get_first_non_implicit_parm)
148 (function_decl::clone): Adjust.
149 (equals): Adjust the overload for function_type.
150 (struct class_or_union::priv): Define new type.
151 (class::priv::{declaration_, definition_of_declaration_,
152 member_types_, data_members_, non_static_data_members_,
153 member_functions_, mem_fns_map_, member_function_templates_,
154 member_class_templates_, is_declaration_only_}): Move these data
155 member into class_or_union::priv.
156 (class_priv::{mark_as_being_compared, unmark_as_being_compared,
157 comparison_started}): Moved these member functions to
158 class_or_union::priv.
159 (class_or_union::{class_or_union, traverse, ~class_or_union,
160 add_member_decl, remove_member_decl, insert_member_type,
161 add_member_type, get_size_in_bits, remove_member_type,
162 get_alignment_in_bits, set_alignment_in_bits, set_size_in_bits,
163 get_is_declaration_only, set_is_declaration_only,
164 set_definition_of_declaration, get_definition_of_declaration,
165 get_earlier_declaration, set_earlier_declaration,
166 get_member_types, find_member_type, add_data_member,
167 get_data_member, find_data_member, add_member_function,
168 get_member_functions, find_member_function,
169 add_member_function_template, get_member_function_templates,
170 add_member_class_template, get_member_class_templates,
171 has_no_member, insert_member_decl, operator==}): Define new member
172 functions.
173 (class_decl::{add_member_decl, remove_member_decl,
174 insert_member_type, add_member_type, get_size_in_bits,
175 remove_member_type, get_alignment_in_bits, set_alignment_in_bits,
176 set_size_in_bits, get_is_declaration_only,
177 set_is_declaration_only, set_definition_of_declaration,
178 get_earlier_declaration, set_earlier_declaration,
179 get_member_types, find_member_type, add_data_member,
180 get_data_member, find_data_member, add_member_function,
181 get_member_functions, find_member_function,
182 add_member_function_template, get_member_function_templates,
183 add_member_class_template, get_member_class_templates): Move these
184 member functions into class_or_union.
185 (class_decl::{class_decl, get_definition_of_declaration,
186 insert_member_decl, add_member_function, has_no_base_nor_member}):
187 Adjust.
188 (equals, copy_member_function): Define new overloads for
189 class_or_union.
190 (equals): Adjust the overload for class_decl.
191 (method_decl::{method_decl, set_linkage_name, ~method_decl,
192 get_type, set_scope}): Remove from the class_decl scope.
193 (member_base::operator==, member_function_template::operator==):
194 Likewise.
195 (member_function_template::traverse)
196 (member_class_template::operator==)
197 (member_class_template::traverse): Likewise.
198 (operator==, operator!=): Adjust the overlod for
199 member_function_template_sptr.
200 (is_method_decl, fixup_virtual_member_function)
201 (set_member_is_static): Adjust.
202 (virtual_member_function_less_than::operator()): Likewise.
203 (union_decl::{union_decl, get_pretty_representation, operator==,
204 traverse}): Define new member functions.
205 (equals, copy_member_function): Define new overloads for
206 union_decl.
207 (hash_type_or_decl): Adjust.
208 (ir_node_visitor::visit_{begin, end}): Adjust. Add new overloads
209 for class_or_union* and union_decl*.
210 * include/abg-comparison.h (changed_member_function_sptr)
211 (string_member_function_sptr_map): Adjust these typedefs.
212 (class class_or_union_diff): Declare new type.
213 (class_diff): Adjust to make this inherit the new
214 class_or_union_diff type.
215 (class_diff::{get_priv, member_types_changes,
216 data_members_changes, inserted_data_members, deleted_data_members,
217 member_fn_tmpls_changes, member_fn_tmpls_changes,
218 member_class_tmpls_changes}): These member functions got moved
219 into -- and shared with -- class_or_union_diff class.
220 (class union_diff): Declare new type.
221 (typedef union_diff_sptr): New typedef.
222 (compute_diff): New overload for union_diff
223 (is_class_diff, is_union_diff): Declare new functions.
224 * src/abg-comparison.cc (is_class_diff, is_union_diff): Define new
225 functions.
226 (compute_diff_for_types): Support union_decl.
227 (represent): Adjust.
228 (represent_data_member): Do not show offset information for data
229 members of unions as all union data members are at offset 0.
230 (struct class_or_union_diff::priv): New type.
231 (class_or_union_diff::priv::{member_type_has_changed,
232 subtype_changed_dm, member_class_tmpl_has_changed,
233 get_deleted_non_static_data_members_number,
234 get_inserted_non_static_data_members_number,
235 count_filtered_subtype_changed_dm, count_filtered_changed_dm,
236 count_filtered_changed_mem_fns, count_filtered_inserted_mem_fns,
237 count_filtered_deleted_mem_fns}): Define new member functions.
238 (class_or_union_diff::{class_or_union_diff, finish_diff_type,
239 lookup_tables_empty, lookup_tables_empty,
240 ensure_lookup_tables_populated, allocate_priv_data, get_priv,
241 ~class_or_union_diff, first_class_or_union, second_class_or_union,
242 member_types_changes, member_types_changes, data_members_changes,
243 inserted_data_members, deleted_data_members, member_fns_changes,
244 changed_member_fns, member_fns_changes, inserted_member_fns,
245 member_fn_tmpls_changes, member_fn_tmpls_changes,
246 member_class_tmpls_changes, member_class_tmpls_changes,
247 has_changes, has_local_changes, report, chain_into_hierarchy}):
248 Define new member functions.
249 (class_diff::priv::{member_types_changes_, data_members_changes,
250 member_fn_tmpls_changes_, member_class_tmpls_changes_,
251 deleted_member_types_, inserted_member_types_,
252 changed_member_types_, sorted_changed_member_types_,
253 deleted_data_members_, deleted_dm_by_offset_,
254 inserted_data_members_, inserted_dm_by_offset_,
255 subtype_changed_dm_, sorted_subtype_changed_dm_, changed_dm_,
256 sorted_changed_dm_, deleted_member_functions_,
257 inserted_member_functions_, changed_member_functions_,
258 sorted_changed_member_functions_, deleted_member_class_tmpls_,
259 inserted_member_class_tmpls_, changed_member_class_tmpls_,
260 sorted_changed_member_class_tmpls_}): Move these data members into
261 class_or_union_diff::priv.
262 (class_diff::{clear_lookup_tables, lookup_tables_empty,
263 ensure_lookup_tables_populate}): Adjust.
264 (class_diff::allocate_priv_data): Define new function.
265 (class_diff::priv::{count_filtered_changed_mem_fns,
266 count_filtered_inserted_mem_fns, count_filtered_deleted_mem_fns,
267 chain_into_hierarchy, class_diff}): Likewise.
268 (class_diff::{member_types_changes, data_members_changes,
269 inserted_data_members, deleted_data_members,
270 member_fn_tmpls_changes, member_fn_tmpls_changes,
271 member_class_tmpls_changes}): These are deleted as they got moved
272 to class_or_union_diff.
273 (class_diff::report): Adjust.
274 (union_diff::{clear_lookup_tables, lookup_tables_empty,
275 ensure_lookup_tables_populated, allocate_priv_data, union_diff,
276 finish_diff_type, first_union_decl, second_union_decl,
277 get_pretty_representation, report}): Define new functions.
278 (compute_diff): Define an overload for union_decl_sptr.
279 (function_decl_diff::report): Adjust.
280 (corpus_diff::priv::apply_suppressions_to_added_removed_fns_vars):
281 Adjust.
282 (corpus_diff::report): Adjust.
283 * src/abg-hash.cc (member_base::hash::operator)
284 (member_function_template::hash::operator)
285 (member_class_template::hash::operator): Move these out of the
286 class_decl scope.
287 (class_or_union::hash::operator): Define new member function.
288 (class_decl::hash::operator): Adjust.
289 (type_base::dynamic_hash::operator): Support hashing of
290 union_decl. Adjust.
291 * src/abg-suppression.cc (type_suppression::suppresses_diff):
292 Adjust.
293 * src/abg-dwarf-reader.cc (typedef die_class_or_union_map_type):
294 Define new typedef.
295 (read_context::{die_wip_classes_map_,
296 alternate_die_wip_classes_map_, type_unit_die_wip_classes_map_):
297 Make these data member have type die_class_or_union_map_type.
298 (read_context::{lookup_type_from_die_offset, die_wip_classes_map,
299 is_wip_class_die_offset, resolve_declaration_only_classes}):
300 Adjust.
301 (finish_member_function_reading, build_class_type_and_add_to_ir)
302 (build_function_type, build_function_decl, build_reference_type)
303 (type_is_suppressed, build_function_decl)
304 (maybe_canonicalize_type, maybe_set_member_type_access_specifier):
305 Adjust.
306 (build_union_type_and_add_to_ir): Define new static function.
307 (build_ir_node_from_die): Support DW_TAG_union_type DIE tag.
308 * src/abg-reader.cc (handle_element_node): Handle union_decl.
309 (build_function_decl, build_function_decl_if_not_suppressed):
310 Adjust.
311 (build_union_decl_if_not_suppressed, build_union_decl)
312 (handle_union_decl): Define new functions.
313 (build_class_decl): Adjust.
314 * src/abg-writer.cc (record_decl_only_type_as_emitted): Adjust.
315 (write_decl): Adjust. Support writting union_decl type.
316 p (write_class_decl_opening_tag, write_class_decl): Adjust. Call
317 the new write_class_or_union_is_declaration_only.
318 (write_union_decl_opening_tag, write_union_decl): Define new
319 static functions.
320 (write_member_tpe): Support writting union decl.
321 * tests/test-diff-dwarf.cc (in_out_specs): Add new tests for this
322 union type support.
323 * tests/data/test-diff-dwarf/libtest37-union-v0.so: New test input.
324 * tests/data/test-diff-dwarf/libtest37-union-v1.so: Likewise.
325 * tests/data/test-diff-dwarf/libtest38-union-v0.so: Likewise.
326 * tests/data/test-diff-dwarf/libtest38-union-v1.so: Likewise.
327 * tests/data/test-diff-dwarf/libtest39-union-v0.so: Likewise.
328 * tests/data/test-diff-dwarf/libtest39-union-v1.so: Likewise.
329 * tests/data/test-diff-dwarf/test37-union-report-0.txt: Likewise.
330 * tests/data/test-diff-dwarf/test38-union-report-0.txt: Likewise.
331 * tests/data/test-diff-dwarf/test39-union-report-0.txt: Likewise.
332 * tests/data/test-diff-dwarf/test37-union-v0.cc: Source code for
333 new test input.
334 * tests/data/test-diff-dwarf/test37-union-v1.cc: Likewise.
335 * tests/data/test-diff-dwarf/test38-union-v0.cc: Likewise.
336 * tests/data/test-diff-dwarf/test38-union-v1.cc: Likewise.
337 * tests/data/test-diff-dwarf/test39-union-v0.cc: Likewise.
338 * tests/data/test-diff-dwarf/test39-union-v1.cc: Likewise.
339 * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi:
340 Update test reference.
341 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt:
342 Likewise.
343 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt:
344 Likewise.
345 * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
346 * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
347 Likewise.
348 * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
349 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
350 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
351 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
352 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
353 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
354 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
355 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
356 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
357 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
358 Likewise.
359 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
360 Likewise.
361 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
362 Likewise.
363 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
364 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
365 Likewise.
366 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi:
367 Likewise.
368
3692016-11-10 Dodji Seketeli <dodji@redhat.com>
370
371 Support empty properties in INI files
372 * include/abg-ini.h (simple_property::simple_property): Add a new
373 constructor for empty values.
374 (simple_property::has_empty_value): Declare new member function.
375 * src/abg-ini.cc (simple_property::{simple_property,
376 has_empty_value}): Define new member functions.
377 (read_context::read_property): Support reading a property with no
378 value.
379 (write_property_value, write_property): Support writting a
380 property with empty value.
381
3822016-11-10 Dodji Seketeli <dodji@redhat.com>
383
384 Rename config::property_vector into config::properties_type
385 * include/abg-ini.h (config::properties_type): Rename the typedef
386 config::property_vector into this.
387 (config::section::{section, get_properties, set_properties}):
388 Adjust.
389 * src/abg-ini.cc (config::section::priv::properties_): Adjust the
390 name of its type.
391 (config::section::{section, get_properties, set_properties,
392 find_property}): Adjust.
393 (write_section): Adjust.
394 * src/abg-suppression.cc (read_function_suppression): Adjust.
395
3962016-11-09 Dodji Seketeli <dodji@redhat.com>
397
398 Apply harmless and harmful filters in one pass
399 * include/abg-comp-filter.h (class harmless_harmful_filter):
400 Decalre new class.
401 (typedef harmless_harmful_filter_sptr): Declare new typedef.
402 (class harmless_filter, class harmful_filter): Remove these class
403 declarations.
404 (typedef harmful_filter_sptr, harmless_filter_sptr): Remove these
405 typedefs.
406 * src/abg-comp-filter.cc (categorize_harmless_diff_node)
407 (categorize_harmful_diff_node): Define new static functions.
408 ({harmless, harmful}_filter::{visit, visit_end}): Remove these
409 member functions.
410 (harmless_harmful_filter::{visit, visit_end}): Define new member
411 functions.
412 * src/abg-comparison.cc (diff_context::diff_context): Register the
413 new harmless_harmful_filter, and remove the premier
414 harmless_filter and harmful_filter.
415 # Please enter the commit message for your changes. Lines starting
416 # with '#' will be ignored, and an empty message aborts the
417 commit. # On branch kabidiff-dedup # Changes to be committed: #
418 (use "git reset HEAD <file>..." to unstage) # # modified:
419 include/abg-comp-filter.h # modified: src/abg-comp-filter.cc #
420 modified: src/abg-comparison.cc # # Untracked files: # (use "git
421 add <file>..." to include in what will be committed) # # diff.txt
422 # prtests/ # tests/data/test-read-dwarf/libtest23.so.abi.conflict
423
4242016-11-08 Dodji Seketeli <dodji@redhat.com>
425
426 Avoid stripping typedefs too much
427 * src/abg-ir.cc (types_are_compatible)
428 (is_compatible_with_class_type): Do not strip typedefs. Just get
429 their leaf types.
430
4312016-11-08 Dodji Seketeli <dodji@redhat.com>
432
433 Misc style cleanups in abg-ir.cc
434 * src/abg-ir.cc (equals): In overloads for function_type and
435 class_decl, avoid returning a constant when we can return a
436 variable like in the rest of the code.
437
4382016-11-01 Dodji Seketeli <dodji@redhat.com>
439
440 Factorize out string representation of array_type_def::subrange_type
441 * src/abg-ir.cc (array_type_def::subrange_type::{as_string,
442 vector_as_string}): Define methods.
443 (array_type_def::get_subrange_representation): Use the new
444 vector_as_string method.
445
4462016-11-01 Dodji Seketeli <dodji@redhat.com>
447
448 Factorize out parsing of integral types
449 * src/abg-ir-priv.h: New file.
450 * src/Makefile.am: Add abg-ir-priv.h to the build system.
451 * src/abg-ir.cc: Include the new abg-ir-priv.h header file.
452 (class_integral_type): Move this type
453 declaration to the new abg-ir-priv.h header.
454 (integral_type::modifiers_type): Make this non-static.
455 (parse_integral_type): This new overload is a factorized out of
456 ...
457 (integral_type::integral_type): ... here.
458
4592016-10-31 Dodji Seketeli <dodji@redhat.com>
460
461 Misc style fixes in abg-ir.cc
462 * src/abg-ir.cc (get_function_type_name,
463 get_pretty_representation): Misc style fixes.
464
4652016-10-31 Dodji Seketeli <dodji@redhat.com>
466
467 Consider a method_decl as always being a member decl
468 * src/abg-ir.cc (is_member_decl): Consider a method decl as always
469 being a member decl.
470 (is_member_function): Use is_member_decl.
471
4722016-10-31 Dodji Seketeli <dodji@redhat.com>
473
474 Cleanup void and variadic parameter type interfaces
475 * include/abg-ir.h (environment::{get_void_type,
476 get_variadic_parameter_type}): Renamed get_void_type_decl and
477 get_variadic_parameter_type_decl to these.
478 (environment::is_void_type): Remove the overload that takes a bare
479 pointer.
480 (environment::is_variadic_parameter_type): Declare new member
481 function.
482 * src/abg-ir.cc (environment::void_type_): Renamed the data member
483 void_type_decl_ into this.
484 (environment::variadic_marker_type_): Renamed the data member
485 variadic_marker_type_decl_ into this.
486 (environment::{get_void_type, get_variadic_parameter_type}):
487 Renamed get_void_type_decl and get_variadic_parameter_type_decl to
488 these.
489 (environment::is_void_type): Take a smart pointer now.
490 (environment::is_variadic_parameter_type): Define new member
491 function.
492 (synthesize_function_type_from_translation_unit): Adjust.
493 (function_decl::parameter::get_pretty_representation): Likewise.
494 * src/abg-comparison.cc (is_diff_of_variadic_parameter_type):
495 Adjust.
496 * src/abg-dwarf-reader.cc (build_function_type)
497 (build_ir_node_for_void_type): Likewise.
498 * src/abg-reader.cc (build_function_parameter)
499 (build_function_decl, build_function_type): Likewise.
500
5012016-10-31 Dodji Seketeli <dodji@redhat.com>
502
503 Cleanup some entry points in abg-fwd.h
504 * include/abg-fwd.h (add_decl_to_scope): Pass the scope smart
505 pointer by reference.
506 (is_member_type): pass the type smart pointer by reference.
507 (is_function_decl, is_pointer_type, is_reference_type)
508 (is_qualified_type, is_function_type, is_method_type)
509 (is_array_type): Take a type_or_decl base pointer, rather than
510 either a decl_base or type_base pointer.
511 * include/abg-ir.h (translation_unit::set_corpus): Take a pointer
512 to non-const corpus.
513 (translation_unit::get_corpus): Add a non-const overload.
514 (type_or_decl_base::get_corpus): Likewise.
515 (type_or_decl_base::set_translation_unit): Take a pointer to
516 non-corpus translation_unit.
517 (type_or_decl_base::get_translation_unit): Add a non-const
518 overload.
519 (scope_decl::{add_member_decl, insert_member_decl}): Pass the
520 member smart pointer by reference.
521 (scope_decl::remove_member_decl): Take a non-const smart pointer.
522 (class_decl::add_member_decl): Pass the decl smart pointer by
523 reference.
524 (is_method_decl): Take pointer or reference to type_or_decl_base
525 rather than function_decl.
526 * src/abg-ir.cc (translation_unit::priv::corpus): Make this a
527 pointer to non-const corpus.
528 (translation_unit::set_corpus): Take a pointer to non-const
529 corpus.
530 (translation_unit::get_corpus): Add a non-const overload.
531 (translation_unit::get_global_scope): Adjust.
532 (translation_unit::bind_function_type_life_time): Adjust.
533 (type_or_decl_base::translation_unit): Make this a pointer to
534 non-const translation_unit.
535 (type_or_decl_base::get_corpus): Likewise.
536 (type_or_decl_base::set_translation_unit): Take a pointer to
537 non-corpus translation_unit.
538 (type_or_decl_base::get_translation_unit): Add a non-const
539 overload.
540 (is_member_type): pass the type smart pointer by reference.
541 (scope_decl::{add_member_decl, insert_member_decl}): Take a
542 reference to the member decl smart pointer. Adjust.
543 (class_decl::add_member_decl): Likewise.
544 (scope_decl::remove_member_decl): Take a non-const smart pointer.
545 (add_decl_to_scope): Pass the scope smart pointer by reference.
546 (is_decl, is_function_decl, is_pointer_type, is_reference_type)
547 (is_qualified_type, is_function_type, is_method_type)
548 (is_method_decl, is_array_type): Take a type_or_decl base pointer,
549 rather than either a decl_base or type_base pointer.
550
5512016-10-31 Dodji Seketeli <dodji@redhat.com>
552
553 Fix abigail::ir::get_type_scope()
554 * src/abg-ir.cc (get_type_scope): Do not always return nil.
555
5562016-10-27 Dodji Seketeli <dodji@redhat.com>
557
558 Bug 20740 Broken check for dwarf_getalt in configure.ac
559 * configure.ac: Add missing spaces around the "=" of a conditional
560 expression.
561
5622016-10-11 Dodji Seketeli <dodji@redhat.com>
563
564 Canonicalize function types when reading from DWARF
565 * src/abg-dwarf-reader.cc (build_function_decl): Canonicalize
566 function types.
567
5682016-10-11 Dodji Seketeli <dodji@redhat.com>
569
570 Misc cleanups here and there
571 * src/abg-dwarf-reader.cc (canonicalize_types_scheduled): Fix
572 identation.
573 * src/abg-reader.cc (build_class_decl): Use class_decl_sptr rather
574 than shared_ptr<class_decl>.
575 * src/abg-writer.cc (write_class_is_declaration_only)
576 (write_is_struct, write_decl, write_decl_in_scope)
577 (write_type_decl, write_qualified_type_def)
578 (write_pointer_type_def, write_reference_type_def)
579 (write_array_type_def, write_enum_type_decl, write_typedef_decl)
580 (write_elf_symbol, write_var_decl, write_function_decl)
581 (write_member_type_opening_tag, write_member_type)
582 (write_class_decl_opening_tag, write_class_decl): Cleanup
583 parameters to use the right typedef, rather than the long
584 shared_ptr<*> form. Pass the shared pointers by reference as
585 well.
586
5872016-10-10 Dodji Seketeli <dodji@redhat.com>
588
589 Cleanup namespace importing in abg-interned-str.h
590 * include/abg-interned-str.h: Inject std::tr1::shared_ptr,
591 std::string and std::ostream inside the abigail namespace.
592 (interned_string::{interned_string, raw, operator==, operator!=,
593 operator<): Adjust.
594 (operator==, operator!=, operator<<, operator+): Adjust.
595
5962016-10-07 Dodji Seketeli <dodji@redhat.com>
597
598 Cleanup functions to detect infinite comparison of class_decl
599 * src/abg-ir.cc (class_decl::priv::unmark_as_being_compared): In
600 the overload that takes a pointer to class_decl, re-use the
601 overload that takes a reference.
602 (class_decl::priv::comparison_started): Do not crash if the klass
603 pointer is nil.
604 (equals): In the overload for class_decl&, undef the RESULT macro
605 when it's not used anymore.
606
6072016-10-07 Dodji Seketeli <dodji@redhat.com>
608
609 Cleanup class_decl inifite comparison detection
610 * src/abg-ir.cc (environment::priv::classes_being_compared_): Make
611 this use the new interned_string_set_type type.
612 (class_decl::priv::{mark_as_being_compared, comparison_started}):
613 Adjust.
614
6152016-10-10 Dodji Seketeli <dodji@redhat.com>
616
617 Apply ODR-based type comparison optimization to function types
618 * src/abg-ir.cc (type_eligible_for_odr_based_comparison):
619 Factorize this out of type_base::get_canonical_type_for. Also,
620 add function types to the set of types to use the ODR-based
621 comparison optimization on.
622 (type_base::get_canonical_type_for): Use the new
623 type_eligible_for_odr_based_comparison function.
624
6252016-10-07 Dodji Seketeli <dodji@redhat.com>
626
627 Prevent infinite loops while comparing two function_type
628 * include/abg-ir.h (class environment): Make class function_type
629 be a friend of this class.
630 (class function_type): Make the equality function for
631 function_types be a friend of this class.
632 * src/abg-ir.cc (environment::priv::fn_types_being_compared_): New
633 data member.
634 (function_type::priv::{mark_as_being_compared,
635 unmark_as_being_compared, comparison_started}): Define new member
636 functions.
637 (equals): In the overload for function_types, if any of the the
638 function_type being compared is already being compared, return
639 early saying that the two function_types are equal. This avoids
640
6412016-10-06 Dodji Seketeli <dodji@redhat.com>
642
643 Define a new interned_string_set_type typedef
644 * include/abg-interned-str.h (interned_string_set_type): Define a new
645 typedef for unordered_set<interned_string>.
646
6472016-09-23 Dodji Seketeli <dodji@redhat.com>
648
649 Update reference output of runtestreaddwarf
650 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust.
651 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust.
652 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust.
653 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust.
654 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust.
655
6562016-09-21 Matthias Klose <doko@debian.org>
657
658 Fix typo in abipkgdiff
659 * tools/abipkgdiff.cc (extract_deb): Fix typo.
660
6612016-09-12 Dodji Seketeli <dodji@redhat.com>
662
663 Better handle fedabipkgdiff dependencies detection
664 * configure.ac: It's only when --enable-fedabipkgdiff is provided
665 that a missing dependency of the fedabipkgdiff program results in
666 a fatal error. Otherwise, building fedabipkgdiff is just
667 disabled.
668
6692016-09-16 Dodji Seketeli <dodji@redhat.com>
670
671 Add default suppression specifications for C++ binaries
672 * default.abignore: Add suppressions for non-libstdc++ and
673 non-boost C++ libraries.
674
6752016-09-20 Dodji Seketeli <dodji@redhat.com>
676
677 Add default suppression specification for webkitgtk
678 * default.abignore: New suppression specifications for webkitgtk.
679
6802016-09-19 Dodji Seketeli <dodji@redhat.com>
681
682 Drop suppressed ABI artifacts from the IR
683 * doc/manuals/abidw.rst: Document the new --suppressions and
684 --headers-dir options off the abidw tool.
685 * doc/manuals/abilint.rst: Document the new --suppressions and
686 --headers-dir options on the abilint tool.
687 * doc/manuals/libabigail-concepts.rst: Document the new "drop" and
688 "name_not_regexp" properties on suppression directives.
689 * include/abg-corpus.h (corpus::corpus): Add a default argument to
690 the path parameter.
691 * src/abg-suppression-priv.h: New private header file.
692 * src/Makefile.am: Add the new abg-suppression-priv.h file to
693 source distribution.
694 * include/abg-suppression.h ({suppression_base, type_suppression,
695 function_suppression, variable_suppression}::priv): Make these
696 public.
697 (suppression_base::{g,s}et_drops_artifact_from_ir): Declare new
698 member functions.
699 (type_suppression::{suppressed_type}): Likewise.
700 (suppression_base::{names,sonames}_of_binaries_match): Remove
701 member functions.
702 (function_suppression::{get_name, set_name, get_name_regex_str,
703 set_name_regex_str}): Renamed get_function_name,
704 set_function_name, get_function_name_regex_str,
705 set_function_name_regex_str into these.
706 ({variable,function}_suppression::{g,s}et_name_not_regex_str):
707 Declare new member functions.
708 * src/abg-suppression.cc: Include the new abg-suppression-priv.h
709 private header.
710 (class suppression_base::priv, class type_suppression::priv, class
711 function_suppression::parameter_spec::priv, class
712 function_suppression::priv, class variable_suppression::priv):
713 Move these types to that new private header.
714 (suppression_base::{g,s}et_drops_artifact_from_ir)
715 (function_suppression::{g,s}et_name_not_regex_str)
716 (variable_suppression::{g,s}et_name_not_regex_str): New member
717 functions.
718 (sonames_of_binaries_match): New static function, taken from
719 suppression_base::sonames_of_binaries_match.
720 (names_of_binaries_match): New static function, taken from
721 suppression_base::names_of_binaries_match.
722 (suppression_matches_type_no_name): New static function.
723 (type_suppression::suppresses_type): Adjust
724 (function_suppression::suppresses_function)
725 (variable_suppression::suppresses_variable): Adjust. Evaluate the
726 new "name_not_regexp" property.
727 (suppression_matches_type_name)
728 (suppression_matches_type_location)
729 (suppression_matches_type_name_or_location)
730 (suppression_matches_function_name)
731 (suppression_matches_function_sym_name)
732 (suppression_matches_variable_name)
733 (suppression_matches_variable_sym_name, suppression_matches_type):
734 New functions.
735 (read_type_suppression): Support the new "drop_artifacts" and
736 "drop" properties.
737 (read_function_suppression, read_variable_suppression): Support
738 the new "drop_artifacts", "drop", and "name_not_regexp"
739 properties.
740 (function_suppression::{g,s}et_name): Renamed
741 {g,s}et_function_name into these.
742 (function_suppression::set_name_not_regex_str): Renamed
743 {g,s}et_name_regex_str into this.
744 (function_suppression::suppresses_function_symbol): Adjust.
745 * include/abg-dwarf-reader.h (add_read_context_suppressions):
746 Declare new function.
747 * src/abg-dwarf-reader.cc: Use the new private
748 abg-suppression-priv.h header file.
749 (read_context::supprs_): New data member.
750 (read_context::get_suppressions): New member function.
751 (read_context::get_die_source): Make this const.
752 (read_context::tu_die_imported_unit_points_map): Add a const
753 overload.
754 (read_context::cur_transl_unit): Renamed current_translation_unit
755 unit into this;
756 (read_context::cur_tu): Remove or rename into cur_transl_unit.
757 (get_scope_for_die, build_translation_unit_and_add_to_ir)
758 (build_enum_type, build_pointer_type_def, build_reference_type)
759 (build_function_type, build_array_type, build_function_decl):
760 Adjust.
761 (read_context::{suppression_can_match,
762 suppression_matches_function_sym_name,
763 suppression_matches_function_name,
764 suppression_matches_variable_sym_name,
765 suppression_matches_variable_name,
766 suppression_matches_type_name_or_location,
767 suppression_matches_type_name}): Add member functions.
768 (die_signed_constant_attribute): Remove this as dead code.
769 (die_location, die_loc_and_name)
770 (find_import_unit_point_between_dies)
771 (find_import_unit_point_before_die, get_parent_die): Make the
772 read_context& parameter be const and adjust as required.
773 (build_var_decl_if_not_suppressed, function_is_suppressed)
774 (variable_is_suppressed, type_is_suppressed): Define new static
775 functions.
776 (add_read_context_suppressions): Define new function.
777 (build_class_type_and_add_to_ir): Do not add suppressed static
778 data members to the IR.
779 (build_ir_node_from_die): Do not add suppressed enum types, class
780 types, variables or functions to the IR. Adjust for the
781 read_context::cur_tu -> read_context::cur_transl_unit rename.
782 * include/abg-reader.h (read_context_sptr): Declare new type.
783 (create_native_xml_read_context, read_corpus_from_input)
784 (add_read_context_suppressions): Declare new functions.
785 * src/abg-reader.cc: Include the new private
786 abg-suppression-priv.h header file.
787 (read_context::m_exported_decls_builder): Renamed
788 m_exported_decls_builder_ into this.
789 (read_context::get_exported_decls_builder): Adjust.
790 (read_context::get_cur_scope): Make this const.
791 (read_location): Take a const read_context and adjust.
792 (read_corpus_from_input): Make this non-static.
793 (build_namespace_decl): Don't abort if trying to add an artifact
794 to the IR doesn't succeed. It might be suppressed now.
795 (read_context::{m_path, m_supprs}): New data members.
796 (read_context::{g,s}et_path): New member functions.
797 (read_context::{get_suppressions,
798 suppression_matches_function_name, suppression_can_match,
799 suppression_matches_function_name,
800 suppression_matches_function_sym_name,
801 suppression_matches_variable_name,
802 suppression_matches_variable_sym_name,
803 suppression_matches_type_name_or_location}): Likewise.
804 (add_read_context_suppressions, create_native_xml_read_context)
805 (read_corpus_from_native_xml): New functions.
806 (build_function_decl_if_not_suppressed, function_is_suppressed)
807 (type_is_suppressed, build_var_decl_if_not_suppressed)
808 (variable_is_suppressed, build_enum_type_decl_if_not_suppressed)
809 (build_class_decl_if_not_suppressed): New static functions.
810 (build_class_decl): Add member types that are being built early,
811 so that their sub-types can be evaluated for suppression. Do not
812 add suppressed static data members or suppressed member functions
813 to the IR.
814 (build_type): Do not add an enum type or a class type to the IR if
815 they are suppressed.
816 (handle_enum_type_decl): Do not add an enum type to the IR if its
817 suppressed.
818 (handle_var_decl): Likewise for a variable decl.
819 (handle_function_decl): Likewise for a function decl.
820 (handle_class_decl): Likewise for a class decl.
821 * src/abg-tools-utils.cc (handle_fts_entry): Drop suppressed ABI
822 from the IR.
823 * tools/abidiff.cc (display_usage): Fix help strings for
824 --headers-dirs{1,2}.
825 (set_suppressions): New static function.
826 (main): Adjust. Release the memory used by read_context early.
827 * tools/abidw.cc (options::{headers_dir, suppression_paths}):
828 (display_usage): New help strings for the new --header-dir and
829 --suppressions options.
830 (parse_command_line): Parse the new --header-dir and
831 --suppressions options.
832 (maybe_check_suppression_files, set_suppressions): New static
833 functions.
834 (main): Use the two new functions above. Free the memory used by
835 the read context before working with the corpus.
836 * tools/abilint.cc (options::suppression_paths):
837 (display_usage): New help strings for the new --header-dir and
838 --suppressions options.
839 (parse_command_line): Parse the new --header-dir and
840 --suppressions options.
841 (maybe_check_suppression_files, set_suppressions): New static
842 functions.
843 (main): Use the two new functions above. Free the memory used by
844 the read context before working with the corpus.
845 * tests/data/test-diff-suppr/test24-soname-suppr-{2,3].txt:
846 Adjust.
847 * tests/data/test-diff-suppr/test29-suppr-6.txt: Likewise.
848 * tests/data/test-diff-suppr/test29-suppr-8.txt: Likewise.
849 * tests/data/test-diff-suppr/libtest31-v{0,1}.so: New test input.
850 * tests/data/test-diff-suppr/libtest31.suppr: Likewise
851 * tests/data/test-diff-suppr/libtest32-v{0,1}.so: Likewise.
852 * tests/data/test-diff-suppr/libtest32-0.suppr: Likewise.
853 * tests/data/test-diff-suppr/libtest33-v{0,1}.so: Likewise.
854 * tests/data/test-diff-suppr/test31-report-{0,1}.txt: Likewise.
855 * tests/data/test-diff-suppr/test31-v{0,1}.cc: Likewise.
856 * tests/data/test-diff-suppr/test32-report-{0,1}.txt: Likewise.
857 * tests/data/test-diff-suppr/test32-v{0,1}.c: Likewise.
858 * tests/data/test-diff-suppr/test33-suppr-1.txt: Likewise.
859 * tests/data/test-diff-suppr/test33-v{0,1}.cc: Likewise.
860 * tests/data/test-diff-suppr/test33-v{0,1}.h: Likewise.
861 * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
862 Likewise.
863 * tests/data/test-read-dwarf/libtest24-drop-fns.so: Likewise.
864 * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
865 * tests/data/test-read-dwarf/test24-drop-fns-0.suppr: Likewise.
866 * tests/data/test-read-dwarf/test24-drop-fns.cc: Likewise.
867 * tests/data/test-read-write/test28-drop-std-fns.abignore:
868 Likewise.
869 * tests/data/test-read-write/test28-drop-std-vars.abignore:
870 Likewise.
871 * tests/data/test-read-write/test28-without-std-fns-ref.xml:
872 Likewise.
873 * tests/data/test-read-write/test28-without-std-fns.xml: Likewise.
874 * tests/data/test-read-write/test28-without-std-vars-ref.xml:
875 Likewise.
876 * tests/data/test-read-write/test28-without-std-vars.xml:
877 Likewise.
878 * tests/data/test-read-write/test28.xml: Likewise.
879 * tests/data/Makefile.am: Add the new test artifacts to source
880 distribution.
881 * tests/test-diff-suppr.cc (in_out_spec): Take the new test inputs
882 into account.
883 * tests/test-read-dwarf.cc (Inoutspec::in_suppr_spec_path): New
884 data member.
885 (in_out_spec): Adjust. The new test inputs into account.
886 (set_suppressions): New static function.
887 (handle_in_out_spec): Adjust.
888 * tests/test-read-write.cc (Inoutspec::{in_suppr_spec_path,
889 ref_out_path}): New data members.
890 (in_out_spec): Adjust. Take new test inputs into account.
891 (main): Adjust.
892
8932016-09-19 Dodji Seketeli <dodji@redhat.com>
894
895 Pimplify the abigail::ir::scope_decl type
896 * include/abg-ir.h (scope_decl::{priv, priv_sptr}) Declare new types.
897 (scope_decl::priv_): New pimpl data member.
898 (scope_decl::{member_, member_scopes}): Move this as data member
899 of the new scope_decl::priv type in the abg-ir.cc file.
900 (scope_decl::{scope_decl, get_member_decls, get_member_scopes,
901 is_empty}): Make these inline member functions be out-of-line.
902 * src/abg-ir.cc (struct scope_decl::priv): Define new type.
903 (scope_decl::{scope_decl, get_member_decls, get_member_scopes,
904 is_empty}): Define these new member functions here. They were
905 inline in the include/abg-ir.h header files before.
906 (scope_decl::{add_member_decl, insert_member_decl,
907 remove_member_decl}): Adjust.
908
9092016-09-19 Dodji Seketeli <dodji@redhat.com>
910
911 Add new helper functions
912 * include/abg-fwd.h (get_location, build_qualified_name): Declare
913 new functions.
914 * include/abg-ir.h (is_method_decl): Declare two new overloads of
915 this function.
916 * src/abg-ir.cc (get_location, build_qualified_name)
917 (is_method_decl): Define these functions declared above.
918
9192016-09-19 Dodji Seketeli <dodji@redhat.com>
920
921 Do not emit empty namespaces in abixml
922 * include/abg-ir.h
923 (namespace_decl::is_empty_or_has_empty_sub_namespaces): Declare
924 new function ...
925 * src/abg-ir.cc
926 (namespace_decl::is_empty_or_has_empty_sub_namespaces): ... and
927 define it.
928 * src/abg-writer.cc (write_namespace_decl): Do not write empty
929 namespaces or namespaces containing empty namespaces.
930 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust.
931 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust.
932 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust.
933 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust.
934 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust.
935 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust.
936 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust.
937 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust.
938 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust.
939 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust.
940 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust.
941 * tests/data/test-read-dwarf/libtest23.so.abi: Adjust.
942
9432016-09-21 Dodji Seketeli <dodji@redhat.com>
944
945 Fix misleading indentation issues
946 * tools/abipkgdiff.cc (compare): Likewise.
947 * tools/abisym.cc (main): Fix misleading indentation.
948
9492016-08-30 Dodji Seketeli <dodji@redhat.com>
950
951 Bug 20534 - abipkgdiff wrongly displays the name of added binary files
952 * tools/abipkgdiff.cc (compare): Show the name of the added
953 binary, rather than its address.
954
9552016-08-24 Dodji Seketeli <dodji@redhat.com>
956
957 Bug 20420 - Wrong ODR-based type comparison optimization on qualified type
958 * src/abg-ir.cc:
959
9602016-08-23 Dodji Seketeli <dodji@redhat.com>
961
962 Don't walk diff trees indefinitely when applying suppressions
963 * src/abg-comparison.cc:
964
9652016-07-27 Dodji Seketeli <dodji@redhat.com>
966
967 Control symbols exported from libabigail.so
968 * VISIBILITY: New documentation about this visiblity business.
969 * CONTRIBUTING: Update the "contributing guide" to refer to symbol
970 visibility issues.
971 * configure.ac: Define a variable VISIBILITY_FLAGS that is set to
972 the -fvisibility=hidden flag to pass to GCC, when its available.
973 * src/Makefile.am: Add VISIBILITY to source distribution. Also
974 add COMPILING and COMMIT-LOG-GUIDELINES that were missing.
975 * src/Makefile.am: Use the new $(VISIBILITY_FLAGS) when buiding
976 the library.
977 * tests/Makefile.am: Use the new $(VISIBILITY_FLAGS) when buiding
978 tests.
979 * tools/Makefile.am: Use the new $(VISIBILITY_FLAGS) when buiding
980 tools.
981 * src/abg-comp-filter.cc: Enclose inclusion of public headers in
982 ABG_BEGIN_EXPORT_DECLARATIONS and ABG_END_EXPORT_DECLARATIONS to
983 export the symbols of entities declared in there.
984 * src/abg-comparison.cc: Likewise.
985 * src/abg-config.cc: Likewise.
986 * src/abg-corpus.cc: Likewise.
987 * src/abg-diff-utils.cc: Likewise.
988 * src/abg-dwarf-reader.cc: Likewise.
989 * src/abg-hash.cc: Likewise.
990 * src/abg-ini.cc: Likewise.
991 * src/abg-ir.cc: Likewise.
992 * src/abg-libxml-utils.cc: Likewise.
993 * src/abg-libzip-utils.cc: Likewise.
994 * src/abg-reader.cc: Likewise.
995 * src/abg-suppression.cc: Likewise.
996 * src/abg-tools-utils.cc: Likewise.
997 * src/abg-traverse.cc: Likewise.
998 * src/abg-viz-common.cc: Likewise.
999 * src/abg-viz-dot.cc: Likewise.
1000 * src/abg-viz-svg.cc: Likewise.
1001 * src/abg-workers.cc: Likewise.
1002 * src/abg-writer.cc: Likewise.
1003
10042016-07-26 Dodji Seketeli <dodji@redhat.com>
1005
1006 Support DW_TAG_type_unit
1007 * src/abg-dwarf-reader.cc (TYPE_UNIT_DIE_SOURCE): New enumerator
1008 in enum die_source.
1009 (read_context::{type_unit_die_decl_map_, type_unit_die_type_map_,
1010 type_unit_die_wip_classes_map_,
1011 type_unit_die_wip_function_types_map_,
1012 type_unit_types_to_canonicalize_,
1013 type_units_tu_die_imported_unit_points_map_,
1014 type_section_die_parent_map_}): New data members.
1015 (read_context::{get_die_source, associate_die_to_decl,
1016 lookup_decl_from_die_offset, die_type_map, clear_die_type_maps,
1017 die_wip_classes_map, die_wip_function_types_map,
1018 types_to_canonicalize, clear_types_to_canonicalize,
1019 tu_die_imported_unit_points_map, die_parent_map}): Support
1020 TYPE_UNIT_DIE_SOURCE.
1021 (get_parent_die, get_scope_for_die): Likewise.
1022 (read_context::{lookup_decl_from_type_unit_die_offset,
1023 type_section_die_parent_map}): Define new member functions.
1024 (read_context::build_die_parent_maps): Build a DIE -> parent map
1025 for DIEs coming from the .debug_types section.
1026 * tests/data/test-read-dwarf/libtest23.so: New test input.
1027 * tests/data/test-read-dwarf/libtest23.so.abi: New reference output.
1028 * tests/data/test-read-dwarf/test23-first-tu.cc: Source code of
1029 the new binary above.
1030 * tests/data/test-read-dwarf/test23-second-tu.cc: Likewise.
1031 * tests/data/Makefile.am: Add the new test material above to
1032 source distribution.
1033 * tests/test-read-dwarf.cc (in_out_specs): Make this test harness
1034 execute over the new test input and reference output.
1035
10362016-07-26 Dodji Seketeli <dodji@redhat.com>
1037
1038 Misc code cleanup
1039 * src/abg-dwarf-reader.cc (build_function_decl): Use the more
1040 readable is_class_type rather than a dynamic_cast.
1041
10422016-07-26 Dodji Seketeli <dodji@redhat.com>
1043
1044 Generalize DIE source concept in DWARF reader
1045 * src/abg-dwarf-reader.cc (enum die_source): Define new enum.
1046 (operator++): Define new prefix increment operator for the
1047 die_source enum.
1048 (imported_unit_point::imported_unit_from_alt_di): Remove this
1049 data member.
1050 (imported_unit_point::imported_unit_die_source):
1051 New data member of type die_source.
1052 (read_context::primary_die_parent_map_): Renamed
1053 die_parent_map_ data member into this.
1054 (read_context::clear_per_corpus_data): Use the new
1055 clear_die_type_maps function, not die_type_map. Also use the
1056 new clear_types_to_canonicalize overload that takes no
1057 parameter.
1058 (read_context::{get_die_source, clear_die_type_maps,
1059 clear_types_to_canonicalize}): New member functions.
1060 (build_ir_node_from_die, die_die_attribute, get_parent_die)
1061 (get_scope_for_die, build_namespace_decl_and_add_to_ir)
1062 (build_type_decl, build_enum_type)
1063 (build_class_type_and_add_to_ir, build_qualified_type)
1064 (build_pointer_type_def, build_reference_type)
1065 (build_function_type, build_array_type, build_typedef_type)
1066 (build_var_decl, build_function_decl): Remove the boolean
1067 parameter that was designating the source of the DIE. If
1068 necessary, get the source of the DIE from inside the function
1069 using the new read_context::get_die_source.
1070 (read_debug_info_into_corpus): Adjust.
1071 (maybe_canonicalize_type, find_import_unit_point_between_dies)
1072 (maybe_canonicalize_type, read_context::{associate_die_to_decl,
1073 lookup_decl_from_die_offset, die_type_map, associate_die_to_type,
1074 lookup_type_from_die_offset, die_wip_classes_map,
1075 die_wip_function_types_map, is_wip_class_die_offset,
1076 is_wip_function_type_die_offset, types_to_canonicalize,
1077 schedule_type_for_late_canonicalization,
1078 canonicalize_types_scheduled, add_late_canonicalized_types_stats,
1079 perform_late_type_canonicalizing}): Take a die_source as the
1080 source of the DIE, not a boolean. Adjust the code of the function
1081 accordingly.
1082 (read_context::{tu_die_imported_unit_points_map}): Modified
1083 this to make it take a die_source and return the appropriate
1084 map depending on the source.
1085 (read_context::build_die_parent_relations_under): Turn the
1086 non-member static function build_die_parent_relations_under
1087 into a member function.
1088 (read_context::build_die_parent_maps): Turn the non-member
1089 static function build_die_parent_maps into a member function.
1090 Make this function build a DIE -> parent map also for type
1091 DIEs that are in the .type_units section.
1092
10932016-07-25 Dodji Seketeli <dodji@redhat.com>
1094
1095 Cleanup is_class and is_compatible_with_class_type
1096 * include/abg-fwd.h (is_class): Remove the overloads that take a
1097 decl_base or a type_base. Add one that takes a type_or_decl_base.
1098 (is_compatible_with_class_type): Make this take a reference to
1099 smart pointer, not just the smart pointer.
1100 * src/abg-ir.cc (is_class): Do the same as in the header file.
1101 (is_compatible_with_class_type): Likewise.
1102
11032016-07-22 Dodji Seketeli <dodji@redhat.com>
1104
1105 Add ABG_ASSERT_NOT_REACHED macro
1106 * include/abg-tools-utils.h (ABG_ASSERT_NOT_REACHED): New macro.
1107 * src/abg-dwarf-reader.cc (stt_to_elf_symbol_type)
1108 (stb_to_elf_symbol_binding, get_elf_class_size_in_bytes)
1109 (build_ir_node_from_die): Use the new ABG_ASSERT_NOT_REACHED macro
1110 in lieu of just calling abort().
1111
11122016-07-22 Dodji Seketeli <dodji@redhat.com>
1113
1114 Prepare support for symbol visibility control
1115 * configure.ac: Detect compiler support for
1116 __attribute__((visibility("hidden")) and define the
1117 HAS_GCC_VISIBILITY_ATTRIBUTE macro accordingly. Update the
1118 configuration report.
1119 * src/abg-internal.h: New internal header file that defines macros
1120 to be used in the source code to control declaration visibility.
1121 * src/Makefile.am: Add abg-internal.h to source distribution. Add
1122 src/ to the include search path.
1123
11242016-07-06 Chenxiong Qi <cqi@redhat.com>
1125
1126 Make fedabipkgdiff consistent with Libabigail's other tests
1127 * configure.ac: Do not require Python dependencies itertools,
1128 unittest and StringIO anymore as they are not used anymore.
1129 Require new module tempfile now. Generate new executable script
1130 tests/mockfedabipkgdiff from tests/mockfedabipkgdiff.in.
1131 * doc/manuals/abipkgdiff.rst: Add doc for new option
1132 --show-identical-binaries to abipkgdiff
1133 * doc/manuals/fedabipkgdiff.rst: Add doc for new options
1134 --show-identical-binaries to fedabipkgdiff.
1135 * tools/abipkgdiff.cc (options::show_identical_binaries): New data
1136 member.
1137 (options::options): Initialize new data member.
1138 (display_usage): Add a new help string for the new
1139 --show-identical-binaries option.
1140 (parse_command_line): Parse the newq --show-identical-binaries
1141 command line switch.
1142 (pthread_routine_compare): When the comparison of two binaries is
1143 empty, if --show-identical-binaries was provided, then emit some
1144 output saying the comparison did yield the empty set.
1145 * tools/fedabipkgdiff (DEFAULT_ABIPKGDIFF): Store the default path
1146 to abipkgdiff in this new global variable. Naming this default
1147 path is useful because it can then be cleanly overloaded when
1148 using mock.patch.
1149 (build_path_to_abipkgdiff): Return the new DEFAULT_ABIPKGDIFF
1150 global variable.
1151 (cmd): Parse the new --show-identical-binaries command line
1152 switch.
1153 * tests/data/test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt:
1154 New reference output.
1155 * tests/data/test-fedabipkgdiff/test0-from-fc20-to-fc23-dbus-glib-report-0.txt:
1156 Likewise.
1157 * tests/data/test-fedabipkgdiff/test1-from-fc20-to-dbus-glib-0.106-1.fc23.x86_64-report-0.txt:
1158 Likewise.
1159 * tests/data/test-fedabipkgdiff/test2-dbus-glib-0.100.2-2.fc20--dbus-glib-0.106-1.fc23-report-0.txt:
1160 Likewise.
1161 * tests/data/test-fedabipkgdiff/test3-dbus-glib-0.100.2-2.fc20.i686--dbus-glib-0.106-1.fc23.i686-report-0.txt:
1162 Likewise.
1163 * tests/mockfedabipkgdiff.in: New uninstalled script template.
1164 * tests/runtestfedabipkgdiff.py.in (counter)
1165 (temp_file_or_dir_prefix, UtilsTest, RPMTest, LocalRPMTest)
1166 (RunAbipkgdiffTest, GetPackageLatestBuildTest, DownloadRPMTest)
1167 (BrewListRPMsTest, AssertionHelper, MockGlobalConfig)
1168 (BUILT_ABIPKGDIFF, CompareABIFromCommandLineTest): Remove these
1169 classes, global variables and functions.
1170 (FEDABIPKGDIFF, TEST_SRC_DIR, TEST_BUILD_DIR, INPUT_DIR)
1171 (OUTPUT_DIR, FEDABIPKGDIFF_TEST_SPECS): New global variables.
1172 (ensure_output_dir_created, run_fedabipkgdiff_tests, main): New
1173 functions.
1174 * tests/test-diff-pkg.cc (in_out_specs): Add
1175 tests/data/test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt
1176 to the set of reference outputs to consider.
1177 * tests/Makefile.am: Add non-installed script mockfedabipkgdiff to
1178 source distribution. Also added
1179 tests/data/test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt,
1180 tests/data/test-fedabipkgdiff/test0-from-fc20-to-fc23-dbus-glib-report-0.txt,
1181 tests/data/test-fedabipkgdiff/test1-from-fc20-to-dbus-glib-0.106-1.fc23.x86_64-report-0.txt,
1182 tests/data/test-fedabipkgdiff/test2-dbus-glib-0.100.2-2.fc20--dbus-glib-0.106-1.fc23-report-0.txt
1183 and
1184 tests/data/test-fedabipkgdiff/test3-dbus-glib-0.100.2-2.fc20.i686--dbus-glib-0.106-1.fc23.i686-report-0.txt
1185 to source distribution.
1186
11872016-07-13 Dodji Seketeli <dodji@redhat.com>
1188
1189 Fix spurious type size change report for distinct_diff
1190 * src/abg-comparison.cc (report_size_and_alignment_changes):
1191 Report size change only when the sizes are different.
1192 * tests/data/test-diff-filter/test33-report-0.txt: Adjust.
1193
11942016-07-13 Dodji Seketeli <dodji@redhat.com>
1195
1196 Bug 20199 - Consider integral type synonyms as being equal
1197 * src/abg-ir.cc (class integral_type): New class declaration and
1198 definition.
1199 (operator|, operator&, operator&=): New non-member bitwise
1200 operators for integral_type.
1201 (parse_integral_type_modifier, parse_base_integral_type)
1202 (parse_integral_type_modifier): New static function definitions.
1203 (type_decl::type_decl): Use the parse_integral_type to parse an
1204 integral type out of the current type_decl being built and
1205 transform the current type name into a canonical form.
1206 * tests/data/test-abidiff/test-PR18791-v0.so.abi: Adjust.
1207 * tests/data/test-abidiff/test-PR18791-v1.so.abi: Likewise.
1208 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise.
1209 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise.
1210 * tests/data/test-diff-filter/test33-report-0.txt: Likewise.
1211 * tests/data/test-diff-filter/test34-report-0.txt: Likewise.
1212 * tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt: Likewise.
1213 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
1214 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
1215 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
1216 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
1217 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
1218 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
1219 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
1220 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
1221 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
1222 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
1223 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
1224 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
1225 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
1226 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
1227
12282016-07-08 Dodji Seketeli <dodji@redhat.com>
1229
1230 Bug 20332 - too many ...'s counted as parameters
1231 * src/abg-dwarf-reader.cc (build_function_type): Create a variadic
1232 parameter just for the first DW_TAG_unspecified_parameters seen.
1233 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust.
1234 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Adjust.
1235 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust.
1236
12372016-07-06 Dodji Seketeli <dodji@redhat.com>
1238
1239 Better recognize qualified void type
1240 * include/abg-ir.h (environment::is_void_type): Declare new member
1241 function.
1242 * src/abg-ir.cc (environment::is_void_type): Define new member
1243 function.
1244 * src/abg-dwarf-reader.cc (maybe_strip_qualification): Strip const
1245 qualifier from const void.
1246 * tests/data/test-diff-filter/test34-libjemalloc.so.2-gcc-6.1.0:
1247 New test input.
1248 * tests/data/test-diff-filter/test34-libjemalloc.so.2-intel-16.0.3: Likewise.
1249 * tests/data/test-diff-filter/test34-report-0.txt: New reference output.
1250 * tests/data/Makefile.am: Add the new files above to the source
1251 distribution.
1252 * tests/test-diff-filter.cc (in_out_specs): Compare the two new
1253 binaries above.
1254 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust.
1255 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Adjust.
1256 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: Adjust.
1257 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: Adjust.
1258 * tests/data/test-read-dwarf/test1.abi: Adjust.
1259 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust.
1260 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust.
1261 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust.
1262 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust.
1263 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust.
1264 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust.
1265 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust.
1266 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust.
1267 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust.
1268 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust.
1269 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust.
1270 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust.
1271 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust.
1272 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust.
1273
12742016-07-05 Dodji Seketeli <dodji@redhat.com>
1275
1276 Bug 20194 - Fail to recognize void type represented by DW_TAG_base_type
1277 * src/abg-dwarf-reader.cc (build_type_decl): Recognize a
1278 DW_TAG_base_type of size zero and of name "void" as a void
1279 type.
1280 * tests/data/test-diff-filter/test33-libelf.so.0.8.13-gcc: New
1281 binary test input.
1282 * tests/data/test-diff-filter/test33-libelf.so.0.8.13-intel16.0.3: Likewise.
1283 * tests/data/test-diff-filter/test33-report-0.txt: New reference output.
1284 * tests/data/Makefile.am: Add the new files above to source
1285 distribution.
1286 * tests/test-diff-filter.cc (in_out_specs): Make this test harness
1287 run over the new test inputs above.
1288
12892016-07-04 Dodji Seketeli <dodji@redhat.com>
1290
1291 Add a new overload for is_type_decl
1292 * include/abg-fwd.h (is_type_decl): Declare a new overload
1293 * src/abg-ir.cc (is_type_decl): Define a new overload.
1294 (function_decl::parameter::get_pretty_representation): Adjust.
1295
12962016-06-29 Chenxiong Qi <cqi@redhat.com>
1297
1298 Add --abipkgdiff option in manual and bash completion
1299 * doc/manuals/fedabipkgdiff.rst: Add description of --abipkgdiff
1300 option. Reformat paragraph.
1301 * bash-completion/fedabipkgdiff: Add --abipkgdiff
1302
13032016-06-29 Chenxiong Qi <cqi@redhat.com>
1304
1305 Add fedabipkgdiff bash completion to dist
1306 * bash-completion/Makefile.am: Add fedabipkgdiff
1307 * bash-completion/fedabipkgdiff: Change mode to 775
1308
13092016-06-29 Chenxiong Qi <cqi@redhat.com>
1310
1311 Update bash completion for fedabipkgdiff
1312 * bash-completion/fedabipkgdiff: New bash completion file.
1313
13142016-06-29 Dodji Seketeli <dodji@redhat.com>
1315
1316 Bump version number to 1.0.rc6
1317 * configure.ac: Bump version number to 1.0.rc6
1318
13192016-06-29 Dodji Seketeli <dodji@redhat.com>
1320
1321 Update web page for 1.0.rc5
1322 * doc/website/mainpage.txt: Update web page.
1323
12016-06-27 Dodji Seketeli <dodji@redhat.com> 13242016-06-27 Dodji Seketeli <dodji@redhat.com>
2 1325
3 Update ChangeLog for 1.0.rc5 1326 Update ChangeLog for 1.0.rc5
diff --git a/NEWS b/NEWS
index a3afb012..7057e489 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,69 @@
11.0.rc6
2=======
3Chenxiong Qi:
4 Update bash completion for fedabipkgdiff
5 Add fedabipkgdiff bash completion to dist
6 Add --abipkgdiff option in manual and bash completion
7 Make fedabipkgdiff consistent with Libabigail's other tests
8
9Dodji Seketeli:
10 Bug 20332 - too many ...'s counted as parameters
11 Bug 20194 - Fail to recognize void type represented by DW_TAG_base_type
12 Bug 20199 - Consider integral type synonyms as being equal
13 Bug 20420 - Wrong ODR-based type comparison optimization on qualified type
14 Bug 20534 - abipkgdiff wrongly displays the name of added binary files
15 Bug 20740 - Broken check for dwarf_getalt in configure.ac
16 Add a new overload for is_type_decl
17 Better recognize qualified void type
18 Fix spurious type size change report for distinct_diff
19 Prepare support for symbol visibility control
20 Add ABG_ASSERT_NOT_REACHED macro
21 Cleanup is_class and is_compatible_with_class_type
22 Generalize DIE source concept in DWARF reader
23 Support DW_TAG_type_unit
24 Control symbols exported from libabigail.so
25 Don't walk diff trees indefinitely when applying suppressions
26 Fix misleading indentation issues
27 Do not emit empty namespaces in abixml
28 Add new helper functions
29 Pimplify the abigail::ir::scope_decl type
30 Drop suppressed ABI artifacts from the IR
31 Add default suppression specification for webkitgtk
32 Add default suppression specifications for C++ binaries
33 Better handle fedabipkgdiff dependencies detection
34 Update reference output of runtestreaddwarf
35 Define a new interned_string_set_type typedef
36 Prevent infinite loops while comparing two function_type
37 Apply ODR-based type comparison optimization to function types
38 Cleanup class_decl inifite comparison detection
39 Cleanup functions to detect infinite comparison of class_decl
40 Cleanup namespace importing in abg-interned-str.h
41 Canonicalize function types when reading from DWARF
42 Fix abigail::ir::get_type_scope()
43 Cleanup some entry points in abg-fwd.h
44 Cleanup void and variadic parameter type interfaces
45 Consider a method_decl as always being a member decl
46 Factorize out parsing of integral types
47 Factorize out string representation of array_type_def::subrange_type
48 Avoid stripping typedefs too much
49 Apply harmless and harmful filters in one pass
50 Rename config::property_vector into config::properties_type
51 Support empty properties in INI files
52 Support union types
53 Better diagnostics when wget is missing
54 Lexicographically sort union data members in change reports
55 Support reading data member offset from DW_AT_bit_offset
56 Fix indentation in abg-writer.cc
57 Fix offset type mismatch
58 Fix a compiler warning issued by GCC 6.2.1
59 Avoid using size_t to get DWARF data
60
61Matthias Klose:
62 Fix typo in abipkgdiff
63
11.0.rc5 641.0.rc5
2======= 65=======
3Chenxiong: 66Chenxiong Qi:
4 Bug 19428 - New fedabipkgdiff utility 67 Bug 19428 - New fedabipkgdiff utility
5 Bug 20085 - Add --dso-only option to fedabipkgdiff 68 Bug 20085 - Add --dso-only option to fedabipkgdiff
6 Bug 20135 - Make fedabipkgdiff compare ABIs using devel packages 69 Bug 20135 - Make fedabipkgdiff compare ABIs using devel packages