summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorDodji Seketeli <dodji@redhat.com>2018-10-25 14:19:47 +0200
committerDodji Seketeli <dodji@redhat.com>2018-10-26 11:32:56 +0200
commit95dc7de0fed461203975271bd7af1c4b13ef6367 (patch)
treeccaa92fe380a2a5ab4fb5fbb3c9a5499947c9475 /ChangeLog
parentUpdate NEWS file for 1.5 (diff)
downloadlibabigail-95dc7de0fed461203975271bd7af1c4b13ef6367.tar.gz
libabigail-95dc7de0fed461203975271bd7af1c4b13ef6367.tar.bz2
libabigail-95dc7de0fed461203975271bd7af1c4b13ef6367.tar.xz
Update ChangeLog for 1.5libabigail-1.5
* ChangeLog: Update automatically by calling make update-changelog. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog304
1 files changed, 304 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6e4ca2ed..c276e3f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,307 @@
12018-10-25 Dodji Seketeli <dodji@redhat.com>
2
3 Update NEWS file for 1.5
4 * NEWS: Update for 1.5
5
62018-10-18 Dodji Seketeli <dodji@redhat.com>
7
8 Bug rhbz1638554 - assertion failed in is_mostly_distinct_diff
9 * src/abg-comp-filter.cc (is_mostly_distinct_diff): Handle the
10 case of the type diff of the function parameter diff being a
11 distinct diff.
12
132018-10-17 Dodji Seketeli <dodji@redhat.com>
14
15 Define UINT64_MAX when it's not defined
16 * src/abg-dwarf-reader.cc: Define UINT64_MAX when it's not defined.
17
182018-10-16 Dodji Seketeli <dodji@redhat.com>
19
20 Better support array with unknown upper bound
21 * include/abg-comparison.h
22 (BENIGN_INFINITE_ARRAY_CHANGE_CATEGORY): A new enumerator in the
23 diff_category enum.
24 (EVERYTHING_CATEGORY): Adjust.
25 * src/abg-comparison.cc (get_default_harmless_categories_bitmap):
26 Adjust.
27 (operator<<(ostream& o, diff_category)): Likewise.
28 * include/abg-ir.h (array_type_def::subrange_type::is_infinite):
29 Declare new member function.
30 * src/abg-ir.cc (array_type_def::subrange_type::priv::infinite_):
31 New data member.
32 (array_type_def::subrange_type::priv::priv): Initialize it.
33 (array_type_def::subrange_type::get_length): Better support
34 unknown sized subrange.
35 (array_type_def::subrange_type::is_infinite): Define new member
36 function.
37 * src/abg-comp-filter.cc (has_benign_infinite_array_change):
38 Define new static function.
39 (categorize_harmless_diff_node): Use the new
40 has_benign_infinite_array_change above.
41 * src/abg-dwarf-reader.cc (build_subrange_type): Better recognize a
42 subrange type with unknown upper bound. Represent that with the
43 new array_type_def::subrange_type::is_infinite member property.
44 * src/abg-reader.cc (build_subrange_type): Likewise.
45 * tests/data/test-abidiff/test-PR18166-libtirpc.so.abi: Adjust.
46 * tests/data/test-annotate/libtest23.so.abi: Likewise.
47 * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise.
48 * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise.
49 * tests/data/test-annotate/test14-pr18893.so.abi: Likewise.
50 * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
51 Likewise.
52 * tests/data/test-annotate/test7.so.abi: Likewise.
53 * tests/data/test-read-dwarf/libtest23.so.abi: Likewise.
54 * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise.
55 * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise.
56 * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise.
57 * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise.
58 * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise.
59 * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
60 * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.
61 * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise.
62
632018-10-11 Dodji Seketeli <dodji@redhat.com>
64
65 Add default suppression specification for the libvirt project
66 * default.abignore: Suppress changes on functions with symbol
67 version LIBVIRT_PRIVATE in libvirt.so.* shared objects.
68
692018-10-11 Dodji Seketeli <dodji@redhat.com>
70
71 Add default suppression specification for the krb5 project
72 * default.abignore: Ignore changes about functions starting with
73 krb5int_.*.
74
752018-10-03 Dodji Seketeli <dodji@redhat.com>
76
77 Misc comment fix
78 * src/abg-suppression.cc (type_suppression::suppresses_diff): Fix
79 comment.
80
812018-10-03 Dodji Seketeli <dodji@redhat.com>
82
83 Bug 23708 - categorize void* to pointer change as harmless
84 * include/abg-comparison.h (VOID_PTR_TO_PTR_CHANGE_CATEGORY): New
85 enumerator in the diff_category enum. Also, adjust the
86 EVERYTHING_CATEGORY enumerator.
87 * include/abg-fwd.h (is_void_pointer_type): Declare new function.
88 * src/abg-comp-filter.cc (has_void_ptr_to_ptr_change): Define new
89 static function and ...
90 (categorize_harmless_diff_node): ... use it here.
91 * src/abg-comparison.cc (get_default_harmless_categories_bitmap):
92 Add the new abigail::comparison::VOID_PTR_TO_PTR_CHANGE_CATEGORY
93 category in here.
94 (operator<<(ostream& o, diff_category c)): Add support for the new
95 VOID_PTR_TO_PTR_CHANGE_CATEGORY.
96 * src/abg-ir.cc (is_void_pointer_type): Define new function.
97 * tests/data/Makefile.am: Add the new test material below to source distribution.
98 * tests/data/test-diff-filter/test47-filter-void-ptr-change-report-0.txt:
99 New test reference output.
100 * tests/data/test-diff-filter/test47-filter-void-ptr-change-v{0,1}.c:
101 Source code of the new binary test input below.
102 * tests/data/test-diff-filter/test47-filter-void-ptr-change-v{0,1}.o:
103 New binary test input.
104 * tests/test-diff-filter.cc: Add the test input/output above to
105 test harness.
106
1072018-10-02 Dodji Seketeli <dodji@redhat.com>
108
109 Categorize CV qualifier changes on fn return types as harmless
110 * include/abg-comparison.h (FN_RETURN_TYPE_CV_CHANGE_CATEGORY):
111 New enumerator for diff_category.
112 (EVERYTHING_CATEGORY): Update.
113 * src/abg-comp-filter.cc (type_diff_has_cv_qual_change_only):
114 Factorize this function out of ...
115 (has_fn_parm_type_cv_qual_change): ... this one.
116 (has_fn_return_type_cv_qual_change): Define new static function.
117 (categorize_harmless_diff_node): Use the new
118 has_fn_return_type_cv_qual_change.
119 * src/abg-comparison.cc (get_default_harmless_categories_bitmap):
120 Adjust to add the new FN_RETURN_TYPE_CV_CHANGE_CATEGORY category.
121 (operator<<(ostream& o, diff_category c)): Support the new
122 FN_RETURN_TYPE_CV_CHANGE_CATEGORY.
123 * tests/data/Makefile.am: Add the new test material below to
124 source distribution.
125 * tests/data/test-diff-filter/test46-fn-return-qual-change-report-0.txt:
126 New reference output for the new input test.
127 * tests/data/test-diff-filter/test46-fn-return-qual-change-v{0,1}.c:
128 New source code for the new binary test input.
129 * tests/data/test-diff-filter/test46-fn-return-qual-change-v{0,1}.o:
130 New binary test input files.
131 * tests/test-diff-filter.cc: Add the new test input above to test
132 harness.
133
1342018-10-01 Dodji Seketeli <dodji@redhat.com>
135
136 Fix propagation of private type suppression category
137 * include/abg-comp-filter.h (has_harmful_name_change): Declare new
138 function overloads.
139 * include/abg-comparison.h (PRIVATE_TYPE_CATEGORY): New enumerator
140 for diff_category;
141 (EVERYTHING_CATEGORY): Adjust this enumerator in diff_category;
142 (is_suppressed): Take an output parameter to say if the
143 suppression is a private type suppression.
144 * include/abg-suppression.h (is_private_type_suppr_spec): Take a
145 const reference parameter and add an overload for a shared
146 pointer.
147 * src/abg-comp-filter.cc (has_harmful_name_change): Define new
148 function.
149 * src/abg-comparison-priv.h (diff::priv::is_filtered_out): Diffs
150 of category PRIVATE_TYPE_CATEGORY are also considered filtered
151 out.
152 * src/abg-comparison.cc (diff::is_filtered_out): Adjust to account
153 for canonical diffs of category PRIVATE_TYPE_CATEGORY.
154 (diff::is_suppressed): Add an overload that takes a
155 is_private_type output parameter. Re-write the old overload in
156 terms of the new one.
157 (operator<<(ostream& o, diff_category c)): Handle
158 PRIVATE_TYPE_CATEGORY.
159 (category_propagation_visitor::visit_end): Do not propagate
160 PRIVATE_TYPE_CATEGORY here. Do not propagate
161 HARMLESS_DECL_NAME_CHANGE_CATEGORY either, when the class does
162 have a harmful decl name change.
163 (suppression_categorization_visitor::visit_begin): Set the new
164 PRIVATE_TYPE_CATEGORY category but do not propagate it.
165 (suppression_categorization_visitor::visit_end): Add some
166 comments.
167 * src/abg-default-reporter.cc (default_reporter::report): Avoid
168 reporting typedef underlying types that are in the
169 PRIVATE_TYPE_CATEGORY category.
170 * src/abg-suppression.cc (type_suppression::suppresses_diff): Do
171 not peel typedefs if we are a private type suppression.
172 (is_private_type_suppr_spec): Take a const reference.
173 * tests/data/Makefile.am: Add the new test material below to
174 source distribution.
175 * tests/test-diff-suppr.cc: Use new test binary input.
176 * tests/data/test-diff-filter/test7-report.txt: Adjust.
177 * tests/data/test-diff-suppr/test39-opaque-type-report-0.txt: New
178 test reference output.
179 * tests/data/test-diff-suppr/test39-opaque-type-v{0,1}.c: Source
180 code of new test binary input.
181 * tests/data/test-diff-suppr/test39-opaque-type-v{0,1}.o: New test
182 binary input.
183 * tests/data/test-diff-suppr/test39-public-headers-dir/test39-header-v{0,1}.h:
184 Source code of new test binary input.
185
1862018-09-25 Dodji Seketeli <dodji@redhat.com>
187
188 PR23641 - confusion when a type definition DIE is matched by a supprspec and its decl DIEs aren't
189 * src/abg-dwarf-reader.cc (get_opaque_version_of_type): If no
190 pre-existing opaque version was found, a new one is created and
191 returned. Take a needed "where_offset" parameter.
192 (build_ir_node_from_die): Adjust the call to
193 get_opaque_version_of_type.
194
1952018-09-21 Dodji Seketeli <dodji@redhat.com>
196
197 PR23641 - Type definition DIE matched by a supprspec but not its decl
198 *definition* of T, they will be dropped too.
199 We'll end up with those two libraries that are identical (modulo the
200 order in which libabigail sees type declarations and their
201 definitions) and are considered different when a suppression
202 specification makes us drop T: the second library appears to
203 libabigail as if T was removed from it.
204 This is the problem addressed by this patch.
205 When the definition of a type T is suppressed because it's considered
206 private then we look if there was a forward declaration for it
207 elsewhere, that is not matched by the private type suppression
208 specification. If we encountered such a type declaration then it
209 means that declaration is in effect an "opaque" version of T. So
210 rather than just dropping T altogether, we keep (and build an IR) for
211 its opaque version only. And we drop the definition of T.
212 This seems to fix the issue.
213 I can't seem to reproduce the slight re-ordering of DIEs descriptions that
214 uncover the issue so I'll rely on integration tests to catch future
215 regressions on this issue, rather than on unit tests. Sigh.
216 * include/abg-tools-utils.h (PRIVATE_TYPES_SUPPR_SPEC_NAME):
217 Remove this extern constant definition.
218 * src/abg-dwarf-reader.cc (type_is_suppressed): Add an overload
219 that takes an additional type_is_private output parameter.
220 (get_opaque_version_of_type): New static function.
221 (build_ir_node_from_die): For class types, get the opaque version
222 for suppressed private types rather than dropping them altogether.
223 * src/abg-reader.cc (type_is_suppressed): Adjust.
224 * src/abg-suppression-priv.h (type_is_suppressed): Add an overload
225 that takes a type_is_private output parameter.
226 * include/abg-suppression.h (get_private_types_suppr_spec_label)
227 (is_private_type_suppr_spec): Declare new functions.
228 * src/abg-suppression.cc
229 (get_private_types_suppr_spec_label, is_private_type_suppr_spec):
230 Define new functions.
231 (suppression_matches_type_name_or_location): Use the new
232 get_private_types_suppr_spec_label rather than a global extern
233 variable.
234 * src/abg-tools-utils.cc (handle_fts_entry): Adjust to use the new
235 get_private_types_suppr_spec_label.
236 (gen_suppr_spec_from_headers): Handle the case or an empty headers
237 root dir.
238
2392018-09-03 Dodji Seketeli <dodji@redhat.com>
240
241 Add option to avoid walking abigail::ir nodes twice
242 * include/abg-ir.h (struct ir_node_visitor): Make this be a class.
243 Add a private data member to it, following the 'pimpl' idiom.
244 (ir_node_visitor::{allow_visiting_already_visited_type_node,
245 mark_type_node_as_visited, forget_visited_type_nodes,
246 type_node_has_been_visited}): Declare new member functions.
247 * src/abg-ir.cc ({type_base, type_decl, scope_type_decl,
248 qualified_type_decl, pointer_type_def, reference_type_def,
249 array_type_def, enum_type_decl, typedef_decl, class_or_union,
250 class_decl, union_decl}::traverse): Avoid re-visiting the type
251 node if the visitor was configured as such.
252 (struct ir_node_visitor::priv): Define new struct.
253 (ir_node_visitor::{allow_visiting_already_visited_type_node,
254 mark_type_node_as_visited, forget_visited_type_nodes,
255 type_node_has_been_visited}): Define new member functions.
256 * tests/test-ir-walker.cc
257 (name_printing_visitor::name_printing_visitor): Avoid visiting a
258 type node twice.
259
2602018-08-31 Dodji Seketeli <dodji@redhat.com>
261
262 Fix apidoc of dwarf_reader::get_soname_of_elf_file
263 * src/abg-dwarf-reader.cc (get_soname_of_elf_file): Document the
264 first parameter. Remove bogus documentation of the previous 'elf'
265 parameter.
266
2672018-08-30 Dodji Seketeli <dodji@redhat.com>
268
269 Bug 23533 - Accept '=' in ini property values
270 * src/abg-ini.cc (char_is_delimiter): Take a new include_equal
271 flag to control is the equal character should be considered as a
272 delimiter or not.
273 (char_is_property_value_char): Accept the equal character as a
274 valid property value character.
275 * tests/Makefile.am: Build a new runtestini test from the new
276 tests/test-ini.cc source file.
277 * tests/data/Makefile.am: Add the two new test inputs below to
278 source distribution.
279 * tests/data/test-ini/test01-equal-in-property-string.{abignore,
280 abignore.expected}: New test inputs.
281 * tests/test-ini.cc: New test harness.
282
2832018-08-06 Dodji Seketeli <dodji@redhat.com>
284
285 Make test-ir-walker work on ELF binaries directly
286 * test-ir-walker.cc (main): Load an ABI corpus from an elf file
287 and walk its translation units.
288
2892018-07-17 Dodji Seketeli <dodji@redhat.com>
290
291 Allow use of python even when fedabipkgdiff is disabled
292 * configure.ac: Detect the presence and version of python even
293 when fedabipkgdiff is disabled.
294
2952018-07-16 Dodji Seketeli <dodji@redhat.com>
296
297 Bump version number to 1.5
298 * configure.ac: Bump version number to 1.5
299
3002018-07-13 Dodji Seketeli <dodji@redhat.com>
301
302 Update ChangeLog for 1.4 release
303 * ChangeLog: Update this using make update-changelog
304
12018-07-13 Dodji Seketeli <dodji@redhat.com> 3052018-07-13 Dodji Seketeli <dodji@redhat.com>
2 306
3 Update NEWS file for 1.4 release 307 Update NEWS file for 1.4 release