summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorDodji Seketeli <dodji@redhat.com>2021-10-04 10:58:23 +0200
committerDodji Seketeli <dodji@redhat.com>2021-10-04 10:58:23 +0200
commit7060a0b2675e871e49ff0e17b691113bbe1a7c5d (patch)
treea0d0a2edabea825bb4772478f8c9496ed4097d1c /ChangeLog
parentUpdate NEWS file for 2.0 (diff)
downloadlibabigail-7060a0b2675e871e49ff0e17b691113bbe1a7c5d.tar.gz
libabigail-7060a0b2675e871e49ff0e17b691113bbe1a7c5d.tar.bz2
libabigail-7060a0b2675e871e49ff0e17b691113bbe1a7c5d.tar.xz
Update ChangeLog for 2.0libabigail-2.0
* ChangeLog: Update automatically with make update-changelog. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog3552
1 files changed, 3552 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c810deae..30918b49 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,3555 @@
12021-10-04 Dodji Seketeli <dodji@redhat.com>
2
3 Update NEWS file for 2.0
4 * NEWS: Update for 2.0
5
62021-09-23 Dodji Seketeli <dodji@redhat.com>
7
8 Bug 27086 - Consider all C++ virtual destructors when there are many
9 * src/abg-dwarf-reader.c (build_or_get_fn_decl_if_not_suppressed):
10 Do not try to re-use a virtual destructor of a class, based on its
11 signature. Several different of these can have the same
12 signature, inside a given class.
13 * tests/data/test-types-stability/PR27086-libstdc++.so.6.0.26:
14 Add new binary test input.
15 * tests/data/Makefile.am: Add the new test input to source
16 distribution.
17 * tests/test-types-stability.cc (elf_paths): Add the test input
18 above to this harness.
19
202021-09-23 Dodji Seketeli <dodji@redhat.com>
21
22 dwarf-reader: Indent
23 * src/abg-dwarf-reader.cc (finish_member_function_reading): Fix
24 indentation.
25
262021-09-22 Dodji Seketeli <dodji@redhat.com>
27
28 Bug 27970 - Duplicated member functions cause spurious self comparison changes
29 * src/abg-dwarf-reader.cc (fixup_functions_with_no_symbols): When
30 the function decl is finally associated to its (publicly defined)
31 ELF symbol, mark it as being exported.
32 (finish_member_function_reading): Don't risk marking a virtual
33 function as being non-virtual when updating its properties.
34 (build_or_get_fn_decl_if_not_suppressed): Update comment. If the
35 member function is already present in the class, do not create a
36 new one; rather, reuse the existing one. It's going to be later
37 updated by finish_member_function_reading.
38 * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust.
39 * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
40 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise.
41 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise.
42 * tests/data/test-diff-filter/test41-report-0.txt: Likewise.
43 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
44 Likewise.
45 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
46 Likewise.
47 * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise.
48 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
49 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
50 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
51 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
52
532021-09-21 Dodji Seketeli <dodji@redhat.com>
54
55 abipkgdiff: Do not erase working dirs before we are done using them
56 * tools/abipkgdiff.cc (compare_prepared_userspace_packages):
57 Removing working directories "early" prevents e.g,
58 dwarf_reader::get_soname_of_elf_file from accessing those files.
59 So do not remove them until the very end.
60 * tests/data/test-diff-pkg/libxcrypt-4.1.1-6.el8.x86_64--libxcrypt-4.1.1-6.el8.x86_64-output-1.txt:
61 Adjust.
62
632021-09-14 Dodji Seketeli <dodji@redhat.com>
64
65 Bug 28316 - Failure to represent typedef named anonymous enums
66 * include/abg-fwd.h (scope_anonymous_or_typedef_named)
67 (is_anonymous_or_typedef_named): Declare new functions.
68 * include/abg-ir.h (decl_base::set_has_anonymous_parent): Remove
69 declaration.
70 (decl_base::{get,set}_naming_typedef): Declare new member
71 functions.
72 * src/abg-ir.cc (update_qualified_name): Define static function.
73 (decl_base::priv::naming_typedef_): Define new data member.
74 (decl_base::priv::has_anonymous_parent_): Remove data member.
75 (decl_base::priv::priv): Adjust constructor.
76 (decl_base::get_has_anonymous_parent): Rather than storing a flag
77 for this, dynamically look at if the scope is anonymous.
78 (decl_base::set_has_anonymous_parent): Remove definition.
79 (decl_base::{get,set}_naming_typedef): Define new member
80 functions.
81 (scope_anonymous_or_typedef_named)
82 (is_anonymous_or_typedef_named): Define new functions.
83 (get_decl_name_for_comparison): Define new sub-routine for the
84 decl_base overload of equals.
85 (equals): In the overload for decl_base, use the new
86 get_decl_name_for_comparison. It helps to ensure that all
87 anonymous decls of the same kind have the same name for the
88 purpose of comparison. It also ensures that non anonymous decls
89 that are part of anonymous scopes should be compared only by
90 looking at their non-qualified names. In the overload for
91 class_or_union, adjust.
92 (scope_decl::add_member_decl): No more need to flag the fast that
93 the parent scope is anonymous here.
94 (get_debug_representation): Fix a thinko.
95 (class_or_union::get_naming_typedef): Remove member function as
96 it's now handled by decl_base::get_naming_typedef.
97 * src/abg-dwarf-reader.cc (build_typedef_type): When a typedef is
98 a naming typedef, then mark the named decl as being typedef-named.
99 (maybe_canonicalize_type): Delay canonicalization of anonymous
100 types because they can be typedef-named later.
101 * src/abg-reader.cc (read_naming_typedef_id_string)
102 (maybe_set_naming_typedef): Define new static function.
103 (build_class_decl): Use it here, rather than reading the
104 "naming-typedef-id" by hand.
105 (build_enum_type_decl, build_union_decl): Read the
106 "naming-typedef-id" property.
107 * src/abg-writer.cc (write_naming_typedef): Make this accept
108 decl_base_sptr, rather than just class_decl_sptr.
109 (write_enum_type_decl): Write the naming-typedef-id property if
110 needed.
111 * tests/data/test-abidiff-exit/test-PR28316-report.txt: New test
112 reference output.
113 * tests/data/test-abidiff-exit/test-PR28316-v{0,1}.cc: Source code
114 of new binary test input.
115 * tests/data/test-abidiff-exit/test-PR28316-v{0,1}.o: New binary
116 test input files.
117 * tests/data/Makefile.am: Add the new test files to the source
118 distribution.
119 * tests/test-abidiff-exit.cc: Add the new test files above to this
120 harness.
121 * tests/data/test-annotate/libtest23.so.abi: Adjust.
122 * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
123 * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
124 * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
125 * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
126 * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
127 * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
128 * tests/data/test-diff-dwarf/test15-enum-report.txt: Likewise.
129 * tests/data/test-diff-filter/test19-enum-report-1.txt: Likewise.
130 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt:
131 Likewise.
132 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt:
133 Likewise.
134 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt:
135 Likewise.
136 * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt:
137 Likewise.
138 * tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: Likewise.
139 * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt:
140 Likewise.
141 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt:
142 Likewise.
143 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt:
144 Likewise.
145 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
146 Likewise.
147 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt:
148 Likewise.
149 * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
150 Likewise.
151 * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
152 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
153 * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
154 Likewise.
155 * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
156 * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
157 Likewise.
158 * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
159 * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
160 * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
161 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
162 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
163 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
164 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
165 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
166 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
167 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
168 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
169 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
170 Likewise.
171 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
172
1732021-09-17 Dodji Seketeli <dodji@redhat.com>
174
175 abipkgdiff: Fix showing added/removed files
176 * tools/abipkgdiff.cc (compare_prepared_userspace_packages): Do
177 not return early if there are no binaries to compare. Also add
178 more verbose messages.
179 * tests/data/test-diff-pkg/libxcrypt-4.1.1-6.el8.x86_64--libxcrypt-4.1.1-6.el8.x86_64-output-1.txt:
180 New reference output file.
181 * tests/data/test-diff-pkg/libxcrypt-4.1.1-6.el8.x86_64--libxcrypt-compat-4.4.18-3.el9.x86_64-report-1.txt:
182 New reference output file.
183 * tests/data/test-diff-pkg/libxcrypt-4.1.1-6.el8.x86_64.rpm: New
184 binary input file.
185 * tests/data/test-diff-pkg/libxcrypt-4.4.18-3.el9.x86_64.rpm: Likewise.
186 * tests/data/test-diff-pkg/libxcrypt-compat-4.4.18-3.el9.x86_64.rpm: Likewise.
187 * tests/data/test-diff-pkg/libxcrypt-compat-debuginfo-4.4.18-3.el9.x86_64.rpm: Likewise.
188 * tests/data/test-diff-pkg/libxcrypt-debuginfo-4.1.1-6.el8.x86_64.rpm: Likewise.
189 * tests/data/test-diff-pkg/libxcrypt-debuginfo-4.4.18-3.el9.x86_64.rpm: Likewise.
190 * tests/data/Makefile.am: Add the new testing files to source
191 distribution.
192 * tests/test-diff-pkg.cc (in_out_specs): Add these binary packages
193 to this testing harness.
194
1952021-09-09 Dodji Seketeli <dodji@redhat.com>
196
197 RHBZ1944102 - self comparing ABI of protobuf-3.14.0-2.el9 failed
198 * src/abg-reader.cc (read_size_and_alignment): Use atoll to read
199 long long values, not atoi.
200
2012021-09-08 Dodji Seketeli <dodji@redhat.com>
202
203 RHBZ1951496 - ir: Acknowledge that "void type" is not canonicalized
204 * src/abg-ir.cc (is_allowed_non_canonicalized_type): Define new
205 static function.
206 (hash_as_canonical_type_or_constant): Use it.
207
2082021-09-08 Dodji Seketeli <dodji@redhat.com>
209
210 writer: Avoid sigsev on types with no translation unit
211 * src/abg-writer.cc (referenced_type_should_be_emitted): Don't
212 crash on types with no associated translation unit.
213
2142021-09-08 Dodji Seketeli <dodji@redhat.com>
215
216 xml-reader: Get back to original way of building qualified types
217 * src/abg-reader.cc (build_qualified_type_decl): Create the
218 underlying type first, then create the qualified type.
219 This helps fix bug
220
2212021-09-08 Dodji Seketeli <dodji@redhat.com>
222
223 ir: Fix canonical type propagation cancelling
224 * src/abg-ir.cc (return_comparison_result): When the comparison of
225 the current type sub-object fails, clear the potentially
226 propagated canonical type and remove it from the set of types with
227 non confirmed propagated canonical types.
228
2292021-09-08 Dodji Seketeli <dodji@redhat.com>
230
231 ir: Avoid infinite loop during type canonicalization
232 * src/abg-ir-priv.h
233 (environment::priv::collect_types_that_depends_on): Don't try to
234 collect a type that has already been collected.
235
2362021-09-07 Dodji Seketeli <dodji@redhat.com>
237
238 writer: escape enum linkage name in abixml
239 * src/abg-writer.cc (write_enum_type_decl): Escape linkage name.
240
2412021-09-07 Dodji Seketeli <dodji@redhat.com>
242
243 RHBZ-1944096 - assertion failure during self comparison of systemd
244 * src/abg-reader.cc (build_enum_type_decl): When strtoll detects
245 an underflow or overflo, it sets errno to ERANGE. So take that
246 into account.
247
2482021-09-03 Dodji Seketeli <dodji@redhat.com>
249
250 Bug 27985 - abidiff: bad array types in report
251 * src/abg-ir.cc (array_type_def::get_qualified_name): Use the
252 cache for temporary qualified names when the type is not yet
253 canonicalized. That way, the cache for (non-temporary) qualified
254 names is used only for canonicalized types.
255 * tests/data/test-abidiff/test-PR27985-report.txt: Reference
256 output for the new test.
257 * tests/data/test-abidiff/test-PR27985-v{0,1}.c: Source code for
258 the new test binary inputs.
259 * tests/data/test-abidiff/test-PR27985-v{0,1}.o: New test binary inputs.
260 * tests/data/test-abidiff/test-PR27985-v{0,1}.o.abi: New test
261 abixml input.
262 * tests/data/Makefile.am: Add the new test materials above to
263 source distribution.
264 * tests/test-abidiff.cc (specs): Add the tests above to the harness.
265 * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt:
266 Adjust.
267 * tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt:
268 Adjust.
269
2702021-08-27 Giuliano Procida <gprocida@google.com>
271
272 abg-writer: faster referenced type emission tests
273 * src/abg-writer.cc (write_translation_unit): Reorder
274 referenced type emission tests for efficiency. Consolidate
275 related comments.
276 Reviewed-by: Matthias Maennich <maennich@google.com>
277
2782021-08-10 Dodji Seketeli <dodji@redhat.com>
279
280 RHBZ 1925886 - Compare anonymous types without qualified names
281 * include/abg-fwd.h (is_anonymous_type): Constify this function.
282 * src/abg-ir.cc (equals): In the overload for decl_base, do not
283 take scope of anonymous types into account. In the overload for
284 array_type_def do not peel of typedefs. This is not directly
285 related to anonymous types, but it make comparison more robust
286 against naming typedefs used for anonymous types in array
287 elements.
288 (get_type_name): Do not take into account the scope of anonymous
289 types when building internal representation of types. Note that
290 the internal representation is what is used for canonicalization.
291 This means that all anonymous types are compared against each
292 others during type canonicalization.
293 * src/abg-reader.cc (build_class_decl): Do not try to re-use
294 anonymous types, just like we already do for DWARF.
295 * tests/data/test-annotate/test17-pr19027.so.abi: Adjust.
296 * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
297 Likewise.
298 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
299 Likewise.
300 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt:
301 Likewise.
302 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt:
303 Likewise.
304 * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
305 * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
306 * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
307 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
308 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
309 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
310 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
311 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
312 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
313 Likewise.
314 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
315 Likewise.
316 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
317 Likewise.
318 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
319
3202021-07-29 Dodji Seketeli <dodji@redhat.com>
321
322 Bug 27236 - Don't forget to emit some referenced types
323 * include/abg-writer.h (write_translation_unit): Add a new
324 parameter that says if we are emitting the last TU.
325 * src/abg-writer.cc (write_translation_unit::{type_is_emitted,
326 decl_only_type_is_emitted}): Constify these methods.
327 (write_context::has_non_emitted_referenced_types): Define new
328 member function using the const methods above.
329 (write_translation_unit): When emitting the last TU, emit all the
330 referenced types.
331 (write_corpus): Set signal when emitting the last translation
332 unit.
333
3342021-07-29 Dodji Seketeli <dodji@redhat.com>
335
336 Bug 27236 - Allow updating classes from abixml
337 * src/abg-reader.cc (build_class_decl): Keep going when the class
338 has already been built. The rest of the code knows how to add new
339 stuff.
340 * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust.
341
3422021-07-29 Dodji Seketeli <dodji@redhat.com>
343
344 Bug 27236 - Fix the canonical type propagation optimization
345 * include/abg-ir.h (pointer_set): This typedef is now for an
346 unordered_set<uintptr_t> rather than an unordered_set<size_t>.
347 (environment::priv_): Make this public so that code in free form
348 function from abg-ir.cc can access it.
349 * src/abg-ir-priv.h (struct type_base::priv): Move this private
350 structure here, from abg-ir.cc.
351 (type_base::priv::{depends_on_recursive_type_,
352 canonical_type_propagated_}): Added these two new data members.
353 (type_base::priv::priv): Initialize the two new data members.
354 (type_base::priv::{depends_on_recursive_type,
355 set_depends_on_recursive_type,
356 set_does_not_depend_on_recursive_type, canonical_type_propagated,
357 set_canonical_type_propagated, clear_propagated_canonical_type}):
358 Define new member functions.
359 (struct environment::priv): Move this struct here, from abg-ir.cc.
360 (environment::priv::{types_with_non_confirmed_propagated_ct_,
361 left_type_comp_operands_, right_type_comp_operands_}): New data
362 members.
363 (environment::priv::{mark_dependant_types,
364 mark_dependant_types_compared_until, confirm_ct_propagation,
365 collect_types_that_depends_on, cancel_ct_propagation,
366 remove_from_types_with_non_confirmed_propagated_ct}): New member
367 functions.
368 * src/abg-ir.cc (struct environment::priv, struct)
369 (type_base::priv, struct class_or_union::priv): Move these struct
370 to include/abg-ir-priv.h.
371 (push_composite_type_comparison_operands)
372 (pop_composite_type_comparison_operands)
373 (mark_dependant_types_compared_until)
374 (maybe_cancel_propagated_canonical_type): Define new functions.
375 (notify_equality_failed, mark_types_as_being_compared): Re-indent.
376 (is_comparison_cycle_detected, return_comparison_result): Define
377 new function templates.
378 (RETURN_TRUE_IF_COMPARISON_CYCLE_DETECTED): Define new macro.
379 (equals(const function_type& l, const function_type& r)): Redefine
380 the RETURN macro using the new return_comparison_result function
381 template. Use the new RETURN_TRUE_IF_COMPARISON_CYCLE_DETECTED
382 and mark_types_as_being_compared functions.
383 (equals(const class_or_union& l, const class_or_union&, change_kind*)):
384 Likewise.
385 (equals(const class_decl& l, const class_decl&, change_kind*)):
386 Likewise. Because this uses another equal() function to compare
387 the class_or_union part the type, ensure that no canonical type
388 propagation occurs at that point.
389 (types_are_being_compared): Remove as it's not used anymore.
390 (maybe_propagate_canonical_type): Use the new
391 environment::priv::propagate_ct() function here.
392 (method_matches_at_least_one_in_vector): Ensure the
393 right-hand-side operand of the equality stays on the right. This
394 is important because the equals() functions expect that.
395 * src/abg-reader.cc (build_type): Ensure all types are
396 canonicalized.
397 * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt:
398 Adjust.
399 * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt:
400 Likewise.
401 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
402 Likewise.
403 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
404 Likewise.
405 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
406 Likewise.
407 * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise.
408
4092021-06-30 Dodji Seketeli <dodji@redhat.com>
410
411 Bug 27995 - Self comparison error from abixml file
412 * doc/manuals/abidiff.rst: Add documentation for the --debug
413 option.
414 * src/abg-ir.cc (equals): In the overload for decl_base consider
415 the internal version of qualified decl name. In the overload for
416 pointer_type_def do not peel typedefs off from the compared
417 pointed-to types. In the overload for typedef_decl compare the
418 typedef as a decl as well. In the overload for var_decl, compare
419 variables that have the same ELF symbols without taking into
420 account their qualified name, rather than their name. Stop
421 comparing data member without considering their names.
422 In the overload for class_or_union, when a decl-only class that is
423 ODR-relevant is compared against another type, assume that
424 equality if names are equal. This is useful in environments where
425 some TUs are ODR-relevant and others aren't.
426 (*::get_pretty_representation): Update doxygen comments.
427 (enum_type_decl::get_pretty_representation): Return an internal
428 pretty representation that is stable across all anonymous enums.
429 (var_decl::get_anon_dm_reliable_name): Use the non-internal pretty
430 representation for anonymous data members.
431 (function_type::priv::temp_internal_cached_name_): New data
432 member.
433 (function_type::get_cached_name): Cache the internal name after
434 the function type is canonicalized. Make sure internal name and
435 non-internal name are cached separately.
436 (class_or_union::find_anonymous_data_member): Look for the anonymous
437 data member by looking at its non-internal name.
438 ({class, union}_decl::get_pretty_representation): Use something like "class
439 __anonymous_{union,struct}__" for all anonymous classes, so that they can
440 all be compared against each other during type canonicalization.
441 (type_has_sub_type_changes): Use non-internal pretty
442 representation.
443 (hash_type_or_decl, function_decl_is_less_than:): Use internal
444 pretty representation for comparison here.
445 * src/abg-reader.cc (read_context::maybe_canonicalize_type): Don't
446 early canonicalize array types.
447 * src/abg-writer.cc (annotate): Use non-internal pretty
448 representation.
449 * tests/data/test-diff-filter/test-PR27995-report-0.txt: New
450 reference report.
451 * tests/data/test-diff-filter/test-PR27995.abi: New test input
452 abixml file.
453 * tests/data/Makefile.am: Add test-PR27995.abi,
454 test-PR27995-report-0.txt to the source distribution.
455 * tests/data/test-annotate/libtest23.so.abi: Adjust.
456 * tests/data/test-diff-dwarf/test6-report.txt: Adjust.
457 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Adjust.
458 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Adjust.
459 * tests/data/test-diff-filter/test41-report-0.txt: Adjust.
460 * tests/data/test-diff-filter/test43-decl-only-def-change-leaf-report-0.txt: Adjust.
461 * tests/data/test-diff-filter/test8-report.txt: Adjust.
462 * 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:
463 Adjust.
464 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt:
465 Adjust.
466 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
467 Adjust.
468 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt:
469 Adjust.
470 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
471 Adjust.
472 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
473 Adjust.
474 * tests/data/test-diff-suppr/test39-opaque-type-report-0.txt: Adjust.
475 * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Adjust.
476 * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust.
477 * tests/data/test-read-dwarf/libtest23.so.abi: Adjust.
478 * tests/data/test-read-dwarf/test-libandroid.so.abi: Adjust.
479 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust.
480 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust.
481 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust.
482 * tests/test-diff-filter.cc (in_out_specs): Add the
483 test-PR27995.abi to the test harness.
484 * tools/abidiff.cc (options::do_debug): New data member.
485 (options::options): Initialize it.
486 (parse_command_line): Parse --debug.
487 (main): Activate self comparison debug if the user provided
488 --debug.
489
4902021-06-25 Dodji Seketeli <dodji@redhat.com>
491
492 ir: Tighten type comparison optimization for Linux kernel binaries
493 * src/abg-ir.cc (types_defined_same_linux_kernel_corpus_public):
494 Ensure that anonymous classes with naming typedefs have identical
495 typedef names.
496
4972021-06-25 Dodji Seketeli <dodji@redhat.com>
498
499 ir: Tighten the test for anonymous data member
500 * src/abg-ir.cc: (is_anonymous_data_member): Consider
501 decl_base::get_is_anonymous as well.
502
5032021-06-24 Dodji Seketeli <dodji@redhat.com>
504
505 ir: Improve the debugging facilities
506 * src/abg-ir.cc (maybe_compare_as_member_decls): Add a missing
507 ABG_RETURN
508 (get_debug_representation): Display the name of class and enums,
509 not their pretty representation.
510
5112021-07-10 Giuliano Procida <gprocida@google.com>
512
513 PR28060 - Invalid offset for bitfields
514 * src/abg-dwarf-reader.cc (read_and_convert_DW_at_bit_offset):
515 Update documentation.
516 (die_member_offset): Treat DW_AT_bit_offset as an optional
517 adjustment to DW_AT_data_member_location.
518 * tests/data/test-annotate/test13-pr18894.so.abi: Update.
519 * tests/data/test-annotate/test15-pr18892.so.abi: Update.
520 * tests/data/test-annotate/test17-pr19027.so.abi: Update.
521 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
522 Update.
523 * tests/data/test-annotate/test21-pr19092.so.abi: Update.
524 * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi:
525 Regenerate.
526 * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt:
527 Report now empty.
528 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Update.
529 * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
530 Update.
531 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Update.
532 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Update.
533 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Update.
534 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
535 Update.
536 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Update.
537 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
538 Update.
539
5402021-07-07 Giuliano Procida <gprocida@google.com>
541
542 abg-ir.h: add declaration of operator<< for elf_symbol::visibility
543 * include/abg-ir.h (operator<<(elf_symbol::visibility): Add
544 declaration.
545
5462021-07-06 Giuliano Procida <gprocida@google.com>
547
548 ir: remove "is Linux string constant" property from elf_symbol
549 * include/abg-ir.h (elf_symbol::elf_symbol): Drop
550 is_linux_string_cst argument.
551 (elf_symbol::create): Likewise.
552 (elf_symbol::get_is_linux_string_cst): Drop method.
553 * src/abg-dwarf-reader.cc (lookup_symbol_from_sysv_hash_tab):
554 Remove code that gets the index of the __ksymtab_strings
555 section. Drop corresponding elf_symbol::create argument.
556 (lookup_symbol_from_gnu_hash_tab): Likewise.
557 (lookup_symbol_from_symtab): Likewise.
558 (create_default_fn_sym): Drop false is_linux_string_cst
559 argument to elf_symbol::create.
560 * src/abg-ir.cc (elf_symbol::priv::is_linux_string_cst_): Drop
561 member variable.
562 (elf_symbol::priv default ctor): Drop initialisation of
563 is_linux_string_cst_.
564 (elf_symbol::priv normal ctor): Drop is_linux_string_cst
565 argument and corresponding is_linux_string_cst_
566 initialisation.
567 (elf_symbol::elf_symbol ctor): Drop is_linux_string_cst
568 argument and corresponding forwarding to priv ctor.
569 (elf_symbol::create): Drop is_linux_string_cst argument and
570 corresponding forwarding to ctor.
571 (elf_symbol::get_is_linux_string_cst): Drop method.
572 * src/abg-reader.cc (build_elf_symbol): Drop false
573 is_linux_string_cst argument to elf_symbol::create.
574 * src/abg-symtab-reader.cc (symtab::load): Likewise.
575
5762021-07-05 Matthias Maennich <maennich@google.com>
577
578 Consistently use std::unique_ptr for private implementations (pimpl)
579 * include/abg-comparison.h (diff_maps): use unique_ptr for priv_
580 (diff_context): Likewise.
581 (diff_traversable_base): Likewise.
582 (type_diff_base): Likewise.
583 (decl_diff_base): Likewise.
584 (distinct_diff): Likewise.
585 (var_diff): Likewise.
586 (pointer_diff): Likewise.
587 (reference_diff): Likewise.
588 (array_diff): Likewise.
589 (qualified_type_diff): Likewise.
590 (enum_diff): Likewise.
591 (class_or_union_diff): Likewise.
592 (class_diff): Likewise.
593 (base_diff): Likewise.
594 (scope_diff): Likewise.
595 (fn_parm_diff): Likewise.
596 (function_type_diff): Likewise.
597 (function_decl_diff): Likewise.
598 (typedef_diff): Likewise.
599 (translation_unit_diff): Likewise.
600 (diff_stats): Likewise.
601 (diff_node_visitor): Likewise.
602 * include/abg-corpus.h (corpus): Likewise.
603 (exported_decls_builder): Likewise.
604 (corpus_group): Likewise.
605 * include/abg-ini.h (property): Likewise.
606 (property_value): Likewise.
607 (string_property_value): Likewise.
608 (list_property_value): Likewise.
609 (tuple_property_value): Likewise.
610 (simple_property): Likewise.
611 (list_property): Likewise.
612 (tuple_property): Likewise.
613 (config): Likewise.
614 (section): Likewise.
615 (function_call_expr): Likewise.
616 * include/abg-interned-str.h (interned_string_pool): Likewise.
617 * include/abg-ir.h (environment): Likewise.
618 (location_manager): Likewise.
619 (type_maps): Likewise.
620 (translation_unit): Likewise.
621 (elf_symbol::version): Likewise.
622 (type_or_decl_base): Likewise.
623 (scope_decl): Likewise.
624 (qualified_type_def): Likewise.
625 (pointer_type_def): Likewise.
626 (array_type_def): Likewise.
627 (subrange_type): Likewise.
628 (enum_type_decl): Likewise.
629 (enum_type_decl::enumerator): Likewise.
630 (typedef_decl): Likewise.
631 (dm_context_rel): Likewise.
632 (var_decl): Likewise.
633 (function_decl::parameter): Likewise.
634 (function_type): Likewise.
635 (method_type): Likewise.
636 (template_decl): Likewise.
637 (template_parameter): Likewise.
638 (type_tparameter): Likewise.
639 (non_type_tparameter): Likewise.
640 (template_tparameter): Likewise.
641 (type_composition): Likewise.
642 (function_tdecl): Likewise.
643 (class_tdecl): Likewise.
644 (class_decl::base_spec): Likewise.
645 (ir_node_visitor): Likewise.
646 * include/abg-suppression.h (suppression_base): Likewise.
647 (type_suppression::insertion_range): Likewise.
648 (type_suppression::insertion_range::boundary): Likewise.
649 (type_suppression::insertion_range::integer_boundary): Likewise.
650 (type_suppression::insertion_range::fn_call_expr_boundary): Likewise.
651 (function_suppression): Likewise.
652 (function_suppression::parameter_spec): Likewise.
653 (file_suppression): Likewise.
654 * include/abg-tools-utils.h (temp_file): Likewise.
655 (timer): Likewise.
656 * include/abg-traverse.h (traversable_base): Likewise.
657 * include/abg-workers.h (queue): Likewise.
658 * src/abg-comparison.cc (diff_context): add default destructor.
659 (diff_maps): Likewise.
660 (corpus_diff): Likewise.
661 (diff_node_visitor): Likewise.
662 (class_or_union_diff::get_priv): adjust return type.
663 (class_diff::get_priv): adjust return type.
664 * src/abg-corpus.cc (corpus): add default destructor.
665 * src/abg-ir.cc (location_manager): Likewise.
666 (type_maps): Likewise.
667 (elf_symbol::version): Likewise.
668 (array_type_def::subrange_type): Likewise.
669 (enum_type_decl::enumerator): Likewise.
670 (function_decl::parameter): Likewise.
671 (class_decl::base_spec): Likewise.
672 (ir_node_visitor): Likewise.
673
6742021-06-14 Matthias Maennich <maennich@google.com>
675
676 symtab-reader: add support for binaries compiled with CFI
677 * src/abg-symtab-reader.cc (symtab::load_): use new
678 add_alternative_address_lookups method.
679 (add_alternative_address_lookups): New method.
680 * src/abg-symtab-reader.h (add_alternative_address_lookups): new
681 function declaration.
682 * tests/data/test-read-dwarf/test-libaaudio.so: New test data.
683 * tests/data/test-read-dwarf/test-libaaudio.so.abi: New test data.
684 * tests/data/Makefile.am: Add the two new tests input to source
685 distribution.
686 * tests/test-read-dwarf.cc: New test case.
687 Reported-by: Dan Albert <danalbert@google.com>
688 Reviewed-by: Giuliano Procida <gprocida@google.com>
689
6902021-06-14 Matthias Maennich <maennich@google.com>
691
692 elf-helpers: refactor find_symbol_table_section
693 * src/abg-elf-helpers.cc(find_section): New overload.
694 (find_symtab_section): New function.
695 (find_dynsym_section): New function.
696 (find_symbol_table_section): Use new find_*_section functions.
697 * src/abg-elf-helpers.h(find_section): New overload declaration.
698 (find_symtab_section): New function declaration.
699 (find_dynsym_section): New function declaration.
700 Reviewed-by: Giuliano Procida <gprocida@google.com>
701
7022021-06-18 Dodji Seketeli <dodji@redhat.com>
703
704 Bug 27980 - Fix updating of type scope upon type canonicalization
705 * src/abg-ir.cc (canonicalize): Update the
706 scope_decl::get_canonical_types() of canonical type of the
707 containing type of the newly canonicalized type.
708 * src/abg-writer.cc (write_union_decl): Write the canonical types
709 contained in the current union scope, just like we do for classes.
710 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust.
711 * tests/data/test-types-stability/pr27980-libc.so: New binary
712 input file.
713 * tests/data/Makefile.am: Add the test input file above to source
714 distribution.
715 * tests/test-types-stability.cc (elf_paths): Add the new test
716 input file to this test harness.
717
7182021-05-27 Giuliano Procida <gprocida@google.com>
719
720 abg-reader: Create a fresh corpus object per corpus
721 * src/abg-reader.cc (read_corpus_from_input): Always create a
722 fresh corpus object for each abi-corpus XML element.
723
7242021-05-27 Giuliano Procida <gprocida@google.com>
725
726 abg-reader: Ensure corpus always has a symtab reader
727 * src/abg-reader.cc (read_symbol_db_from_input): Fix
728 documentation for this function. Allow "successful parsing" to
729 include the case where no symbols were present in the input.
730 (read_corpus_from_input): Unconditionally set a symtab reader
731 on the corpus object. Unconditionally parse the abi-instr of a
732 corpus.
733
7342021-05-27 Giuliano Procida <gprocida@google.com>
735
736 dwarf-reader: Create new corpus unconditionally
737 * src/abg-dwarf-reader.cc (read_debug_info_into_corpus):
738 Create new corpus object unconditionally.
739
7402021-06-09 Ben Woodard via Libabigail <libabigail@sourceware.org>
741
742 Fix trivial typo when printing version string
743 * tools/abicompat.cc (main): Add a newline after version string.
744
7452021-06-10 Dodji Seketeli <dodji@redhat.com>
746
747 Revert "Fix trivial typo when printing version string"
748 * tools/abicompat.cc:
749
7502021-06-09 Ben Woodard via Libabigail <libabigail@sourceware.org>
751
752 Fix trivial typo when printing version string
753 * tools/abicompat.cc:
754
7552021-06-10 Dodji Seketeli <dodji@redhat.com>
756
757 doc: Fix typo
758 * doc/manuals/libabigail-concepts.rst: Fix typo.
759
7602021-06-09 Dodji Seketeli <dodji@redhat.com>
761
762 abg-reader: Fix typo
763 * src/abg-reader.cc
764 (read_context::maybe_check_abixml_canonical_type_stability): Fix
765 typo.
766
7672021-06-09 Dodji Seketeli <dodji@redhat.com>
768
769 abidw: Remove temporary .typeid files when using --debug-abidiff
770 * tools/abidw.cc (load_corpus_and_write_abixml): Remove temporary
771 typeid file after its use.
772
7732021-06-08 Dodji Seketeli <dodji@redhat.com>
774
775 Fix recursive array type definition
776 * include/abg-ir.h (array_type_def::update_size): Declare new
777 private member function.
778 (array_type_def::array_type_def): Declare ...
779 * src/abg-ir.cc (array_type_def::array_type_def): ... a new
780 constructor that takes no element type.
781 (array_type_def::update_size): Define this helper private member
782 function.
783 (array_type_def::get_subrange_representation): Adjust for this to
784 work when there is no element type setup yet.
785 (array_type_def::{set_element_type, append_subranges}): Update the
786 size and name of the array.
787 * src/abg-reader.cc (build_array_type_def): Create the array type
788 before the element type so that the later can re-use the former.
789
7902021-06-07 Dodji Seketeli <dodji@redhat.com>
791
792 rhbz1951526 - SELF CHECK FAILED for 'gimp-2.10'
793 * include/abg-ir.h
794 (environment::use_enum_binary_only_equality): Declare
795 accessors. (type_or_decl_base::{s,g}et_is_artificial):
796 Likewise. (decl_base::{s,g}et_is_artificial): Remove
797 accessors. * src/abg-ir.cc
798 (environment::priv::use_enum_binary_only_equality): Define new
799 data member.
800 (environment::priv::use_enum_binary_only_equality): Define
801 accessors. (type_or_decl_base::priv::is_artificial_): Define
802 new data member. It has actually moved here from
803 decl_base::priv::is_artificial_.
804 (type_or_decl_base::priv::priv): Initialize it.
805 (type_or_decl_base::{g,s}et_is_artificial): Define accessors.
806 (decl_base::is_artificial_): Move this to
807 type_or_decl_base::is_artificial_.
808 (maybe_adjust_canonical_type): In a given class of equivalence
809 of function types, if there is one non-artificial function
810 type, then the entire class of equivalence is considered
811 non-artificial; so flag the canonical function type as being
812 non-artificial. (is_enumerator_present_in_enum): Define new
813 static function. (equals): Re-arrange the overload for enums
814 so the order of the enumerators doesn't count in the
815 comparison. Also, two enums with different numbers of
816 enumerators can still be equal, with the right redundancy. In
817 the overload for var_decl, avoid taking into account the names
818 of data members in the comparison.
819 (enum_type_decl::enumerator::operator==): In the binary-level
820 comparison mode, only compare the value of enumerators, not
821 their name. * src/abg-comparison.cc (compute_diff): In the
822 overload for enum_type_decl, if the enums compare different
823 using binary-level comparison, then use source-level
824 comparison to build the diff-IR. * src/abg-dwarf-reader.cc
825 (read_context::compare_before_canonicalisation): Compare enums
826 using binary-level comparison. (add_or_update_class_type): If
827 we are looking at the definition of an existing declaration
828 that has been already defined then use the previous
829 definition, in case we are going to need to update the
830 definition. Also, update the size only if it's needed.
831 (build_function_type): By default, consider the newly built
832 function type as artificial. (build_ir_node_from_die): When
833 looking at a DW_TAG_subroutine_type DIE, consider the built
834 function type as non-artificial. * src/abg-reader.cc
835 (read_context::maybe_check_abixml_canonical_type_stability):
836 Don't consider declaration-only classes in an ODR context
837 because they don't have canonical types.
838 (build_function_decl): Flag the function type of the function
839 as artificial. (build_class_decl): Make sure to reuse class
840 types that were already created. * src/abg-writer.cc
841 (write_translation_unit): Allow emitting empty classes. Make
842 sure referenced types are emitting in the translation unit
843 where they belong. Avoid emitting artificial function types.
844 *
845 tests/data/test-alt-dwarf-file/rhbz1951526/rhbz1951526-report-0.txt:
846 New test reference output. *
847 tests/data/test-alt-dwarf-file/rhbz1951526/usr/bin/gimp-2.10:
848 New reference test binary input. *
849 tests/data/test-alt-dwarf-file/rhbz1951526/usr/lib/debug/.dwz/gimp-2.10.22-2.el9.1.aarch64:
850 Likewise. *
851 tests/data/test-alt-dwarf-file/rhbz1951526/usr/lib/debug/usr/bin/gimp-2.10-2.10.22-2.el9.1.aarch64.debug:
852 Likewise. * tests/data/Makefile.am: Add the new test files to
853 source directory. * tests/test-alt-dwarf-file.cc: Add the new
854 test inputs to this test harness. *
855 tests/data/test-abidiff/test-PR18791-report0.txt: Adjust. *
856 tests/data/test-abidiff/test-enum0-report.txt: Likewise. *
857 tests/data/test-annotate/libtest23.so.abi: Likewise. *
858 tests/data/test-annotate/libtest24-drop-fns-2.so.abi:
859 Likewise. *
860 tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
861 * tests/data/test-annotate/test-anonymous-members-0.o.abi:
862 Likewise. * tests/data/test-annotate/test13-pr18894.so.abi:
863 Likewise. * tests/data/test-annotate/test14-pr18893.so.abi:
864 Likewise. * tests/data/test-annotate/test15-pr18892.so.abi:
865 Likewise. * tests/data/test-annotate/test17-pr19027.so.abi:
866 Likewise. *
867 tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
868 Likewise. *
869 tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
870 Likewise. *
871 tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
872 Likewise. * tests/data/test-annotate/test21-pr19092.so.abi:
873 Likewise. *
874 tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi:
875 Likewise. *
876 tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt:
877 Likewise. * tests/data/test-diff-dwarf/test6-report.txt:
878 Likewise. *
879 tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt:
880 Likewise. *
881 tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt:
882 Likewise. * tests/data/test-diff-filter/test8-report.txt:
883 Likewise. *
884 tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
885 Likewise. *
886 tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt:
887 Likewise. *
888 tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
889 Likewise. *
890 tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
891 Likewise. *
892 tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
893 Likewise. *
894 tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
895 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
896 *
897 tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
898 Likewise. *
899 tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise.
900 * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. *
901 tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
902 Likewise. *
903 tests/data/test-read-dwarf/libtest24-drop-fns.so.abi:
904 Likewise. *
905 tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
906 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi:
907 Likewise. * tests/data/test-read-dwarf/test12-pr18844.so.abi:
908 Likewise. * tests/data/test-read-dwarf/test13-pr18894.so.abi:
909 Likewise. * tests/data/test-read-dwarf/test14-pr18893.so.abi:
910 Likewise. * tests/data/test-read-dwarf/test15-pr18892.so.abi:
911 Likewise. * tests/data/test-read-dwarf/test16-pr18904.so.abi:
912 Likewise. * tests/data/test-read-dwarf/test17-pr19027.so.abi:
913 Likewise. *
914 tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
915 Likewise. *
916 tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
917 Likewise. *
918 tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
919 Likewise. * tests/data/test-read-dwarf/test21-pr19092.so.abi:
920 Likewise. *
921 tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
922 Likewise. *
923 tests/data/test-read-dwarf/test9-pr18818-clang.so.abi:
924 Likewise. *
925 tests/data/test-read-write/test28-without-std-fns-ref.xml:
926 Likewise. *
927 tests/data/test-read-write/test28-without-std-vars-ref.xml:
928 Likewise.
929
9302021-06-07 Dodji Seketeli <dodji@redhat.com>
931
932 reader: Canonicalizing a type once is enough
933 * src/abg-reader.cc (build_type): Don't try to canonicalize the
934 type here because all the sub-routines of this function (which
935 actually build the type) already try to canonicalize it.
936
9372021-06-07 Dodji Seketeli <dodji@redhat.com>
938
939 ir: make 'debug(artefact)' support showing enums
940 * src/abg-ir.cc (get_debug_representation): Add support for
941 showing details for enums. Also show declaration-only-ness for
942 class or unions.
943
9442021-06-07 Dodji Seketeli <dodji@redhat.com>
945
946 location:expand() shouldn't crash when no location manager available
947 * src/abg-ir.cc (location::expand): When no location manager is
948 present, just expand to an empty location.
949
9502021-06-07 Dodji Seketeli <dodji@redhat.com>
951
952 Add environment::{get_type_id_from_pointer,get_canonical_type_from_type_id}
953 * include/abg-ir.h (environment::{get_pointer_type_id_map,
954 get_type_id_from_pointer, get_canonical_type_from_type_id}):
955 Declare new member functions.
956 * src/abg-ir.cc (environment::{get_pointer_type_id_map,
957 get_type_id_from_pointer, get_canonical_type_from_type_id}):
958 Define member functions.
959 (environment::priv::pointer_type_id_map_): Move
960 this data member here from ...
961 * src/abg-reader.cc (read_context::m_pointer_type_id_map):
962 ... here.
963 (read_context::get_pointer_type_id_map): Remove this as it's now
964 defined in environment::get_pointer_type_id_map.
965 (read_context::maybe_check_abixml_canonical_type_stability):
966 Adjust.
967 (build_type): Likewise.
968
9692021-06-07 Dodji Seketeli <dodji@redhat.com>
970
971 ir: Enable setting breakpoint on first type inequality
972 * src/abg-ir.cc (notify_equality_failed): Define new static
973 function if WITH_DEBUG_SELF_COMPARISON is defined.
974 (ABG_RETURN_EQUAL, ABG_RETURN_FALSE, ABG_RETURN): Define new macros.
975 (try_canonical_compare): Use ABG_RETURN_EQUAL rather than just
976 returning the result of a comparison.
977 (equals): In all the overloads, use the new ABG_RETURN* macros,
978 rather than just returning boolean values.
979
9802021-05-22 Dodji Seketeli <dodji@redhat.com>
981
982 xml reader: Fix recursive qualified & reference type definition
983 * include/abg-ir.h (qualified_type_def::qualified_type_def):
984 Declare a constructor with no underlying type.
985 (reference_type_def::reference_type_def): Declare a constructor
986 with no pointed-to type.
987 (reference_type_def::set_pointed_to_type): Declare new method.
988 * src/abg-ir.cc (qualified_type_def::priv::priv): Define a
989 constructor that takes no underlying type.
990 (qualified_type_def::build_name): Make this work even on
991 incomplete types with no underlying type. In that case, this
992 behaves like if the underlying type is "void".
993 (qualified_type_def::qualified_type_def): Define a constructor
994 that takes no underlying type.
995 (qualified_type_def::get_size_in_bits): Make this work on
996 incomplete types with no underlying type.
997 (qualified_type_def::set_underlying_type): Adjust to properly
998 update this type when a new underlying type is set. Particularly,
999 its name and the lookup maps from the type scope.
1000 (reference_type_def::reference_type_def): Define a constructor
1001 that takes no pointed-to type.
1002 (reference_type_def::set_pointed_to_type): Define new function.
1003 * src/abg-reader.cc (build_qualified_type_decl): Construct the
1004 qualified type early before we try to construct its underlying
1005 type. Associate this incomplete type with the type-id. Then try
1006 to construct the underlying type. During its construction, if
1007 this incomplete qualified type is needed due to recursion then it
1008 can be used, leading to just one qualified type being used as it
1009 should be.
1010 (build_reference_type_def): Likewise for building incomplete
1011 reference type first before its pointed-to type.
1012
10132021-05-21 Dodji Seketeli <dodji@redhat.com>
1014
1015 abixml reader: Fix recursive type definition handling
1016 * include/abg-ir.h (pointer_type_def::pointer_type_def): Declare a
1017 constructor with no pointed-to type.
1018 (pointer_type_def::set_pointed_to_type): Declare new method.
1019 (typedef_decl::typedef_decl): Declare a constructor with no
1020 underlying type.
1021 * src/abg-ir.cc (pointer_type_def::pointer_type_def): Define a
1022 constructor with no pointed-to type. The pointed-to type can thus
1023 later be set when it becomes available.
1024 (pointer_type_def::set_pointed_to_type): Define new method.
1025 (pointer_type_def::get_qualified_name): Make this work on a
1026 pointer type that (momentarily) has no pointed-to type.
1027 (typedef_decl::typedef_decl): Define a constructor with no
1028 underlying type.
1029 (typedef_decl::get_size_in_bits): Make this work on a typedef that
1030 has (momentarily) no underlying type.
1031 (typedef_decl::set_underlying_type): Update the size and alignment
1032 of the typedef from its new underlying type.
1033 * src/abg-reader.cc (build_pointer_type_def): Construct the
1034 pointer type early /BEFORE/ we even try to construct its
1035 pointed-to type. Associate this incomplete type with the type-id.
1036 Then try to construct the pointed-to type. During the
1037 construction of the pointed-to type, if this pointer is needed
1038 (due to recursion) then the incomplete pointer type can be used,
1039 leading to just one pointer type used (recursively) as it should
1040 be.
1041 (build_typedef_decl): Likewise for building typedef type early
1042 without its underlying type so that it can used by the underlying
1043 type if needed.
1044 * tests/data/test-diff-pkg/graphviz-2.44.0-18.el9.aarch64-self-check-report-0.txt:
1045 New test reference output.
1046 * tests/data/test-diff-pkg/graphviz-2.44.0-18.el9.aarch64.rpm: New
1047 binary test input.
1048 * tests/data/test-diff-pkg/graphviz-debuginfo-2.44.0-18.el9.aarch64.rpm: Likewise.
1049 * tests/data/Makefile.am: Add the new test material above to
1050 source distribution.
1051 * tests/test-diff-pkg.cc (in_out_specs): Add the test inputs above
1052 to this test harness.
1053
10542021-05-20 Dodji Seketeli <dodji@redhat.com>
1055
1056 Introduce artificial locations
1057 * include/abg-fwd.h (get_artificial_or_natural_location): Declare
1058 new function.
1059 * include/abg-ir.h (location::location): Initialize & copy ...
1060 (location::is_artificial_): ... a new data member.
1061 (location::{g,s}et_is_artificial): New accessors.
1062 (location::{operator=}): Adjust.
1063 (type_or_decl_base::{set,get,has}_artificial_location): Declare
1064 new member functions.
1065 * src/abg-ir.cc (decl_topo_comp::operator()): In the overload for
1066 decl_base*, use artificial location for topological sort in
1067 priority. Otherwise, use natural location. Otherwise, sort
1068 lexicographically.
1069 (type_topo_comp::operator()): In the overload for type_base*, use
1070 lexicographical sort only for types that don't have location at
1071 all.
1072 (type_or_decl_base::priv::artificial_location_): Define new data
1073 member.
1074 (type_or_decl_base::{set,get,has}_artificial_location): Define new
1075 member functions.
1076 (decl_base::priv): Allow a constructor without location. That one
1077 sets no natural location to the artifact.
1078 (decl_base::decl_base): Use decl_base::set_location in the
1079 constructor now.
1080 (decl_base::set_location): Adjust this to support setting a
1081 natural or an artificial location.
1082 (get_debug_representation): Emit debugging log showing the
1083 location of an artifact, using its artificial location in
1084 priority.
1085 (get_natural_or_artificial_location): Define new function.
1086 * src/abg-reader.cc (read_artificial_location)
1087 (maybe_set_artificial_location): Define new static functions.
1088 (read_location): Read artificial location when no natural location
1089 was found.
1090 (build_namespace_decl, build_function_decl, build_type_decl)
1091 (build_qualified_type_decl, build_pointer_type_def)
1092 (build_reference_type_def, build_subrange_type)
1093 (build_array_type_def, build_enum_type_decl, build_typedef_decl)
1094 (build_class_decl, build_union_decl, build_function_tdecl)
1095 (build_class_tdecl, build_type_tparameter)
1096 (build_non_type_tparameter, build_template_tparameter): Read and
1097 set artificial location.
1098 * src/abg-writer.cc (write_location): Don't serialize artificial
1099 locations.
1100 (write_namespace_decl): Topologically sort member declarations
1101 before serializing them.
1102 * tests/data/test-read-write/test28-without-std-fns-ref.xml:
1103 Adjust.
1104 * tests/data/test-read-write/test28-without-std-vars-ref.xml:
1105 Likewise.
1106 * tests/data/test-annotate/libtest23.so.abi: Likewise.
1107 * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
1108 * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
1109 * tests/data/test-annotate/test0.abi: Likewise.
1110 * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
1111 * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
1112 * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
1113 * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
1114 * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
1115 Likewise.
1116 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
1117 Likewise.
1118 * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
1119 Likewise.
1120 * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
1121 * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
1122 Likewise.
1123 * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
1124 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
1125 * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
1126 Likewise.
1127 * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise.
1128 * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
1129 * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise.
1130 * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
1131 * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
1132 * tests/data/test-read-dwarf/test-suppressed-alias.o.abi: Likewise.
1133 * tests/data/test-read-dwarf/test0.abi: Likewise.
1134 * tests/data/test-read-dwarf/test0.hash.abi: Likewise.
1135 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
1136 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
1137 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
1138 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
1139 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
1140 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
1141 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
1142 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
1143 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
1144 Likewise.
1145 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
1146 Likewise.
1147 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
1148 Likewise.
1149 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
1150 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
1151 Likewise.
1152 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
1153 * tests/data/test-read-write/test28-without-std-fns-ref.xml:
1154 Likewise.
1155 * tests/data/test-read-write/test28-without-std-vars-ref.xml:
1156 Likewise.
1157
11582021-05-19 Dodji Seketeli <dodji@redhat.com>
1159
1160 Detect abixml canonical type instability during abidw --debug-abidiff
1161 * include/abg-ir.h (environment::get_type_id_canonical_type_map):
1162 Declare new data member.
1163 * src/abg-ir.cc (environment::priv::type_id_canonical_type_map_):
1164 Define new data member.
1165 (environment::get_type_id_canonical_type_map): Define new method.
1166 * include/abg-reader.h (load_canonical_type_ids): Declare new
1167 function.
1168 * src/abg-reader.cc (read_context::m_pointer_type_id_map):
1169 Define new data member.
1170 (read_context::{get_pointer_type_id_map,
1171 maybe_check_abixml_canonical_type_stability}): Define new methods.
1172 (read_context::{maybe_canonicalize_type,
1173 perform_late_type_canonicalizing}): Invoke
1174 maybe_perform_self_comparison_canonical_type_check after
1175 canonicalization to perform canonicalization type stability
1176 checking.
1177 (build_type): Associate the pointer value for the newly built type
1178 with the type id string identifying it in the abixml. Once the
1179 abixml representation is dropped from memory and we are about to
1180 perform type canonicalization, we can still know what the type id
1181 of a given type coming from abixml was; it's thus possible to
1182 verify that the canonical type associated to that type id is the
1183 same as the one stored in the typeid file.
1184 (read_type_id_string): Define new static function.
1185 (load_canonical_type_ids): Define new function.
1186 * include/abg-writer.h (write_canonical_type_ids): Likewise.
1187 * src/abg-writer.cc (write_canonical_type_ids): Define new
1188 function overloads.
1189 * tools/abidw.cc (options::type_id_file_path): New data member.
1190 (load_corpus_and_write_abixml): Write and read back the typeid
1191 file.
1192
11932021-05-18 Dodji Seketeli <dodji@redhat.com>
1194
1195 Detect failed self comparison in type canonicalization of abixml
1196 * doc/manuals/abidw.rst: Add documentation for the --debug-abidiff
1197 option.
1198 * include/abg-ir.h (environment::{set_self_comparison_debug_input,
1199 get_self_comparison_debug_inputs, self_comparison_debug_is_on}):
1200 Declare new methods.
1201 * configure.ac: Define a new --enable-debug-self-comparison option
1202 that is disabled by default. That option defines a new
1203 WITH_DEBUG_SELF_COMPARISON preprocessor macro.
1204 * src/abg-ir.cc
1205 (environment::priv::{first_self_comparison_corpus_,
1206 second_self_comparison_corpus_, self_comparison_debug_on_}): New
1207 data members. Also, re-indent the data members.
1208 (environment::{set_self_comparison_debug_input,
1209 get_self_comparison_debug_inputs, self_comparison_debug_is_on}):
1210 Define new method.
1211 (type_base::get_canonical_type_for): In the "debug self comparison
1212 mode", if a type coming from the second corpus compares different
1213 from its counterpart coming from the first corpus then log a debug
1214 message.
1215 * src/abg-dwarf-reader.cc (read_debug_info_into_corpus): When
1216 loading the first corpus, if the debug self comparison mode is on,
1217 then save that corpus on the side in the environment.
1218 * src/abg-reader.cc (read_corpus_from_input): When loading the
1219 second corpus, if the debug self comparison mode is on, then save
1220 that corpus on the side in the environment.
1221 * tools/abidw.cc: Include the config.h file for preprocessor
1222 macros defined at configure
1223 (options::debug_abidiff): New data member.
1224 (parse_command_line): Parse the --debug-abidiff option.
1225 (load_corpus_and_write_abixml): Switch the self debug mode on when
1226 the --debug-abidiff option is provided. Use a read_context for
1227 the abixml loading. That is going to be useful for subsequent
1228 patches.
1229
12302021-05-17 Dodji Seketeli <dodji@redhat.com>
1231
1232 Add primitives callable from the command line of the debugger
1233 * include/abg-fwd.h (get_debug_representation, get_data_member)
1234 (debug, debug_equals): Declare new functions.
1235 * include/abg-ir.h (environment{get_canonical_types,
1236 get_canonical_type}): Declare new member functions.
1237 * src/abg-ir.cc (environment::{get_canonical_types,
1238 get_canonical_type}): Define new member functions.
1239 (get_debug_representation, get_data_member)
1240 (debug, debug_equals): Define new functions.
1241
12422021-05-24 Dodji Seketeli <dodji@redhat.com>
1243
1244 Peel array types when peeling pointers from a type
1245 * src/abg-ir.cc (peel_typedef_pointer_or_reference_type): In the
1246 overloads for type_base_sptr and type_base*, peel array type off
1247 as well.
1248
12492021-05-24 Dodji Seketeli <dodji@redhat.com>
1250
1251 Fix DWARF type DIE canonicalization
1252 * src/abg-dwarf-reader.cc (compare_dies): When comparing array
1253 type DIEs, take into account the type of the elements of the
1254 arrays.
1255
12562021-05-24 Dodji Seketeli <dodji@redhat.com>
1257
1258 Miscellaneous indentation and comments cleanups
1259 * src/abg-ir.cc (environment::priv::{config_, canonical_types_,
1260 sorted_canonical_types_, void_type_, variadic_marker_type_}):
1261 Re-indent these data members.
1262 (peel_typedef_pointer_or_reference_type): Fix comment.
1263 (var_decl::var_decl): Likewise.
1264 (function_decl::function_decl): Add a comment.
1265 * src/abg-reader.cc (handle_reference_type_def): Fix indentation
1266 of parameters.
1267
12682021-05-20 Dodji Seketeli <dodji@redhat.com>
1269
1270 Fix thinko in configure.ac
1271 * configure.ac: Fix a thinko I spotted while looking at something
1272 else.
1273
12742021-04-19 Dodji Seketeli <dodji@redhat.com>
1275
1276 reader: Use xmlFirstElementChild/xmlNextElementSibling to iterate over children elements
1277 * src/abg-reader.cc (walk_xml_node_to_map_type_ids)
1278 (read_translation_unit, read_translation_unit_from_input)
1279 (read_symbol_db_from_input, build_needed)
1280 (read_elf_needed_from_input, read_corpus_group_from_input)
1281 (build_namespace_decl, build_elf_symbol_db, build_function_decl)
1282 (build_function_type, build_array_type_def, build_enum_type_decl)
1283 (build_class_decl, build_union_decl, build_function_tdecl)
1284 (build_class_tdecl, build_type_composition)
1285 (build_template_tparameter): Use
1286 xmlFirstElementChild/xmlNextElementSibling rather than poking at
1287 xmlNode::children and looping over xmlNode::next by hand.
1288
12892021-04-19 Dodji Seketeli <dodji@redhat.com>
1290
1291 reader: Use xmlFirstElementChild and xmlNextElementSibling rather than xml::advance_to_next_sibling_element
1292 * include/abg-libxml-utils.h (advance_to_next_sibling_element):
1293 Remove the declaration of this function.
1294 * src/abg-libxml-utils.cc (go_to_next_sibling_element_or_stay)
1295 (advance_to_next_sibling_element): Remove definitions of these functions.
1296 * src/abg-reader.cc (read_translation_unit_from_input)
1297 (read_elf_needed_from_input, read_corpus_group_from_input): Use xmlNextElementSibling instead
1298 of xml::advance_to_next_sibling_element.
1299 (read_corpus_from_input): Likewise. Also, use
1300 xmlFirstElementChild instead of
1301 xml::advance_to_next_sibling_element on the xmlNode::children data
1302 member.
1303 (read_corpus_group_from_input): use xmlFirstElementChild instead
1304 of xml::advance_to_next_sibling_element on the xmlNode::children
1305 data member.
1306
13072021-04-14 Dodji Seketeli <dodji@redhat.com>
1308
1309 reader: Handle 'abi-corpus' element being possibly empty
1310 * src/abg-reader.cc (read_context::get_corpus_node): Add comment
1311 to this member function.
1312 (read_translation_unit_from_input, read_symbol_db_from_input)
1313 (read_elf_needed_from_input): Start processing the current node of
1314 the corpus that needs to be processed rather than its next
1315 sibling. Once the processing is done, set the new "current node
1316 of the corpus to be processed" properly by skipping to the next
1317 element node to be processed.
1318 (read_corpus_from_input): Don't get out early when the
1319 'abi-corpus' element is empty. If, however, it has children node,
1320 skip to the first child element and flag it -- using
1321 read_context::set_corpus_node -- as being the element node to be
1322 processed by the processing facilities of the reader. If we are
1323 in a mode where we called xmlTextReaderExpand ourselves to get the
1324 node to process, then it means we need to free that node
1325 indirectly by calling xmlTextReaderNext. In that case, that node
1326 should not be flagged by read_context::set_corpus_node. Add more
1327 comments.
1328 * src/abg-corpus.cc (corpus::is_empty): Do not crash when no
1329 symtab is around.
1330 * src/abg-libxml-utils.cc (go_to_next_sibling_element_or_stay):
1331 Fix typo in comment.
1332 (advance_to_next_sibling_element): Don't crash when given a nil
1333 node.
1334 * tests/data/test-abidiff/test-PR27616-squished-v0.abi: Add new
1335 test input.
1336 * tests/data/test-abidiff/test-PR27616-squished-v1.abi: Likewise.
1337 * tests/data/test-abidiff/test-PR27616-v0.xml: Likewise.
1338 * tests/data/test-abidiff/test-PR27616-v1.xml: Likewise.
1339 * tests/data/Makefile.am: Add the new test inputs above to source
1340 distribution.
1341 * tests/test-abidiff.cc (specs): Add the new tests inputs above to
1342 this harness.
1343 * tools/abilint.cc (main): Support writing corpus groups.
1344
13452021-04-13 Dodji Seketeli <dodji@redhat.com>
1346
1347 dwarf-reader: properly set artificial-ness in opaque types
1348 * src/abg-dwarf-reader.cc (get_opaque_version_of_type): Propagate
1349 the artificial-ness of the original type here.
1350 * tests/data/test-read-dwarf/PR27700/test-PR27700.abi: Adjust.
1351
13522021-04-12 Dodji Seketeli <dodji@redhat.com>
1353
1354 dwarf-reader: Canonicalize opaque enums and classes
1355 * src/abg-dwarf-reader.cc (build_ir_node_from_die): Canonicalize
1356 opaque enums and classes.
1357 * tests/data/test-read-dwarf/PR27700/include-dir/priv.h: New test
1358 header file.
1359 * tests/data/test-read-dwarf/PR27700/include-dir/pub.h: Likewise
1360 * tests/data/test-read-dwarf/PR27700/pub-incdir/inc.h: Likewise.
1361 * tests/data/test-read-dwarf/PR27700/test-PR27700.o: New binary
1362 input file.
1363 * tests/data/test-read-dwarf/PR27700/test-PR27700.abi: Reference
1364 abi file of the binary above.
1365 * tests/data/test-read-dwarf/PR27700/test-PR27700.c: Source file
1366 of the binary above.
1367 * tests/data/Makefile.am: Add the test material above to source
1368 distribution.
1369 * tests/test-read-dwarf.cc (InOutSpec::in_public_headers_path):
1370 Add new data member.
1371 (in_out_specs): Adjust to reflect the new data member in the
1372 InOutSpec type. Add a new test input.
1373 (set_suppressions_from_headers): Define new static function.
1374 (test_task::perform): Use the content of the new
1375 InOutSpec::in_public_headers_path to construct and add
1376 "--headers-dir <headers-dir> --drop-private-types" to the options
1377 of the abidw program run.
1378
13792020-07-01 Matthias Maennich <maennich@google.com>
1380
1381 symtab: Add support for MODVERSIONS (CRC checksums)
1382 * include/abg-ir.h (elf_symbol::elf_symbol): Add CRC parameter.
1383 (elf_symbol::create): Likewise.
1384 (elf_symbol::get_crc): New member method.
1385 (elf_symbol::set_crc): New member method.
1386 * src/abg-comp-filter.cc (crc_changed): New function.
1387 (categorize_harmful_diff_node): Also test for CRC changes.
1388 * src/abg-ir.cc (elf_symbol::priv::crc_): New data member.
1389 * src/abg-ir.cc (elf_symbol::priv::priv): Add CRC parameter.
1390 (elf_symbol::elf_symbol): Likewise.
1391 (elf_symbol::create): Likewise.
1392 (elf_symbol::textually_equals): Add CRC support.
1393 (elf_symbol::get_crc): New member method.
1394 (elf_symbol::set_crc): New member method.
1395 * src/abg-reader.cc (build_elf_symbol): Add CRC support.
1396 * src/abg-reporter-priv.cc (maybe_report_diff_for_symbol): Likewise.
1397 * src/abg-symtab-reader.cc (symtab::load): Likewise.
1398 * src/abg-writer.cc (write_elf_symbol): Likewise.
1399 * tests/data/Makefile.am: Add new test data files.
1400 * tests/data/test-abidiff-exit/test-crc-report.txt: New test file.
1401 * tests/data/test-abidiff-exit/test-crc-v0.abi: Likewise.
1402 * tests/data/test-abidiff-exit/test-crc-v1.abi: Likewise.
1403 * tests/data/test-abidiff/empty-report.txt: New file.
1404 * tests/data/test-abidiff/test-PR18166-libtirpc.so.report.txt: Deleted.
1405 * tests/data/test-abidiff/test-PR24552-report0.txt: Deleted.
1406 * tests/data/test-abidiff/test-crc-0.xml: New test file.
1407 * tests/data/test-abidiff/test-crc-1.xml: Likewise.
1408 * tests/data/test-abidiff/test-crc-2.xml: Likewise.
1409 * tests/data/test-abidiff/test-crc-report.txt: Likewise.
1410 * tests/data/test-abidiff/test-empty-corpus-report.txt: Deleted.
1411 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Add CRC values.
1412 * tests/data/test-read-write/test-crc.xml: New test data file.
1413 * tests/data/test-symtab/kernel-modversions/Makefile: New test source.
1414 * tests/data/test-symtab/kernel-modversions/one_of_each.c: Likewise.
1415 * tests/data/test-symtab/kernel-modversions/one_of_each.ko: Likewise.
1416 * tests/test-abidiff-exit.cc: Add new test case.
1417 * tests/test-abidiff.cc: Add new test case.
1418 * tests/test-read-write.cc: Likewise.
1419 * tests/test-symtab.cc (Symtab::KernelSymtabsWithCRC): New test case.
1420 Reviewed-by: Giuliano Procida <gprocida@google.com>
1421 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1422
14232020-10-15 Giuliano Procida <gprocida@google.com>
1424
1425 abg-writer.cc: fix write_elf_symbol_reference loop
1426 * src/abg-writer.cc (write_elf_symbol_reference): Check main
1427 symbol and aliases with more care.
1428 Fixes: commmit ("dwarf-reader/writer: consider aliases when dealing with suppressions")
1429 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1430
14312020-06-28 Matthias Maennich <maennich@google.com>
1432
1433 dwarf-reader/writer: consider aliases when dealing with suppressions
1434 * src/abg-dwarf-reader.cc(function_is_suppressed): Do not suppress
1435 a function for which there is an alias that is not suppressed.
1436 (variable_is_suppressed): Likewise for variables.
1437 * src/abg-reader.cc (build_elf_symbol): Improve handling of
1438 suppressed aliased symbols when reading from XML.
1439 * src/abg-symtab-reader.cc (load): Likewise.
1440 * src/abg-writer.cc(write_elf_symbol_reference): Fall back to
1441 any aliased symbol if the main symbol is suppressed.
1442 * tests/data/Makefile.am: Add new test files.
1443 * tests/data/test-abidiff-exit/test-missing-alias-report.txt: New test file.
1444 * tests/data/test-abidiff-exit/test-missing-alias.abi: Likewise.
1445 * tests/data/test-abidiff-exit/test-missing-alias.suppr: Likewise.
1446 * tests/test-abidiff-exit.cc: Add support for whitelists and add
1447 new testcase.
1448 * tests/data/test-read-dwarf/test-suppressed-alias.c: New test file.
1449 * tests/data/test-read-dwarf/test-suppressed-alias.o: Likewise.
1450 * tests/data/test-read-dwarf/test-suppressed-alias.o.abi: Likewise.
1451 * tests/data/test-read-dwarf/test-suppressed-alias.suppr: Likewise.
1452 * tests/data/test-read-dwarf/test3-alias-1.so.hash.abi: Likewise.
1453 * tests/data/test-read-dwarf/test3-alias-1.suppr: Likewise.
1454 * tests/data/test-read-dwarf/test3-alias-2.so.hash.abi: Likewise.
1455 * tests/data/test-read-dwarf/test3-alias-2.suppr: Likewise.
1456 * tests/data/test-read-dwarf/test3-alias-3.so.hash.abi: Likewise.
1457 * tests/data/test-read-dwarf/test3-alias-3.suppr: Likewise.
1458 * tests/data/test-read-dwarf/test3-alias-4.so.hash.abi: Likewise.
1459 * tests/data/test-read-dwarf/test3-alias-4.suppr: Likewise.
1460 * tests/test-read-dwarf.cc: Add new test cases.
1461 Reviewed-by: Giuliano Procida <gprocida@google.com>
1462 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1463
14642020-06-30 Matthias Maennich <maennich@google.com>
1465
1466 symtab/dwarf-reader: allow hinting of main symbols for aliases
1467 * include/abg-ir.h (elf_symbol::update_main_symbol): New method.
1468 * include/abg-symtab-reader.h (symtab::update_main_symbol): New method.
1469 * src/abg-dwarf-reader.cc
1470 (build_var_decl): Hint symtab about main symbol discovered in DWARF.
1471 (build_function_decl): Likewise.
1472 * src/abg-ir.cc (elf_symbol::get_main_symbol): Lock the weak_ptr
1473 on access in both overloads.
1474 (update_main_symbol): New method to allow updating the main symbol.
1475 * src/abg-symtab-reader.cc (symtab::update_main_symbol): New method.
1476 * data/Makefile.am: Add new test data files.
1477 * tests/data/test-annotate/test15-pr18892.so.abi: Updated test file.
1478 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
1479 * tests/data/test-annotate/test2.so.abi: Likewise.
1480 * tests/data/test-annotate/test3.so.abi: Likewise.
1481 * tests/data/test-diff-dwarf/test12-report.txt: Likewise.
1482 * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise.
1483 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise.
1484 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise.
1485 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: Likewise.
1486 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: Likewise.
1487 * tests/data/test-diff-suppr/test23-alias-filter-4.suppr: Likewise.
1488 * tests/data/test-diff-suppr/test23-alias-filter-report-0.txt: Likewise.
1489 * tests/data/test-diff-suppr/test23-alias-filter-report-2.txt: Likewise.
1490 * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise.
1491 * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
1492 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
1493 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
1494 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
1495 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
1496 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
1497 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
1498 * tests/data/test-read-dwarf/test2.so.abi: Likewise.
1499 * tests/data/test-read-dwarf/test2.so.hash.abi: Likewise.
1500 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
1501 * tests/data/test-read-dwarf/test3.so.abi: Likewise.
1502 * tests/data/test-read-dwarf/test3.so.hash.abi: Likewise.
1503 * tests/data/test-symtab/basic/aliases.c: New test source file.
1504 * tests/data/test-symtab/basic/aliases.so: Likewise.
1505 * tests/test-symtab.cc (Symtab::AliasedFunctionSymbols): New test case.
1506 (Symtab::AliasedVariableSymbols): Likewise.
1507 Reviewed-by: Giuliano Procida <gprocida@google.com>
1508 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1509
15102020-06-29 Matthias Maennich <maennich@google.com>
1511
1512 test-symtab: add tests for whitelisted functions
1513 * tests/data/Makefile.am: add new test files
1514 * tests/data/test-symtab/basic/one_function_one_variable_all.whitelist: New test file,
1515 * tests/data/test-symtab/basic/one_function_one_variable_function.whitelist: Likewise.
1516 * tests/data/test-symtab/basic/one_function_one_variable_irrelevant.whitelist: Likewise.
1517 * tests/data/test-symtab/basic/one_function_one_variable_variable.whitelist: Likewise.
1518 * tests/test-symtab.cc (read_corpus): Add support for whitelists.
1519 (assert_symbol_count): Likewise.
1520 (Symtab::SymtabWithWhitelist): New testcase.
1521 Reviewed-by: Giuliano Procida <gprocida@google.com>
1522 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1523
15242020-06-02 Matthias Maennich <maennich@google.com>
1525
1526 dwarf reader: drop (now) unused code related to symbol table reading
1527 * include/abg-dwarf-reader.h (set_ignore_symbol_table): Remove.
1528 (get_ignore_symbol_table): Likewise.
1529 * src/abg-dwarf-reader.cc (add_symbol_to_map): Likewise.
1530 (read_context::options_type::ignore_symbol_table): Likewise.
1531 (read_context::options_type): Adjust.
1532 (read_context::fun_addr_sym_map_): Remove.
1533 (read_context::fun_entry_addr_sym_map_): Likewise.
1534 (read_context::fun_syms_): Likewise.
1535 (read_context::var_addr_sym_map_): Likewise.
1536 (read_context::var_syms_): Likewise.
1537 (read_context::undefined_fun_syms_): Likewise.
1538 (read_context::undefined_var_syms_): Likewise.
1539 (read_context::initialize): Adjust.
1540 (read_context::lookup_elf_symbol_from_index): Remove.
1541 (read_context::fun_entry_addr_sym_map_sptr): Likewise.
1542 (read_context::fun_entry_addr_sym_map): Likewise.
1543 (read_context::fun_syms_sptr): Likewise.
1544 (read_context::fun_syms): Likewise.
1545 (read_context::var_syms_sptr): Likewise.
1546 (read_context::var_syms): Likewise.
1547 (read_context::undefined_fun_syms_sptr): Likewise.
1548 (read_context::undefined_var_syms_sptr): Likewise.
1549 (read_context::load_symbol_maps_from_symtab_section): Likewise.
1550 (read_context::load_symbol_maps): Likewise.
1551 (read_context::maybe_load_symbol_maps): Likewise.
1552 (set_ignore_symbol_table): Likewise.
1553 (get_ignore_symbol_table): Likewise.
1554 (create_default_var_sym): Likewise.
1555 (build_var_decl): Adjust.
1556 (function_is_suppressed): Likewise.
1557 (variable_is_suppressed): Likewise.
1558 (build_function_decl): Likewise.
1559 (add_symbol_to_map): Remove.
1560 (read_corpus_from_elf): Adjust.
1561 (build_corpus_group_from_kernel_dist_under): Likewise.
1562 * tools/abidw.cc (main): Likewise.
1563 Reviewed-by: Giuliano Procida <gprocida@google.com>
1564 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1565
15662020-05-21 Matthias Maennich <maennich@google.com>
1567
1568 abg-corpus: remove symbol maps and their setters
1569 * include/abg-corpus.h (corpus::set_fun_symbol_map): Remove
1570 method declaration.
1571 (corpus::set_undefined_fun_symbol_map): Likewise.
1572 (corpus::set_var_symbol_map): Likewise.
1573 (corpus::set_undefined_var_symbol_map): Likewise.
1574 (corpus::get_fun_symbol_map_sptr): Likewise.
1575 (corpus::get_undefined_fun_symbol_map_sptr): Likewise.
1576 (corpus::get_var_symbol_map_sptr): Likewise.
1577 (corpus::get_undefined_var_symbol_map_sptr): Likewise.
1578 * src/abg-corpus-priv.h (corpus::priv::var_symbol_map): make
1579 private and mutable
1580 (corpus::priv::undefined_var_symbol_map): Likewise.
1581 (corpus::priv::fun_symbol_map): Likewise.
1582 (corpus::priv::undefined_fun_symbol_map): Likewise.
1583 (corpus::priv::get_fun_symbol_map): New method declaration.
1584 (corpus::priv::get_undefined_fun_symbol_map): Likewise.
1585 (corpus::priv::get_var_symbol_map): Likewise.
1586 (corpus::priv::get_undefined_var_symbol_map): Likewise.
1587 * src/abg-corpus.cc (corpus::priv::get_fun_symbol_map): New
1588 method implementation.
1589 (corpus::priv::get_undefined_fun_symbol_map): Likewise.
1590 (corpus::priv::get_var_symbol_map): Likewise.
1591 (corpus::priv::get_undefined_var_symbol_map): Likewise.
1592 (corpus::is_empty): depend on symtab only.
1593 (corpus::set_fun_symbol_map): Remove method.
1594 (corpus::set_undefined_fun_symbol_map): Likewise.
1595 (corpus::set_var_symbol_map): Likewise.
1596 (corpus::set_undefined_var_symbol_map): Likewise.
1597 (corpus::get_fun_symbol_map_sptr): Likewise.
1598 (corpus::get_undefined_fun_symbol_map_sptr): Likewise.
1599 (corpus::get_var_symbol_map_sptr): Likewise.
1600 (corpus::get_undefined_var_symbol_map_sptr): Likewise.
1601 (corpus::get_fun_symbol_map): Use corpus::priv proxy method.
1602 (corpus::get_undefined_fun_symbol_map): Likewise.
1603 (corpus::get_var_symbol_map): Likewise.
1604 (corpus::get_undefined_var_symbol_map): Likewise.
1605 * src/abg-dwarf-reader.cc (read_debug_info_into_corpus): Do not
1606 set corpus symbol maps anymore.
1607 * src/abg-reader.cc (read_corpus_from_input): Likewise.
1608 * tests/test-symtab.cc (assert_symbol_count): Do not access the
1609 corpus symbol maps through sptr anymore.
1610 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Adjust
1611 expected test output.
1612 Reviewed-by: Giuliano Procida <gprocida@google.com>
1613 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1614
16152020-05-14 Matthias Maennich <maennich@google.com>
1616
1617 symtab_reader: add support for ppc64 ELFv1 binaries
1618 * src/abg-symtab-reader.cc (symtab::lookup_symbol): fall back to
1619 lookup the address in entry_addr_symbol_map_.
1620 (symtab::load): update the function entry address map for
1621 ppc64 targets.
1622 (symtab::update_function_entry_address_symbol_map): New
1623 function implementation.
1624 * src/abg-symtab-reader.h
1625 (symtab::entry_addr_symbol_map_): New data member.
1626 (symtab::update_function_entry_address_symbol_map): New
1627 function declaration.
1628 Reviewed-by: Giuliano Procida <gprocida@google.com>
1629 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1630
16312020-05-12 Matthias Maennich <maennich@google.com>
1632
1633 abg-elf-helpers: migrate ppc64 specific helpers
1634 * src/abg-dwarf-reader.cc (read_context::opd_section_): Delete.
1635 (read_context::find_opd_section): Delete.
1636 (read_context::read_uint64_from_array_of_bytes): Delete.
1637 (read_context::read_int_from_array_of_bytes): Delete.
1638 (read_context::lookup_ppc64_elf_fn_entry_point_address): Delete.
1639 (read_context::address_is_in_opd_section): Delete.
1640 (read_context::address_is_in_section): Delete.
1641 (read_context::load_symbol_maps_from_symtab_section): Adjust.
1642 * src/abg-elf-helpers.cc (read_int_from_array_of_bytes): New.
1643 (read_uint64_from_array_of_bytes): New.
1644 (lookup_ppc64_elf_fn_entry_point_address): New.
1645 (address_is_in_section): New.
1646 (address_is_in_opd_section): New.
1647 * src/abg-elf-helpers.h
1648 (lookup_ppc64_elf_fn_entry_point_address): New declaration.
1649 (address_is_in_opd_section): New declaration.
1650 Reviewed-by: Giuliano Procida <gprocida@google.com>
1651 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1652
16532020-05-06 Matthias Maennich <maennich@google.com>
1654
1655 Switch kernel stuff over to new symtab and drop unused code
1656 * src/abg-dwarf-reader.cc (read_context::ksymtab_format_): Delete.
1657 (read_context::ksymtab_entry_size_): Likewise.
1658 (read_context::nb_ksymtab_entries_): Likewise.
1659 (read_context::nb_ksymtab_gpl_entries_): Likewise.
1660 (read_context::ksymtab_section_): Likewise.
1661 (read_context::ksymtab_reloc_section_): Likewise.
1662 (read_context::ksymtab_gpl_section_): Likewise.
1663 (read_context::ksymtab_gpl_reloc_section_): Likewise.
1664 (read_context::ksymtab_strings_section_): Likewise.
1665 (read_context::linux_exported_fn_syms): Likewise.
1666 (read_context::linux_exported_var_syms): Likewise.
1667 (read_context::linux_exported_gpl_fn_syms): Likewise.
1668 (read_context::linux_exported_gpl_var_syms): Likewise.
1669 (read_context::initialize): Remove initializations accordingly.
1670 (read_context::find_ksymtab_section): Delete.
1671 (read_context::find_ksymtab_gpl_section): Likewise.
1672 (read_context::find_ksymtab_reloc_section): Likewise.
1673 (read_context::find_ksymtab_gpl_reloc_section): Likewise.
1674 (read_context::find_ksymtab_strings_section): Likewise.
1675 (read_context::find_any_ksymtab_section): Likewise.
1676 (read_context::find_any_ksymtab_reloc_section): Likewise.
1677 (read_context::lookup_elf_symbol_from_index): Adjust.
1678 (read_context::linux_exported_fn_syms): Delete.
1679 (read_context::create_or_get_linux_exported_fn_syms): Likewise.
1680 (read_context::linux_exported_var_syms): Likewise.
1681 (read_context::create_or_get_linux_exported_var_syms): Likewise.
1682 (read_context::linux_exported_gpl_fn_syms): Delete.
1683 (read_context::create_or_get_linux_exported_gpl_fn_syms): Likewise.
1684 (read_context::linux_exported_gpl_var_syms): Likewise.
1685 (read_context::create_or_get_linux_exported_gpl_var_syms): Likewise.
1686 (read_context::try_reading_first_ksymtab_entry): Likewise.
1687 (read_context::try_reading_first_ksymtab_entry_using_pre_v4_19_format): Likewise.
1688 (read_context::try_reading_first_ksymtab_entry_using_v4_19_format): Likewise.
1689 (read_context::get_ksymtab_format_module): Likewise.
1690 (read_context::get_ksymtab_format): Likewise.
1691 (read_context::get_ksymtab_symbol_value_size): Likewise.
1692 (read_context::get_ksymtab_entry_size): Likewise.
1693 (read_context::get_nb_ksymtab_entries): Likewise.
1694 (read_context::get_nb_ksymtab_gpl_entries): Likewise.
1695 (read_context::populate_symbol_map_from_ksymtab): Likewise.
1696 (read_context::populate_symbol_map_from_ksymtab_reloc): Likewise.
1697 (read_context::load_kernel_symbol_table): Likewise.
1698 (read_context::load_ksymtab_symbols): Likewise.
1699 (read_context::load_ksymtab_gpl_symbols): Likewise.
1700 (read_context::load_linux_specific_exported_symbol_maps): Likewise.
1701 (read_context::load_symbol_maps): Do not load kernel symbol maps.
1702 (read_context::maybe_adjust_sym_address_from_v4_19_ksymtab): Delete.
1703 (read_context::add_fn_symbols_to_map): Likewise.
1704 (read_context::add_var_symbols_to_map): Likewise.
1705 (read_context::read_debug_info_into_corpus): Fill export maps
1706 from new symtab.
1707 (read_context::lookup_elf_fn_symbol_from_address): Delete.
1708 (read_context::lookup_elf_var_symbol_from_address): Likewise.
1709 (read_context::lookup_elf_symbol_from_address): Likewise.
1710 (read_context::lookup_public_function_symbol_from_elf): Likewise.
1711 (read_context::fun_entry_addr_sym_map_sptr): Likewise.
1712 (read_context::fun_entry_addr_sym_map): Likewise.
1713 (read_context::var_addr_sym_map): Likewise.
1714 Reviewed-by: Giuliano Procida <gprocida@google.com>
1715 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1716
17172020-05-06 Matthias Maennich <maennich@google.com>
1718
1719 dwarf-reader: read_context: use new symtab in *_symbols_is_exported
1720 * src/abg-dwarf-reader.cc (function_symbol_is_exported): Use new
1721 symtab implementation.
1722 (variable_symbol_is_exported): Likewise.
1723 Reviewed-by: Giuliano Procida <gprocida@google.com>
1724 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1725
17262020-05-04 Matthias Maennich <maennich@google.com>
1727
1728 abg-reader: avoid using the (var|function)_symbol_map
1729 * src/abg-reader.cc (build_elf_symbol_from_reference): drop
1730 last parameter indicating the lookup type and use corpus
1731 symtab for the lookup
1732 (build_function_decl): Adjust accordingly.
1733 (build_var_decl): Likewise.
1734 Reviewed-by: Giuliano Procida <gprocida@google.com>
1735 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1736
17372020-05-04 Matthias Maennich <maennich@google.com>
1738
1739 corpus: make get_unreferenced_(function|variable)_symbols use the new symtab
1740 * src/abg-corpus-priv.h (corpus::priv::unrefed_var_symbols): make
1741 private, mutable and optional.
1742 (corpus::unrefed_fun_symbols): Likewise.
1743 (corpus::priv::get_unreferenced_function_symbols): New method declaration.
1744 (corpus::priv::get_unreferenced_variable_symbols): Likewise.
1745 * src/abg-corpus.cc
1746 (corpus::priv::build_unreferenced_symbols_tables): Delete method.
1747 (corpus::priv::get_unreferenced_function_symbols): New method implementation.
1748 (corpus::priv::get_unreferenced_variable_symbols): Likewise.
1749 (corpus::get_unreferenced_function_symbols): Proxy call to corpus::priv.
1750 (corpus::get_unreferenced_variable_symbols): Likewise.
1751 Reviewed-by: Giuliano Procida <gprocida@google.com>
1752 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1753
17542020-04-30 Matthias Maennich <maennich@google.com>
1755
1756 corpus: make get_(undefined_)?_(var|fun)_symbols use the new symtab
1757 * src/abg-corpus-priv.h (corpus::priv::sorted_var_symbols): make
1758 private, mutable and optional.
1759 (corpus::sorted_undefined_var_symbols): Likewise.
1760 (corpus::sorted_fun_symbols): Likewise.
1761 (corpus::sorted_undefined_fun_symbols): Likewise.
1762 (corpus::priv::get_sorted_fun_symbols): New method declaration.
1763 (corpus::priv::get_sorted_undefined_fun_symbols): Likewise.
1764 (corpus::priv::get_sorted_var_symbols): Likewise.
1765 (corpus::priv::get_sorted_undefined_var_symbols): Likewise.
1766 * src/abg-corpus.cc
1767 (corpus::elf_symbol_comp_functor): Delete struct.
1768 (corpus::priv::get_sorted_fun_symbols): New method implementation.
1769 (corpus::priv::get_sorted_undefined_fun_symbols): Likewise.
1770 (corpus::priv::get_sorted_var_symbols): Likewise.
1771 (corpus::priv::get_sorted_undefined_var_symbols): Likewise.
1772 (corpus::get_sorted_fun_symbols): Proxy call to corpus::priv.
1773 (corpus::get_sorted_undefined_fun_symbols): Likewise.
1774 (corpus::get_sorted_var_symbols): Likewise.
1775 (corpus::get_sorted_undefined_var_symbols): Likewise.
1776 * src/abg-writer.cc (write_elf_symbol_aliases): When emitting
1777 aliases for a kernel symbol, ensure to only emit exported,
1778 public aliases.
1779 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: update test
1780 data.
1781 Reviewed-by: Giuliano Procida <gprocida@google.com>
1782 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1783
17842020-05-19 Matthias Maennich <maennich@google.com>
1785
1786 Integrate new symtab reader into corpus and read_context
1787 * include/abg-corpus.h (corpus::set_symtab): New method declaration.
1788 (corpus::get_symtab): New method declaration.
1789 * include/abg-fwd.h (symtab_reader::symtab_sptr): New forward
1790 declaration.
1791 * src/abg-corpus-priv.h (corpus::priv::symtab_): New data member.
1792 * src/abg-corpus.cc
1793 (corpus::set_symtab): Likewise.
1794 (corpus::get_symtab): Likewise.
1795 * src/abg-dwarf-reader.cc (read_context::symtab_): New data member.
1796 (read_context::initialize): reset symtab_ as well
1797 (read_context::symtab): new method that loads a symtab on
1798 first access and returns it.
1799 (read_debug_info_into_corpus): also set the new symtab object
1800 on the current corpus.
1801 (read_corpus_from_elf): Also determine (i.e. load) the new
1802 symtab object and contribute to the load status.
1803 * src/abg-reader.cc (read_corpus_from_input): also set the new
1804 type symtab when reading from xml.
1805 * tests/test-symtab.cc: Add test assertions.
1806 Reviewed-by: Giuliano Procida <gprocida@google.com>
1807 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1808
18092020-04-29 Matthias Maennich <maennich@google.com>
1810
1811 Refactor ELF symbol table reading by adding a new symtab reader
1812 * src/abg-symtab-reader.h (symtab_filter): New class.
1813 (symtab_iterator): Likewise.
1814 (symtab): Likewise.
1815 (filtered_symtab): Likewise.
1816 * src/abg-symtab-reader.cc (symtab_filter::matches): New.
1817 (symtab::make_filter): Likewise.
1818 (symtab::lookup_symbol): Likewise.
1819 (symbol_sort): Likewise.
1820 (symtab::load): Likewise.
1821 (symtab::load_): Likewise.
1822 Reviewed-by: Giuliano Procida <gprocida@google.com>
1823 Reviewed-by: Dodji Seketeli <dodji@seketeli.org>
1824
18252021-03-29 Matthias Maennich <maennich@google.com>
1826
1827 clang-format: Minor correction to not break parameters on the first line
1828 * .clang-format: correct function parameter break/indentation
1829
18302021-03-31 Dodji Seketeli <dodji@redhat.com>
1831
1832 Bug 27598 - abidiff mishandles union member functions
1833 * src/abg-default-reporter.cc (default_reporter::report): Assume
1834 the parent type of the method can be either a class or a union.
1835 * tests/data/test-diff-filter/test-PR27598-report-0.txt: New
1836 reference output for the test.
1837 * tests/data/test-diff-filter/test-PR27598-v{0,1}.cc: New source
1838 code for the input binaries below.
1839 * tests/data/test-diff-filter/test-PR27598-v{0,1}.o: New input
1840 test binaries.
1841 * tests/data/Makefile.am: Add the new test material to source
1842 distribution.
1843 * tests/test-diff-filter.cc (in_out_specs): Add the test inputs
1844 above to this test harness.
1845
18462021-03-25 Dodji Seketeli <dodji@redhat.com>
1847
1848 Bug 27569 - abidiff misses a function parameter addition
1849 * include/abg-comparison.h (enum diff_category): Add a new
1850 FN_PARM_ADD_REMOVE_CHANGE_CATEGORY enumerator and adjust the
1851 following enumerator values. Update the EVERYTHING_CATEGORY
1852 accordingly.
1853 (function_type_diff::{sorted_deleted_parms, sorted_added_parms}):
1854 Add new member functions.
1855 * src/abg-comparison.cc
1856 (function_type_diff::{sorted_deleted_parms, sorted_added_parms}):
1857 Define new accessors.
1858 (get_default_harmful_categories_bitmap):
1859 Consider changes of the category
1860 FN_PARM_ADD_REMOVE_CHANGE_CATEGORY as harmful.
1861 (operator<<(ostream& o, diff_category c)): Support the new
1862 FN_PARM_ADD_REMOVE_CHANGE_CATEGORY while serializing a category
1863 bitmap.
1864 * src/abg-comp-filter.cc
1865 (has_added_or_removed_function_parameters): Define new static
1866 function.
1867 (categorize_harmful_diff_node): Categorize diff nodes representing
1868 function parameter addition or removal as
1869 FN_PARM_ADD_REMOVE_CHANGE_CATEGORY.
1870 * tests/data/test-diff-filter/test-PR27569-report-0.txt: New test
1871 reference output.
1872 * tests/data/test-diff-filter/test-PR27569-v{0,1}.abi: New test inputs.
1873 * tests/data/Makefile.am: Add the new test inputs to the source
1874 distribution.
1875 * tests/test-diff-filter.cc (in_out_specs): Add the new test
1876 inputs to this test harness.
1877 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt:
1878 Adjust.
1879 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt:
1880 Likewise.
1881 * tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt:
1882 Likewise.
1883 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
1884 Likewise.
1885 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
1886 Likewise.
1887
18882021-03-15 Giuliano Procida <gprocida@google.com>
1889
1890 dwarf-reader: Treat union members as public by default.
1891 * src/abg-dwarf-reader.cc (add_or_update_union_type): Replace
1892 "class" with "union" in comments; give union members public
1893 access by default.
1894 (finish_member_function_reading): Give union members public access
1895 by default.
1896 (maybe_set_member_type_access_specifier): Give union members
1897 public access by default.
1898 * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Refresh.
1899 * tests/data/test-annotate/libtest24-drop-fns.so.abi: Refresh.
1900 * tests/data/test-annotate/test-anonymous-members-0.o.abi:
1901 Refresh.
1902 * tests/data/test-annotate/test13-pr18894.so.abi: Refresh.
1903 * tests/data/test-annotate/test14-pr18893.so.abi: Refresh.
1904 * tests/data/test-annotate/test15-pr18892.so.abi: Refresh.
1905 * tests/data/test-annotate/test17-pr19027.so.abi: Refresh.
1906 * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
1907 Refresh.
1908 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
1909 Refresh.
1910 * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
1911 Refresh.
1912 * tests/data/test-annotate/test21-pr19092.so.abi: Refresh.
1913 * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi:
1914 Refresh.
1915 * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi:
1916 Refresh.
1917 * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
1918 Refresh.
1919 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Refresh.
1920 * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
1921 Refresh.
1922 * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi:
1923 Refresh.
1924 * tests/data/test-read-dwarf/test-PR26568-1.o.abi: Refresh.
1925 * tests/data/test-read-dwarf/test-PR26568-2.o.abi: Refresh.
1926 * tests/data/test-read-dwarf/test-libandroid.so.abi: Refresh.
1927 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi:
1928 Refresh.
1929 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Refresh.
1930 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Refresh.
1931 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Refresh.
1932 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Refresh.
1933 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Refresh.
1934 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Refresh.
1935 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Refresh.
1936 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
1937 Refresh.
1938 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
1939 Refresh.
1940 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
1941 Refresh.
1942 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Refresh.
1943 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
1944 Refresh.
1945 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi:
1946 Refresh.
1947
19482021-03-12 Ben Woodard via Libabigail <libabigail@sourceware.org>
1949
1950 Bug 27512 - Remove broken zip-archive support
1951 * configure.ac: remove --enable-zip-archive option and logic
1952 associated with it.
1953 * include/abg-libzip-utils.h: Remove.
1954 * src/abg-libzip-utils.cc: Likewise.
1955 * include/Makefile.am: remove reference to include/abg-libzip-utils.h
1956 that no longer exists.
1957 * src/Makefile.am: remove reference to src/abg-libzip-utils.cc that no
1958 longer exists.
1959 * relicensing-scripts/file-licenses.orig.txt: remove references to
1960 files that no longer exist.
1961 * relicensing-scripts/files-with-lgplv3.txt: remove references to
1962 files that no longer exist.
1963 * tests/test-write-read-archive.cc: Remove because it tests code
1964 that no longer exists.
1965 * tests/Makefile.am: remove reference to tests that no longer exist.
1966 * include/abg-reader.h: remove conditionally compiled code for zip
1967 archives.
1968 * include/abg-tools-utils.h: remove conditionally compiled code for
1969 zip archives.
1970 * src/abg-corpus.cc: remove conditionally compiled code for zip
1971 archives.
1972 * src/abg-reader.cc: remove conditionally compiled code for zip
1973 archives.
1974 * src/abg-tools-utils.cc: remove conditionally compiled code for zip
1975 archives.
1976 * src/abg-writer.cc: remove conditionally compiled code for zip
1977 archives.
1978 * tools/abidiff.cc: remove conditionally compiled code for zip
1979 archives.
1980 * tools/abilint.cc: remove conditionally compiled code for zip
1981 archives.
1982 * tools/abiar.c: Remove.
1983 * tools/Makefile.am: remove references to abiar a utility that no
1984 longer has a reason for existing.
1985
19862021-03-18 Dodji Seketeli <dodji@redhat.com>
1987
1988 dwarf-reader: Support more DWARF-5 type DIEs
1989 * src/abg-dwarf-reader.cc (is_type_tag): Support
1990 DW_TAG_coarray_type, DW_TAG_atomic_type and DW_TAG_immutable_type.
1991 * tests/data/test-diff-pkg/elfutils-debuginfo-0.183-1.el9.x86_64.rpm:
1992 Add new binary test input.
1993 * tests/data/test-diff-pkg/elfutils-libs-debuginfo-0.183-1.el9.x86_64.rpm: Likewise.
1994 * tests/data/test-diff-pkg/elfutils-libs-0.183-1.el9.x86_64.rpm: Likewise.
1995 * tests/data/test-diff-pkg/elfutils-libs-debuginfo-0.183-1.el9.x86_64-self-check-report-0.txt:
1996 Add new reference test output.
1997 * tests/test-diff-pkg.cc (in_out_specs): Add the test inputs above
1998 to the harness.
1999
20002021-03-10 Giuliano Procida <gprocida@google.com>
2001
2002 DWARF reader: Comment ARM32 ELF address interpretation
2003 * src/abg-dwarf-reader.cc
2004 (read_context::load_symbol_maps_from_symtab_section): Add
2005 descriptive comment to ARM32 address handling; shorten
2006 the assignment using &=.
2007
20082021-01-27 Matthias Maennich <maennich@google.com>
2009
2010 dwarf-reader split: create abg-symtab-reader.{h,cc} and test case
2011 * src/abg-symtab-reader.h: New header file.
2012 * src/abg-symtab-reader.cc: New source file.
2013 * src/Makefile.am: Add new source files.
2014 * tests/Makefile.am: Add new test case runtestsymtabreader.
2015 * tests/test-symtab-reader.cc: New test source file.
2016 Reviewed-by: Giuliano Procida <gprocida@google.com>
2017
20182021-03-09 Giuliano Procida <gprocida@google.com>
2019
2020 DWARF reader: Interpret ARM32 ELF addresses correctly
2021 * src/abg-dwarf-reader.cc
2022 (read_context::load_symbol_maps_from_symtab_section): Clear
2023 bit zero of ARM32 function addresses.
2024 * src/abg-elf-helpers.cc (architecture_is_arm32): Add new
2025 function.
2026 * src/abg-elf-helpers.h (architecture_is_arm32): Likewise.
2027 * tests/data/test-read-dwarf/test-libandroid.so.abi: Update.
2028
20292021-01-27 Matthias Maennich <maennich@google.com>
2030
2031 abg-ir: elf_symbol: add is_suppressed field
2032 * include/abg-ir.h (elf_symbol::elf_symbol): Add is_suppressed
2033 parameter.
2034 (elf_symbol::create): Likewise.
2035 (elf_symbol::is_suppressed): New getter declaration.
2036 (elf_symbol::set_is_suppressed): New setter declaration.
2037 * src/abg-ir.cc (elf_symbol::priv::priv): Add is_suppressed
2038 parameter.
2039 (elf_symbol::priv::is_suppressed_): New field.
2040 (elf_symbol::elf_symbol): Add is_suppressed parameter.
2041 (elf_symbol::create): Likewise.
2042 (elf_symbol::is_suppressed): New getter implementation.
2043 (elf_symbol::set_is_suppressed): New setter implementation.
2044 Reviewed-by: Giuliano Procida <gprocida@google.com>
2045
20462021-01-27 Matthias Maennich <maennich@google.com>
2047
2048 abg-ir: elf_symbol: add is_in_ksymtab field
2049 * include/abg-ir.h (elf_symbol::elf_symbol): Add is_in_ksymtab
2050 parameter.
2051 (elf_symbol::create): Likewise.
2052 (elf_symbol::is_in_ksymtab): New getter declaration.
2053 (elf_symbol::set_is_in_ksymtab): New setter declaration.
2054 * src/abg-ir.cc (elf_symbol::priv::priv): Add is_in_ksymtab
2055 parameter.
2056 (elf_symbol::priv::is_in_ksymtab_): New field.
2057 (elf_symbol::elf_symbol): Add is_in_ksymtab parameter.
2058 (elf_symbol::create): Likewise.
2059 (elf_symbol::is_in_ksymtab): New getter implementation.
2060 (elf_symbol::set_is_in_ksymtab): New setter implementation.
2061 Reviewed-by: Giuliano Procida <gprocida@google.com>
2062
20632021-01-27 Matthias Maennich <maennich@google.com>
2064
2065 abg-cxx-compat: add simplified version of std::optional
2066 * include/abg-cxx-compat.h (abg_compat::optional): Add new class.
2067 * tests/tests-cxx-compat.cc: Add new test cases.
2068 Reviewed-by: Giuliano Procida <gprocida@google.com>
2069
20702021-03-02 Ben Woodard via Libabigail <libabigail@sourceware.org>
2071
2072 Fix declaratons of conditionally defined functions
2073 * include/abg-reader.h (read_corpus_from_file): Guard the
2074 declaration of these overloads with #ifdef WITH_ZIP_ARCHIVE.
2075 * tools/abilint.cc: Guard the use of
2076 abigail::xml_reader::read_corpus_from_file with #ifdef
2077 WITH_ZIP_ARCHIVE.
2078
20792021-03-08 Dodji Seketeli <dodji@redhat.com>
2080
2081 Revert "Fix declaratons of conditionally defined functions"
2082 * include/abg-reader.h:
2083 * tools/abilint.cc:
2084
20852021-03-02 Ben Woodard via Libabigail <libabigail@sourceware.org>
2086
2087 Fix declaratons of conditionally defined functions
2088 * include/abg-reader.h:
2089 * tools/abilint.cc:
2090
20912021-03-08 Dodji Seketeli <dodji@redhat.com>
2092
2093 tests/catch.hpp: Add SPDX header back
2094 * tests/lib/catch.hpp: Add SPDX header back.
2095
20962021-02-25 Dodji Seketeli <dodji@redhat.com>
2097
2098 dwarf-reader: Keep stable order when de-duplicating class definitions
2099 * src/abg-dwarf-reader.cc
2100 (read_context::resolve_declaration_only_classes): Compare the
2101 classes that have the same name across several TU, always in the
2102 same order.
2103 * tests/data/test-annotate/test15-pr18892.so.abi: Adjust.
2104 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
2105
21062021-02-24 Dodji Seketeli <dodji@redhat.com>
2107
2108 Better sorting of (anonymous) types in ABIXML files
2109 * src/abg-writer.cc (type_ptr_cmp::operator()): Use the internal
2110 pretty representation of types, for comparison.
2111 * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
2112 Adjust.
2113 * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
2114 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
2115 * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
2116 Likewise.
2117 * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
2118 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
2119 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
2120 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
2121 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
2122 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
2123 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
2124 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
2125 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
2126 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
2127 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
2128 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
2129 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
2130 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
2131 * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
2132 * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
2133 * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
2134 * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
2135 * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
2136 Likewise.
2137 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
2138 Likewise.
2139 * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
2140 Likewise.
2141 * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
2142
21432021-02-23 Dodji Seketeli <dodji@redhat.com>
2144
2145 tests: Update to catch.hpp v2.13.4 and fix #2178
2146 * tests/lib/catch.hpp: Update to v2.13.4 and initialize
2147 sigStackSize to 32768 for now, as suggested by
2148 https://github.com/catchorg/Catch2/issues/2178.
2149
21502021-02-11 Dodji Seketeli <dodji@redhat.com>
2151
2152 Don't consider type name when comparing typedefs
2153 * include/abg-ir.h (maybe_compare_as_member_decls): Declare new
2154 function. Make it a friend of class decl_base.
2155 * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Don't early
2156 canonicalize typedefs because they can be "part" of a type that is
2157 not yet completed, especially considering that class declaration
2158 resolution is part of type building, stricto sensu.
2159 * src/abg-ir.cc (maybe_compare_as_member_decls): Factorize this
2160 out of ...
2161 (equals): ... the overload for decl_base. Use it in the overload
2162 for typedef_decl.
2163 * tests/data/test-diff-pkg/nmap-7.70-5.el8_testjcc.x86_64-self-check-report-0.txt:
2164 New test reference output.
2165 * tests/data/test-diff-pkg/nmap-7.70-5.el8_testjcc.x86_64.rpm: New
2166 binary input.
2167 * tests/data/test-diff-pkg/nmap-debuginfo-7.70-5.el8_testjcc.x86_64.rpm: Likewise.
2168 * tests/data/Makefile.am: Add these new testing material to source
2169 distribution.
2170 * tests/test-diff-pkg.cc (in_out_specs): Add the new test input to
2171 the harness.
2172 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt:
2173 Adjust.
2174 * tests/data/test-diff-suppr/test39-opaque-type-report-0.txt:
2175 Adjust.
2176
21772021-02-10 Dodji Seketeli <dodji@redhat.com>
2178
2179 Use generic internal type name to canonicalize anonymous enums
2180 * src/abg-ir.cc (has_generic_anonymous_internal_type_name) :
2181 Define new static function.
2182 (get_generic_anonymous_internal_type_name): Use it here.
2183 (decl_base::get_pretty_representation): For internal purposes,
2184 build an anonymous name that is stable.
2185 * tests/data/test-annotate/test21-pr19092.so.abi: Adjust.
2186 * tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: Adjust.
2187 * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt: Adjust.
2188 * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust.
2189 * tests/data/test-read-dwarf/test-libandroid.so.abi: Adjust.
2190 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust.
2191
21922021-02-08 Giuliano Procida <gprocida@google.com>
2193
2194 abg-dwarf-reader: Fix typo in compare_dies_string_attribute_value
2195 * src/abg-dwarf-reader.cc
2196 (compare_dies_string_attribute_value): Typo fix.
2197
21982021-01-27 Giuliano Procida <gprocida@google.com>
2199
2200 abidiff: do not qualify member names in diff report
2201 * src/abg-reporter-priv.cc (represent_data_member): Do not
2202 qualify member names. (represent): Do not qualify member names.
2203 * tests/data/test-abicompat/test0-fn-changed-report-0.txt: Refresh.
2204 * tests/data/test-abicompat/test0-fn-changed-report-2.txt: Refresh.
2205 * tests/data/test-abicompat/test5-fn-changed-report-0.txt: Refresh.
2206 * tests/data/test-abicompat/test5-fn-changed-report-1.txt: Refresh.
2207 * tests/data/test-abicompat/test6-var-changed-report-0.txt: Refresh.
2208 * tests/data/test-abicompat/test6-var-changed-report-1.txt: Refresh.
2209 * tests/data/test-abicompat/test7-fn-changed-report-0.txt: Refresh.
2210 * tests/data/test-abicompat/test7-fn-changed-report-1.txt: Refresh.
2211 * tests/data/test-abicompat/test7-fn-changed-report-2.txt: Refresh.
2212 * tests/data/test-abicompat/test8-fn-changed-report-0.txt: Refresh.
2213 * tests/data/test-abicompat/test9-fn-changed-report-0.txt: Refresh.
2214 * tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt:
2215 Refresh.
2216 * tests/data/test-abidiff-exit/test-fun-param-report.txt: Refresh.
2217 * tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt:
2218 Refresh.
2219 * tests/data/test-abidiff-exit/test-leaf-cxx-members-report.txt:
2220 Refresh.
2221 * tests/data/test-abidiff-exit/test-leaf-peeling-report.txt: Refresh.
2222 * tests/data/test-abidiff-exit/test-leaf-redundant-report.txt: Refresh.
2223 * tests/data/test-abidiff-exit/test-member-size-report0.txt: Refresh.
2224 * tests/data/test-abidiff-exit/test-member-size-report1.txt: Refresh.
2225 * tests/data/test-abidiff-exit/test-net-change-report0.txt: Refresh.
2226 * tests/data/test-abidiff/test-PR18791-report0.txt: Refresh.
2227 * tests/data/test-abidiff/test-qual-type0-report.txt: Refresh.
2228 * tests/data/test-abidiff/test-struct0-report.txt: Refresh.
2229 * tests/data/test-abidiff/test-struct1-report.txt: Refresh.
2230 * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt:
2231 Refresh.
2232 * tests/data/test-diff-dwarf/test0-report.txt: Refresh.
2233 * tests/data/test-diff-dwarf/test1-report.txt: Refresh.
2234 * tests/data/test-diff-dwarf/test10-report.txt: Refresh.
2235 * tests/data/test-diff-dwarf/test11-report.txt: Refresh.
2236 * tests/data/test-diff-dwarf/test13-report.txt: Refresh.
2237 * tests/data/test-diff-dwarf/test21-redundant-fn-report-0.txt: Refresh.
2238 * tests/data/test-diff-dwarf/test27-local-base-diff-report.txt:
2239 Refresh.
2240 * tests/data/test-diff-dwarf/test3-report.txt: Refresh.
2241 * tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt:
2242 Refresh.
2243 * tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt:
2244 Refresh.
2245 * tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt:
2246 Refresh.
2247 * tests/data/test-diff-dwarf/test37-union-report-0.txt: Refresh.
2248 * tests/data/test-diff-dwarf/test38-union-report-0.txt: Refresh.
2249 * tests/data/test-diff-dwarf/test39-union-report-0.txt: Refresh.
2250 * tests/data/test-diff-dwarf/test4-report.txt: Refresh.
2251 * tests/data/test-diff-dwarf/test40-report-0.txt: Refresh.
2252 * tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt:
2253 Refresh.
2254 * tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt:
2255 Refresh.
2256 * tests/data/test-diff-dwarf/test46-rust-report-0.txt: Refresh.
2257 * tests/data/test-diff-dwarf/test5-report.txt: Refresh.
2258 * tests/data/test-diff-dwarf/test8-report.txt: Refresh.
2259 * tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt:
2260 Refresh.
2261 * tests/data/test-diff-filter/test-PR26739-2-report-0.txt: Refresh.
2262 * tests/data/test-diff-filter/test0-report.txt: Refresh.
2263 * tests/data/test-diff-filter/test01-report.txt: Refresh.
2264 * tests/data/test-diff-filter/test1-report.txt: Refresh.
2265 * tests/data/test-diff-filter/test10-report.txt: Refresh.
2266 * tests/data/test-diff-filter/test11-report.txt: Refresh.
2267 * tests/data/test-diff-filter/test13-report.txt: Refresh.
2268 * tests/data/test-diff-filter/test14-0-report.txt: Refresh.
2269 * tests/data/test-diff-filter/test14-1-report.txt: Refresh.
2270 * tests/data/test-diff-filter/test15-0-report.txt: Refresh.
2271 * tests/data/test-diff-filter/test15-1-report.txt: Refresh.
2272 * tests/data/test-diff-filter/test16-report-2.txt: Refresh.
2273 * tests/data/test-diff-filter/test16-report.txt: Refresh.
2274 * tests/data/test-diff-filter/test17-0-report.txt: Refresh.
2275 * tests/data/test-diff-filter/test17-1-report.txt: Refresh.
2276 * tests/data/test-diff-filter/test18-report.txt: Refresh.
2277 * tests/data/test-diff-filter/test2-report.txt: Refresh.
2278 * tests/data/test-diff-filter/test25-cyclic-type-report-0.txt: Refresh.
2279 * tests/data/test-diff-filter/test25-cyclic-type-report-1.txt: Refresh.
2280 * tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt:
2281 Refresh.
2282 * tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt:
2283 Refresh.
2284 * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-0.txt:
2285 Refresh.
2286 * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt:
2287 Refresh.
2288 * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt:
2289 Refresh.
2290 * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt:
2291 Refresh.
2292 * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt:
2293 Refresh.
2294 * tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt:
2295 Refresh.
2296 * tests/data/test-diff-filter/test3-report.txt: Refresh.
2297 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt:
2298 Refresh.
2299 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt:
2300 Refresh.
2301 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt:
2302 Refresh.
2303 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt:
2304 Refresh.
2305 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt:
2306 Refresh.
2307 * tests/data/test-diff-filter/test32-ppc64le-struct-change-report0.txt:
2308 Refresh.
2309 * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt:
2310 Refresh.
2311 * tests/data/test-diff-filter/test36-report-0.txt: Refresh.
2312 * tests/data/test-diff-filter/test37-report-0.txt: Refresh.
2313 * tests/data/test-diff-filter/test39/test39-report-0.txt: Refresh.
2314 * tests/data/test-diff-filter/test42-leaf-report-output-0.txt: Refresh.
2315 * tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt:
2316 Refresh.
2317 * tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt:
2318 Refresh.
2319 * tests/data/test-diff-filter/test9-report.txt: Refresh.
2320 * tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt:
2321 Refresh.
2322 * tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: Refresh.
2323 * tests/data/test-diff-pkg/dirpkg-1-report-1.txt: Refresh.
2324 * tests/data/test-diff-pkg/dirpkg-3-report-1.txt: Refresh.
2325 * tests/data/test-diff-pkg/dirpkg-3-report-2.txt: Refresh.
2326 * 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:
2327 Refresh.
2328 * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt:
2329 Refresh.
2330 * tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt:
2331 Refresh.
2332 * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt:
2333 Refresh.
2334 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
2335 Refresh.
2336 * tests/data/test-diff-pkg/symlink-dir-test1-report0.txt: Refresh.
2337 * tests/data/test-diff-pkg/tarpkg-0-report-0.txt: Refresh.
2338 * tests/data/test-diff-pkg/tarpkg-1-report-0.txt: Refresh.
2339 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt:
2340 Refresh.
2341 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt:
2342 Refresh.
2343 * tests/data/test-diff-suppr/libtest48-soname-abixml-report-1.txt:
2344 Refresh.
2345 * tests/data/test-diff-suppr/test0-type-suppr-report-0.txt: Refresh.
2346 * tests/data/test-diff-suppr/test0-type-suppr-report-3.txt: Refresh.
2347 * tests/data/test-diff-suppr/test0-type-suppr-report-5.txt: Refresh.
2348 * tests/data/test-diff-suppr/test0-type-suppr-report-7.txt: Refresh.
2349 * tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt: Refresh.
2350 * tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt: Refresh.
2351 * tests/data/test-diff-suppr/test11-add-data-member-report-0.txt:
2352 Refresh.
2353 * tests/data/test-diff-suppr/test12-add-data-member-report-0.txt:
2354 Refresh.
2355 * tests/data/test-diff-suppr/test12-add-data-member-report-2.txt:
2356 Refresh.
2357 * tests/data/test-diff-suppr/test13-suppr-through-pointer-report-0.txt:
2358 Refresh.
2359 * tests/data/test-diff-suppr/test13-suppr-through-pointer-report-1.txt:
2360 Refresh.
2361 * tests/data/test-diff-suppr/test14-suppr-non-redundant-report-0.txt:
2362 Refresh.
2363 * tests/data/test-diff-suppr/test14-suppr-non-redundant-report-1.txt:
2364 Refresh.
2365 * tests/data/test-diff-suppr/test15-suppr-added-fn-report-0.txt:
2366 Refresh.
2367 * tests/data/test-diff-suppr/test15-suppr-added-fn-report-1.txt:
2368 Refresh.
2369 * tests/data/test-diff-suppr/test15-suppr-added-fn-report-5.txt:
2370 Refresh.
2371 * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-0.txt:
2372 Refresh.
2373 * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-2.txt:
2374 Refresh.
2375 * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-5.txt:
2376 Refresh.
2377 * tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt:
2378 Refresh.
2379 * tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt:
2380 Refresh.
2381 * tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt:
2382 Refresh.
2383 * tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt:
2384 Refresh.
2385 * tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt:
2386 Refresh.
2387 * tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt:
2388 Refresh.
2389 * tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt: Refresh.
2390 * tests/data/test-diff-suppr/test23-alias-filter-report-0.txt: Refresh.
2391 * tests/data/test-diff-suppr/test23-alias-filter-report-2.txt: Refresh.
2392 * tests/data/test-diff-suppr/test24-soname-report-1.txt: Refresh.
2393 * tests/data/test-diff-suppr/test24-soname-report-10.txt: Refresh.
2394 * tests/data/test-diff-suppr/test24-soname-report-12.txt: Refresh.
2395 * tests/data/test-diff-suppr/test24-soname-report-14.txt: Refresh.
2396 * tests/data/test-diff-suppr/test24-soname-report-16.txt: Refresh.
2397 * tests/data/test-diff-suppr/test24-soname-report-4.txt: Refresh.
2398 * tests/data/test-diff-suppr/test25-typedef-report-0.txt: Refresh.
2399 * tests/data/test-diff-suppr/test26-loc-suppr-report-0.txt: Refresh.
2400 * tests/data/test-diff-suppr/test26-loc-suppr-report-3.txt: Refresh.
2401 * tests/data/test-diff-suppr/test29-soname-report-3.txt: Refresh.
2402 * tests/data/test-diff-suppr/test29-soname-report-6.txt: Refresh.
2403 * tests/data/test-diff-suppr/test29-soname-report-8.txt: Refresh.
2404 * tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt: Refresh.
2405 * tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt: Refresh.
2406 * tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt: Refresh.
2407 * tests/data/test-diff-suppr/test30-report-0.txt: Refresh.
2408 * tests/data/test-diff-suppr/test31-report-1.txt: Refresh.
2409 * tests/data/test-diff-suppr/test33-report-0.txt: Refresh.
2410 * tests/data/test-diff-suppr/test35-leaf-report-0.txt: Refresh.
2411 * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Refresh.
2412 * tests/data/test-diff-suppr/test4-local-suppr-report-0.txt: Refresh.
2413 * tests/data/test-diff-suppr/test4-local-suppr-report-1.txt: Refresh.
2414 * tests/data/test-diff-suppr/test42-negative-suppr-type-report-0.txt:
2415 Refresh.
2416 * tests/data/test-diff-suppr/test42-negative-suppr-type-report-1.txt:
2417 Refresh.
2418 * tests/data/test-diff-suppr/test46-PR25128-report-1.txt: Refresh.
2419 * tests/data/test-diff-suppr/test46-PR25128-report-2.txt: Refresh.
2420 * tests/data/test-diff-suppr/test47-non-reachable-types-report-1.txt:
2421 Refresh.
2422 * tests/data/test-diff-suppr/test47-non-reachable-types-report-2.txt:
2423 Refresh.
2424 * tests/data/test-diff-suppr/test47-non-reachable-types-report-4.txt:
2425 Refresh.
2426 * tests/data/test-diff-suppr/test47-non-reachable-types-report-7.txt:
2427 Refresh.
2428 * tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt: Refresh.
2429 * tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt: Refresh.
2430 * tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt: Refresh.
2431 * tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt: Refresh.
2432 * tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt: Refresh.
2433 * tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt: Refresh.
2434 * tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt: Refresh.
2435 * tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt: Refresh.
2436 * tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt: Refresh.
2437 * tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt: Refresh.
2438 * tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt: Refresh.
2439 * tests/data/test-diff-suppr/test6-fn-suppr-report-4.txt: Refresh.
2440 * tests/data/test-diff-suppr/test7-var-suppr-report-0.txt: Refresh.
2441 * tests/data/test-diff-suppr/test7-var-suppr-report-1.txt: Refresh.
2442 * tests/data/test-diff-suppr/test7-var-suppr-report-2.txt: Refresh.
2443 * tests/data/test-diff-suppr/test7-var-suppr-report-3.txt: Refresh.
2444 * tests/data/test-diff-suppr/test7-var-suppr-report-4.txt: Refresh.
2445 * tests/data/test-diff-suppr/test7-var-suppr-report-7.txt: Refresh.
2446 * tests/data/test-diff-suppr/test7-var-suppr-report-8.txt: Refresh.
2447 * tests/data/test-diff-suppr/test8-redundant-fn-report-0.txt: Refresh.
2448 * tests/data/test-diff-suppr/test8-redundant-fn-report-1.txt: Refresh.
2449
24502021-02-08 Dodji Seketeli <dodji@redhat.com>
2451
2452 dwarf-reader: Use DW_FORM_line_strp only if it's present
2453 * configure.ac: Define if HAS_DW_FORM_line_strp if the
2454 DW_FORM_line_strp enumerator is present.
2455 * src/abg-dwarf-reader.cc (form_is_DW_FORM_line_strp): Define new
2456 static function.
2457 (compare_dies_string_attribute_value): Use it.
2458
24592021-02-04 Dodji Seketeli <dodji@redhat.com>
2460
2461 Bug 27267 - Better support for opaque enum types
2462 * src/abg-dwarf-reader.cc (get_opaque_version_of_type): Do not
2463 quit early for enum types, because the code that comes a bit later
2464 can handle enums. Add the newly built enum to its scope for
2465 proper life cycle management.
2466 * tests/data/test-diff-suppr/PR27267/include-dir-v{0,1}/include.h: New
2467 include files for the input test library.
2468 * tests/data/test-diff-suppr/PR27267/libtestpr27267-v{0,1}.so: New
2469 input test library.
2470 * tests/data/test-diff-suppr/PR27267/report-1.txt: New reference
2471 output for the comparison.
2472 * tests/data/test-diff-suppr/PR27267/v{0,1}.c: Source code for the
2473 new input test library.
2474 * tests/data/Makefile.am: Add the new test material above to
2475 source distribution.
2476 * tests/test-diff-suppr.cc (in_out_specs): Add the new test input
2477 above to the test harness.
2478
24792021-02-03 Dodji Seketeli <dodji@redhat.com>
2480
2481 Bug 27331 - Data member offset change not considered local
2482 * src/abg-ir.cc (equals): In the overload of class_or_union, when
2483 a data member changes without having its type change, then
2484 consider the data change as being local.
2485 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt:
2486 Adjust.
2487 * tests/data/test-diff-filter/test-PR27331-report-0.txt: New
2488 reference output.
2489 * tests/data/test-diff-filter/test-PR27331-v{0,1}.c: New test
2490 source files.
2491 * tests/data/test-diff-filter/test-PR27331-v{0,1}.o: New test
2492 binary inputs.
2493 * tests/data/Makefile.am: Add these new test material to source
2494 distribution.
2495 * tests/test-diff-filter.cc (in_out_specs): Add the tests above to
2496 the harness.
2497
24982021-02-02 Dodji Seketeli <dodji@redhat.com>
2499
2500 Bug 27165 - Better support multi-language binaries
2501 * src/abg-dwarf-reader.cc (get_scope_for_die): Get the language of
2502 the DIE from the compilation unit of the DIE itself.
2503 * tests/data/test-types-stability/PR27165-libzmq.so.5.2.3: New
2504 test input.
2505 * tests/data/test-types-stability/PR27165-libzmq.so.5.2.3.debug:
2506 Debug information for the new test input.
2507 * tests/data/Makefile.am: Add the test inputs above to the source
2508 distribution.
2509 * tests/test-types-stability.cc (elf_paths): Add the new test
2510 inputs to this test harness.
2511
25122020-10-22 Dodji Seketeli <dodji@redhat.com>
2513
2514 Bump ABIXML format version to 2.0
2515 * include/abg-corpus.h (corpus::init_format_version): Declare new
2516 private method.
2517 (corpus::set_environment): Make this non-const.
2518 (corpus::{get,set}_format_{major,minor}_version_number): Declare
2519 new accessors.
2520 * src/abg-corpus.cc (corpus::init_format_version): Define new
2521 method.
2522 (corpus::set_environment): By default, initialize the format
2523 version number of the corpus to the one supported by Libabigail.
2524 (corpus::{get,set}_format_{major,minor}_version_number): Define
2525 new accessors.
2526 * include/abg-ir.h: Include abg-config.h to use the
2527 abigail::config.
2528 (environment::get_config): Declare new accessor.
2529 * src/abg-ir.cc (environment::priv::config_): Add new data member.
2530 (environment::get_config): Define new accessor.
2531 * src/abg-config.cc (config::config): Bump the format
2532 version number to "2.0".
2533 * src/abg-corpus-priv.h
2534 (corpus::priv::format_{major,minor}_version_number_): Add new data members.
2535 * src/abg-reader.cc (handle_version_attribute): Define new static
2536 function.
2537 (read_corpus_from_input, read_corpus_group_from_input): Use it to
2538 read the value of the "version" attribute and set the format
2539 version number of the corpus and corpus group accordingly.
2540 * src/abg-writer.cc (write_context::m_config): Remove the config
2541 object because we can now get it from the environment.
2542 (write_context::get_config): Get the config object from the
2543 environment.
2544 (write_translation_unit): Do not emit the version attribute on the
2545 translation unit element anymore.
2546 (write_version_info): Define static function.
2547 (write_corpus, write_corpus_group): Use it to emit version
2548 attribute on both the corpus and corpus group elements.
2549 * tools/abidiff.cc
2550 (emit_incomptatible_format_version_error_message): Define new
2551 static function.
2552 (main): Ensure that corpora and corpus groups being compared have
2553 the same major version number.
2554 * tests/update-test-output.py: Adjust syntax for python3.
2555 * tests/data/test-annotate/libtest23.so.abi: Adjust.
2556 * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
2557 * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
2558 * tests/data/test-annotate/test-anonymous-members-0.o.abi:
2559 Likewise.
2560 * tests/data/test-annotate/test0.abi: Likewise.
2561 * tests/data/test-annotate/test1.abi: Likewise.
2562 * tests/data/test-annotate/test13-pr18894.so.abi: Likewise.
2563 * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
2564 * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
2565 * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
2566 * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
2567 Likewise.
2568 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
2569 Likewise.
2570 * tests/data/test-annotate/test2.so.abi: Likewise.
2571 * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
2572 Likewise.
2573 * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
2574 * tests/data/test-annotate/test3.so.abi: Likewise.
2575 * tests/data/test-annotate/test4.so.abi: Likewise.
2576 * tests/data/test-annotate/test5.o.abi: Likewise.
2577 * tests/data/test-annotate/test6.so.abi: Likewise.
2578 * tests/data/test-annotate/test7.so.abi: Likewise.
2579 * tests/data/test-annotate/test8-qualified-this-pointer.so.abi:
2580 Likewise.
2581 * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi:
2582 Likewise.
2583 * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt:
2584 Likewise.
2585 * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi:
2586 Likewise.
2587 * tests/data/test-diff-suppr/libtest48-soname-abixml-v0.so.abi:
2588 Likewise.
2589 * tests/data/test-diff-suppr/libtest48-soname-abixml-v1.so.abi:
2590 Likewise.
2591 * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi:
2592 Likewise.
2593 * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
2594 * tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi:
2595 Likewise.
2596 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise.
2597 * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
2598 Likewise.
2599 * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise.
2600 * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
2601 * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi:
2602 Likewise.
2603 * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
2604 * tests/data/test-read-dwarf/test-PR26568-1.o.abi: Likewise.
2605 * tests/data/test-read-dwarf/test-PR26568-2.o.abi: Likewise.
2606 * tests/data/test-read-dwarf/test0.abi: Likewise.
2607 * tests/data/test-read-dwarf/test0.hash.abi: Likewise.
2608 * tests/data/test-read-dwarf/test1.abi: Likewise.
2609 * tests/data/test-read-dwarf/test1.hash.abi: Likewise.
2610 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
2611 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
2612 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
2613 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise.
2614 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
2615 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
2616 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
2617 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
2618 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
2619 Likewise.
2620 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
2621 Likewise.
2622 * tests/data/test-read-dwarf/test2.so.abi: Likewise.
2623 * tests/data/test-read-dwarf/test2.so.hash.abi: Likewise.
2624 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
2625 Likewise.
2626 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
2627 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
2628 Likewise.
2629 * tests/data/test-read-dwarf/test3.so.abi: Likewise.
2630 * tests/data/test-read-dwarf/test3.so.hash.abi: Likewise.
2631 * tests/data/test-read-dwarf/test4.so.abi: Likewise.
2632 * tests/data/test-read-dwarf/test4.so.hash.abi: Likewise.
2633 * tests/data/test-read-dwarf/test5.o.abi: Likewise.
2634 * tests/data/test-read-dwarf/test5.o.hash.abi: Likewise.
2635 * tests/data/test-read-dwarf/test6.so.abi: Likewise.
2636 * tests/data/test-read-dwarf/test6.so.hash.abi: Likewise.
2637 * tests/data/test-read-dwarf/test7.so.abi: Likewise.
2638 * tests/data/test-read-dwarf/test7.so.hash.abi: Likewise.
2639 * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi:
2640 Likewise.
2641 * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi:
2642 Likewise.
2643 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
2644 * tests/data/test-read-write/test0.xml: Likewise.
2645 * tests/data/test-read-write/test1.xml: Likewise.
2646 * tests/data/test-read-write/test10.xml: Likewise.
2647 * tests/data/test-read-write/test11.xml: Likewise.
2648 * tests/data/test-read-write/test12.xml: Likewise.
2649 * tests/data/test-read-write/test13.xml: Likewise.
2650 * tests/data/test-read-write/test14.xml: Likewise.
2651 * tests/data/test-read-write/test15.xml: Likewise.
2652 * tests/data/test-read-write/test16.xml: Likewise.
2653 * tests/data/test-read-write/test17.xml: Likewise.
2654 * tests/data/test-read-write/test18.xml: Likewise.
2655 * tests/data/test-read-write/test19.xml: Likewise.
2656 * tests/data/test-read-write/test2.xml: Likewise.
2657 * tests/data/test-read-write/test20.xml: Likewise.
2658 * tests/data/test-read-write/test21.xml: Likewise.
2659 * tests/data/test-read-write/test22.xml: Likewise.
2660 * tests/data/test-read-write/test23.xml: Likewise.
2661 * tests/data/test-read-write/test24.xml: Likewise.
2662 * tests/data/test-read-write/test25.xml: Likewise.
2663 * tests/data/test-read-write/test26.xml: Likewise.
2664 * tests/data/test-read-write/test27.xml: Likewise.
2665 * tests/data/test-read-write/test28-without-std-fns-ref.xml:
2666 Likewise.
2667 * tests/data/test-read-write/test28-without-std-vars-ref.xml:
2668 Likewise.
2669 * tests/data/test-read-write/test3.xml: Likewise.
2670 * tests/data/test-read-write/test4.xml: Likewise.
2671 * tests/data/test-read-write/test5.xml: Likewise.
2672 * tests/data/test-read-write/test6.xml: Likewise.
2673 * tests/data/test-read-write/test7.xml: Likewise.
2674 * tests/data/test-read-write/test8.xml: Likewise.
2675 * tests/data/test-read-write/test9.xml: Likewise.
2676
26772020-10-20 Dodji Seketeli <dodji@redhat.com>
2678
2679 Bug 26684 - Support DW_AT_data_bit_offset attribute
2680 * src/abg-dwarf-reader.cc (read_and_convert_DW_at_bit_offset):
2681 Define new static function.
2682 (die_member_offset): Primarily use DW_AT_data_bit_offset if its
2683 present. Otherwise, look for DW_AT_bit_offset. Use the new
2684 read_and_convert_DW_at_bit_offset function to properly interpret
2685 DW_AT_bit_offset if its present. Update comment.
2686 * tests/data/test-diff-filter/test-PR26684-dwarf{4,5}.o: New
2687 binary test inputs.
2688 * tests/data/test-diff-filter/test-PR26684.c: Source code of the
2689 new binary test inputs above.
2690 * tests/data/test-diff-filter/test-PR26684-report-0.txt: New
2691 reference test output.
2692 * tests/data/Makefile.am: Add the new test material above to
2693 source distribution.
2694 * tests/test-diff-filter.cc (in_out_specs): Add the test inputs
2695 above to this test harness.
2696 * tests/data/test-annotate/test13-pr18894.so.abi: Adjust.
2697 * tests/data/test-annotate/test15-pr18892.so.abi: Adjust.
2698 * tests/data/test-annotate/test17-pr19027.so.abi: Adjust.
2699 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
2700 Adjust.
2701 * tests/data/test-annotate/test21-pr19092.so.abi: Adjust.
2702 * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi:
2703 Adjust.
2704 * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt:
2705 Adjust.
2706 * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Adjust.
2707 * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
2708 Adjust.
2709 * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust.
2710 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust.
2711 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust.
2712 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust.
2713 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
2714 Adjust.
2715 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust.
2716 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
2717 Adjust.
2718
27192021-01-27 Dodji Seketeli <dodji@redhat.com>
2720
2721 Bug 27255 - fedabipkgdiff fails on nfs-utils on Fedora 33
2722 * tools/fedabipkgdiff (RPMCollection::get_sibling_debuginfo):
2723 Update comment.
2724 (RPMCollection::get_matching_debuginfo): Define new function.
2725 (generate_comparison_halves): Use
2726 RPMCollection::get_matching_debuginfo instead of
2727 RPMCollection::get_sibling_debuginfo.
2728
27292021-01-26 Dodji Seketeli <dodji@redhat.com>
2730
2731 dwarf-reader: Support fast DW_FORM_line_strp string comparison
2732 * src/abg-dwarf-reader.cc (compare_dies_string_attribute_value):
2733 Support DW_FORM_line_strp.
2734 * tests/data/test-diff-pkg/sshpass-1.07-1.fc34.x86_64-self-check-report-0.txt:
2735 New reference test output.
2736 * tests/data/test-diff-pkg/sshpass-1.07-1.fc34.x86_64.rpm: New
2737 test input.
2738 * tests/data/test-diff-pkg/sshpass-debuginfo-1.07-1.fc34.x86_64.rpm:
2739 Likewise.
2740 * tests/data/Makefile.am: Add the new testing material above to
2741 source distribution.
2742 * tests/test-diff-pkg.cc (in_out_specs): Add the test input above
2743 to this harness.
2744
27452021-01-26 Dodji Seketeli <dodji@redhat.com>
2746
2747 Bug 27232 - fedabipkgdiff fails on gawk from Fedora 33
2748 * tools/abipkgdiff.cc (options::pkg{1,2}): Add new data members to
2749 store the packages to compare and have them available for the
2750 various functions that may need them down the road.
2751 (package::create_abi_file_path): Add new function.
2752 (compare_to_self): Use the new package::create_abi_file_path to
2753 create the path to the ABI file in a directory not owned by the
2754 package. That should increase our chances of having the rights to
2755 write that one. Make sure to emit error message when the
2756 comparison against self fails.
2757 ({compare_task, self_compare_task}::perform): During the process
2758 of comparison if an internal error happens, report it. Cleanup
2759 the existing reporting a little bit.
2760 (pkg_extraction_task::perform): Fix comment.
2761 * tests/data/test-diff-pkg/libxfce4ui-devel-4.12.1-8.fc27.ppc64-self-report-0.txt:
2762 Adjust.
2763
27642021-01-26 Matthias Maennich <maennich@google.com>
2765
2766 abipkgdiff: Address operator precedence warning
2767 * tools/abipkgdiff.cc (compare_to_self): address clang warning.
2768
27692021-01-26 Dodji Seketeli <dodji@redhat.com>
2770
2771 Bug 27233 - fedabipkgdiff fails on package gnupg2 from Fedora 33
2772 * src/abg-dwarf-reader.cc
2773 (read_context::canonicalize_types_scheduled): Don't forget to
2774 canonicalize types stored in extra_types_to_canonicalize_.
2775 * src/abg-ir.cc (type_base::get_canonical_type_for): Add better
2776 comment.
2777 (hash_as_canonical_type_or_constant): Remove crutch that is
2778 useless now that we canonicalize almost all types in the system.
2779
27802021-01-25 Dodji Seketeli <dodji@redhat.com>
2781
2782 Bug 27236 - Pointer comparison wrongly fails because of typedef change
2783 * src/abg-ir.cc (equals): In the overloads for pointer_type_def,
2784 reference_type_def and array_type_def, compare the pointed-to-type
2785 modulo typedefs.
2786 * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Adjust.
2787 * 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:
2788 Adjust.
2789 * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt:
2790 Adjust.
2791
27922021-01-22 Dodji Seketeli <dodji@redhat.com>
2793
2794 Ignore duplicated functions and those not associated with ELF symbols
2795 * include/abg-ir.h (class_or_union::string_mem_fn_sptr_map_type):
2796 Add a typedef for unordered_map<string, method_decl_sptr>.
2797 (class_or_union::find_member_function_sptr): Declare new function.
2798 * src/abg-ir.cc (class_or_union::priv::mem_fns_map_): Change the
2799 type of this to string_mem_fn_sptr_map_type, so that shared
2800 pointers to functions can be stored in the map, instead of bare
2801 pointers to functions. This is useful to implement
2802 class_or_union::find_member_function_sptr which returns a shared
2803 pointer to function.
2804 (class_or_union::find_member_function_sptr): Define new function.
2805 (class_or_union::find_member_function): Adjust.
2806 (method_decl::set_linkage_name): Use a non-deleting shared pointer
2807 to store the current instance of member function into
2808 class_or_union::priv::mem_fns_map_.
2809 (hash_as_canonical_type_or_constant): As we are seeing more
2810 function types, it appears that some function types are not
2811 canonicalized. I am not sure why exactly, but let's loosen the
2812 assert here for now, I'll chase the root of this later.
2813 * src/abg-dwarf-reader.cc (finish_member_function_reading):
2814 Improve detection of member function 'static-ness' by handling
2815 cases where a this pointer can be const. Also support
2816 DW_AT_object_pointer when it's present. This fixes the occurrence
2817 of spurious change reports about loss of 'static-ness' of member
2818 functions.
2819 (potential_member_fn_should_be_dropped): Define new static
2820 function and ...
2821 (build_ir_node_from_die): ... use it here. When a function DIE
2822 has the same linkage name as an existing function IR, do not
2823 create a new IR for it. Rather, re-use the existing one to
2824 complete it with the properties found on the function DIE. If a
2825 new function doesn't seem to have an associated ELF symbol and is
2826 not meant to be a virtual member function then drop its IR on the
2827 floor as well.
2828 * tests/data/test-annotate/libtest23.so.abi: Adjust.
2829 * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
2830 * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
2831 * tests/data/test-annotate/test0.abi: Likewise.
2832 * tests/data/test-annotate/test1.abi: Likewise.
2833 * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
2834 * tests/data/test-annotate/test15-pr18892.so.abi: Likewise.
2835 * tests/data/test-annotate/test17-pr19027.so.abi: Likewise.
2836 * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
2837 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
2838 * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
2839 * tests/data/test-annotate/test21-pr19092.so.abi: Likewise.
2840 * tests/data/test-annotate/test6.so.abi: Likewise.
2841 * tests/data/test-annotate/test8-qualified-this-pointer.so.abi: Likewise.
2842 * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: Likewise.
2843 * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: Likewise.
2844 * tests/data/test-diff-dwarf/test0-report.txt: Likewise.
2845 * tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: Likewise.
2846 * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise.
2847 * tests/data/test-diff-filter/test0-report.txt: Likewise.
2848 * tests/data/test-diff-filter/test01-report.txt: Likewise.
2849 * tests/data/test-diff-filter/test10-report.txt: Likewise.
2850 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise.
2851 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise.
2852 * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise.
2853 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise.
2854 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise.
2855 * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise.
2856 * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt: Likewise.
2857 * tests/data/test-diff-filter/test41-report-0.txt: Likewise.
2858 * tests/data/test-diff-filter/test9-report.txt: Likewise.
2859 * tests/data/test-diff-pkg/libsigc++-2.0-0c2a_2.4.0-1_amd64--libsigc++-2.0-0v5_2.4.1-1ubuntu2_amd64-report-0.txt: Likewise.
2860 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: Likewise.
2861 * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: Likewise.
2862 * tests/data/test-diff-suppr/test24-soname-report-1.txt: Likewise.
2863 * tests/data/test-diff-suppr/test24-soname-report-10.txt: Likewise.
2864 * tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise.
2865 * tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise.
2866 * tests/data/test-diff-suppr/test24-soname-report-16.txt: Likewise.
2867 * tests/data/test-diff-suppr/test24-soname-report-4.txt: Likewise.
2868 * tests/data/test-diff-suppr/test31-report-1.txt: Likewise.
2869 * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise.
2870 * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise.
2871 * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
2872 * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise.
2873 * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
2874 * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise.
2875 * tests/data/test-read-dwarf/test0.abi: Likewise.
2876 * tests/data/test-read-dwarf/test0.hash.abi: Likewise.
2877 * tests/data/test-read-dwarf/test1.abi: Likewise.
2878 * tests/data/test-read-dwarf/test1.hash.abi: Likewise.
2879 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
2880 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
2881 * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise.
2882 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
2883 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
2884 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
2885 * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise.
2886 * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
2887 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
2888 * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise.
2889 * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise.
2890 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
2891 * tests/data/test-read-dwarf/test6.so.abi: Likewise.
2892 * tests/data/test-read-dwarf/test6.so.hash.abi: Likewise.
2893 * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: Likewise.
2894 * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi: Likewise.
2895 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
2896
28972021-01-20 Dodji Seketeli <dodji@redhat.com>
2898
2899 Bug 27204 - potential loss of some aliased ELF function symbols
2900 * src/abg-ir.cc (function_decl::get_id): If the elf symbol has
2901 aliases, make the function name be part of the ID so that this ID
2902 differs from the one of the other functions that share a symbol
2903 alias with this one.
2904 * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust.
2905 * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise.
2906 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise.
2907 * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise.
2908 * tests/data/test-diff-filter/test41-report-0.txt: Likewise.
2909 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
2910 * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise.
2911 * tests/data/test-diff-pkg/glibc-2.32-3.fc33.aarch64-self-check-report-0.txt:
2912 New test reference output.
2913 * tests/data/test-diff-pkg/glibc-2.32-3.fc33.aarch64.rpm: New test
2914 input RPM.
2915 * tests/data/test-diff-pkg/glibc-debuginfo-2.32-3.fc33.aarch64.rpm:
2916 Likewise.
2917 * tests/data/Makefile.am: Add the new test material to source
2918 distribution.
2919 * tests/test-diff-pkg.cc (in_out_specs): Add the new test input
2920 RPMs to this test harness.
2921
29222020-12-15 Matthias Maennich <maennich@google.com>
2923
2924 abg-ir: Optimize calls to std::string::find() for a single char.
2925 * src/abg-ir.cc (elf_symbol::get_name_and_version_from_id):
2926 use character literal overload for single character string::find.
2927 (parse_integral_type): Likewise.
2928 Suggested-by: Chris Kennelly <ckennelly@google.com>
2929
29302021-01-15 Dodji Seketeli <dodji@redhat.com>
2931
2932 Bug 26992 - Try harder to resolve declaration-only classes
2933 * src/abg-dwarf-reader.cc
2934 (read_context::compare_before_canonicalisation): Define new member
2935 function.
2936 (read_context::resolve_declaration_only_classes): When there are
2937 more than one definition that can resolve a given declaration, if
2938 all those definitions are equal, then resolve the declaration to
2939 those definitions.
2940 (read_context::resolve_declaration_only_enums): Add a comment to
2941 update similarly update this function (or do away with it
2942 completely) later.
2943 * tests/data/test-annotate/test15-pr18892.so.abi: Adjust.
2944 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
2945 * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise.
2946 * tests/data/test-diff-pkg/cogl-1.22.8-2.fc33.x86_64.rpm: Add new
2947 test input.
2948 * tests/data/test-diff-pkg/cogl-debuginfo-1.22.8-2.fc33.x86_64.rpm:
2949 Likewise.
2950 * tests/data/test-diff-pkg/cogl-1.22.8-2.fc33.x86_64.self-check-report-0.txt:
2951 Likewise.
2952 * tests/test-diff-pkg.cc (in_out_specs): Add the new test inputs
2953 to the test harness.
2954 * tests/data/Makefile.am: Add the new test input files to source
2955 distribution.
2956
29572021-01-11 Dodji Seketeli <dodji@redhat.com>
2958
2959 mainpage: Update web page for 1.8 release
2960 * doc/website/mainpage.txt: Update web page for 1.8 release
2961
29622020-12-14 Matthias Maennich <maennich@google.com>
2963
2964 Update catch2 testing framework: v1.12.2 -> v2.13.3
2965 * tests/lib/catch.hpp: update to v2.13.3
2966 * tests/test-symtab.cc (TEST_CASE("Symtab::SimpleSymtabs")): Use
2967 the corpus variable to avoid unused variable warnings.
2968
29692020-12-14 Matthias Maennich <maennich@google.com>
2970
2971 clang-format: define C++ standard to improve formatting
2972 * .clang-format: Set C++11 standard for formatting.
2973
29742020-12-11 Giuliano Procida <gprocida@google.com>
2975
2976 Refresh ABI cross check test files
2977 * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi:
2978 Refreshed ABI.
2979 * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt:
2980 File now empty.
2981
29822020-12-14 Matthias Maennich <maennich@google.com>
2983
2984 Drop unneccessary includes of abg-cxx-compat.h
2985 * include/abg-comparison.h: Remove include of abg-cxx-compat.h.
2986 * include/abg-diff-utils.h: Likewise.
2987 * include/abg-fwd.h: Likewise.
2988 * include/abg-ini.h: Likewise.
2989 * include/abg-interned-str.h: Likewise.
2990 * include/abg-ir.h: Likewise.
2991 * include/abg-libxml-utils.h: Likewise.
2992 * include/abg-libzip-utils.h: Likewise.
2993 * include/abg-regex.h: Likewise.
2994 * include/abg-reporter.h: Likewise.
2995 * include/abg-sptr-utils.h: Likewise.
2996 * include/abg-suppression.h: Likewise.
2997 * include/abg-tools-utils.h: Likewise.
2998 * include/abg-workers.h: Likewise.
2999 * src/abg-comp-filter.cc: Likewise.
3000 * src/abg-comparison-priv.h: Likewise.
3001 * src/abg-corpus.cc: Likewise.
3002 * src/abg-dwarf-reader.cc: Likewise.
3003 * src/abg-hash.cc: Likewise.
3004 * src/abg-ir.cc: Likewise.
3005 * src/abg-reader.cc: Likewise.
3006 * src/abg-suppression.cc: Likewise.
3007 * src/abg-tools-utils.cc: Likewise.
3008 * src/abg-writer.cc: Likewise.
3009 * tests/test-diff-suppr.cc: Likewise.
3010 * tests/test-read-write.cc: Likewise.
3011 * tools/abicompat.cc: Likewise.
3012 * tools/abidw.cc: Likewise.
3013 * tools/abilint.cc: Likewise.
3014 * tools/abipkgdiff.cc: Likewise.
3015
30162020-12-14 Matthias Maennich <maennich@google.com>
3017
3018 Remove <unordered_set> usages from abg_compat
3019 * include/abg-cxx-compat.h: Drop compatibility for <unordered_set>.
3020 * include/abg-comparison.h: migrate abg_compat use to std.
3021 * include/abg-interned-str.h: Likewise.
3022 * include/abg-suppression.h: Likewise.
3023 * src/abg-comparison-priv.h: Likewise.
3024 * src/abg-dwarf-reader.cc: Likewise.
3025 * tests/test-diff-suppr.cc: Likewise.
3026 * tools/abipkgdiff.cc: Likewise.
3027
30282020-12-14 Matthias Maennich <maennich@google.com>
3029
3030 Remove <unordered_map> usages from abg_compat
3031 * include/abg-cxx-compat.h: Drop compatibility layer for <unordered_map>.
3032 * include/abg-comparison.h: migrate abg_compat use to std.
3033 * include/abg-cxx-compat.h: Likewise.
3034 * include/abg-fwd.h: Likewise.
3035 * include/abg-ir.h: Likewise.
3036 * src/abg-corpus.cc: Likewise.
3037 * src/abg-dwarf-reader.cc: Likewise.
3038 * src/abg-ir.cc: Likewise.
3039 * src/abg-reader.cc: Likewise.
3040 * src/abg-writer.cc: Likewise.
3041
30422020-12-14 Matthias Maennich <maennich@google.com>
3043
3044 Remove <memory> usages from abg_compat
3045 * include/abg-cxx-compat.h: Drop compatibility layer for <memory>.
3046 * include/abg-diff-utils.h: migrate abg_compat use to std.
3047 * include/abg-fwd.h: Likewise.
3048 * include/abg-ini.h: Likewise.
3049 * include/abg-interned-str.h: Likewise.
3050 * include/abg-libxml-utils.h: Likewise.
3051 * include/abg-libzip-utils.h: Likewise.
3052 * include/abg-regex.h: Likewise.
3053 * include/abg-reporter.h: Likewise.
3054 * include/abg-sptr-utils.h: Likewise.
3055 * include/abg-tools-utils.h: Likewise.
3056 * include/abg-workers.h: Likewise.
3057 * src/abg-comp-filter.cc: Likewise.
3058 * src/abg-comparison-priv.h: Likewise.
3059 * src/abg-dwarf-reader.cc: Likewise.
3060 * src/abg-ir.cc: Likewise.
3061 * src/abg-reader.cc: Likewise.
3062 * src/abg-suppression.cc: Likewise.
3063 * src/abg-tools-utils.cc: Likewise.
3064 * src/abg-writer.cc: Likewise.
3065 * tests/test-diff-filter.cc: Likewise.
3066 * tests/test-diff-pkg.cc: Likewise.
3067 * tests/test-diff-suppr.cc: Likewise.
3068 * tests/test-read-dwarf.cc: Likewise.
3069 * tests/test-read-write.cc: Likewise.
3070 * tests/test-types-stability.cc: Likewise.
3071 * tests/test-write-read-archive.cc: Likewise.
3072 * tools/abicompat.cc: Likewise.
3073 * tools/abidiff.cc: Likewise.
3074 * tools/abidw.cc: Likewise.
3075 * tools/abilint.cc: Likewise.
3076 * tools/abipkgdiff.cc: Likewise.
3077
30782020-12-14 Matthias Maennich <maennich@google.com>
3079
3080 Remove <functional> usages from abg_compat
3081 * include/abg-cxx-compat.h: Drop compatibility layer for <functional>.
3082 * include/abg-interned-str.h: migrate abg_compat use to std.
3083 * include/abg-ir.h: Likewise.
3084 * src/abg-hash.cc: Likewise.
3085 * src/abg-ir.cc: Likewise.
3086
30872020-12-14 Matthias Maennich <maennich@google.com>
3088
3089 Drop C++03 compatibility layer
3090 * include/abg-cxx-compat.h: remove compatibility with pre C++11.
3091 * include/abg-ir.h: Remove mention of std::tr1 from comments.
3092 * include/abg-sptr-utils.h: Likewise.
3093
30942020-12-04 Giuliano Procida <gprocida@google.com>
3095
3096 Add qualifier / typedef / array / pointer test
3097 * tests/data/Makefile.am: Add new test files
3098 * tests/data/test-abidiff-exit/qualifier-typedef-array-v0.c:
3099 New test file.
3100 * tests/data/test-abidiff-exit/qualifier-typedef-array-v0.o:
3101 New test file.
3102 * tests/data/test-abidiff-exit/qualifier-typedef-array-v1.c:
3103 New test file.
3104 * tests/data/test-abidiff-exit/qualifier-typedef-array-v1.o:
3105 New test file.
3106 * tests/data/test-abidiff-exit/qualifier-typedef-array-report-0.txt:
3107 Plain diff report.
3108 * tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt:
3109 Harmless diff report.
3110 * tests/data/test-abidiff-exit/qualifier-typedef-array-report-2.txt:
3111 Leaf changes report.
3112 * tests/data/test-abidiff-exit/qualifier-typedef-array-report-3.txt:
3113 Harmless leaf changes report.
3114 * tests/test-abidiff-exit.cc: Run new test.
3115
31162020-12-03 Giuliano Procida <gprocida@google.com>
3117
3118 ir: Arrays are indirect types for type structure similarity purposes
3119 * src/abg-ir.cc (types_have_similar_structure): When examining
3120 array types, always treat element types as being underlying types
3121 of an indirect type.
3122 * tests/data/Makefile.am: Add new test case files.
3123 * tests/data/test-abidiff-exit/test-non-leaf-array-report.txt:
3124 New test case showing correct --leaf-changes-only reporting.
3125 * tests/data/test-abidiff-exit/test-non-leaf-array-v0.c:
3126 Likewise.
3127 * tests/data/test-abidiff-exit/test-non-leaf-array-v0.o:
3128 Likewise.
3129 * tests/data/test-abidiff-exit/test-non-leaf-array-v1.c:
3130 Likewise.
3131 * tests/data/test-abidiff-exit/test-non-leaf-array-v1.o:
3132 Likewise.
3133 * tests/test-abidiff-exit.cc: Run new test case.
3134
31352020-12-04 Dodji Seketeli <dodji@redhat.com>
3136
3137 ir: Add better comments to types_have_similar_structure
3138 * src/abg-ir.cc (types_have_similar_structure): Arrays are also
3139 indirect types, just like pointers and references, for the purpose
3140 of the concept of "type similarity". Add that to the introductory
3141 comment of the function. Add some more misc comments throughout
3142 the code base.
3143
31442020-12-03 Giuliano Procida <gprocida@google.com>
3145
3146 abidiff: support --dump-diff-tree with --leaf-changes-only
3147 * src/abg-leaf-reporter.cc (leaf_reporter::report): In the
3148 corpus_diff override, conclude by calling
3149 maybe_dump_diff_tree.
3150
31512020-12-03 Dodji Seketeli <dodji@redhat.com>
3152
3153 Use C++11 for the code base
3154 * CONTRIBUTING: Enact use of c++11. Also, we favor those who
3155 read/debug/maintain the code as opposed to those who write it ;-)
3156 * configure.ac: Switch to c++11 unconditionally.
3157 * src/Makefile.am: Adjust.
3158 * tests/Makefile.am: Adjust.
3159
31602020-12-03 Dodji Seketeli <dodji@redhat.com>
3161
3162 CONTRIBUTING: Update instructions about regression tests
3163 * CONTRIBUTING: Update instructions about how to launch regression
3164 tests.
3165
31662020-12-02 Dodji Seketeli <dodji@redhat.com>
3167
3168 Teach Automake that COPYING* files are gone from sources
3169 * Makefile.am: Teach Automake that COPYING* files are gone and
3170 that LICENSE.txt and license-change-2020.txt were added.
3171
31722020-06-09 Dodji Seketeli <dodji@redhat.com>
3173
3174 Add a license-change-2020.txt file
3175 * license-change-2020.txt: New file.
3176
31772020-06-09 Dodji Seketeli <dodji@redhat.com>
3178
3179 Delete COPYING* files
3180 * COPYING: Delete.
3181 * COPYING-GPLV3: Likewise.
3182 * COPYING-LGPLV2: Likewise.
3183 * COPYING-LGPLV3: Likewise.
3184
31852020-06-09 Dodji Seketeli <dodji@redhat.com>
3186
3187 Add the LICENSE.txt file
3188 * LICENSE.txt: New file coming from
3189 http://llvm.org/foundation/relicensing/LICENSE.txt.
3190
31912020-05-29 Dodji Seketeli <dodji@redhat.com>
3192
3193 Re-license the project to Apache v2 With LLVM Exception
3194 * abigail.m4: Change the SPDX identifier from "GPL-3.0-or-later
3195 WITH GCC-exception-3.1" to "Apache-2.0 WITH LLVM-exception"
3196 * include/abg-cxx-compat.h: Change the SPDX identifier from
3197 "LGPL-2.0-or-later" to "Apache-2.0 WITH LLVM-exception".
3198 * .clang-format: Change the SPDX identifier from
3199 "LGPL-3.0-or-later" to "Apache-2.0 WITH LLVM-exception".
3200 * Makefile.am: Likewise.
3201 * bash-completion/Makefile.am: Likewise.
3202 * bash-completion/abicompat: Likewise.
3203 * bash-completion/abidiff: Likewise.
3204 * bash-completion/abidw: Likewise.
3205 * bash-completion/abilint: Likewise.
3206 * bash-completion/abinilint: Likewise.
3207 * bash-completion/abipkgdiff: Likewise.
3208 * bash-completion/abisym: Likewise.
3209 * bash-completion/fedabipkgdiff: Likewise.
3210 * configure.ac: Likewise.
3211 * default.abignore: Likewise.
3212 * doc/Makefile.am: Likewise.
3213 * doc/api/libabigail.doxy: Likewise.
3214 * doc/manuals/Makefile.am: Likewise.
3215 * doc/website/libabigail-website.doxy: Likewise.
3216 * include/Makefile.am: Likewise.
3217 * include/abg-comp-filter.h: Likewise.
3218 * include/abg-comparison.h: Likewise.
3219 * include/abg-config.h: Likewise.
3220 * include/abg-corpus.h: Likewise.
3221 * include/abg-diff-utils.h: Likewise.
3222 * include/abg-dwarf-reader.h: Likewise.
3223 * include/abg-fwd.h: Likewise.
3224 * include/abg-hash.h: Likewise.
3225 * include/abg-ini.h: Likewise.
3226 * include/abg-interned-str.h: Likewise.
3227 * include/abg-ir.h: Likewise.
3228 * include/abg-libxml-utils.h: Likewise.
3229 * include/abg-libzip-utils.h: Likewise.
3230 * include/abg-reader.h: Likewise.
3231 * include/abg-regex.h: Likewise.
3232 * include/abg-reporter.h: Likewise.
3233 * include/abg-sptr-utils.h: Likewise.
3234 * include/abg-suppression.h: Likewise.
3235 * include/abg-tools-utils.h: Likewise.
3236 * include/abg-traverse.h: Likewise.
3237 * include/abg-version.h.in: Likewise.
3238 * include/abg-viz-common.h: Likewise.
3239 * include/abg-viz-dot.h: Likewise.
3240 * include/abg-viz-svg.h: Likewise.
3241 * include/abg-workers.h: Likewise.
3242 * include/abg-writer.h: Likewise.
3243 * scripts/dot_to_png.sh: Likewise.
3244 * scripts/dot_to_svg.sh: Likewise.
3245 * scripts/make-verbose.sh: Likewise.
3246 * scripts/svg_to_plain_svg.sh: Likewise.
3247 * scripts/svg_to_png_and_pdf.sh: Likewise.
3248 * src/Makefile.am: Likewise.
3249 * src/abg-comp-filter.cc: Likewise.
3250 * src/abg-comparison-priv.h: Likewise.
3251 * src/abg-comparison.cc: Likewise.
3252 * src/abg-config.cc: Likewise.
3253 * src/abg-corpus-priv.h: Likewise.
3254 * src/abg-corpus.cc: Likewise.
3255 * src/abg-default-reporter.cc: Likewise.
3256 * src/abg-diff-utils.cc: Likewise.
3257 * src/abg-dwarf-reader.cc: Likewise.
3258 * src/abg-elf-helpers.cc: Likewise.
3259 * src/abg-elf-helpers.h: Likewise.
3260 * src/abg-hash.cc: Likewise.
3261 * src/abg-ini.cc: Likewise.
3262 * src/abg-internal.h: Likewise.
3263 * src/abg-ir-priv.h: Likewise.
3264 * src/abg-ir.cc: Likewise.
3265 * src/abg-leaf-reporter.cc: Likewise.
3266 * src/abg-libxml-utils.cc: Likewise.
3267 * src/abg-libzip-utils.cc: Likewise.
3268 * src/abg-reader.cc: Likewise.
3269 * src/abg-regex.cc: Likewise.
3270 * src/abg-reporter-priv.cc: Likewise.
3271 * src/abg-reporter-priv.h: Likewise.
3272 * src/abg-suppression-priv.h: Likewise.
3273 * src/abg-suppression.cc: Likewise.
3274 * src/abg-tools-utils.cc: Likewise.
3275 * src/abg-traverse.cc: Likewise.
3276 * src/abg-viz-common.cc: Likewise.
3277 * src/abg-viz-dot.cc: Likewise.
3278 * src/abg-viz-svg.cc: Likewise.
3279 * src/abg-workers.cc: Likewise.
3280 * src/abg-writer.cc: Likewise.
3281 * tests/Makefile.am: Likewise.
3282 * tests/data/Makefile.am: Likewise.
3283 * tests/lib/catch.cc: Likewise.
3284 * tests/mockfedabipkgdiff.in: Likewise.
3285 * tests/print-diff-tree.cc: Likewise.
3286 * tests/runtestcanonicalizetypes.sh.in: Likewise.
3287 * tests/runtestdefaultsupprs.py.in: Likewise.
3288 * tests/runtestdefaultsupprspy3.sh.in: Likewise.
3289 * tests/runtestfedabipkgdiff.py.in: Likewise.
3290 * tests/runtestfedabipkgdiffpy3.sh.in: Likewise.
3291 * tests/test-abicompat.cc: Likewise.
3292 * tests/test-abidiff-exit.cc: Likewise.
3293 * tests/test-abidiff.cc: Likewise.
3294 * tests/test-alt-dwarf-file.cc: Likewise.
3295 * tests/test-annotate.cc: Likewise.
3296 * tests/test-core-diff.cc: Likewise.
3297 * tests/test-cxx-compat.cc: Likewise.
3298 * tests/test-diff-dwarf-abixml.cc: Likewise.
3299 * tests/test-diff-dwarf.cc: Likewise.
3300 * tests/test-diff-filter.cc: Likewise.
3301 * tests/test-diff-pkg.cc: Likewise.
3302 * tests/test-diff-suppr.cc: Likewise.
3303 * tests/test-diff2.cc: Likewise.
3304 * tests/test-dot.cc: Change the SPDX identifier from
3305 "GPL-3.0-or-later WITH GCC-exception-3.1" to "Apache-2.0 WITH
3306 LLVM-exception"
3307 * tests/test-elf-helpers.cc: Change the SPDX identifier from
3308 "LGPL-3.0-or-later" to "Apache-2.0 WITH LLVM-exception"
3309 * tests/test-ini.cc: Likewise.
3310 * tests/test-ir-walker.cc: Likewise.
3311 * tests/test-kmi-whitelist.cc: Likewise.
3312 * tests/test-lookup-syms.cc: Likewise.
3313 * tests/test-read-dwarf.cc: Likewise.
3314 * tests/test-read-write.cc: Likewise.
3315 * tests/test-svg.cc: Change the SPDX identifier from
3316 "GPL-3.0-or-later WITH GCC-exception-3.1" to "Apache-2.0 WITH
3317 LLVM-exception".
3318 * tests/test-symtab.cc: Change the SPDX identifier from
3319 "LGPL-3.0-or-later" to "Apache-2.0 WITH LLVM-exception"
3320 * tests/test-tools-utils.cc: Likewise.
3321 * tests/test-types-stability.cc: Likewise.
3322 * tests/test-utils.cc: Likewise.
3323 * tests/test-utils.h: Likewise.
3324 * tests/test-write-read-archive.cc: Likewise.
3325 * tests/update-test-output.py: Likewise.
3326 * tools/Makefile.am: Likewise.
3327 * tools/abiar.cc: Likewise.
3328 * tools/abicompat.cc: Likewise.
3329 * tools/abidiff.cc: Likewise.
3330 * tools/abidw.cc: Likewise.
3331 * tools/abilint.cc: Likewise.
3332 * tools/abipkgdiff.cc: Likewise.
3333 * tools/abisym.cc: Likewise.
3334 * tools/binilint.cc: Likewise.
3335 * tools/fedabipkgdiff: Likewise.
3336 * tools/kmidiff.cc: Likewise.
3337 * update-copyright.sh: Likewise.
3338
33392020-05-29 Dodji Seketeli <dodji@redhat.com>
3340
3341 Add helper files to perform the re-licensing
3342 * relicensing-scripts/file-licenses.orig.txt: New file that
3343 contains the raw set of files with SPDX identifiers denoting
3344 LGPLv3+ files. It's the result of a simple command based on
3345 "find" and "grep".
3346 * relicensing-scripts/files-with-lgplv3.txt: New file
3347 containing the same data as the file above, but massaged to be
3348 easily useable by the script below.
3349 * relicensing-scripts/do-relicensing.sh: This is a simple command
3350 which performs the re-licensing on the files listed in the file
3351 above.
3352
33532020-05-29 Dodji Seketeli <dodji@redhat.com>
3354
3355 Add replace-spdx-license.sh script
3356 * relicensing-scripts/replace-spdx-license.sh: New script.
3357
33582020-05-27 Dodji Seketeli <dodji@redhat.com>
3359
3360 Add has-spdx-header.sh script
3361 * relicensing-scripts/has-spdx-header.sh: New script.
3362
33632020-05-29 Dodji Seketeli <dodji@redhat.com>
3364
3365 Add missing SPDX headers to source files not specifying any license
3366 * Makefile.am: Add a LGPL-3.0-or-later SPDX header prefixed
3367 with '##' so that that the header doesn't get emitted in the
3368 resulting Makefile.in file. Note that the license of Makefile.in
3369 files is "FSF All Permissible License", which virtually compatible
3370 with anything.
3371 * bash-completion/Makefile.am: Likewise.
3372 * doc/Makefile.am: Likewise
3373 * doc/manuals/Makefile.am: Likewise
3374 * include/Makefile.am: Likewise
3375 * src/Makefile.am: Likewise
3376 * tests/Makefile.am: Likewise
3377 * tests/data/Makefile.am: Likewise
3378 * tools/Makefile.am: Likewise
3379 * .clang-format: Add a LGPL-3.0-or-later SPDX header.
3380 * bash-completion/abicompat: Likewise.
3381 * bash-completion/abidiff: Likewise.
3382 * bash-completion/abidw: Likewise.
3383 * bash-completion/abilint: Likewise.
3384 * bash-completion/abinilint: Likewise.
3385 * bash-completion/abipkgdiff: Likewise.
3386 * bash-completion/abisym: Likewise.
3387 * bash-completion/fedabipkgdiff: Likewise.
3388 * configure.ac: Likewise.
3389 * default.abignore: Likewise.
3390 * doc/api/libabigail.doxy: Likewise.
3391 * doc/website/libabigail-website.doxy: Likewise.
3392 * include/abg-version.h.in: Likewise.
3393 * scripts/dot_to_png.sh: Likewise.
3394 * scripts/dot_to_svg.sh: Likewise.
3395 * scripts/make-verbose.sh: Likewise.
3396 * scripts/svg_to_plain_svg.sh: Likewise.
3397 * scripts/svg_to_png_and_pdf.sh: Likewise.
3398 * tests/runtestcanonicalizetypes.sh.in: Likewise.
3399 * tests/runtestdefaultsupprs.py.in: Likewise.
3400 * tests/runtestdefaultsupprspy3.sh.in: Likewise.
3401 * tests/runtestfedabipkgdiffpy3.sh.in: Likewise.
3402 * tests/update-test-output.py: Likewise.
3403 * update-copyright.sh: Likewise.
3404
34052020-03-07 Matthias Maennich <maennich@google.com>
3406
3407 Replace individual license references with SPDX Identifiers
3408 * abigail.m4: Replace the license header with the SPDX identifier
3409 GPL-3.0-or-later WITH GCC-exception-3.1
3410 * autoconf-archive/ax_check_python_modules.m4: Correctly set the
3411 SPDX identifier to FSFAP.
3412 * autoconf-archive/ax_compare_version.m4: Replace the license
3413 header with the SPDX identifier FSFAP.
3414 * autoconf-archive/ax_prog_python_version.m4: Likewise.
3415 header with the SPDX identifier FSFAP.
3416 * autoconf-archive/ax_valgrind_check.m4: Likewise.
3417 * gen-changelog.py: Replace the license header with the SPDX
3418 identifier LGPL-2.0-or-later.
3419 * include/abg-comp-filter.h: Replace the license header with the
3420 SPDX identifier LGPL-3.0-or-later.
3421 * include/abg-comparison.h: Likewise.
3422 * include/abg-config.h: Likewise.
3423 * include/abg-corpus.h: Likewise.
3424 * include/abg-cxx-compat.h: Replace the license header with the
3425 SPDX identifier LGPL-2.0-or-later.
3426 * include/abg-diff-utils.h: Replace the license header with the
3427 SPDX identifier LGPL-3.0-or-later
3428 * include/abg-dwarf-reader.h: Likewise.
3429 * include/abg-fwd.h: Likewise.
3430 * include/abg-hash.h: Likewise.
3431 * include/abg-ini.h: Likewise.
3432 * include/abg-interned-str.h: Likewise.
3433 * include/abg-ir.h: Likewise.
3434 * include/abg-libxml-utils.h: Likewise.
3435 * include/abg-libzip-utils.h: Likewise.
3436 * include/abg-reader.h: Likewise.
3437 * include/abg-regex.h: Likewise.
3438 * include/abg-reporter.h: Likewise.
3439 * include/abg-sptr-utils.h: Likewise.
3440 * include/abg-suppression.h: Likewise.
3441 * include/abg-tools-utils.h: Likewise.
3442 * include/abg-traverse.h: Likewise.
3443 * include/abg-viz-common.h: Likewise.
3444 * include/abg-viz-dot.h: Likewise.
3445 * include/abg-viz-svg.h: Likewise.
3446 * include/abg-workers.h: Likewise.
3447 * include/abg-writer.h: Likewise.
3448 * install-sh: Replace the license header with the SPDX identifier MIT.
3449 * ltmain.sh: Replace the license header with the SPDX identifier
3450 GPL-2.0-or-later. Note that this file has the libtool special
3451 exception which allows us to redistribute it under the general
3452 license of the project.
3453 * src/abg-comp-filter.cc: Replace the license header with the SPDX
3454 * src/abg-comparison-priv.h: Likewise.
3455 * src/abg-comparison.cc: Likewise.
3456 * src/abg-config.cc: Likewise.
3457 * src/abg-corpus-priv.h: Likewise.
3458 * src/abg-corpus.cc: Likewise.
3459 * src/abg-default-reporter.cc: Likewise.
3460 * src/abg-diff-utils.cc: Likewise.
3461 * src/abg-dwarf-reader.cc: Likewise.
3462 * src/abg-elf-helpers.cc: Likewise.
3463 * src/abg-elf-helpers.h: Likewise.
3464 * src/abg-regex.cc: Likewise.
3465 * src/abg-hash.cc: Likewise.
3466 * src/abg-ini.cc: Likewise.
3467 * src/abg-internal.h: Likewise.
3468 * src/abg-ir-priv.h: Likewise.
3469 * src/abg-ir.cc: Likewise.
3470 * src/abg-leaf-reporter.cc: Likewise.
3471 * src/abg-libxml-utils.cc: Likewise.
3472 * src/abg-libzip-utils.cc: Likewise.
3473 * src/abg-reader.cc: Likewise.
3474 * src/abg-reporter-priv.cc: Likewise.
3475 * src/abg-reporter-priv.h: Likewise.
3476 * src/abg-sptr-utils.cc: Likewise.
3477 * src/abg-suppression-priv.h: Likewise.
3478 * src/abg-suppression.cc: Likewise.
3479 * src/abg-tools-utils.cc: Likewise.
3480 * src/abg-traverse.cc: Likewise.
3481 * src/abg-viz-common.cc: Likewise.
3482 * src/abg-viz-dot.cc: Likewise.
3483 * src/abg-viz-svg.cc: Likewise.
3484 * src/abg-workers.cc: Likewise.
3485 * src/abg-writer.cc: Likewise.
3486 * tests/lib/catch.cc: Likewise.
3487 * tests/lib/catch.hpp: Add an SPDX identifier BSL-1.0.
3488 * tests/mockfedabipkgdiff.in: Replace the license header with the
3489 SPDX identifier GPL-3.0-or-later.
3490 * tests/print-diff-tree.cc: Likewise.
3491 * tests/runtestfedabipkgdiff.py.in: Replaace the license header
3492 with the SPDW identifier GPL-3.0-or-later.
3493 * tests/test-abicompat.cc: Replace the license header with the
3494 SPDX identifier LGPL-3.0-or-later.
3495 * tests/test-abidiff-exit.cc: Likewise.
3496 * tests/test-abidiff.cc: Likewise.
3497 * tests/test-alt-dwarf-file.cc: Likewise.
3498 * tests/test-annotate.cc: Likewise.
3499 * tests/test-cxx-compat.cc: Likewise.
3500 * tests/test-core-diff.cc: Likewise.
3501 * tests/test-diff-dwarf-abixml.cc: Likewise.
3502 * tests/test-diff-dwarf.cc: Likewise.
3503 * tests/test-diff-filter.cc: Likewise.
3504 * tests/test-diff-pkg.cc: Likewise.
3505 * tests/test-diff-suppr.cc: Likewise.
3506 * tests/test-diff2.cc: Likewise.
3507 * tests/test-dot.cc: Replace the license header with the
3508 SPDX identifier GPL-3.0-with-GCC-exception.
3509 * tests/test-elf-helpers.cc: Replace the license header with the
3510 SPDX identifier LGPL-3.0-or-later.
3511 * tests/test-ini.cc: Likewise.
3512 * tests/test-ir-walker.cc: Likewise.
3513 * tests/test-kmi-whitelist.cc: Likewise.
3514 * tests/test-lookup-syms.cc: Likewise.
3515 * tests/test-read-dwarf.cc: Likewise.
3516 * tests/test-read-write.cc: Likewise.
3517 * tests/test-svg.cc: Replace the license header with the SPDX
3518 identifier GPL-3.0-with-GCC-exception.
3519 * tests/test-symtab.cc: Replace the license header with the SPDX
3520 identifier LGPL-3.0-or-later.
3521 * tests/test-tools-utils.cc: Likewise.
3522 * tests/test-types-stability.cc: Likewise.
3523 * tests/test-utils.cc: Likewise.
3524 * tests/test-utils.h: Likewise.
3525 * tests/test-write-read-archive.cc: Likewise.
3526 * tools/abiar.cc: Likewise.
3527 * tools/abicompat.cc: Likewise.
3528 * tools/abidiff.cc: Likewise.
3529 * tools/abidw.cc: Likewise.
3530 * tools/abilint.cc: Likewise.
3531 * tools/abipkgdiff.cc: Likewise.
3532 * tools/abisym.cc: Likewise.
3533 * tools/binilint.cc: Likewise.
3534 * tools/fedabipkgdiff: Replace the license header with the
3535 SPDX identifier GPL-3.0-or-later.
3536 * tools/kmidiff.cc: Likewise.
3537
35382020-12-01 Dodji Seketeli <dodji@redhat.com>
3539
3540 Bump version number to 2.0
3541 * configure.ac: Bump number version to 2.0
3542
35432020-12-01 Dodji Seketeli <dodji@redhat.com>
3544
3545 Update NEWS file for 1.8
3546 * NEWS: Update for 1.8
3547
35482020-12-01 Dodji Seketeli <dodji@redhat.com>
3549
3550 Update the Changelog for 1.8
3551 * Changelog: Update automatically with "make update-changelog'
3552
12020-12-01 Dodji Seketeli <dodji@redhat.com> 35532020-12-01 Dodji Seketeli <dodji@redhat.com>
2 3554
3 Add check-self-compare to release regression testing 3555 Add check-self-compare to release regression testing