| 2021-10-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 2.0 |
| * NEWS: Update for 2.0 |
| |
| 2021-09-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27086 - Consider all C++ virtual destructors when there are many |
| * src/abg-dwarf-reader.c (build_or_get_fn_decl_if_not_suppressed): |
| Do not try to re-use a virtual destructor of a class, based on its |
| signature. Several different of these can have the same |
| signature, inside a given class. |
| * tests/data/test-types-stability/PR27086-libstdc++.so.6.0.26: |
| Add new binary test input. |
| * tests/data/Makefile.am: Add the new test input to source |
| distribution. |
| * tests/test-types-stability.cc (elf_paths): Add the test input |
| above to this harness. |
| |
| 2021-09-23 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: Indent |
| * src/abg-dwarf-reader.cc (finish_member_function_reading): Fix |
| indentation. |
| |
| 2021-09-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27970 - Duplicated member functions cause spurious self comparison changes |
| * src/abg-dwarf-reader.cc (fixup_functions_with_no_symbols): When |
| the function decl is finally associated to its (publicly defined) |
| ELF symbol, mark it as being exported. |
| (finish_member_function_reading): Don't risk marking a virtual |
| function as being non-virtual when updating its properties. |
| (build_or_get_fn_decl_if_not_suppressed): Update comment. If the |
| member function is already present in the class, do not create a |
| new one; rather, reuse the existing one. It's going to be later |
| updated by finish_member_function_reading. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test41-report-0.txt: Likewise. |
| * 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. |
| * 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. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| |
| 2021-09-21 Dodji Seketeli <dodji@redhat.com> |
| |
| abipkgdiff: Do not erase working dirs before we are done using them |
| * tools/abipkgdiff.cc (compare_prepared_userspace_packages): |
| Removing working directories "early" prevents e.g, |
| dwarf_reader::get_soname_of_elf_file from accessing those files. |
| So do not remove them until the very end. |
| * tests/data/test-diff-pkg/libxcrypt-4.1.1-6.el8.x86_64--libxcrypt-4.1.1-6.el8.x86_64-output-1.txt: |
| Adjust. |
| |
| 2021-09-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 28316 - Failure to represent typedef named anonymous enums |
| * include/abg-fwd.h (scope_anonymous_or_typedef_named) |
| (is_anonymous_or_typedef_named): Declare new functions. |
| * include/abg-ir.h (decl_base::set_has_anonymous_parent): Remove |
| declaration. |
| (decl_base::{get,set}_naming_typedef): Declare new member |
| functions. |
| * src/abg-ir.cc (update_qualified_name): Define static function. |
| (decl_base::priv::naming_typedef_): Define new data member. |
| (decl_base::priv::has_anonymous_parent_): Remove data member. |
| (decl_base::priv::priv): Adjust constructor. |
| (decl_base::get_has_anonymous_parent): Rather than storing a flag |
| for this, dynamically look at if the scope is anonymous. |
| (decl_base::set_has_anonymous_parent): Remove definition. |
| (decl_base::{get,set}_naming_typedef): Define new member |
| functions. |
| (scope_anonymous_or_typedef_named) |
| (is_anonymous_or_typedef_named): Define new functions. |
| (get_decl_name_for_comparison): Define new sub-routine for the |
| decl_base overload of equals. |
| (equals): In the overload for decl_base, use the new |
| get_decl_name_for_comparison. It helps to ensure that all |
| anonymous decls of the same kind have the same name for the |
| purpose of comparison. It also ensures that non anonymous decls |
| that are part of anonymous scopes should be compared only by |
| looking at their non-qualified names. In the overload for |
| class_or_union, adjust. |
| (scope_decl::add_member_decl): No more need to flag the fast that |
| the parent scope is anonymous here. |
| (get_debug_representation): Fix a thinko. |
| (class_or_union::get_naming_typedef): Remove member function as |
| it's now handled by decl_base::get_naming_typedef. |
| * src/abg-dwarf-reader.cc (build_typedef_type): When a typedef is |
| a naming typedef, then mark the named decl as being typedef-named. |
| (maybe_canonicalize_type): Delay canonicalization of anonymous |
| types because they can be typedef-named later. |
| * src/abg-reader.cc (read_naming_typedef_id_string) |
| (maybe_set_naming_typedef): Define new static function. |
| (build_class_decl): Use it here, rather than reading the |
| "naming-typedef-id" by hand. |
| (build_enum_type_decl, build_union_decl): Read the |
| "naming-typedef-id" property. |
| * src/abg-writer.cc (write_naming_typedef): Make this accept |
| decl_base_sptr, rather than just class_decl_sptr. |
| (write_enum_type_decl): Write the naming-typedef-id property if |
| needed. |
| * tests/data/test-abidiff-exit/test-PR28316-report.txt: New test |
| reference output. |
| * tests/data/test-abidiff-exit/test-PR28316-v{0,1}.cc: Source code |
| of new binary test input. |
| * tests/data/test-abidiff-exit/test-PR28316-v{0,1}.o: New binary |
| test input files. |
| * tests/data/Makefile.am: Add the new test files to the source |
| distribution. |
| * tests/test-abidiff-exit.cc: Add the new test files above to this |
| harness. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-diff-dwarf/test15-enum-report.txt: Likewise. |
| * tests/data/test-diff-filter/test19-enum-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2021-09-17 Dodji Seketeli <dodji@redhat.com> |
| |
| abipkgdiff: Fix showing added/removed files |
| * tools/abipkgdiff.cc (compare_prepared_userspace_packages): Do |
| not return early if there are no binaries to compare. Also add |
| more verbose messages. |
| * tests/data/test-diff-pkg/libxcrypt-4.1.1-6.el8.x86_64--libxcrypt-4.1.1-6.el8.x86_64-output-1.txt: |
| New reference output file. |
| * 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: |
| New reference output file. |
| * tests/data/test-diff-pkg/libxcrypt-4.1.1-6.el8.x86_64.rpm: New |
| binary input file. |
| * tests/data/test-diff-pkg/libxcrypt-4.4.18-3.el9.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/libxcrypt-compat-4.4.18-3.el9.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/libxcrypt-compat-debuginfo-4.4.18-3.el9.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/libxcrypt-debuginfo-4.1.1-6.el8.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/libxcrypt-debuginfo-4.4.18-3.el9.x86_64.rpm: Likewise. |
| * tests/data/Makefile.am: Add the new testing files to source |
| distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add these binary packages |
| to this testing harness. |
| |
| 2021-09-09 Dodji Seketeli <dodji@redhat.com> |
| |
| RHBZ1944102 - self comparing ABI of protobuf-3.14.0-2.el9 failed |
| * src/abg-reader.cc (read_size_and_alignment): Use atoll to read |
| long long values, not atoi. |
| |
| 2021-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| RHBZ1951496 - ir: Acknowledge that "void type" is not canonicalized |
| * src/abg-ir.cc (is_allowed_non_canonicalized_type): Define new |
| static function. |
| (hash_as_canonical_type_or_constant): Use it. |
| |
| 2021-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| writer: Avoid sigsev on types with no translation unit |
| * src/abg-writer.cc (referenced_type_should_be_emitted): Don't |
| crash on types with no associated translation unit. |
| |
| 2021-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| xml-reader: Get back to original way of building qualified types |
| * src/abg-reader.cc (build_qualified_type_decl): Create the |
| underlying type first, then create the qualified type. |
| This helps fix bug |
| |
| 2021-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: Fix canonical type propagation cancelling |
| * src/abg-ir.cc (return_comparison_result): When the comparison of |
| the current type sub-object fails, clear the potentially |
| propagated canonical type and remove it from the set of types with |
| non confirmed propagated canonical types. |
| |
| 2021-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: Avoid infinite loop during type canonicalization |
| * src/abg-ir-priv.h |
| (environment::priv::collect_types_that_depends_on): Don't try to |
| collect a type that has already been collected. |
| |
| 2021-09-07 Dodji Seketeli <dodji@redhat.com> |
| |
| writer: escape enum linkage name in abixml |
| * src/abg-writer.cc (write_enum_type_decl): Escape linkage name. |
| |
| 2021-09-07 Dodji Seketeli <dodji@redhat.com> |
| |
| RHBZ-1944096 - assertion failure during self comparison of systemd |
| * src/abg-reader.cc (build_enum_type_decl): When strtoll detects |
| an underflow or overflo, it sets errno to ERANGE. So take that |
| into account. |
| |
| 2021-09-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27985 - abidiff: bad array types in report |
| * src/abg-ir.cc (array_type_def::get_qualified_name): Use the |
| cache for temporary qualified names when the type is not yet |
| canonicalized. That way, the cache for (non-temporary) qualified |
| names is used only for canonicalized types. |
| * tests/data/test-abidiff/test-PR27985-report.txt: Reference |
| output for the new test. |
| * tests/data/test-abidiff/test-PR27985-v{0,1}.c: Source code for |
| the new test binary inputs. |
| * tests/data/test-abidiff/test-PR27985-v{0,1}.o: New test binary inputs. |
| * tests/data/test-abidiff/test-PR27985-v{0,1}.o.abi: New test |
| abixml input. |
| * tests/data/Makefile.am: Add the new test materials above to |
| source distribution. |
| * tests/test-abidiff.cc (specs): Add the tests above to the harness. |
| * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt: |
| Adjust. |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt: |
| Adjust. |
| |
| 2021-08-27 Giuliano Procida <gprocida@google.com> |
| |
| abg-writer: faster referenced type emission tests |
| * src/abg-writer.cc (write_translation_unit): Reorder |
| referenced type emission tests for efficiency. Consolidate |
| related comments. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2021-08-10 Dodji Seketeli <dodji@redhat.com> |
| |
| RHBZ 1925886 - Compare anonymous types without qualified names |
| * include/abg-fwd.h (is_anonymous_type): Constify this function. |
| * src/abg-ir.cc (equals): In the overload for decl_base, do not |
| take scope of anonymous types into account. In the overload for |
| array_type_def do not peel of typedefs. This is not directly |
| related to anonymous types, but it make comparison more robust |
| against naming typedefs used for anonymous types in array |
| elements. |
| (get_type_name): Do not take into account the scope of anonymous |
| types when building internal representation of types. Note that |
| the internal representation is what is used for canonicalization. |
| This means that all anonymous types are compared against each |
| others during type canonicalization. |
| * src/abg-reader.cc (build_class_decl): Do not try to re-use |
| anonymous types, just like we already do for DWARF. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2021-07-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27236 - Don't forget to emit some referenced types |
| * include/abg-writer.h (write_translation_unit): Add a new |
| parameter that says if we are emitting the last TU. |
| * src/abg-writer.cc (write_translation_unit::{type_is_emitted, |
| decl_only_type_is_emitted}): Constify these methods. |
| (write_context::has_non_emitted_referenced_types): Define new |
| member function using the const methods above. |
| (write_translation_unit): When emitting the last TU, emit all the |
| referenced types. |
| (write_corpus): Set signal when emitting the last translation |
| unit. |
| |
| 2021-07-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27236 - Allow updating classes from abixml |
| * src/abg-reader.cc (build_class_decl): Keep going when the class |
| has already been built. The rest of the code knows how to add new |
| stuff. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust. |
| |
| 2021-07-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27236 - Fix the canonical type propagation optimization |
| * include/abg-ir.h (pointer_set): This typedef is now for an |
| unordered_set<uintptr_t> rather than an unordered_set<size_t>. |
| (environment::priv_): Make this public so that code in free form |
| function from abg-ir.cc can access it. |
| * src/abg-ir-priv.h (struct type_base::priv): Move this private |
| structure here, from abg-ir.cc. |
| (type_base::priv::{depends_on_recursive_type_, |
| canonical_type_propagated_}): Added these two new data members. |
| (type_base::priv::priv): Initialize the two new data members. |
| (type_base::priv::{depends_on_recursive_type, |
| set_depends_on_recursive_type, |
| set_does_not_depend_on_recursive_type, canonical_type_propagated, |
| set_canonical_type_propagated, clear_propagated_canonical_type}): |
| Define new member functions. |
| (struct environment::priv): Move this struct here, from abg-ir.cc. |
| (environment::priv::{types_with_non_confirmed_propagated_ct_, |
| left_type_comp_operands_, right_type_comp_operands_}): New data |
| members. |
| (environment::priv::{mark_dependant_types, |
| mark_dependant_types_compared_until, confirm_ct_propagation, |
| collect_types_that_depends_on, cancel_ct_propagation, |
| remove_from_types_with_non_confirmed_propagated_ct}): New member |
| functions. |
| * src/abg-ir.cc (struct environment::priv, struct) |
| (type_base::priv, struct class_or_union::priv): Move these struct |
| to include/abg-ir-priv.h. |
| (push_composite_type_comparison_operands) |
| (pop_composite_type_comparison_operands) |
| (mark_dependant_types_compared_until) |
| (maybe_cancel_propagated_canonical_type): Define new functions. |
| (notify_equality_failed, mark_types_as_being_compared): Re-indent. |
| (is_comparison_cycle_detected, return_comparison_result): Define |
| new function templates. |
| (RETURN_TRUE_IF_COMPARISON_CYCLE_DETECTED): Define new macro. |
| (equals(const function_type& l, const function_type& r)): Redefine |
| the RETURN macro using the new return_comparison_result function |
| template. Use the new RETURN_TRUE_IF_COMPARISON_CYCLE_DETECTED |
| and mark_types_as_being_compared functions. |
| (equals(const class_or_union& l, const class_or_union&, change_kind*)): |
| Likewise. |
| (equals(const class_decl& l, const class_decl&, change_kind*)): |
| Likewise. Because this uses another equal() function to compare |
| the class_or_union part the type, ensure that no canonical type |
| propagation occurs at that point. |
| (types_are_being_compared): Remove as it's not used anymore. |
| (maybe_propagate_canonical_type): Use the new |
| environment::priv::propagate_ct() function here. |
| (method_matches_at_least_one_in_vector): Ensure the |
| right-hand-side operand of the equality stays on the right. This |
| is important because the equals() functions expect that. |
| * src/abg-reader.cc (build_type): Ensure all types are |
| canonicalized. |
| * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: |
| Adjust. |
| * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Likewise. |
| * 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. |
| * 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. |
| * tests/data/test-read-dwarf/test-libaaudio.so.abi: Likewise. |
| |
| 2021-06-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27995 - Self comparison error from abixml file |
| * doc/manuals/abidiff.rst: Add documentation for the --debug |
| option. |
| * src/abg-ir.cc (equals): In the overload for decl_base consider |
| the internal version of qualified decl name. In the overload for |
| pointer_type_def do not peel typedefs off from the compared |
| pointed-to types. In the overload for typedef_decl compare the |
| typedef as a decl as well. In the overload for var_decl, compare |
| variables that have the same ELF symbols without taking into |
| account their qualified name, rather than their name. Stop |
| comparing data member without considering their names. |
| In the overload for class_or_union, when a decl-only class that is |
| ODR-relevant is compared against another type, assume that |
| equality if names are equal. This is useful in environments where |
| some TUs are ODR-relevant and others aren't. |
| (*::get_pretty_representation): Update doxygen comments. |
| (enum_type_decl::get_pretty_representation): Return an internal |
| pretty representation that is stable across all anonymous enums. |
| (var_decl::get_anon_dm_reliable_name): Use the non-internal pretty |
| representation for anonymous data members. |
| (function_type::priv::temp_internal_cached_name_): New data |
| member. |
| (function_type::get_cached_name): Cache the internal name after |
| the function type is canonicalized. Make sure internal name and |
| non-internal name are cached separately. |
| (class_or_union::find_anonymous_data_member): Look for the anonymous |
| data member by looking at its non-internal name. |
| ({class, union}_decl::get_pretty_representation): Use something like "class |
| __anonymous_{union,struct}__" for all anonymous classes, so that they can |
| all be compared against each other during type canonicalization. |
| (type_has_sub_type_changes): Use non-internal pretty |
| representation. |
| (hash_type_or_decl, function_decl_is_less_than:): Use internal |
| pretty representation for comparison here. |
| * src/abg-reader.cc (read_context::maybe_canonicalize_type): Don't |
| early canonicalize array types. |
| * src/abg-writer.cc (annotate): Use non-internal pretty |
| representation. |
| * tests/data/test-diff-filter/test-PR27995-report-0.txt: New |
| reference report. |
| * tests/data/test-diff-filter/test-PR27995.abi: New test input |
| abixml file. |
| * tests/data/Makefile.am: Add test-PR27995.abi, |
| test-PR27995-report-0.txt to the source distribution. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-diff-dwarf/test6-report.txt: Adjust. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Adjust. |
| * tests/data/test-diff-filter/test41-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test43-decl-only-def-change-leaf-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test8-report.txt: Adjust. |
| * 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: |
| Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt: |
| Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Adjust. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: |
| Adjust. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: |
| Adjust. |
| * tests/data/test-diff-suppr/test39-opaque-type-report-0.txt: Adjust. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Adjust. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| * tests/test-diff-filter.cc (in_out_specs): Add the |
| test-PR27995.abi to the test harness. |
| * tools/abidiff.cc (options::do_debug): New data member. |
| (options::options): Initialize it. |
| (parse_command_line): Parse --debug. |
| (main): Activate self comparison debug if the user provided |
| --debug. |
| |
| 2021-06-25 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: Tighten type comparison optimization for Linux kernel binaries |
| * src/abg-ir.cc (types_defined_same_linux_kernel_corpus_public): |
| Ensure that anonymous classes with naming typedefs have identical |
| typedef names. |
| |
| 2021-06-25 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: Tighten the test for anonymous data member |
| * src/abg-ir.cc: (is_anonymous_data_member): Consider |
| decl_base::get_is_anonymous as well. |
| |
| 2021-06-24 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: Improve the debugging facilities |
| * src/abg-ir.cc (maybe_compare_as_member_decls): Add a missing |
| ABG_RETURN |
| (get_debug_representation): Display the name of class and enums, |
| not their pretty representation. |
| |
| 2021-07-10 Giuliano Procida <gprocida@google.com> |
| |
| PR28060 - Invalid offset for bitfields |
| * src/abg-dwarf-reader.cc (read_and_convert_DW_at_bit_offset): |
| Update documentation. |
| (die_member_offset): Treat DW_AT_bit_offset as an optional |
| adjustment to DW_AT_data_member_location. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Update. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Update. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Update. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Update. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Update. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: |
| Regenerate. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: |
| Report now empty. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Update. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Update. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Update. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Update. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Update. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Update. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Update. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Update. |
| |
| 2021-07-07 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.h: add declaration of operator<< for elf_symbol::visibility |
| * include/abg-ir.h (operator<<(elf_symbol::visibility): Add |
| declaration. |
| |
| 2021-07-06 Giuliano Procida <gprocida@google.com> |
| |
| ir: remove "is Linux string constant" property from elf_symbol |
| * include/abg-ir.h (elf_symbol::elf_symbol): Drop |
| is_linux_string_cst argument. |
| (elf_symbol::create): Likewise. |
| (elf_symbol::get_is_linux_string_cst): Drop method. |
| * src/abg-dwarf-reader.cc (lookup_symbol_from_sysv_hash_tab): |
| Remove code that gets the index of the __ksymtab_strings |
| section. Drop corresponding elf_symbol::create argument. |
| (lookup_symbol_from_gnu_hash_tab): Likewise. |
| (lookup_symbol_from_symtab): Likewise. |
| (create_default_fn_sym): Drop false is_linux_string_cst |
| argument to elf_symbol::create. |
| * src/abg-ir.cc (elf_symbol::priv::is_linux_string_cst_): Drop |
| member variable. |
| (elf_symbol::priv default ctor): Drop initialisation of |
| is_linux_string_cst_. |
| (elf_symbol::priv normal ctor): Drop is_linux_string_cst |
| argument and corresponding is_linux_string_cst_ |
| initialisation. |
| (elf_symbol::elf_symbol ctor): Drop is_linux_string_cst |
| argument and corresponding forwarding to priv ctor. |
| (elf_symbol::create): Drop is_linux_string_cst argument and |
| corresponding forwarding to ctor. |
| (elf_symbol::get_is_linux_string_cst): Drop method. |
| * src/abg-reader.cc (build_elf_symbol): Drop false |
| is_linux_string_cst argument to elf_symbol::create. |
| * src/abg-symtab-reader.cc (symtab::load): Likewise. |
| |
| 2021-07-05 Matthias Maennich <maennich@google.com> |
| |
| Consistently use std::unique_ptr for private implementations (pimpl) |
| * include/abg-comparison.h (diff_maps): use unique_ptr for priv_ |
| (diff_context): Likewise. |
| (diff_traversable_base): Likewise. |
| (type_diff_base): Likewise. |
| (decl_diff_base): Likewise. |
| (distinct_diff): Likewise. |
| (var_diff): Likewise. |
| (pointer_diff): Likewise. |
| (reference_diff): Likewise. |
| (array_diff): Likewise. |
| (qualified_type_diff): Likewise. |
| (enum_diff): Likewise. |
| (class_or_union_diff): Likewise. |
| (class_diff): Likewise. |
| (base_diff): Likewise. |
| (scope_diff): Likewise. |
| (fn_parm_diff): Likewise. |
| (function_type_diff): Likewise. |
| (function_decl_diff): Likewise. |
| (typedef_diff): Likewise. |
| (translation_unit_diff): Likewise. |
| (diff_stats): Likewise. |
| (diff_node_visitor): Likewise. |
| * include/abg-corpus.h (corpus): Likewise. |
| (exported_decls_builder): Likewise. |
| (corpus_group): Likewise. |
| * include/abg-ini.h (property): Likewise. |
| (property_value): Likewise. |
| (string_property_value): Likewise. |
| (list_property_value): Likewise. |
| (tuple_property_value): Likewise. |
| (simple_property): Likewise. |
| (list_property): Likewise. |
| (tuple_property): Likewise. |
| (config): Likewise. |
| (section): Likewise. |
| (function_call_expr): Likewise. |
| * include/abg-interned-str.h (interned_string_pool): Likewise. |
| * include/abg-ir.h (environment): Likewise. |
| (location_manager): Likewise. |
| (type_maps): Likewise. |
| (translation_unit): Likewise. |
| (elf_symbol::version): Likewise. |
| (type_or_decl_base): Likewise. |
| (scope_decl): Likewise. |
| (qualified_type_def): Likewise. |
| (pointer_type_def): Likewise. |
| (array_type_def): Likewise. |
| (subrange_type): Likewise. |
| (enum_type_decl): Likewise. |
| (enum_type_decl::enumerator): Likewise. |
| (typedef_decl): Likewise. |
| (dm_context_rel): Likewise. |
| (var_decl): Likewise. |
| (function_decl::parameter): Likewise. |
| (function_type): Likewise. |
| (method_type): Likewise. |
| (template_decl): Likewise. |
| (template_parameter): Likewise. |
| (type_tparameter): Likewise. |
| (non_type_tparameter): Likewise. |
| (template_tparameter): Likewise. |
| (type_composition): Likewise. |
| (function_tdecl): Likewise. |
| (class_tdecl): Likewise. |
| (class_decl::base_spec): Likewise. |
| (ir_node_visitor): Likewise. |
| * include/abg-suppression.h (suppression_base): Likewise. |
| (type_suppression::insertion_range): Likewise. |
| (type_suppression::insertion_range::boundary): Likewise. |
| (type_suppression::insertion_range::integer_boundary): Likewise. |
| (type_suppression::insertion_range::fn_call_expr_boundary): Likewise. |
| (function_suppression): Likewise. |
| (function_suppression::parameter_spec): Likewise. |
| (file_suppression): Likewise. |
| * include/abg-tools-utils.h (temp_file): Likewise. |
| (timer): Likewise. |
| * include/abg-traverse.h (traversable_base): Likewise. |
| * include/abg-workers.h (queue): Likewise. |
| * src/abg-comparison.cc (diff_context): add default destructor. |
| (diff_maps): Likewise. |
| (corpus_diff): Likewise. |
| (diff_node_visitor): Likewise. |
| (class_or_union_diff::get_priv): adjust return type. |
| (class_diff::get_priv): adjust return type. |
| * src/abg-corpus.cc (corpus): add default destructor. |
| * src/abg-ir.cc (location_manager): Likewise. |
| (type_maps): Likewise. |
| (elf_symbol::version): Likewise. |
| (array_type_def::subrange_type): Likewise. |
| (enum_type_decl::enumerator): Likewise. |
| (function_decl::parameter): Likewise. |
| (class_decl::base_spec): Likewise. |
| (ir_node_visitor): Likewise. |
| |
| 2021-06-14 Matthias Maennich <maennich@google.com> |
| |
| symtab-reader: add support for binaries compiled with CFI |
| * src/abg-symtab-reader.cc (symtab::load_): use new |
| add_alternative_address_lookups method. |
| (add_alternative_address_lookups): New method. |
| * src/abg-symtab-reader.h (add_alternative_address_lookups): new |
| function declaration. |
| * tests/data/test-read-dwarf/test-libaaudio.so: New test data. |
| * tests/data/test-read-dwarf/test-libaaudio.so.abi: New test data. |
| * tests/data/Makefile.am: Add the two new tests input to source |
| distribution. |
| * tests/test-read-dwarf.cc: New test case. |
| Reported-by: Dan Albert <danalbert@google.com> |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2021-06-14 Matthias Maennich <maennich@google.com> |
| |
| elf-helpers: refactor find_symbol_table_section |
| * src/abg-elf-helpers.cc(find_section): New overload. |
| (find_symtab_section): New function. |
| (find_dynsym_section): New function. |
| (find_symbol_table_section): Use new find_*_section functions. |
| * src/abg-elf-helpers.h(find_section): New overload declaration. |
| (find_symtab_section): New function declaration. |
| (find_dynsym_section): New function declaration. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2021-06-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27980 - Fix updating of type scope upon type canonicalization |
| * src/abg-ir.cc (canonicalize): Update the |
| scope_decl::get_canonical_types() of canonical type of the |
| containing type of the newly canonicalized type. |
| * src/abg-writer.cc (write_union_decl): Write the canonical types |
| contained in the current union scope, just like we do for classes. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-types-stability/pr27980-libc.so: New binary |
| input file. |
| * tests/data/Makefile.am: Add the test input file above to source |
| distribution. |
| * tests/test-types-stability.cc (elf_paths): Add the new test |
| input file to this test harness. |
| |
| 2021-05-27 Giuliano Procida <gprocida@google.com> |
| |
| abg-reader: Create a fresh corpus object per corpus |
| * src/abg-reader.cc (read_corpus_from_input): Always create a |
| fresh corpus object for each abi-corpus XML element. |
| |
| 2021-05-27 Giuliano Procida <gprocida@google.com> |
| |
| abg-reader: Ensure corpus always has a symtab reader |
| * src/abg-reader.cc (read_symbol_db_from_input): Fix |
| documentation for this function. Allow "successful parsing" to |
| include the case where no symbols were present in the input. |
| (read_corpus_from_input): Unconditionally set a symtab reader |
| on the corpus object. Unconditionally parse the abi-instr of a |
| corpus. |
| |
| 2021-05-27 Giuliano Procida <gprocida@google.com> |
| |
| dwarf-reader: Create new corpus unconditionally |
| * src/abg-dwarf-reader.cc (read_debug_info_into_corpus): |
| Create new corpus object unconditionally. |
| |
| 2021-06-09 Ben Woodard via Libabigail <libabigail@sourceware.org> |
| |
| Fix trivial typo when printing version string |
| * tools/abicompat.cc (main): Add a newline after version string. |
| |
| 2021-06-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Revert "Fix trivial typo when printing version string" |
| * tools/abicompat.cc: |
| |
| 2021-06-09 Ben Woodard via Libabigail <libabigail@sourceware.org> |
| |
| Fix trivial typo when printing version string |
| * tools/abicompat.cc: |
| |
| 2021-06-10 Dodji Seketeli <dodji@redhat.com> |
| |
| doc: Fix typo |
| * doc/manuals/libabigail-concepts.rst: Fix typo. |
| |
| 2021-06-09 Dodji Seketeli <dodji@redhat.com> |
| |
| abg-reader: Fix typo |
| * src/abg-reader.cc |
| (read_context::maybe_check_abixml_canonical_type_stability): Fix |
| typo. |
| |
| 2021-06-09 Dodji Seketeli <dodji@redhat.com> |
| |
| abidw: Remove temporary .typeid files when using --debug-abidiff |
| * tools/abidw.cc (load_corpus_and_write_abixml): Remove temporary |
| typeid file after its use. |
| |
| 2021-06-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix recursive array type definition |
| * include/abg-ir.h (array_type_def::update_size): Declare new |
| private member function. |
| (array_type_def::array_type_def): Declare ... |
| * src/abg-ir.cc (array_type_def::array_type_def): ... a new |
| constructor that takes no element type. |
| (array_type_def::update_size): Define this helper private member |
| function. |
| (array_type_def::get_subrange_representation): Adjust for this to |
| work when there is no element type setup yet. |
| (array_type_def::{set_element_type, append_subranges}): Update the |
| size and name of the array. |
| * src/abg-reader.cc (build_array_type_def): Create the array type |
| before the element type so that the later can re-use the former. |
| |
| 2021-06-07 Dodji Seketeli <dodji@redhat.com> |
| |
| rhbz1951526 - SELF CHECK FAILED for 'gimp-2.10' |
| * include/abg-ir.h |
| (environment::use_enum_binary_only_equality): Declare |
| accessors. (type_or_decl_base::{s,g}et_is_artificial): |
| Likewise. (decl_base::{s,g}et_is_artificial): Remove |
| accessors. * src/abg-ir.cc |
| (environment::priv::use_enum_binary_only_equality): Define new |
| data member. |
| (environment::priv::use_enum_binary_only_equality): Define |
| accessors. (type_or_decl_base::priv::is_artificial_): Define |
| new data member. It has actually moved here from |
| decl_base::priv::is_artificial_. |
| (type_or_decl_base::priv::priv): Initialize it. |
| (type_or_decl_base::{g,s}et_is_artificial): Define accessors. |
| (decl_base::is_artificial_): Move this to |
| type_or_decl_base::is_artificial_. |
| (maybe_adjust_canonical_type): In a given class of equivalence |
| of function types, if there is one non-artificial function |
| type, then the entire class of equivalence is considered |
| non-artificial; so flag the canonical function type as being |
| non-artificial. (is_enumerator_present_in_enum): Define new |
| static function. (equals): Re-arrange the overload for enums |
| so the order of the enumerators doesn't count in the |
| comparison. Also, two enums with different numbers of |
| enumerators can still be equal, with the right redundancy. In |
| the overload for var_decl, avoid taking into account the names |
| of data members in the comparison. |
| (enum_type_decl::enumerator::operator==): In the binary-level |
| comparison mode, only compare the value of enumerators, not |
| their name. * src/abg-comparison.cc (compute_diff): In the |
| overload for enum_type_decl, if the enums compare different |
| using binary-level comparison, then use source-level |
| comparison to build the diff-IR. * src/abg-dwarf-reader.cc |
| (read_context::compare_before_canonicalisation): Compare enums |
| using binary-level comparison. (add_or_update_class_type): If |
| we are looking at the definition of an existing declaration |
| that has been already defined then use the previous |
| definition, in case we are going to need to update the |
| definition. Also, update the size only if it's needed. |
| (build_function_type): By default, consider the newly built |
| function type as artificial. (build_ir_node_from_die): When |
| looking at a DW_TAG_subroutine_type DIE, consider the built |
| function type as non-artificial. * src/abg-reader.cc |
| (read_context::maybe_check_abixml_canonical_type_stability): |
| Don't consider declaration-only classes in an ODR context |
| because they don't have canonical types. |
| (build_function_decl): Flag the function type of the function |
| as artificial. (build_class_decl): Make sure to reuse class |
| types that were already created. * src/abg-writer.cc |
| (write_translation_unit): Allow emitting empty classes. Make |
| sure referenced types are emitting in the translation unit |
| where they belong. Avoid emitting artificial function types. |
| * |
| tests/data/test-alt-dwarf-file/rhbz1951526/rhbz1951526-report-0.txt: |
| New test reference output. * |
| tests/data/test-alt-dwarf-file/rhbz1951526/usr/bin/gimp-2.10: |
| New reference test binary input. * |
| tests/data/test-alt-dwarf-file/rhbz1951526/usr/lib/debug/.dwz/gimp-2.10.22-2.el9.1.aarch64: |
| Likewise. * |
| tests/data/test-alt-dwarf-file/rhbz1951526/usr/lib/debug/usr/bin/gimp-2.10-2.10.22-2.el9.1.aarch64.debug: |
| Likewise. * tests/data/Makefile.am: Add the new test files to |
| source directory. * tests/test-alt-dwarf-file.cc: Add the new |
| test inputs to this test harness. * |
| tests/data/test-abidiff/test-PR18791-report0.txt: Adjust. * |
| tests/data/test-abidiff/test-enum0-report.txt: Likewise. * |
| tests/data/test-annotate/libtest23.so.abi: Likewise. * |
| tests/data/test-annotate/libtest24-drop-fns-2.so.abi: |
| Likewise. * |
| tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test-anonymous-members-0.o.abi: |
| Likewise. * tests/data/test-annotate/test13-pr18894.so.abi: |
| Likewise. * tests/data/test-annotate/test14-pr18893.so.abi: |
| Likewise. * tests/data/test-annotate/test15-pr18892.so.abi: |
| Likewise. * tests/data/test-annotate/test17-pr19027.so.abi: |
| Likewise. * |
| tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. * |
| tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. * |
| tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. * tests/data/test-annotate/test21-pr19092.so.abi: |
| Likewise. * |
| tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Likewise. * |
| tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: |
| Likewise. * tests/data/test-diff-dwarf/test6-report.txt: |
| Likewise. * |
| tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: |
| Likewise. * |
| tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: |
| Likewise. * tests/data/test-diff-filter/test8-report.txt: |
| Likewise. * |
| tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Likewise. * |
| tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Likewise. * |
| 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. * |
| 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. * |
| tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Likewise. * |
| tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise. |
| * |
| tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Likewise. * |
| tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. * |
| tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Likewise. * |
| tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: |
| Likewise. * |
| tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: |
| Likewise. * tests/data/test-read-dwarf/test12-pr18844.so.abi: |
| Likewise. * tests/data/test-read-dwarf/test13-pr18894.so.abi: |
| Likewise. * tests/data/test-read-dwarf/test14-pr18893.so.abi: |
| Likewise. * tests/data/test-read-dwarf/test15-pr18892.so.abi: |
| Likewise. * tests/data/test-read-dwarf/test16-pr18904.so.abi: |
| Likewise. * tests/data/test-read-dwarf/test17-pr19027.so.abi: |
| Likewise. * |
| tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. * |
| tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. * |
| tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. * tests/data/test-read-dwarf/test21-pr19092.so.abi: |
| Likewise. * |
| tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. * |
| tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: |
| Likewise. * |
| tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Likewise. * |
| tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Likewise. |
| |
| 2021-06-07 Dodji Seketeli <dodji@redhat.com> |
| |
| reader: Canonicalizing a type once is enough |
| * src/abg-reader.cc (build_type): Don't try to canonicalize the |
| type here because all the sub-routines of this function (which |
| actually build the type) already try to canonicalize it. |
| |
| 2021-06-07 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: make 'debug(artefact)' support showing enums |
| * src/abg-ir.cc (get_debug_representation): Add support for |
| showing details for enums. Also show declaration-only-ness for |
| class or unions. |
| |
| 2021-06-07 Dodji Seketeli <dodji@redhat.com> |
| |
| location:expand() shouldn't crash when no location manager available |
| * src/abg-ir.cc (location::expand): When no location manager is |
| present, just expand to an empty location. |
| |
| 2021-06-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Add environment::{get_type_id_from_pointer,get_canonical_type_from_type_id} |
| * include/abg-ir.h (environment::{get_pointer_type_id_map, |
| get_type_id_from_pointer, get_canonical_type_from_type_id}): |
| Declare new member functions. |
| * src/abg-ir.cc (environment::{get_pointer_type_id_map, |
| get_type_id_from_pointer, get_canonical_type_from_type_id}): |
| Define member functions. |
| (environment::priv::pointer_type_id_map_): Move |
| this data member here from ... |
| * src/abg-reader.cc (read_context::m_pointer_type_id_map): |
| ... here. |
| (read_context::get_pointer_type_id_map): Remove this as it's now |
| defined in environment::get_pointer_type_id_map. |
| (read_context::maybe_check_abixml_canonical_type_stability): |
| Adjust. |
| (build_type): Likewise. |
| |
| 2021-06-07 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: Enable setting breakpoint on first type inequality |
| * src/abg-ir.cc (notify_equality_failed): Define new static |
| function if WITH_DEBUG_SELF_COMPARISON is defined. |
| (ABG_RETURN_EQUAL, ABG_RETURN_FALSE, ABG_RETURN): Define new macros. |
| (try_canonical_compare): Use ABG_RETURN_EQUAL rather than just |
| returning the result of a comparison. |
| (equals): In all the overloads, use the new ABG_RETURN* macros, |
| rather than just returning boolean values. |
| |
| 2021-05-22 Dodji Seketeli <dodji@redhat.com> |
| |
| xml reader: Fix recursive qualified & reference type definition |
| * include/abg-ir.h (qualified_type_def::qualified_type_def): |
| Declare a constructor with no underlying type. |
| (reference_type_def::reference_type_def): Declare a constructor |
| with no pointed-to type. |
| (reference_type_def::set_pointed_to_type): Declare new method. |
| * src/abg-ir.cc (qualified_type_def::priv::priv): Define a |
| constructor that takes no underlying type. |
| (qualified_type_def::build_name): Make this work even on |
| incomplete types with no underlying type. In that case, this |
| behaves like if the underlying type is "void". |
| (qualified_type_def::qualified_type_def): Define a constructor |
| that takes no underlying type. |
| (qualified_type_def::get_size_in_bits): Make this work on |
| incomplete types with no underlying type. |
| (qualified_type_def::set_underlying_type): Adjust to properly |
| update this type when a new underlying type is set. Particularly, |
| its name and the lookup maps from the type scope. |
| (reference_type_def::reference_type_def): Define a constructor |
| that takes no pointed-to type. |
| (reference_type_def::set_pointed_to_type): Define new function. |
| * src/abg-reader.cc (build_qualified_type_decl): Construct the |
| qualified type early before we try to construct its underlying |
| type. Associate this incomplete type with the type-id. Then try |
| to construct the underlying type. During its construction, if |
| this incomplete qualified type is needed due to recursion then it |
| can be used, leading to just one qualified type being used as it |
| should be. |
| (build_reference_type_def): Likewise for building incomplete |
| reference type first before its pointed-to type. |
| |
| 2021-05-21 Dodji Seketeli <dodji@redhat.com> |
| |
| abixml reader: Fix recursive type definition handling |
| * include/abg-ir.h (pointer_type_def::pointer_type_def): Declare a |
| constructor with no pointed-to type. |
| (pointer_type_def::set_pointed_to_type): Declare new method. |
| (typedef_decl::typedef_decl): Declare a constructor with no |
| underlying type. |
| * src/abg-ir.cc (pointer_type_def::pointer_type_def): Define a |
| constructor with no pointed-to type. The pointed-to type can thus |
| later be set when it becomes available. |
| (pointer_type_def::set_pointed_to_type): Define new method. |
| (pointer_type_def::get_qualified_name): Make this work on a |
| pointer type that (momentarily) has no pointed-to type. |
| (typedef_decl::typedef_decl): Define a constructor with no |
| underlying type. |
| (typedef_decl::get_size_in_bits): Make this work on a typedef that |
| has (momentarily) no underlying type. |
| (typedef_decl::set_underlying_type): Update the size and alignment |
| of the typedef from its new underlying type. |
| * src/abg-reader.cc (build_pointer_type_def): Construct the |
| pointer type early /BEFORE/ we even try to construct its |
| pointed-to type. Associate this incomplete type with the type-id. |
| Then try to construct the pointed-to type. During the |
| construction of the pointed-to type, if this pointer is needed |
| (due to recursion) then the incomplete pointer type can be used, |
| leading to just one pointer type used (recursively) as it should |
| be. |
| (build_typedef_decl): Likewise for building typedef type early |
| without its underlying type so that it can used by the underlying |
| type if needed. |
| * tests/data/test-diff-pkg/graphviz-2.44.0-18.el9.aarch64-self-check-report-0.txt: |
| New test reference output. |
| * tests/data/test-diff-pkg/graphviz-2.44.0-18.el9.aarch64.rpm: New |
| binary test input. |
| * tests/data/test-diff-pkg/graphviz-debuginfo-2.44.0-18.el9.aarch64.rpm: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the test inputs above |
| to this test harness. |
| |
| 2021-05-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Introduce artificial locations |
| * include/abg-fwd.h (get_artificial_or_natural_location): Declare |
| new function. |
| * include/abg-ir.h (location::location): Initialize & copy ... |
| (location::is_artificial_): ... a new data member. |
| (location::{g,s}et_is_artificial): New accessors. |
| (location::{operator=}): Adjust. |
| (type_or_decl_base::{set,get,has}_artificial_location): Declare |
| new member functions. |
| * src/abg-ir.cc (decl_topo_comp::operator()): In the overload for |
| decl_base*, use artificial location for topological sort in |
| priority. Otherwise, use natural location. Otherwise, sort |
| lexicographically. |
| (type_topo_comp::operator()): In the overload for type_base*, use |
| lexicographical sort only for types that don't have location at |
| all. |
| (type_or_decl_base::priv::artificial_location_): Define new data |
| member. |
| (type_or_decl_base::{set,get,has}_artificial_location): Define new |
| member functions. |
| (decl_base::priv): Allow a constructor without location. That one |
| sets no natural location to the artifact. |
| (decl_base::decl_base): Use decl_base::set_location in the |
| constructor now. |
| (decl_base::set_location): Adjust this to support setting a |
| natural or an artificial location. |
| (get_debug_representation): Emit debugging log showing the |
| location of an artifact, using its artificial location in |
| priority. |
| (get_natural_or_artificial_location): Define new function. |
| * src/abg-reader.cc (read_artificial_location) |
| (maybe_set_artificial_location): Define new static functions. |
| (read_location): Read artificial location when no natural location |
| was found. |
| (build_namespace_decl, build_function_decl, build_type_decl) |
| (build_qualified_type_decl, build_pointer_type_def) |
| (build_reference_type_def, build_subrange_type) |
| (build_array_type_def, build_enum_type_decl, build_typedef_decl) |
| (build_class_decl, build_union_decl, build_function_tdecl) |
| (build_class_tdecl, build_type_tparameter) |
| (build_non_type_tparameter, build_template_tparameter): Read and |
| set artificial location. |
| * src/abg-writer.cc (write_location): Don't serialize artificial |
| locations. |
| (write_namespace_decl): Topologically sort member declarations |
| before serializing them. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Adjust. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Likewise. |
| * tests/data/test-annotate/libtest23.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test0.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-suppressed-alias.o.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Likewise. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Likewise. |
| |
| 2021-05-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Detect abixml canonical type instability during abidw --debug-abidiff |
| * include/abg-ir.h (environment::get_type_id_canonical_type_map): |
| Declare new data member. |
| * src/abg-ir.cc (environment::priv::type_id_canonical_type_map_): |
| Define new data member. |
| (environment::get_type_id_canonical_type_map): Define new method. |
| * include/abg-reader.h (load_canonical_type_ids): Declare new |
| function. |
| * src/abg-reader.cc (read_context::m_pointer_type_id_map): |
| Define new data member. |
| (read_context::{get_pointer_type_id_map, |
| maybe_check_abixml_canonical_type_stability}): Define new methods. |
| (read_context::{maybe_canonicalize_type, |
| perform_late_type_canonicalizing}): Invoke |
| maybe_perform_self_comparison_canonical_type_check after |
| canonicalization to perform canonicalization type stability |
| checking. |
| (build_type): Associate the pointer value for the newly built type |
| with the type id string identifying it in the abixml. Once the |
| abixml representation is dropped from memory and we are about to |
| perform type canonicalization, we can still know what the type id |
| of a given type coming from abixml was; it's thus possible to |
| verify that the canonical type associated to that type id is the |
| same as the one stored in the typeid file. |
| (read_type_id_string): Define new static function. |
| (load_canonical_type_ids): Define new function. |
| * include/abg-writer.h (write_canonical_type_ids): Likewise. |
| * src/abg-writer.cc (write_canonical_type_ids): Define new |
| function overloads. |
| * tools/abidw.cc (options::type_id_file_path): New data member. |
| (load_corpus_and_write_abixml): Write and read back the typeid |
| file. |
| |
| 2021-05-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Detect failed self comparison in type canonicalization of abixml |
| * doc/manuals/abidw.rst: Add documentation for the --debug-abidiff |
| option. |
| * include/abg-ir.h (environment::{set_self_comparison_debug_input, |
| get_self_comparison_debug_inputs, self_comparison_debug_is_on}): |
| Declare new methods. |
| * configure.ac: Define a new --enable-debug-self-comparison option |
| that is disabled by default. That option defines a new |
| WITH_DEBUG_SELF_COMPARISON preprocessor macro. |
| * src/abg-ir.cc |
| (environment::priv::{first_self_comparison_corpus_, |
| second_self_comparison_corpus_, self_comparison_debug_on_}): New |
| data members. Also, re-indent the data members. |
| (environment::{set_self_comparison_debug_input, |
| get_self_comparison_debug_inputs, self_comparison_debug_is_on}): |
| Define new method. |
| (type_base::get_canonical_type_for): In the "debug self comparison |
| mode", if a type coming from the second corpus compares different |
| from its counterpart coming from the first corpus then log a debug |
| message. |
| * src/abg-dwarf-reader.cc (read_debug_info_into_corpus): When |
| loading the first corpus, if the debug self comparison mode is on, |
| then save that corpus on the side in the environment. |
| * src/abg-reader.cc (read_corpus_from_input): When loading the |
| second corpus, if the debug self comparison mode is on, then save |
| that corpus on the side in the environment. |
| * tools/abidw.cc: Include the config.h file for preprocessor |
| macros defined at configure |
| (options::debug_abidiff): New data member. |
| (parse_command_line): Parse the --debug-abidiff option. |
| (load_corpus_and_write_abixml): Switch the self debug mode on when |
| the --debug-abidiff option is provided. Use a read_context for |
| the abixml loading. That is going to be useful for subsequent |
| patches. |
| |
| 2021-05-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Add primitives callable from the command line of the debugger |
| * include/abg-fwd.h (get_debug_representation, get_data_member) |
| (debug, debug_equals): Declare new functions. |
| * include/abg-ir.h (environment{get_canonical_types, |
| get_canonical_type}): Declare new member functions. |
| * src/abg-ir.cc (environment::{get_canonical_types, |
| get_canonical_type}): Define new member functions. |
| (get_debug_representation, get_data_member) |
| (debug, debug_equals): Define new functions. |
| |
| 2021-05-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Peel array types when peeling pointers from a type |
| * src/abg-ir.cc (peel_typedef_pointer_or_reference_type): In the |
| overloads for type_base_sptr and type_base*, peel array type off |
| as well. |
| |
| 2021-05-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix DWARF type DIE canonicalization |
| * src/abg-dwarf-reader.cc (compare_dies): When comparing array |
| type DIEs, take into account the type of the elements of the |
| arrays. |
| |
| 2021-05-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Miscellaneous indentation and comments cleanups |
| * src/abg-ir.cc (environment::priv::{config_, canonical_types_, |
| sorted_canonical_types_, void_type_, variadic_marker_type_}): |
| Re-indent these data members. |
| (peel_typedef_pointer_or_reference_type): Fix comment. |
| (var_decl::var_decl): Likewise. |
| (function_decl::function_decl): Add a comment. |
| * src/abg-reader.cc (handle_reference_type_def): Fix indentation |
| of parameters. |
| |
| 2021-05-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix thinko in configure.ac |
| * configure.ac: Fix a thinko I spotted while looking at something |
| else. |
| |
| 2021-04-19 Dodji Seketeli <dodji@redhat.com> |
| |
| reader: Use xmlFirstElementChild/xmlNextElementSibling to iterate over children elements |
| * src/abg-reader.cc (walk_xml_node_to_map_type_ids) |
| (read_translation_unit, read_translation_unit_from_input) |
| (read_symbol_db_from_input, build_needed) |
| (read_elf_needed_from_input, read_corpus_group_from_input) |
| (build_namespace_decl, build_elf_symbol_db, build_function_decl) |
| (build_function_type, build_array_type_def, build_enum_type_decl) |
| (build_class_decl, build_union_decl, build_function_tdecl) |
| (build_class_tdecl, build_type_composition) |
| (build_template_tparameter): Use |
| xmlFirstElementChild/xmlNextElementSibling rather than poking at |
| xmlNode::children and looping over xmlNode::next by hand. |
| |
| 2021-04-19 Dodji Seketeli <dodji@redhat.com> |
| |
| reader: Use xmlFirstElementChild and xmlNextElementSibling rather than xml::advance_to_next_sibling_element |
| * include/abg-libxml-utils.h (advance_to_next_sibling_element): |
| Remove the declaration of this function. |
| * src/abg-libxml-utils.cc (go_to_next_sibling_element_or_stay) |
| (advance_to_next_sibling_element): Remove definitions of these functions. |
| * src/abg-reader.cc (read_translation_unit_from_input) |
| (read_elf_needed_from_input, read_corpus_group_from_input): Use xmlNextElementSibling instead |
| of xml::advance_to_next_sibling_element. |
| (read_corpus_from_input): Likewise. Also, use |
| xmlFirstElementChild instead of |
| xml::advance_to_next_sibling_element on the xmlNode::children data |
| member. |
| (read_corpus_group_from_input): use xmlFirstElementChild instead |
| of xml::advance_to_next_sibling_element on the xmlNode::children |
| data member. |
| |
| 2021-04-14 Dodji Seketeli <dodji@redhat.com> |
| |
| reader: Handle 'abi-corpus' element being possibly empty |
| * src/abg-reader.cc (read_context::get_corpus_node): Add comment |
| to this member function. |
| (read_translation_unit_from_input, read_symbol_db_from_input) |
| (read_elf_needed_from_input): Start processing the current node of |
| the corpus that needs to be processed rather than its next |
| sibling. Once the processing is done, set the new "current node |
| of the corpus to be processed" properly by skipping to the next |
| element node to be processed. |
| (read_corpus_from_input): Don't get out early when the |
| 'abi-corpus' element is empty. If, however, it has children node, |
| skip to the first child element and flag it -- using |
| read_context::set_corpus_node -- as being the element node to be |
| processed by the processing facilities of the reader. If we are |
| in a mode where we called xmlTextReaderExpand ourselves to get the |
| node to process, then it means we need to free that node |
| indirectly by calling xmlTextReaderNext. In that case, that node |
| should not be flagged by read_context::set_corpus_node. Add more |
| comments. |
| * src/abg-corpus.cc (corpus::is_empty): Do not crash when no |
| symtab is around. |
| * src/abg-libxml-utils.cc (go_to_next_sibling_element_or_stay): |
| Fix typo in comment. |
| (advance_to_next_sibling_element): Don't crash when given a nil |
| node. |
| * tests/data/test-abidiff/test-PR27616-squished-v0.abi: Add new |
| test input. |
| * tests/data/test-abidiff/test-PR27616-squished-v1.abi: Likewise. |
| * tests/data/test-abidiff/test-PR27616-v0.xml: Likewise. |
| * tests/data/test-abidiff/test-PR27616-v1.xml: Likewise. |
| * tests/data/Makefile.am: Add the new test inputs above to source |
| distribution. |
| * tests/test-abidiff.cc (specs): Add the new tests inputs above to |
| this harness. |
| * tools/abilint.cc (main): Support writing corpus groups. |
| |
| 2021-04-13 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: properly set artificial-ness in opaque types |
| * src/abg-dwarf-reader.cc (get_opaque_version_of_type): Propagate |
| the artificial-ness of the original type here. |
| * tests/data/test-read-dwarf/PR27700/test-PR27700.abi: Adjust. |
| |
| 2021-04-12 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: Canonicalize opaque enums and classes |
| * src/abg-dwarf-reader.cc (build_ir_node_from_die): Canonicalize |
| opaque enums and classes. |
| * tests/data/test-read-dwarf/PR27700/include-dir/priv.h: New test |
| header file. |
| * tests/data/test-read-dwarf/PR27700/include-dir/pub.h: Likewise |
| * tests/data/test-read-dwarf/PR27700/pub-incdir/inc.h: Likewise. |
| * tests/data/test-read-dwarf/PR27700/test-PR27700.o: New binary |
| input file. |
| * tests/data/test-read-dwarf/PR27700/test-PR27700.abi: Reference |
| abi file of the binary above. |
| * tests/data/test-read-dwarf/PR27700/test-PR27700.c: Source file |
| of the binary above. |
| * tests/data/Makefile.am: Add the test material above to source |
| distribution. |
| * tests/test-read-dwarf.cc (InOutSpec::in_public_headers_path): |
| Add new data member. |
| (in_out_specs): Adjust to reflect the new data member in the |
| InOutSpec type. Add a new test input. |
| (set_suppressions_from_headers): Define new static function. |
| (test_task::perform): Use the content of the new |
| InOutSpec::in_public_headers_path to construct and add |
| "--headers-dir <headers-dir> --drop-private-types" to the options |
| of the abidw program run. |
| |
| 2020-07-01 Matthias Maennich <maennich@google.com> |
| |
| symtab: Add support for MODVERSIONS (CRC checksums) |
| * include/abg-ir.h (elf_symbol::elf_symbol): Add CRC parameter. |
| (elf_symbol::create): Likewise. |
| (elf_symbol::get_crc): New member method. |
| (elf_symbol::set_crc): New member method. |
| * src/abg-comp-filter.cc (crc_changed): New function. |
| (categorize_harmful_diff_node): Also test for CRC changes. |
| * src/abg-ir.cc (elf_symbol::priv::crc_): New data member. |
| * src/abg-ir.cc (elf_symbol::priv::priv): Add CRC parameter. |
| (elf_symbol::elf_symbol): Likewise. |
| (elf_symbol::create): Likewise. |
| (elf_symbol::textually_equals): Add CRC support. |
| (elf_symbol::get_crc): New member method. |
| (elf_symbol::set_crc): New member method. |
| * src/abg-reader.cc (build_elf_symbol): Add CRC support. |
| * src/abg-reporter-priv.cc (maybe_report_diff_for_symbol): Likewise. |
| * src/abg-symtab-reader.cc (symtab::load): Likewise. |
| * src/abg-writer.cc (write_elf_symbol): Likewise. |
| * tests/data/Makefile.am: Add new test data files. |
| * tests/data/test-abidiff-exit/test-crc-report.txt: New test file. |
| * tests/data/test-abidiff-exit/test-crc-v0.abi: Likewise. |
| * tests/data/test-abidiff-exit/test-crc-v1.abi: Likewise. |
| * tests/data/test-abidiff/empty-report.txt: New file. |
| * tests/data/test-abidiff/test-PR18166-libtirpc.so.report.txt: Deleted. |
| * tests/data/test-abidiff/test-PR24552-report0.txt: Deleted. |
| * tests/data/test-abidiff/test-crc-0.xml: New test file. |
| * tests/data/test-abidiff/test-crc-1.xml: Likewise. |
| * tests/data/test-abidiff/test-crc-2.xml: Likewise. |
| * tests/data/test-abidiff/test-crc-report.txt: Likewise. |
| * tests/data/test-abidiff/test-empty-corpus-report.txt: Deleted. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Add CRC values. |
| * tests/data/test-read-write/test-crc.xml: New test data file. |
| * tests/data/test-symtab/kernel-modversions/Makefile: New test source. |
| * tests/data/test-symtab/kernel-modversions/one_of_each.c: Likewise. |
| * tests/data/test-symtab/kernel-modversions/one_of_each.ko: Likewise. |
| * tests/test-abidiff-exit.cc: Add new test case. |
| * tests/test-abidiff.cc: Add new test case. |
| * tests/test-read-write.cc: Likewise. |
| * tests/test-symtab.cc (Symtab::KernelSymtabsWithCRC): New test case. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-10-15 Giuliano Procida <gprocida@google.com> |
| |
| abg-writer.cc: fix write_elf_symbol_reference loop |
| * src/abg-writer.cc (write_elf_symbol_reference): Check main |
| symbol and aliases with more care. |
| Fixes: commmit ("dwarf-reader/writer: consider aliases when dealing with suppressions") |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-06-28 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader/writer: consider aliases when dealing with suppressions |
| * src/abg-dwarf-reader.cc(function_is_suppressed): Do not suppress |
| a function for which there is an alias that is not suppressed. |
| (variable_is_suppressed): Likewise for variables. |
| * src/abg-reader.cc (build_elf_symbol): Improve handling of |
| suppressed aliased symbols when reading from XML. |
| * src/abg-symtab-reader.cc (load): Likewise. |
| * src/abg-writer.cc(write_elf_symbol_reference): Fall back to |
| any aliased symbol if the main symbol is suppressed. |
| * tests/data/Makefile.am: Add new test files. |
| * tests/data/test-abidiff-exit/test-missing-alias-report.txt: New test file. |
| * tests/data/test-abidiff-exit/test-missing-alias.abi: Likewise. |
| * tests/data/test-abidiff-exit/test-missing-alias.suppr: Likewise. |
| * tests/test-abidiff-exit.cc: Add support for whitelists and add |
| new testcase. |
| * tests/data/test-read-dwarf/test-suppressed-alias.c: New test file. |
| * tests/data/test-read-dwarf/test-suppressed-alias.o: Likewise. |
| * tests/data/test-read-dwarf/test-suppressed-alias.o.abi: Likewise. |
| * tests/data/test-read-dwarf/test-suppressed-alias.suppr: Likewise. |
| * tests/data/test-read-dwarf/test3-alias-1.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test3-alias-1.suppr: Likewise. |
| * tests/data/test-read-dwarf/test3-alias-2.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test3-alias-2.suppr: Likewise. |
| * tests/data/test-read-dwarf/test3-alias-3.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test3-alias-3.suppr: Likewise. |
| * tests/data/test-read-dwarf/test3-alias-4.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test3-alias-4.suppr: Likewise. |
| * tests/test-read-dwarf.cc: Add new test cases. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-06-30 Matthias Maennich <maennich@google.com> |
| |
| symtab/dwarf-reader: allow hinting of main symbols for aliases |
| * include/abg-ir.h (elf_symbol::update_main_symbol): New method. |
| * include/abg-symtab-reader.h (symtab::update_main_symbol): New method. |
| * src/abg-dwarf-reader.cc |
| (build_var_decl): Hint symtab about main symbol discovered in DWARF. |
| (build_function_decl): Likewise. |
| * src/abg-ir.cc (elf_symbol::get_main_symbol): Lock the weak_ptr |
| on access in both overloads. |
| (update_main_symbol): New method to allow updating the main symbol. |
| * src/abg-symtab-reader.cc (symtab::update_main_symbol): New method. |
| * data/Makefile.am: Add new test data files. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Updated test file. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-annotate/test2.so.abi: Likewise. |
| * tests/data/test-annotate/test3.so.abi: Likewise. |
| * tests/data/test-diff-dwarf/test12-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise. |
| * 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. |
| * 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. |
| * tests/data/test-diff-suppr/test23-alias-filter-4.suppr: Likewise. |
| * tests/data/test-diff-suppr/test23-alias-filter-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test23-alias-filter-report-2.txt: Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test2.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test2.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test3.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test3.so.hash.abi: Likewise. |
| * tests/data/test-symtab/basic/aliases.c: New test source file. |
| * tests/data/test-symtab/basic/aliases.so: Likewise. |
| * tests/test-symtab.cc (Symtab::AliasedFunctionSymbols): New test case. |
| (Symtab::AliasedVariableSymbols): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-06-29 Matthias Maennich <maennich@google.com> |
| |
| test-symtab: add tests for whitelisted functions |
| * tests/data/Makefile.am: add new test files |
| * tests/data/test-symtab/basic/one_function_one_variable_all.whitelist: New test file, |
| * tests/data/test-symtab/basic/one_function_one_variable_function.whitelist: Likewise. |
| * tests/data/test-symtab/basic/one_function_one_variable_irrelevant.whitelist: Likewise. |
| * tests/data/test-symtab/basic/one_function_one_variable_variable.whitelist: Likewise. |
| * tests/test-symtab.cc (read_corpus): Add support for whitelists. |
| (assert_symbol_count): Likewise. |
| (Symtab::SymtabWithWhitelist): New testcase. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-06-02 Matthias Maennich <maennich@google.com> |
| |
| dwarf reader: drop (now) unused code related to symbol table reading |
| * include/abg-dwarf-reader.h (set_ignore_symbol_table): Remove. |
| (get_ignore_symbol_table): Likewise. |
| * src/abg-dwarf-reader.cc (add_symbol_to_map): Likewise. |
| (read_context::options_type::ignore_symbol_table): Likewise. |
| (read_context::options_type): Adjust. |
| (read_context::fun_addr_sym_map_): Remove. |
| (read_context::fun_entry_addr_sym_map_): Likewise. |
| (read_context::fun_syms_): Likewise. |
| (read_context::var_addr_sym_map_): Likewise. |
| (read_context::var_syms_): Likewise. |
| (read_context::undefined_fun_syms_): Likewise. |
| (read_context::undefined_var_syms_): Likewise. |
| (read_context::initialize): Adjust. |
| (read_context::lookup_elf_symbol_from_index): Remove. |
| (read_context::fun_entry_addr_sym_map_sptr): Likewise. |
| (read_context::fun_entry_addr_sym_map): Likewise. |
| (read_context::fun_syms_sptr): Likewise. |
| (read_context::fun_syms): Likewise. |
| (read_context::var_syms_sptr): Likewise. |
| (read_context::var_syms): Likewise. |
| (read_context::undefined_fun_syms_sptr): Likewise. |
| (read_context::undefined_var_syms_sptr): Likewise. |
| (read_context::load_symbol_maps_from_symtab_section): Likewise. |
| (read_context::load_symbol_maps): Likewise. |
| (read_context::maybe_load_symbol_maps): Likewise. |
| (set_ignore_symbol_table): Likewise. |
| (get_ignore_symbol_table): Likewise. |
| (create_default_var_sym): Likewise. |
| (build_var_decl): Adjust. |
| (function_is_suppressed): Likewise. |
| (variable_is_suppressed): Likewise. |
| (build_function_decl): Likewise. |
| (add_symbol_to_map): Remove. |
| (read_corpus_from_elf): Adjust. |
| (build_corpus_group_from_kernel_dist_under): Likewise. |
| * tools/abidw.cc (main): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-05-21 Matthias Maennich <maennich@google.com> |
| |
| abg-corpus: remove symbol maps and their setters |
| * include/abg-corpus.h (corpus::set_fun_symbol_map): Remove |
| method declaration. |
| (corpus::set_undefined_fun_symbol_map): Likewise. |
| (corpus::set_var_symbol_map): Likewise. |
| (corpus::set_undefined_var_symbol_map): Likewise. |
| (corpus::get_fun_symbol_map_sptr): Likewise. |
| (corpus::get_undefined_fun_symbol_map_sptr): Likewise. |
| (corpus::get_var_symbol_map_sptr): Likewise. |
| (corpus::get_undefined_var_symbol_map_sptr): Likewise. |
| * src/abg-corpus-priv.h (corpus::priv::var_symbol_map): make |
| private and mutable |
| (corpus::priv::undefined_var_symbol_map): Likewise. |
| (corpus::priv::fun_symbol_map): Likewise. |
| (corpus::priv::undefined_fun_symbol_map): Likewise. |
| (corpus::priv::get_fun_symbol_map): New method declaration. |
| (corpus::priv::get_undefined_fun_symbol_map): Likewise. |
| (corpus::priv::get_var_symbol_map): Likewise. |
| (corpus::priv::get_undefined_var_symbol_map): Likewise. |
| * src/abg-corpus.cc (corpus::priv::get_fun_symbol_map): New |
| method implementation. |
| (corpus::priv::get_undefined_fun_symbol_map): Likewise. |
| (corpus::priv::get_var_symbol_map): Likewise. |
| (corpus::priv::get_undefined_var_symbol_map): Likewise. |
| (corpus::is_empty): depend on symtab only. |
| (corpus::set_fun_symbol_map): Remove method. |
| (corpus::set_undefined_fun_symbol_map): Likewise. |
| (corpus::set_var_symbol_map): Likewise. |
| (corpus::set_undefined_var_symbol_map): Likewise. |
| (corpus::get_fun_symbol_map_sptr): Likewise. |
| (corpus::get_undefined_fun_symbol_map_sptr): Likewise. |
| (corpus::get_var_symbol_map_sptr): Likewise. |
| (corpus::get_undefined_var_symbol_map_sptr): Likewise. |
| (corpus::get_fun_symbol_map): Use corpus::priv proxy method. |
| (corpus::get_undefined_fun_symbol_map): Likewise. |
| (corpus::get_var_symbol_map): Likewise. |
| (corpus::get_undefined_var_symbol_map): Likewise. |
| * src/abg-dwarf-reader.cc (read_debug_info_into_corpus): Do not |
| set corpus symbol maps anymore. |
| * src/abg-reader.cc (read_corpus_from_input): Likewise. |
| * tests/test-symtab.cc (assert_symbol_count): Do not access the |
| corpus symbol maps through sptr anymore. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Adjust |
| expected test output. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-05-14 Matthias Maennich <maennich@google.com> |
| |
| symtab_reader: add support for ppc64 ELFv1 binaries |
| * src/abg-symtab-reader.cc (symtab::lookup_symbol): fall back to |
| lookup the address in entry_addr_symbol_map_. |
| (symtab::load): update the function entry address map for |
| ppc64 targets. |
| (symtab::update_function_entry_address_symbol_map): New |
| function implementation. |
| * src/abg-symtab-reader.h |
| (symtab::entry_addr_symbol_map_): New data member. |
| (symtab::update_function_entry_address_symbol_map): New |
| function declaration. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-05-12 Matthias Maennich <maennich@google.com> |
| |
| abg-elf-helpers: migrate ppc64 specific helpers |
| * src/abg-dwarf-reader.cc (read_context::opd_section_): Delete. |
| (read_context::find_opd_section): Delete. |
| (read_context::read_uint64_from_array_of_bytes): Delete. |
| (read_context::read_int_from_array_of_bytes): Delete. |
| (read_context::lookup_ppc64_elf_fn_entry_point_address): Delete. |
| (read_context::address_is_in_opd_section): Delete. |
| (read_context::address_is_in_section): Delete. |
| (read_context::load_symbol_maps_from_symtab_section): Adjust. |
| * src/abg-elf-helpers.cc (read_int_from_array_of_bytes): New. |
| (read_uint64_from_array_of_bytes): New. |
| (lookup_ppc64_elf_fn_entry_point_address): New. |
| (address_is_in_section): New. |
| (address_is_in_opd_section): New. |
| * src/abg-elf-helpers.h |
| (lookup_ppc64_elf_fn_entry_point_address): New declaration. |
| (address_is_in_opd_section): New declaration. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-05-06 Matthias Maennich <maennich@google.com> |
| |
| Switch kernel stuff over to new symtab and drop unused code |
| * src/abg-dwarf-reader.cc (read_context::ksymtab_format_): Delete. |
| (read_context::ksymtab_entry_size_): Likewise. |
| (read_context::nb_ksymtab_entries_): Likewise. |
| (read_context::nb_ksymtab_gpl_entries_): Likewise. |
| (read_context::ksymtab_section_): Likewise. |
| (read_context::ksymtab_reloc_section_): Likewise. |
| (read_context::ksymtab_gpl_section_): Likewise. |
| (read_context::ksymtab_gpl_reloc_section_): Likewise. |
| (read_context::ksymtab_strings_section_): Likewise. |
| (read_context::linux_exported_fn_syms): Likewise. |
| (read_context::linux_exported_var_syms): Likewise. |
| (read_context::linux_exported_gpl_fn_syms): Likewise. |
| (read_context::linux_exported_gpl_var_syms): Likewise. |
| (read_context::initialize): Remove initializations accordingly. |
| (read_context::find_ksymtab_section): Delete. |
| (read_context::find_ksymtab_gpl_section): Likewise. |
| (read_context::find_ksymtab_reloc_section): Likewise. |
| (read_context::find_ksymtab_gpl_reloc_section): Likewise. |
| (read_context::find_ksymtab_strings_section): Likewise. |
| (read_context::find_any_ksymtab_section): Likewise. |
| (read_context::find_any_ksymtab_reloc_section): Likewise. |
| (read_context::lookup_elf_symbol_from_index): Adjust. |
| (read_context::linux_exported_fn_syms): Delete. |
| (read_context::create_or_get_linux_exported_fn_syms): Likewise. |
| (read_context::linux_exported_var_syms): Likewise. |
| (read_context::create_or_get_linux_exported_var_syms): Likewise. |
| (read_context::linux_exported_gpl_fn_syms): Delete. |
| (read_context::create_or_get_linux_exported_gpl_fn_syms): Likewise. |
| (read_context::linux_exported_gpl_var_syms): Likewise. |
| (read_context::create_or_get_linux_exported_gpl_var_syms): Likewise. |
| (read_context::try_reading_first_ksymtab_entry): Likewise. |
| (read_context::try_reading_first_ksymtab_entry_using_pre_v4_19_format): Likewise. |
| (read_context::try_reading_first_ksymtab_entry_using_v4_19_format): Likewise. |
| (read_context::get_ksymtab_format_module): Likewise. |
| (read_context::get_ksymtab_format): Likewise. |
| (read_context::get_ksymtab_symbol_value_size): Likewise. |
| (read_context::get_ksymtab_entry_size): Likewise. |
| (read_context::get_nb_ksymtab_entries): Likewise. |
| (read_context::get_nb_ksymtab_gpl_entries): Likewise. |
| (read_context::populate_symbol_map_from_ksymtab): Likewise. |
| (read_context::populate_symbol_map_from_ksymtab_reloc): Likewise. |
| (read_context::load_kernel_symbol_table): Likewise. |
| (read_context::load_ksymtab_symbols): Likewise. |
| (read_context::load_ksymtab_gpl_symbols): Likewise. |
| (read_context::load_linux_specific_exported_symbol_maps): Likewise. |
| (read_context::load_symbol_maps): Do not load kernel symbol maps. |
| (read_context::maybe_adjust_sym_address_from_v4_19_ksymtab): Delete. |
| (read_context::add_fn_symbols_to_map): Likewise. |
| (read_context::add_var_symbols_to_map): Likewise. |
| (read_context::read_debug_info_into_corpus): Fill export maps |
| from new symtab. |
| (read_context::lookup_elf_fn_symbol_from_address): Delete. |
| (read_context::lookup_elf_var_symbol_from_address): Likewise. |
| (read_context::lookup_elf_symbol_from_address): Likewise. |
| (read_context::lookup_public_function_symbol_from_elf): Likewise. |
| (read_context::fun_entry_addr_sym_map_sptr): Likewise. |
| (read_context::fun_entry_addr_sym_map): Likewise. |
| (read_context::var_addr_sym_map): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-05-06 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: read_context: use new symtab in *_symbols_is_exported |
| * src/abg-dwarf-reader.cc (function_symbol_is_exported): Use new |
| symtab implementation. |
| (variable_symbol_is_exported): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-05-04 Matthias Maennich <maennich@google.com> |
| |
| abg-reader: avoid using the (var|function)_symbol_map |
| * src/abg-reader.cc (build_elf_symbol_from_reference): drop |
| last parameter indicating the lookup type and use corpus |
| symtab for the lookup |
| (build_function_decl): Adjust accordingly. |
| (build_var_decl): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-05-04 Matthias Maennich <maennich@google.com> |
| |
| corpus: make get_unreferenced_(function|variable)_symbols use the new symtab |
| * src/abg-corpus-priv.h (corpus::priv::unrefed_var_symbols): make |
| private, mutable and optional. |
| (corpus::unrefed_fun_symbols): Likewise. |
| (corpus::priv::get_unreferenced_function_symbols): New method declaration. |
| (corpus::priv::get_unreferenced_variable_symbols): Likewise. |
| * src/abg-corpus.cc |
| (corpus::priv::build_unreferenced_symbols_tables): Delete method. |
| (corpus::priv::get_unreferenced_function_symbols): New method implementation. |
| (corpus::priv::get_unreferenced_variable_symbols): Likewise. |
| (corpus::get_unreferenced_function_symbols): Proxy call to corpus::priv. |
| (corpus::get_unreferenced_variable_symbols): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-04-30 Matthias Maennich <maennich@google.com> |
| |
| corpus: make get_(undefined_)?_(var|fun)_symbols use the new symtab |
| * src/abg-corpus-priv.h (corpus::priv::sorted_var_symbols): make |
| private, mutable and optional. |
| (corpus::sorted_undefined_var_symbols): Likewise. |
| (corpus::sorted_fun_symbols): Likewise. |
| (corpus::sorted_undefined_fun_symbols): Likewise. |
| (corpus::priv::get_sorted_fun_symbols): New method declaration. |
| (corpus::priv::get_sorted_undefined_fun_symbols): Likewise. |
| (corpus::priv::get_sorted_var_symbols): Likewise. |
| (corpus::priv::get_sorted_undefined_var_symbols): Likewise. |
| * src/abg-corpus.cc |
| (corpus::elf_symbol_comp_functor): Delete struct. |
| (corpus::priv::get_sorted_fun_symbols): New method implementation. |
| (corpus::priv::get_sorted_undefined_fun_symbols): Likewise. |
| (corpus::priv::get_sorted_var_symbols): Likewise. |
| (corpus::priv::get_sorted_undefined_var_symbols): Likewise. |
| (corpus::get_sorted_fun_symbols): Proxy call to corpus::priv. |
| (corpus::get_sorted_undefined_fun_symbols): Likewise. |
| (corpus::get_sorted_var_symbols): Likewise. |
| (corpus::get_sorted_undefined_var_symbols): Likewise. |
| * src/abg-writer.cc (write_elf_symbol_aliases): When emitting |
| aliases for a kernel symbol, ensure to only emit exported, |
| public aliases. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: update test |
| data. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-05-19 Matthias Maennich <maennich@google.com> |
| |
| Integrate new symtab reader into corpus and read_context |
| * include/abg-corpus.h (corpus::set_symtab): New method declaration. |
| (corpus::get_symtab): New method declaration. |
| * include/abg-fwd.h (symtab_reader::symtab_sptr): New forward |
| declaration. |
| * src/abg-corpus-priv.h (corpus::priv::symtab_): New data member. |
| * src/abg-corpus.cc |
| (corpus::set_symtab): Likewise. |
| (corpus::get_symtab): Likewise. |
| * src/abg-dwarf-reader.cc (read_context::symtab_): New data member. |
| (read_context::initialize): reset symtab_ as well |
| (read_context::symtab): new method that loads a symtab on |
| first access and returns it. |
| (read_debug_info_into_corpus): also set the new symtab object |
| on the current corpus. |
| (read_corpus_from_elf): Also determine (i.e. load) the new |
| symtab object and contribute to the load status. |
| * src/abg-reader.cc (read_corpus_from_input): also set the new |
| type symtab when reading from xml. |
| * tests/test-symtab.cc: Add test assertions. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-04-29 Matthias Maennich <maennich@google.com> |
| |
| Refactor ELF symbol table reading by adding a new symtab reader |
| * src/abg-symtab-reader.h (symtab_filter): New class. |
| (symtab_iterator): Likewise. |
| (symtab): Likewise. |
| (filtered_symtab): Likewise. |
| * src/abg-symtab-reader.cc (symtab_filter::matches): New. |
| (symtab::make_filter): Likewise. |
| (symtab::lookup_symbol): Likewise. |
| (symbol_sort): Likewise. |
| (symtab::load): Likewise. |
| (symtab::load_): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2021-03-29 Matthias Maennich <maennich@google.com> |
| |
| clang-format: Minor correction to not break parameters on the first line |
| * .clang-format: correct function parameter break/indentation |
| |
| 2021-03-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27598 - abidiff mishandles union member functions |
| * src/abg-default-reporter.cc (default_reporter::report): Assume |
| the parent type of the method can be either a class or a union. |
| * tests/data/test-diff-filter/test-PR27598-report-0.txt: New |
| reference output for the test. |
| * tests/data/test-diff-filter/test-PR27598-v{0,1}.cc: New source |
| code for the input binaries below. |
| * tests/data/test-diff-filter/test-PR27598-v{0,1}.o: New input |
| test binaries. |
| * tests/data/Makefile.am: Add the new test material to source |
| distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the test inputs |
| above to this test harness. |
| |
| 2021-03-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27569 - abidiff misses a function parameter addition |
| * include/abg-comparison.h (enum diff_category): Add a new |
| FN_PARM_ADD_REMOVE_CHANGE_CATEGORY enumerator and adjust the |
| following enumerator values. Update the EVERYTHING_CATEGORY |
| accordingly. |
| (function_type_diff::{sorted_deleted_parms, sorted_added_parms}): |
| Add new member functions. |
| * src/abg-comparison.cc |
| (function_type_diff::{sorted_deleted_parms, sorted_added_parms}): |
| Define new accessors. |
| (get_default_harmful_categories_bitmap): |
| Consider changes of the category |
| FN_PARM_ADD_REMOVE_CHANGE_CATEGORY as harmful. |
| (operator<<(ostream& o, diff_category c)): Support the new |
| FN_PARM_ADD_REMOVE_CHANGE_CATEGORY while serializing a category |
| bitmap. |
| * src/abg-comp-filter.cc |
| (has_added_or_removed_function_parameters): Define new static |
| function. |
| (categorize_harmful_diff_node): Categorize diff nodes representing |
| function parameter addition or removal as |
| FN_PARM_ADD_REMOVE_CHANGE_CATEGORY. |
| * tests/data/test-diff-filter/test-PR27569-report-0.txt: New test |
| reference output. |
| * tests/data/test-diff-filter/test-PR27569-v{0,1}.abi: New test inputs. |
| * tests/data/Makefile.am: Add the new test inputs to the source |
| distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the new test |
| inputs to this test harness. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: |
| Adjust. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: |
| Likewise. |
| * 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. |
| * 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. |
| * 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. |
| |
| 2021-03-15 Giuliano Procida <gprocida@google.com> |
| |
| dwarf-reader: Treat union members as public by default. |
| * src/abg-dwarf-reader.cc (add_or_update_union_type): Replace |
| "class" with "union" in comments; give union members public |
| access by default. |
| (finish_member_function_reading): Give union members public access |
| by default. |
| (maybe_set_member_type_access_specifier): Give union members |
| public access by default. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Refresh. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Refresh. |
| * tests/data/test-annotate/test-anonymous-members-0.o.abi: |
| Refresh. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Refresh. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Refresh. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Refresh. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Refresh. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Refresh. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Refresh. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Refresh. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Refresh. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: |
| Refresh. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Refresh. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Refresh. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Refresh. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Refresh. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: |
| Refresh. |
| * tests/data/test-read-dwarf/test-PR26568-1.o.abi: Refresh. |
| * tests/data/test-read-dwarf/test-PR26568-2.o.abi: Refresh. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Refresh. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: |
| Refresh. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Refresh. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Refresh. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Refresh. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Refresh. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Refresh. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Refresh. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Refresh. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Refresh. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Refresh. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Refresh. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Refresh. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Refresh. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: |
| Refresh. |
| |
| 2021-03-12 Ben Woodard via Libabigail <libabigail@sourceware.org> |
| |
| Bug 27512 - Remove broken zip-archive support |
| * configure.ac: remove --enable-zip-archive option and logic |
| associated with it. |
| * include/abg-libzip-utils.h: Remove. |
| * src/abg-libzip-utils.cc: Likewise. |
| * include/Makefile.am: remove reference to include/abg-libzip-utils.h |
| that no longer exists. |
| * src/Makefile.am: remove reference to src/abg-libzip-utils.cc that no |
| longer exists. |
| * relicensing-scripts/file-licenses.orig.txt: remove references to |
| files that no longer exist. |
| * relicensing-scripts/files-with-lgplv3.txt: remove references to |
| files that no longer exist. |
| * tests/test-write-read-archive.cc: Remove because it tests code |
| that no longer exists. |
| * tests/Makefile.am: remove reference to tests that no longer exist. |
| * include/abg-reader.h: remove conditionally compiled code for zip |
| archives. |
| * include/abg-tools-utils.h: remove conditionally compiled code for |
| zip archives. |
| * src/abg-corpus.cc: remove conditionally compiled code for zip |
| archives. |
| * src/abg-reader.cc: remove conditionally compiled code for zip |
| archives. |
| * src/abg-tools-utils.cc: remove conditionally compiled code for zip |
| archives. |
| * src/abg-writer.cc: remove conditionally compiled code for zip |
| archives. |
| * tools/abidiff.cc: remove conditionally compiled code for zip |
| archives. |
| * tools/abilint.cc: remove conditionally compiled code for zip |
| archives. |
| * tools/abiar.c: Remove. |
| * tools/Makefile.am: remove references to abiar a utility that no |
| longer has a reason for existing. |
| |
| 2021-03-18 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: Support more DWARF-5 type DIEs |
| * src/abg-dwarf-reader.cc (is_type_tag): Support |
| DW_TAG_coarray_type, DW_TAG_atomic_type and DW_TAG_immutable_type. |
| * tests/data/test-diff-pkg/elfutils-debuginfo-0.183-1.el9.x86_64.rpm: |
| Add new binary test input. |
| * tests/data/test-diff-pkg/elfutils-libs-debuginfo-0.183-1.el9.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/elfutils-libs-0.183-1.el9.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/elfutils-libs-debuginfo-0.183-1.el9.x86_64-self-check-report-0.txt: |
| Add new reference test output. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the test inputs above |
| to the harness. |
| |
| 2021-03-10 Giuliano Procida <gprocida@google.com> |
| |
| DWARF reader: Comment ARM32 ELF address interpretation |
| * src/abg-dwarf-reader.cc |
| (read_context::load_symbol_maps_from_symtab_section): Add |
| descriptive comment to ARM32 address handling; shorten |
| the assignment using &=. |
| |
| 2021-01-27 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader split: create abg-symtab-reader.{h,cc} and test case |
| * src/abg-symtab-reader.h: New header file. |
| * src/abg-symtab-reader.cc: New source file. |
| * src/Makefile.am: Add new source files. |
| * tests/Makefile.am: Add new test case runtestsymtabreader. |
| * tests/test-symtab-reader.cc: New test source file. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2021-03-09 Giuliano Procida <gprocida@google.com> |
| |
| DWARF reader: Interpret ARM32 ELF addresses correctly |
| * src/abg-dwarf-reader.cc |
| (read_context::load_symbol_maps_from_symtab_section): Clear |
| bit zero of ARM32 function addresses. |
| * src/abg-elf-helpers.cc (architecture_is_arm32): Add new |
| function. |
| * src/abg-elf-helpers.h (architecture_is_arm32): Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Update. |
| |
| 2021-01-27 Matthias Maennich <maennich@google.com> |
| |
| abg-ir: elf_symbol: add is_suppressed field |
| * include/abg-ir.h (elf_symbol::elf_symbol): Add is_suppressed |
| parameter. |
| (elf_symbol::create): Likewise. |
| (elf_symbol::is_suppressed): New getter declaration. |
| (elf_symbol::set_is_suppressed): New setter declaration. |
| * src/abg-ir.cc (elf_symbol::priv::priv): Add is_suppressed |
| parameter. |
| (elf_symbol::priv::is_suppressed_): New field. |
| (elf_symbol::elf_symbol): Add is_suppressed parameter. |
| (elf_symbol::create): Likewise. |
| (elf_symbol::is_suppressed): New getter implementation. |
| (elf_symbol::set_is_suppressed): New setter implementation. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2021-01-27 Matthias Maennich <maennich@google.com> |
| |
| abg-ir: elf_symbol: add is_in_ksymtab field |
| * include/abg-ir.h (elf_symbol::elf_symbol): Add is_in_ksymtab |
| parameter. |
| (elf_symbol::create): Likewise. |
| (elf_symbol::is_in_ksymtab): New getter declaration. |
| (elf_symbol::set_is_in_ksymtab): New setter declaration. |
| * src/abg-ir.cc (elf_symbol::priv::priv): Add is_in_ksymtab |
| parameter. |
| (elf_symbol::priv::is_in_ksymtab_): New field. |
| (elf_symbol::elf_symbol): Add is_in_ksymtab parameter. |
| (elf_symbol::create): Likewise. |
| (elf_symbol::is_in_ksymtab): New getter implementation. |
| (elf_symbol::set_is_in_ksymtab): New setter implementation. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2021-01-27 Matthias Maennich <maennich@google.com> |
| |
| abg-cxx-compat: add simplified version of std::optional |
| * include/abg-cxx-compat.h (abg_compat::optional): Add new class. |
| * tests/tests-cxx-compat.cc: Add new test cases. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2021-03-02 Ben Woodard via Libabigail <libabigail@sourceware.org> |
| |
| Fix declaratons of conditionally defined functions |
| * include/abg-reader.h (read_corpus_from_file): Guard the |
| declaration of these overloads with #ifdef WITH_ZIP_ARCHIVE. |
| * tools/abilint.cc: Guard the use of |
| abigail::xml_reader::read_corpus_from_file with #ifdef |
| WITH_ZIP_ARCHIVE. |
| |
| 2021-03-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Revert "Fix declaratons of conditionally defined functions" |
| * include/abg-reader.h: |
| * tools/abilint.cc: |
| |
| 2021-03-02 Ben Woodard via Libabigail <libabigail@sourceware.org> |
| |
| Fix declaratons of conditionally defined functions |
| * include/abg-reader.h: |
| * tools/abilint.cc: |
| |
| 2021-03-08 Dodji Seketeli <dodji@redhat.com> |
| |
| tests/catch.hpp: Add SPDX header back |
| * tests/lib/catch.hpp: Add SPDX header back. |
| |
| 2021-02-25 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: Keep stable order when de-duplicating class definitions |
| * src/abg-dwarf-reader.cc |
| (read_context::resolve_declaration_only_classes): Compare the |
| classes that have the same name across several TU, always in the |
| same order. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| |
| 2021-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Better sorting of (anonymous) types in ABIXML files |
| * src/abg-writer.cc (type_ptr_cmp::operator()): Use the internal |
| pretty representation of types, for comparison. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| |
| 2021-02-23 Dodji Seketeli <dodji@redhat.com> |
| |
| tests: Update to catch.hpp v2.13.4 and fix #2178 |
| * tests/lib/catch.hpp: Update to v2.13.4 and initialize |
| sigStackSize to 32768 for now, as suggested by |
| https://github.com/catchorg/Catch2/issues/2178. |
| |
| 2021-02-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't consider type name when comparing typedefs |
| * include/abg-ir.h (maybe_compare_as_member_decls): Declare new |
| function. Make it a friend of class decl_base. |
| * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Don't early |
| canonicalize typedefs because they can be "part" of a type that is |
| not yet completed, especially considering that class declaration |
| resolution is part of type building, stricto sensu. |
| * src/abg-ir.cc (maybe_compare_as_member_decls): Factorize this |
| out of ... |
| (equals): ... the overload for decl_base. Use it in the overload |
| for typedef_decl. |
| * tests/data/test-diff-pkg/nmap-7.70-5.el8_testjcc.x86_64-self-check-report-0.txt: |
| New test reference output. |
| * tests/data/test-diff-pkg/nmap-7.70-5.el8_testjcc.x86_64.rpm: New |
| binary input. |
| * tests/data/test-diff-pkg/nmap-debuginfo-7.70-5.el8_testjcc.x86_64.rpm: Likewise. |
| * tests/data/Makefile.am: Add these new testing material to source |
| distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the new test input to |
| the harness. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt: |
| Adjust. |
| * tests/data/test-diff-suppr/test39-opaque-type-report-0.txt: |
| Adjust. |
| |
| 2021-02-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Use generic internal type name to canonicalize anonymous enums |
| * src/abg-ir.cc (has_generic_anonymous_internal_type_name) : |
| Define new static function. |
| (get_generic_anonymous_internal_type_name): Use it here. |
| (decl_base::get_pretty_representation): For internal purposes, |
| build an anonymous name that is stable. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: Adjust. |
| * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt: Adjust. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| |
| 2021-02-08 Giuliano Procida <gprocida@google.com> |
| |
| abg-dwarf-reader: Fix typo in compare_dies_string_attribute_value |
| * src/abg-dwarf-reader.cc |
| (compare_dies_string_attribute_value): Typo fix. |
| |
| 2021-01-27 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: do not qualify member names in diff report |
| * src/abg-reporter-priv.cc (represent_data_member): Do not |
| qualify member names. (represent): Do not qualify member names. |
| * tests/data/test-abicompat/test0-fn-changed-report-0.txt: Refresh. |
| * tests/data/test-abicompat/test0-fn-changed-report-2.txt: Refresh. |
| * tests/data/test-abicompat/test5-fn-changed-report-0.txt: Refresh. |
| * tests/data/test-abicompat/test5-fn-changed-report-1.txt: Refresh. |
| * tests/data/test-abicompat/test6-var-changed-report-0.txt: Refresh. |
| * tests/data/test-abicompat/test6-var-changed-report-1.txt: Refresh. |
| * tests/data/test-abicompat/test7-fn-changed-report-0.txt: Refresh. |
| * tests/data/test-abicompat/test7-fn-changed-report-1.txt: Refresh. |
| * tests/data/test-abicompat/test7-fn-changed-report-2.txt: Refresh. |
| * tests/data/test-abicompat/test8-fn-changed-report-0.txt: Refresh. |
| * tests/data/test-abicompat/test9-fn-changed-report-0.txt: Refresh. |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt: |
| Refresh. |
| * tests/data/test-abidiff-exit/test-fun-param-report.txt: Refresh. |
| * tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-2.txt: |
| Refresh. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-report.txt: |
| Refresh. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-report.txt: Refresh. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-report.txt: Refresh. |
| * tests/data/test-abidiff-exit/test-member-size-report0.txt: Refresh. |
| * tests/data/test-abidiff-exit/test-member-size-report1.txt: Refresh. |
| * tests/data/test-abidiff-exit/test-net-change-report0.txt: Refresh. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Refresh. |
| * tests/data/test-abidiff/test-qual-type0-report.txt: Refresh. |
| * tests/data/test-abidiff/test-struct0-report.txt: Refresh. |
| * tests/data/test-abidiff/test-struct1-report.txt: Refresh. |
| * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-dwarf/test0-report.txt: Refresh. |
| * tests/data/test-diff-dwarf/test1-report.txt: Refresh. |
| * tests/data/test-diff-dwarf/test10-report.txt: Refresh. |
| * tests/data/test-diff-dwarf/test11-report.txt: Refresh. |
| * tests/data/test-diff-dwarf/test13-report.txt: Refresh. |
| * tests/data/test-diff-dwarf/test21-redundant-fn-report-0.txt: Refresh. |
| * tests/data/test-diff-dwarf/test27-local-base-diff-report.txt: |
| Refresh. |
| * tests/data/test-diff-dwarf/test3-report.txt: Refresh. |
| * tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-dwarf/test37-union-report-0.txt: Refresh. |
| * tests/data/test-diff-dwarf/test38-union-report-0.txt: Refresh. |
| * tests/data/test-diff-dwarf/test39-union-report-0.txt: Refresh. |
| * tests/data/test-diff-dwarf/test4-report.txt: Refresh. |
| * tests/data/test-diff-dwarf/test40-report-0.txt: Refresh. |
| * tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-dwarf/test46-rust-report-0.txt: Refresh. |
| * tests/data/test-diff-dwarf/test5-report.txt: Refresh. |
| * tests/data/test-diff-dwarf/test8-report.txt: Refresh. |
| * tests/data/test-diff-filter/libtest45-basic-type-change-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test-PR26739-2-report-0.txt: Refresh. |
| * tests/data/test-diff-filter/test0-report.txt: Refresh. |
| * tests/data/test-diff-filter/test01-report.txt: Refresh. |
| * tests/data/test-diff-filter/test1-report.txt: Refresh. |
| * tests/data/test-diff-filter/test10-report.txt: Refresh. |
| * tests/data/test-diff-filter/test11-report.txt: Refresh. |
| * tests/data/test-diff-filter/test13-report.txt: Refresh. |
| * tests/data/test-diff-filter/test14-0-report.txt: Refresh. |
| * tests/data/test-diff-filter/test14-1-report.txt: Refresh. |
| * tests/data/test-diff-filter/test15-0-report.txt: Refresh. |
| * tests/data/test-diff-filter/test15-1-report.txt: Refresh. |
| * tests/data/test-diff-filter/test16-report-2.txt: Refresh. |
| * tests/data/test-diff-filter/test16-report.txt: Refresh. |
| * tests/data/test-diff-filter/test17-0-report.txt: Refresh. |
| * tests/data/test-diff-filter/test17-1-report.txt: Refresh. |
| * tests/data/test-diff-filter/test18-report.txt: Refresh. |
| * tests/data/test-diff-filter/test2-report.txt: Refresh. |
| * tests/data/test-diff-filter/test25-cyclic-type-report-0.txt: Refresh. |
| * tests/data/test-diff-filter/test25-cyclic-type-report-1.txt: Refresh. |
| * tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test3-report.txt: Refresh. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test32-ppc64le-struct-change-report0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test36-report-0.txt: Refresh. |
| * tests/data/test-diff-filter/test37-report-0.txt: Refresh. |
| * tests/data/test-diff-filter/test39/test39-report-0.txt: Refresh. |
| * tests/data/test-diff-filter/test42-leaf-report-output-0.txt: Refresh. |
| * tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-filter/test9-report.txt: Refresh. |
| * tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: Refresh. |
| * tests/data/test-diff-pkg/dirpkg-1-report-1.txt: Refresh. |
| * tests/data/test-diff-pkg/dirpkg-3-report-1.txt: Refresh. |
| * tests/data/test-diff-pkg/dirpkg-3-report-2.txt: Refresh. |
| * 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: |
| Refresh. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: |
| Refresh. |
| * 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: |
| Refresh. |
| * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Refresh. |
| * tests/data/test-diff-pkg/symlink-dir-test1-report0.txt: Refresh. |
| * tests/data/test-diff-pkg/tarpkg-0-report-0.txt: Refresh. |
| * tests/data/test-diff-pkg/tarpkg-1-report-0.txt: Refresh. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/libtest48-soname-abixml-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-3.txt: Refresh. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-5.txt: Refresh. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-7.txt: Refresh. |
| * tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt: Refresh. |
| * tests/data/test-diff-suppr/test11-add-data-member-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test12-add-data-member-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test12-add-data-member-report-2.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test13-suppr-through-pointer-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test13-suppr-through-pointer-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test14-suppr-non-redundant-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test14-suppr-non-redundant-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-5.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-2.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-5.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test23-alias-filter-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test23-alias-filter-report-2.txt: Refresh. |
| * tests/data/test-diff-suppr/test24-soname-report-1.txt: Refresh. |
| * tests/data/test-diff-suppr/test24-soname-report-10.txt: Refresh. |
| * tests/data/test-diff-suppr/test24-soname-report-12.txt: Refresh. |
| * tests/data/test-diff-suppr/test24-soname-report-14.txt: Refresh. |
| * tests/data/test-diff-suppr/test24-soname-report-16.txt: Refresh. |
| * tests/data/test-diff-suppr/test24-soname-report-4.txt: Refresh. |
| * tests/data/test-diff-suppr/test25-typedef-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test26-loc-suppr-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test26-loc-suppr-report-3.txt: Refresh. |
| * tests/data/test-diff-suppr/test29-soname-report-3.txt: Refresh. |
| * tests/data/test-diff-suppr/test29-soname-report-6.txt: Refresh. |
| * tests/data/test-diff-suppr/test29-soname-report-8.txt: Refresh. |
| * tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt: Refresh. |
| * tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt: Refresh. |
| * tests/data/test-diff-suppr/test30-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test31-report-1.txt: Refresh. |
| * tests/data/test-diff-suppr/test33-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test35-leaf-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test4-local-suppr-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test4-local-suppr-report-1.txt: Refresh. |
| * tests/data/test-diff-suppr/test42-negative-suppr-type-report-0.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test42-negative-suppr-type-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test46-PR25128-report-1.txt: Refresh. |
| * tests/data/test-diff-suppr/test46-PR25128-report-2.txt: Refresh. |
| * tests/data/test-diff-suppr/test47-non-reachable-types-report-1.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test47-non-reachable-types-report-2.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test47-non-reachable-types-report-4.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test47-non-reachable-types-report-7.txt: |
| Refresh. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt: Refresh. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt: Refresh. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt: Refresh. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt: Refresh. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt: Refresh. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt: Refresh. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt: Refresh. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt: Refresh. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt: Refresh. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-4.txt: Refresh. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-1.txt: Refresh. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-2.txt: Refresh. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-3.txt: Refresh. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-4.txt: Refresh. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-7.txt: Refresh. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-8.txt: Refresh. |
| * tests/data/test-diff-suppr/test8-redundant-fn-report-0.txt: Refresh. |
| * tests/data/test-diff-suppr/test8-redundant-fn-report-1.txt: Refresh. |
| |
| 2021-02-08 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: Use DW_FORM_line_strp only if it's present |
| * configure.ac: Define if HAS_DW_FORM_line_strp if the |
| DW_FORM_line_strp enumerator is present. |
| * src/abg-dwarf-reader.cc (form_is_DW_FORM_line_strp): Define new |
| static function. |
| (compare_dies_string_attribute_value): Use it. |
| |
| 2021-02-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27267 - Better support for opaque enum types |
| * src/abg-dwarf-reader.cc (get_opaque_version_of_type): Do not |
| quit early for enum types, because the code that comes a bit later |
| can handle enums. Add the newly built enum to its scope for |
| proper life cycle management. |
| * tests/data/test-diff-suppr/PR27267/include-dir-v{0,1}/include.h: New |
| include files for the input test library. |
| * tests/data/test-diff-suppr/PR27267/libtestpr27267-v{0,1}.so: New |
| input test library. |
| * tests/data/test-diff-suppr/PR27267/report-1.txt: New reference |
| output for the comparison. |
| * tests/data/test-diff-suppr/PR27267/v{0,1}.c: Source code for the |
| new input test library. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-suppr.cc (in_out_specs): Add the new test input |
| above to the test harness. |
| |
| 2021-02-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27331 - Data member offset change not considered local |
| * src/abg-ir.cc (equals): In the overload of class_or_union, when |
| a data member changes without having its type change, then |
| consider the data change as being local. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Adjust. |
| * tests/data/test-diff-filter/test-PR27331-report-0.txt: New |
| reference output. |
| * tests/data/test-diff-filter/test-PR27331-v{0,1}.c: New test |
| source files. |
| * tests/data/test-diff-filter/test-PR27331-v{0,1}.o: New test |
| binary inputs. |
| * tests/data/Makefile.am: Add these new test material to source |
| distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the tests above to |
| the harness. |
| |
| 2021-02-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27165 - Better support multi-language binaries |
| * src/abg-dwarf-reader.cc (get_scope_for_die): Get the language of |
| the DIE from the compilation unit of the DIE itself. |
| * tests/data/test-types-stability/PR27165-libzmq.so.5.2.3: New |
| test input. |
| * tests/data/test-types-stability/PR27165-libzmq.so.5.2.3.debug: |
| Debug information for the new test input. |
| * tests/data/Makefile.am: Add the test inputs above to the source |
| distribution. |
| * tests/test-types-stability.cc (elf_paths): Add the new test |
| inputs to this test harness. |
| |
| 2020-10-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump ABIXML format version to 2.0 |
| * include/abg-corpus.h (corpus::init_format_version): Declare new |
| private method. |
| (corpus::set_environment): Make this non-const. |
| (corpus::{get,set}_format_{major,minor}_version_number): Declare |
| new accessors. |
| * src/abg-corpus.cc (corpus::init_format_version): Define new |
| method. |
| (corpus::set_environment): By default, initialize the format |
| version number of the corpus to the one supported by Libabigail. |
| (corpus::{get,set}_format_{major,minor}_version_number): Define |
| new accessors. |
| * include/abg-ir.h: Include abg-config.h to use the |
| abigail::config. |
| (environment::get_config): Declare new accessor. |
| * src/abg-ir.cc (environment::priv::config_): Add new data member. |
| (environment::get_config): Define new accessor. |
| * src/abg-config.cc (config::config): Bump the format |
| version number to "2.0". |
| * src/abg-corpus-priv.h |
| (corpus::priv::format_{major,minor}_version_number_): Add new data members. |
| * src/abg-reader.cc (handle_version_attribute): Define new static |
| function. |
| (read_corpus_from_input, read_corpus_group_from_input): Use it to |
| read the value of the "version" attribute and set the format |
| version number of the corpus and corpus group accordingly. |
| * src/abg-writer.cc (write_context::m_config): Remove the config |
| object because we can now get it from the environment. |
| (write_context::get_config): Get the config object from the |
| environment. |
| (write_translation_unit): Do not emit the version attribute on the |
| translation unit element anymore. |
| (write_version_info): Define static function. |
| (write_corpus, write_corpus_group): Use it to emit version |
| attribute on both the corpus and corpus group elements. |
| * tools/abidiff.cc |
| (emit_incomptatible_format_version_error_message): Define new |
| static function. |
| (main): Ensure that corpora and corpus groups being compared have |
| the same major version number. |
| * tests/update-test-output.py: Adjust syntax for python3. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test-anonymous-members-0.o.abi: |
| Likewise. |
| * tests/data/test-annotate/test0.abi: Likewise. |
| * tests/data/test-annotate/test1.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test2.so.abi: Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-annotate/test3.so.abi: Likewise. |
| * tests/data/test-annotate/test4.so.abi: Likewise. |
| * tests/data/test-annotate/test5.o.abi: Likewise. |
| * tests/data/test-annotate/test6.so.abi: Likewise. |
| * tests/data/test-annotate/test7.so.abi: Likewise. |
| * tests/data/test-annotate/test8-qualified-this-pointer.so.abi: |
| Likewise. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: |
| Likewise. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Likewise. |
| * tests/data/test-diff-suppr/libtest48-soname-abixml-v0.so.abi: |
| Likewise. |
| * tests/data/test-diff-suppr/libtest48-soname-abixml-v1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-PR26568-1.o.abi: Likewise. |
| * tests/data/test-read-dwarf/test-PR26568-2.o.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test1.abi: Likewise. |
| * tests/data/test-read-dwarf/test1.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test2.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test2.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test3.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test3.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test4.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test4.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test5.o.abi: Likewise. |
| * tests/data/test-read-dwarf/test5.o.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test6.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test6.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test7.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test7.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| * tests/data/test-read-write/test0.xml: Likewise. |
| * tests/data/test-read-write/test1.xml: Likewise. |
| * tests/data/test-read-write/test10.xml: Likewise. |
| * tests/data/test-read-write/test11.xml: Likewise. |
| * tests/data/test-read-write/test12.xml: Likewise. |
| * tests/data/test-read-write/test13.xml: Likewise. |
| * tests/data/test-read-write/test14.xml: Likewise. |
| * tests/data/test-read-write/test15.xml: Likewise. |
| * tests/data/test-read-write/test16.xml: Likewise. |
| * tests/data/test-read-write/test17.xml: Likewise. |
| * tests/data/test-read-write/test18.xml: Likewise. |
| * tests/data/test-read-write/test19.xml: Likewise. |
| * tests/data/test-read-write/test2.xml: Likewise. |
| * tests/data/test-read-write/test20.xml: Likewise. |
| * tests/data/test-read-write/test21.xml: Likewise. |
| * tests/data/test-read-write/test22.xml: Likewise. |
| * tests/data/test-read-write/test23.xml: Likewise. |
| * tests/data/test-read-write/test24.xml: Likewise. |
| * tests/data/test-read-write/test25.xml: Likewise. |
| * tests/data/test-read-write/test26.xml: Likewise. |
| * tests/data/test-read-write/test27.xml: Likewise. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Likewise. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Likewise. |
| * tests/data/test-read-write/test3.xml: Likewise. |
| * tests/data/test-read-write/test4.xml: Likewise. |
| * tests/data/test-read-write/test5.xml: Likewise. |
| * tests/data/test-read-write/test6.xml: Likewise. |
| * tests/data/test-read-write/test7.xml: Likewise. |
| * tests/data/test-read-write/test8.xml: Likewise. |
| * tests/data/test-read-write/test9.xml: Likewise. |
| |
| 2020-10-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26684 - Support DW_AT_data_bit_offset attribute |
| * src/abg-dwarf-reader.cc (read_and_convert_DW_at_bit_offset): |
| Define new static function. |
| (die_member_offset): Primarily use DW_AT_data_bit_offset if its |
| present. Otherwise, look for DW_AT_bit_offset. Use the new |
| read_and_convert_DW_at_bit_offset function to properly interpret |
| DW_AT_bit_offset if its present. Update comment. |
| * tests/data/test-diff-filter/test-PR26684-dwarf{4,5}.o: New |
| binary test inputs. |
| * tests/data/test-diff-filter/test-PR26684.c: Source code of the |
| new binary test inputs above. |
| * tests/data/test-diff-filter/test-PR26684-report-0.txt: New |
| reference test output. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the test inputs |
| above to this test harness. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: |
| Adjust. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: |
| Adjust. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Adjust. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| |
| 2021-01-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27255 - fedabipkgdiff fails on nfs-utils on Fedora 33 |
| * tools/fedabipkgdiff (RPMCollection::get_sibling_debuginfo): |
| Update comment. |
| (RPMCollection::get_matching_debuginfo): Define new function. |
| (generate_comparison_halves): Use |
| RPMCollection::get_matching_debuginfo instead of |
| RPMCollection::get_sibling_debuginfo. |
| |
| 2021-01-26 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: Support fast DW_FORM_line_strp string comparison |
| * src/abg-dwarf-reader.cc (compare_dies_string_attribute_value): |
| Support DW_FORM_line_strp. |
| * tests/data/test-diff-pkg/sshpass-1.07-1.fc34.x86_64-self-check-report-0.txt: |
| New reference test output. |
| * tests/data/test-diff-pkg/sshpass-1.07-1.fc34.x86_64.rpm: New |
| test input. |
| * tests/data/test-diff-pkg/sshpass-debuginfo-1.07-1.fc34.x86_64.rpm: |
| Likewise. |
| * tests/data/Makefile.am: Add the new testing material above to |
| source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the test input above |
| to this harness. |
| |
| 2021-01-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27232 - fedabipkgdiff fails on gawk from Fedora 33 |
| * tools/abipkgdiff.cc (options::pkg{1,2}): Add new data members to |
| store the packages to compare and have them available for the |
| various functions that may need them down the road. |
| (package::create_abi_file_path): Add new function. |
| (compare_to_self): Use the new package::create_abi_file_path to |
| create the path to the ABI file in a directory not owned by the |
| package. That should increase our chances of having the rights to |
| write that one. Make sure to emit error message when the |
| comparison against self fails. |
| ({compare_task, self_compare_task}::perform): During the process |
| of comparison if an internal error happens, report it. Cleanup |
| the existing reporting a little bit. |
| (pkg_extraction_task::perform): Fix comment. |
| * tests/data/test-diff-pkg/libxfce4ui-devel-4.12.1-8.fc27.ppc64-self-report-0.txt: |
| Adjust. |
| |
| 2021-01-26 Matthias Maennich <maennich@google.com> |
| |
| abipkgdiff: Address operator precedence warning |
| * tools/abipkgdiff.cc (compare_to_self): address clang warning. |
| |
| 2021-01-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27233 - fedabipkgdiff fails on package gnupg2 from Fedora 33 |
| * src/abg-dwarf-reader.cc |
| (read_context::canonicalize_types_scheduled): Don't forget to |
| canonicalize types stored in extra_types_to_canonicalize_. |
| * src/abg-ir.cc (type_base::get_canonical_type_for): Add better |
| comment. |
| (hash_as_canonical_type_or_constant): Remove crutch that is |
| useless now that we canonicalize almost all types in the system. |
| |
| 2021-01-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27236 - Pointer comparison wrongly fails because of typedef change |
| * src/abg-ir.cc (equals): In the overloads for pointer_type_def, |
| reference_type_def and array_type_def, compare the pointed-to-type |
| modulo typedefs. |
| * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Adjust. |
| * 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: |
| Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Adjust. |
| |
| 2021-01-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Ignore duplicated functions and those not associated with ELF symbols |
| * include/abg-ir.h (class_or_union::string_mem_fn_sptr_map_type): |
| Add a typedef for unordered_map<string, method_decl_sptr>. |
| (class_or_union::find_member_function_sptr): Declare new function. |
| * src/abg-ir.cc (class_or_union::priv::mem_fns_map_): Change the |
| type of this to string_mem_fn_sptr_map_type, so that shared |
| pointers to functions can be stored in the map, instead of bare |
| pointers to functions. This is useful to implement |
| class_or_union::find_member_function_sptr which returns a shared |
| pointer to function. |
| (class_or_union::find_member_function_sptr): Define new function. |
| (class_or_union::find_member_function): Adjust. |
| (method_decl::set_linkage_name): Use a non-deleting shared pointer |
| to store the current instance of member function into |
| class_or_union::priv::mem_fns_map_. |
| (hash_as_canonical_type_or_constant): As we are seeing more |
| function types, it appears that some function types are not |
| canonicalized. I am not sure why exactly, but let's loosen the |
| assert here for now, I'll chase the root of this later. |
| * src/abg-dwarf-reader.cc (finish_member_function_reading): |
| Improve detection of member function 'static-ness' by handling |
| cases where a this pointer can be const. Also support |
| DW_AT_object_pointer when it's present. This fixes the occurrence |
| of spurious change reports about loss of 'static-ness' of member |
| functions. |
| (potential_member_fn_should_be_dropped): Define new static |
| function and ... |
| (build_ir_node_from_die): ... use it here. When a function DIE |
| has the same linkage name as an existing function IR, do not |
| create a new IR for it. Rather, re-use the existing one to |
| complete it with the properties found on the function DIE. If a |
| new function doesn't seem to have an associated ELF symbol and is |
| not meant to be a virtual member function then drop its IR on the |
| floor as well. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test0.abi: Likewise. |
| * tests/data/test-annotate/test1.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-annotate/test6.so.abi: Likewise. |
| * tests/data/test-annotate/test8-qualified-this-pointer.so.abi: Likewise. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: Likewise. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: Likewise. |
| * tests/data/test-diff-dwarf/test0-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test01-report.txt: Likewise. |
| * tests/data/test-diff-filter/test10-report.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test41-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test9-report.txt: Likewise. |
| * 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. |
| * 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. |
| * 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. |
| * tests/data/test-diff-suppr/test24-soname-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-10.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-16.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test31-report-1.txt: Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test1.abi: Likewise. |
| * tests/data/test-read-dwarf/test1.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test6.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test6.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2021-01-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 27204 - potential loss of some aliased ELF function symbols |
| * src/abg-ir.cc (function_decl::get_id): If the elf symbol has |
| aliases, make the function name be part of the ID so that this ID |
| differs from the one of the other functions that share a symbol |
| alias with this one. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust. |
| * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test41-report-0.txt: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-diff-pkg/glibc-2.32-3.fc33.aarch64-self-check-report-0.txt: |
| New test reference output. |
| * tests/data/test-diff-pkg/glibc-2.32-3.fc33.aarch64.rpm: New test |
| input RPM. |
| * tests/data/test-diff-pkg/glibc-debuginfo-2.32-3.fc33.aarch64.rpm: |
| Likewise. |
| * tests/data/Makefile.am: Add the new test material to source |
| distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the new test input |
| RPMs to this test harness. |
| |
| 2020-12-15 Matthias Maennich <maennich@google.com> |
| |
| abg-ir: Optimize calls to std::string::find() for a single char. |
| * src/abg-ir.cc (elf_symbol::get_name_and_version_from_id): |
| use character literal overload for single character string::find. |
| (parse_integral_type): Likewise. |
| Suggested-by: Chris Kennelly <ckennelly@google.com> |
| |
| 2021-01-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26992 - Try harder to resolve declaration-only classes |
| * src/abg-dwarf-reader.cc |
| (read_context::compare_before_canonicalisation): Define new member |
| function. |
| (read_context::resolve_declaration_only_classes): When there are |
| more than one definition that can resolve a given declaration, if |
| all those definitions are equal, then resolve the declaration to |
| those definitions. |
| (read_context::resolve_declaration_only_enums): Add a comment to |
| update similarly update this function (or do away with it |
| completely) later. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-diff-pkg/cogl-1.22.8-2.fc33.x86_64.rpm: Add new |
| test input. |
| * tests/data/test-diff-pkg/cogl-debuginfo-1.22.8-2.fc33.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/cogl-1.22.8-2.fc33.x86_64.self-check-report-0.txt: |
| Likewise. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the new test inputs |
| to the test harness. |
| * tests/data/Makefile.am: Add the new test input files to source |
| distribution. |
| |
| 2021-01-11 Dodji Seketeli <dodji@redhat.com> |
| |
| mainpage: Update web page for 1.8 release |
| * doc/website/mainpage.txt: Update web page for 1.8 release |
| |
| 2020-12-14 Matthias Maennich <maennich@google.com> |
| |
| Update catch2 testing framework: v1.12.2 -> v2.13.3 |
| * tests/lib/catch.hpp: update to v2.13.3 |
| * tests/test-symtab.cc (TEST_CASE("Symtab::SimpleSymtabs")): Use |
| the corpus variable to avoid unused variable warnings. |
| |
| 2020-12-14 Matthias Maennich <maennich@google.com> |
| |
| clang-format: define C++ standard to improve formatting |
| * .clang-format: Set C++11 standard for formatting. |
| |
| 2020-12-11 Giuliano Procida <gprocida@google.com> |
| |
| Refresh ABI cross check test files |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Refreshed ABI. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt: |
| File now empty. |
| |
| 2020-12-14 Matthias Maennich <maennich@google.com> |
| |
| Drop unneccessary includes of abg-cxx-compat.h |
| * include/abg-comparison.h: Remove include of abg-cxx-compat.h. |
| * include/abg-diff-utils.h: Likewise. |
| * include/abg-fwd.h: Likewise. |
| * include/abg-ini.h: Likewise. |
| * include/abg-interned-str.h: Likewise. |
| * include/abg-ir.h: Likewise. |
| * include/abg-libxml-utils.h: Likewise. |
| * include/abg-libzip-utils.h: Likewise. |
| * include/abg-regex.h: Likewise. |
| * include/abg-reporter.h: Likewise. |
| * include/abg-sptr-utils.h: Likewise. |
| * include/abg-suppression.h: Likewise. |
| * include/abg-tools-utils.h: Likewise. |
| * include/abg-workers.h: Likewise. |
| * src/abg-comp-filter.cc: Likewise. |
| * src/abg-comparison-priv.h: Likewise. |
| * src/abg-corpus.cc: Likewise. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * src/abg-hash.cc: Likewise. |
| * src/abg-ir.cc: Likewise. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-suppression.cc: Likewise. |
| * src/abg-tools-utils.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| * tests/test-diff-suppr.cc: Likewise. |
| * tests/test-read-write.cc: Likewise. |
| * tools/abicompat.cc: Likewise. |
| * tools/abidw.cc: Likewise. |
| * tools/abilint.cc: Likewise. |
| * tools/abipkgdiff.cc: Likewise. |
| |
| 2020-12-14 Matthias Maennich <maennich@google.com> |
| |
| Remove <unordered_set> usages from abg_compat |
| * include/abg-cxx-compat.h: Drop compatibility for <unordered_set>. |
| * include/abg-comparison.h: migrate abg_compat use to std. |
| * include/abg-interned-str.h: Likewise. |
| * include/abg-suppression.h: Likewise. |
| * src/abg-comparison-priv.h: Likewise. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * tests/test-diff-suppr.cc: Likewise. |
| * tools/abipkgdiff.cc: Likewise. |
| |
| 2020-12-14 Matthias Maennich <maennich@google.com> |
| |
| Remove <unordered_map> usages from abg_compat |
| * include/abg-cxx-compat.h: Drop compatibility layer for <unordered_map>. |
| * include/abg-comparison.h: migrate abg_compat use to std. |
| * include/abg-cxx-compat.h: Likewise. |
| * include/abg-fwd.h: Likewise. |
| * include/abg-ir.h: Likewise. |
| * src/abg-corpus.cc: Likewise. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * src/abg-ir.cc: Likewise. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| |
| 2020-12-14 Matthias Maennich <maennich@google.com> |
| |
| Remove <memory> usages from abg_compat |
| * include/abg-cxx-compat.h: Drop compatibility layer for <memory>. |
| * include/abg-diff-utils.h: migrate abg_compat use to std. |
| * include/abg-fwd.h: Likewise. |
| * include/abg-ini.h: Likewise. |
| * include/abg-interned-str.h: Likewise. |
| * include/abg-libxml-utils.h: Likewise. |
| * include/abg-libzip-utils.h: Likewise. |
| * include/abg-regex.h: Likewise. |
| * include/abg-reporter.h: Likewise. |
| * include/abg-sptr-utils.h: Likewise. |
| * include/abg-tools-utils.h: Likewise. |
| * include/abg-workers.h: Likewise. |
| * src/abg-comp-filter.cc: Likewise. |
| * src/abg-comparison-priv.h: Likewise. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * src/abg-ir.cc: Likewise. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-suppression.cc: Likewise. |
| * src/abg-tools-utils.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| * tests/test-diff-filter.cc: Likewise. |
| * tests/test-diff-pkg.cc: Likewise. |
| * tests/test-diff-suppr.cc: Likewise. |
| * tests/test-read-dwarf.cc: Likewise. |
| * tests/test-read-write.cc: Likewise. |
| * tests/test-types-stability.cc: Likewise. |
| * tests/test-write-read-archive.cc: Likewise. |
| * tools/abicompat.cc: Likewise. |
| * tools/abidiff.cc: Likewise. |
| * tools/abidw.cc: Likewise. |
| * tools/abilint.cc: Likewise. |
| * tools/abipkgdiff.cc: Likewise. |
| |
| 2020-12-14 Matthias Maennich <maennich@google.com> |
| |
| Remove <functional> usages from abg_compat |
| * include/abg-cxx-compat.h: Drop compatibility layer for <functional>. |
| * include/abg-interned-str.h: migrate abg_compat use to std. |
| * include/abg-ir.h: Likewise. |
| * src/abg-hash.cc: Likewise. |
| * src/abg-ir.cc: Likewise. |
| |
| 2020-12-14 Matthias Maennich <maennich@google.com> |
| |
| Drop C++03 compatibility layer |
| * include/abg-cxx-compat.h: remove compatibility with pre C++11. |
| * include/abg-ir.h: Remove mention of std::tr1 from comments. |
| * include/abg-sptr-utils.h: Likewise. |
| |
| 2020-12-04 Giuliano Procida <gprocida@google.com> |
| |
| Add qualifier / typedef / array / pointer test |
| * tests/data/Makefile.am: Add new test files |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-v0.c: |
| New test file. |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-v0.o: |
| New test file. |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-v1.c: |
| New test file. |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-v1.o: |
| New test file. |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-report-0.txt: |
| Plain diff report. |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt: |
| Harmless diff report. |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-report-2.txt: |
| Leaf changes report. |
| * tests/data/test-abidiff-exit/qualifier-typedef-array-report-3.txt: |
| Harmless leaf changes report. |
| * tests/test-abidiff-exit.cc: Run new test. |
| |
| 2020-12-03 Giuliano Procida <gprocida@google.com> |
| |
| ir: Arrays are indirect types for type structure similarity purposes |
| * src/abg-ir.cc (types_have_similar_structure): When examining |
| array types, always treat element types as being underlying types |
| of an indirect type. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-non-leaf-array-report.txt: |
| New test case showing correct --leaf-changes-only reporting. |
| * tests/data/test-abidiff-exit/test-non-leaf-array-v0.c: |
| Likewise. |
| * tests/data/test-abidiff-exit/test-non-leaf-array-v0.o: |
| Likewise. |
| * tests/data/test-abidiff-exit/test-non-leaf-array-v1.c: |
| Likewise. |
| * tests/data/test-abidiff-exit/test-non-leaf-array-v1.o: |
| Likewise. |
| * tests/test-abidiff-exit.cc: Run new test case. |
| |
| 2020-12-04 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: Add better comments to types_have_similar_structure |
| * src/abg-ir.cc (types_have_similar_structure): Arrays are also |
| indirect types, just like pointers and references, for the purpose |
| of the concept of "type similarity". Add that to the introductory |
| comment of the function. Add some more misc comments throughout |
| the code base. |
| |
| 2020-12-03 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: support --dump-diff-tree with --leaf-changes-only |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): In the |
| corpus_diff override, conclude by calling |
| maybe_dump_diff_tree. |
| |
| 2020-12-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Use C++11 for the code base |
| * CONTRIBUTING: Enact use of c++11. Also, we favor those who |
| read/debug/maintain the code as opposed to those who write it ;-) |
| * configure.ac: Switch to c++11 unconditionally. |
| * src/Makefile.am: Adjust. |
| * tests/Makefile.am: Adjust. |
| |
| 2020-12-03 Dodji Seketeli <dodji@redhat.com> |
| |
| CONTRIBUTING: Update instructions about regression tests |
| * CONTRIBUTING: Update instructions about how to launch regression |
| tests. |
| |
| 2020-12-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Teach Automake that COPYING* files are gone from sources |
| * Makefile.am: Teach Automake that COPYING* files are gone and |
| that LICENSE.txt and license-change-2020.txt were added. |
| |
| 2020-06-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Add a license-change-2020.txt file |
| * license-change-2020.txt: New file. |
| |
| 2020-06-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Delete COPYING* files |
| * COPYING: Delete. |
| * COPYING-GPLV3: Likewise. |
| * COPYING-LGPLV2: Likewise. |
| * COPYING-LGPLV3: Likewise. |
| |
| 2020-06-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Add the LICENSE.txt file |
| * LICENSE.txt: New file coming from |
| http://llvm.org/foundation/relicensing/LICENSE.txt. |
| |
| 2020-05-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Re-license the project to Apache v2 With LLVM Exception |
| * abigail.m4: Change the SPDX identifier from "GPL-3.0-or-later |
| WITH GCC-exception-3.1" to "Apache-2.0 WITH LLVM-exception" |
| * include/abg-cxx-compat.h: Change the SPDX identifier from |
| "LGPL-2.0-or-later" to "Apache-2.0 WITH LLVM-exception". |
| * .clang-format: Change the SPDX identifier from |
| "LGPL-3.0-or-later" to "Apache-2.0 WITH LLVM-exception". |
| * Makefile.am: Likewise. |
| * bash-completion/Makefile.am: Likewise. |
| * bash-completion/abicompat: Likewise. |
| * bash-completion/abidiff: Likewise. |
| * bash-completion/abidw: Likewise. |
| * bash-completion/abilint: Likewise. |
| * bash-completion/abinilint: Likewise. |
| * bash-completion/abipkgdiff: Likewise. |
| * bash-completion/abisym: Likewise. |
| * bash-completion/fedabipkgdiff: Likewise. |
| * configure.ac: Likewise. |
| * default.abignore: Likewise. |
| * doc/Makefile.am: Likewise. |
| * doc/api/libabigail.doxy: Likewise. |
| * doc/manuals/Makefile.am: Likewise. |
| * doc/website/libabigail-website.doxy: Likewise. |
| * include/Makefile.am: Likewise. |
| * include/abg-comp-filter.h: Likewise. |
| * include/abg-comparison.h: Likewise. |
| * include/abg-config.h: Likewise. |
| * include/abg-corpus.h: Likewise. |
| * include/abg-diff-utils.h: Likewise. |
| * include/abg-dwarf-reader.h: Likewise. |
| * include/abg-fwd.h: Likewise. |
| * include/abg-hash.h: Likewise. |
| * include/abg-ini.h: Likewise. |
| * include/abg-interned-str.h: Likewise. |
| * include/abg-ir.h: Likewise. |
| * include/abg-libxml-utils.h: Likewise. |
| * include/abg-libzip-utils.h: Likewise. |
| * include/abg-reader.h: Likewise. |
| * include/abg-regex.h: Likewise. |
| * include/abg-reporter.h: Likewise. |
| * include/abg-sptr-utils.h: Likewise. |
| * include/abg-suppression.h: Likewise. |
| * include/abg-tools-utils.h: Likewise. |
| * include/abg-traverse.h: Likewise. |
| * include/abg-version.h.in: Likewise. |
| * include/abg-viz-common.h: Likewise. |
| * include/abg-viz-dot.h: Likewise. |
| * include/abg-viz-svg.h: Likewise. |
| * include/abg-workers.h: Likewise. |
| * include/abg-writer.h: Likewise. |
| * scripts/dot_to_png.sh: Likewise. |
| * scripts/dot_to_svg.sh: Likewise. |
| * scripts/make-verbose.sh: Likewise. |
| * scripts/svg_to_plain_svg.sh: Likewise. |
| * scripts/svg_to_png_and_pdf.sh: Likewise. |
| * src/Makefile.am: Likewise. |
| * src/abg-comp-filter.cc: Likewise. |
| * src/abg-comparison-priv.h: Likewise. |
| * src/abg-comparison.cc: Likewise. |
| * src/abg-config.cc: Likewise. |
| * src/abg-corpus-priv.h: Likewise. |
| * src/abg-corpus.cc: Likewise. |
| * src/abg-default-reporter.cc: Likewise. |
| * src/abg-diff-utils.cc: Likewise. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * src/abg-elf-helpers.cc: Likewise. |
| * src/abg-elf-helpers.h: Likewise. |
| * src/abg-hash.cc: Likewise. |
| * src/abg-ini.cc: Likewise. |
| * src/abg-internal.h: Likewise. |
| * src/abg-ir-priv.h: Likewise. |
| * src/abg-ir.cc: Likewise. |
| * src/abg-leaf-reporter.cc: Likewise. |
| * src/abg-libxml-utils.cc: Likewise. |
| * src/abg-libzip-utils.cc: Likewise. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-regex.cc: Likewise. |
| * src/abg-reporter-priv.cc: Likewise. |
| * src/abg-reporter-priv.h: Likewise. |
| * src/abg-suppression-priv.h: Likewise. |
| * src/abg-suppression.cc: Likewise. |
| * src/abg-tools-utils.cc: Likewise. |
| * src/abg-traverse.cc: Likewise. |
| * src/abg-viz-common.cc: Likewise. |
| * src/abg-viz-dot.cc: Likewise. |
| * src/abg-viz-svg.cc: Likewise. |
| * src/abg-workers.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| * tests/Makefile.am: Likewise. |
| * tests/data/Makefile.am: Likewise. |
| * tests/lib/catch.cc: Likewise. |
| * tests/mockfedabipkgdiff.in: Likewise. |
| * tests/print-diff-tree.cc: Likewise. |
| * tests/runtestcanonicalizetypes.sh.in: Likewise. |
| * tests/runtestdefaultsupprs.py.in: Likewise. |
| * tests/runtestdefaultsupprspy3.sh.in: Likewise. |
| * tests/runtestfedabipkgdiff.py.in: Likewise. |
| * tests/runtestfedabipkgdiffpy3.sh.in: Likewise. |
| * tests/test-abicompat.cc: Likewise. |
| * tests/test-abidiff-exit.cc: Likewise. |
| * tests/test-abidiff.cc: Likewise. |
| * tests/test-alt-dwarf-file.cc: Likewise. |
| * tests/test-annotate.cc: Likewise. |
| * tests/test-core-diff.cc: Likewise. |
| * tests/test-cxx-compat.cc: Likewise. |
| * tests/test-diff-dwarf-abixml.cc: Likewise. |
| * tests/test-diff-dwarf.cc: Likewise. |
| * tests/test-diff-filter.cc: Likewise. |
| * tests/test-diff-pkg.cc: Likewise. |
| * tests/test-diff-suppr.cc: Likewise. |
| * tests/test-diff2.cc: Likewise. |
| * tests/test-dot.cc: Change the SPDX identifier from |
| "GPL-3.0-or-later WITH GCC-exception-3.1" to "Apache-2.0 WITH |
| LLVM-exception" |
| * tests/test-elf-helpers.cc: Change the SPDX identifier from |
| "LGPL-3.0-or-later" to "Apache-2.0 WITH LLVM-exception" |
| * tests/test-ini.cc: Likewise. |
| * tests/test-ir-walker.cc: Likewise. |
| * tests/test-kmi-whitelist.cc: Likewise. |
| * tests/test-lookup-syms.cc: Likewise. |
| * tests/test-read-dwarf.cc: Likewise. |
| * tests/test-read-write.cc: Likewise. |
| * tests/test-svg.cc: Change the SPDX identifier from |
| "GPL-3.0-or-later WITH GCC-exception-3.1" to "Apache-2.0 WITH |
| LLVM-exception". |
| * tests/test-symtab.cc: Change the SPDX identifier from |
| "LGPL-3.0-or-later" to "Apache-2.0 WITH LLVM-exception" |
| * tests/test-tools-utils.cc: Likewise. |
| * tests/test-types-stability.cc: Likewise. |
| * tests/test-utils.cc: Likewise. |
| * tests/test-utils.h: Likewise. |
| * tests/test-write-read-archive.cc: Likewise. |
| * tests/update-test-output.py: Likewise. |
| * tools/Makefile.am: Likewise. |
| * tools/abiar.cc: Likewise. |
| * tools/abicompat.cc: Likewise. |
| * tools/abidiff.cc: Likewise. |
| * tools/abidw.cc: Likewise. |
| * tools/abilint.cc: Likewise. |
| * tools/abipkgdiff.cc: Likewise. |
| * tools/abisym.cc: Likewise. |
| * tools/binilint.cc: Likewise. |
| * tools/fedabipkgdiff: Likewise. |
| * tools/kmidiff.cc: Likewise. |
| * update-copyright.sh: Likewise. |
| |
| 2020-05-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Add helper files to perform the re-licensing |
| * relicensing-scripts/file-licenses.orig.txt: New file that |
| contains the raw set of files with SPDX identifiers denoting |
| LGPLv3+ files. It's the result of a simple command based on |
| "find" and "grep". |
| * relicensing-scripts/files-with-lgplv3.txt: New file |
| containing the same data as the file above, but massaged to be |
| easily useable by the script below. |
| * relicensing-scripts/do-relicensing.sh: This is a simple command |
| which performs the re-licensing on the files listed in the file |
| above. |
| |
| 2020-05-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Add replace-spdx-license.sh script |
| * relicensing-scripts/replace-spdx-license.sh: New script. |
| |
| 2020-05-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Add has-spdx-header.sh script |
| * relicensing-scripts/has-spdx-header.sh: New script. |
| |
| 2020-05-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing SPDX headers to source files not specifying any license |
| * Makefile.am: Add a LGPL-3.0-or-later SPDX header prefixed |
| with '##' so that that the header doesn't get emitted in the |
| resulting Makefile.in file. Note that the license of Makefile.in |
| files is "FSF All Permissible License", which virtually compatible |
| with anything. |
| * bash-completion/Makefile.am: Likewise. |
| * doc/Makefile.am: Likewise |
| * doc/manuals/Makefile.am: Likewise |
| * include/Makefile.am: Likewise |
| * src/Makefile.am: Likewise |
| * tests/Makefile.am: Likewise |
| * tests/data/Makefile.am: Likewise |
| * tools/Makefile.am: Likewise |
| * .clang-format: Add a LGPL-3.0-or-later SPDX header. |
| * bash-completion/abicompat: Likewise. |
| * bash-completion/abidiff: Likewise. |
| * bash-completion/abidw: Likewise. |
| * bash-completion/abilint: Likewise. |
| * bash-completion/abinilint: Likewise. |
| * bash-completion/abipkgdiff: Likewise. |
| * bash-completion/abisym: Likewise. |
| * bash-completion/fedabipkgdiff: Likewise. |
| * configure.ac: Likewise. |
| * default.abignore: Likewise. |
| * doc/api/libabigail.doxy: Likewise. |
| * doc/website/libabigail-website.doxy: Likewise. |
| * include/abg-version.h.in: Likewise. |
| * scripts/dot_to_png.sh: Likewise. |
| * scripts/dot_to_svg.sh: Likewise. |
| * scripts/make-verbose.sh: Likewise. |
| * scripts/svg_to_plain_svg.sh: Likewise. |
| * scripts/svg_to_png_and_pdf.sh: Likewise. |
| * tests/runtestcanonicalizetypes.sh.in: Likewise. |
| * tests/runtestdefaultsupprs.py.in: Likewise. |
| * tests/runtestdefaultsupprspy3.sh.in: Likewise. |
| * tests/runtestfedabipkgdiffpy3.sh.in: Likewise. |
| * tests/update-test-output.py: Likewise. |
| * update-copyright.sh: Likewise. |
| |
| 2020-03-07 Matthias Maennich <maennich@google.com> |
| |
| Replace individual license references with SPDX Identifiers |
| * abigail.m4: Replace the license header with the SPDX identifier |
| GPL-3.0-or-later WITH GCC-exception-3.1 |
| * autoconf-archive/ax_check_python_modules.m4: Correctly set the |
| SPDX identifier to FSFAP. |
| * autoconf-archive/ax_compare_version.m4: Replace the license |
| header with the SPDX identifier FSFAP. |
| * autoconf-archive/ax_prog_python_version.m4: Likewise. |
| header with the SPDX identifier FSFAP. |
| * autoconf-archive/ax_valgrind_check.m4: Likewise. |
| * gen-changelog.py: Replace the license header with the SPDX |
| identifier LGPL-2.0-or-later. |
| * include/abg-comp-filter.h: Replace the license header with the |
| SPDX identifier LGPL-3.0-or-later. |
| * include/abg-comparison.h: Likewise. |
| * include/abg-config.h: Likewise. |
| * include/abg-corpus.h: Likewise. |
| * include/abg-cxx-compat.h: Replace the license header with the |
| SPDX identifier LGPL-2.0-or-later. |
| * include/abg-diff-utils.h: Replace the license header with the |
| SPDX identifier LGPL-3.0-or-later |
| * include/abg-dwarf-reader.h: Likewise. |
| * include/abg-fwd.h: Likewise. |
| * include/abg-hash.h: Likewise. |
| * include/abg-ini.h: Likewise. |
| * include/abg-interned-str.h: Likewise. |
| * include/abg-ir.h: Likewise. |
| * include/abg-libxml-utils.h: Likewise. |
| * include/abg-libzip-utils.h: Likewise. |
| * include/abg-reader.h: Likewise. |
| * include/abg-regex.h: Likewise. |
| * include/abg-reporter.h: Likewise. |
| * include/abg-sptr-utils.h: Likewise. |
| * include/abg-suppression.h: Likewise. |
| * include/abg-tools-utils.h: Likewise. |
| * include/abg-traverse.h: Likewise. |
| * include/abg-viz-common.h: Likewise. |
| * include/abg-viz-dot.h: Likewise. |
| * include/abg-viz-svg.h: Likewise. |
| * include/abg-workers.h: Likewise. |
| * include/abg-writer.h: Likewise. |
| * install-sh: Replace the license header with the SPDX identifier MIT. |
| * ltmain.sh: Replace the license header with the SPDX identifier |
| GPL-2.0-or-later. Note that this file has the libtool special |
| exception which allows us to redistribute it under the general |
| license of the project. |
| * src/abg-comp-filter.cc: Replace the license header with the SPDX |
| * src/abg-comparison-priv.h: Likewise. |
| * src/abg-comparison.cc: Likewise. |
| * src/abg-config.cc: Likewise. |
| * src/abg-corpus-priv.h: Likewise. |
| * src/abg-corpus.cc: Likewise. |
| * src/abg-default-reporter.cc: Likewise. |
| * src/abg-diff-utils.cc: Likewise. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * src/abg-elf-helpers.cc: Likewise. |
| * src/abg-elf-helpers.h: Likewise. |
| * src/abg-regex.cc: Likewise. |
| * src/abg-hash.cc: Likewise. |
| * src/abg-ini.cc: Likewise. |
| * src/abg-internal.h: Likewise. |
| * src/abg-ir-priv.h: Likewise. |
| * src/abg-ir.cc: Likewise. |
| * src/abg-leaf-reporter.cc: Likewise. |
| * src/abg-libxml-utils.cc: Likewise. |
| * src/abg-libzip-utils.cc: Likewise. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-reporter-priv.cc: Likewise. |
| * src/abg-reporter-priv.h: Likewise. |
| * src/abg-sptr-utils.cc: Likewise. |
| * src/abg-suppression-priv.h: Likewise. |
| * src/abg-suppression.cc: Likewise. |
| * src/abg-tools-utils.cc: Likewise. |
| * src/abg-traverse.cc: Likewise. |
| * src/abg-viz-common.cc: Likewise. |
| * src/abg-viz-dot.cc: Likewise. |
| * src/abg-viz-svg.cc: Likewise. |
| * src/abg-workers.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| * tests/lib/catch.cc: Likewise. |
| * tests/lib/catch.hpp: Add an SPDX identifier BSL-1.0. |
| * tests/mockfedabipkgdiff.in: Replace the license header with the |
| SPDX identifier GPL-3.0-or-later. |
| * tests/print-diff-tree.cc: Likewise. |
| * tests/runtestfedabipkgdiff.py.in: Replaace the license header |
| with the SPDW identifier GPL-3.0-or-later. |
| * tests/test-abicompat.cc: Replace the license header with the |
| SPDX identifier LGPL-3.0-or-later. |
| * tests/test-abidiff-exit.cc: Likewise. |
| * tests/test-abidiff.cc: Likewise. |
| * tests/test-alt-dwarf-file.cc: Likewise. |
| * tests/test-annotate.cc: Likewise. |
| * tests/test-cxx-compat.cc: Likewise. |
| * tests/test-core-diff.cc: Likewise. |
| * tests/test-diff-dwarf-abixml.cc: Likewise. |
| * tests/test-diff-dwarf.cc: Likewise. |
| * tests/test-diff-filter.cc: Likewise. |
| * tests/test-diff-pkg.cc: Likewise. |
| * tests/test-diff-suppr.cc: Likewise. |
| * tests/test-diff2.cc: Likewise. |
| * tests/test-dot.cc: Replace the license header with the |
| SPDX identifier GPL-3.0-with-GCC-exception. |
| * tests/test-elf-helpers.cc: Replace the license header with the |
| SPDX identifier LGPL-3.0-or-later. |
| * tests/test-ini.cc: Likewise. |
| * tests/test-ir-walker.cc: Likewise. |
| * tests/test-kmi-whitelist.cc: Likewise. |
| * tests/test-lookup-syms.cc: Likewise. |
| * tests/test-read-dwarf.cc: Likewise. |
| * tests/test-read-write.cc: Likewise. |
| * tests/test-svg.cc: Replace the license header with the SPDX |
| identifier GPL-3.0-with-GCC-exception. |
| * tests/test-symtab.cc: Replace the license header with the SPDX |
| identifier LGPL-3.0-or-later. |
| * tests/test-tools-utils.cc: Likewise. |
| * tests/test-types-stability.cc: Likewise. |
| * tests/test-utils.cc: Likewise. |
| * tests/test-utils.h: Likewise. |
| * tests/test-write-read-archive.cc: Likewise. |
| * tools/abiar.cc: Likewise. |
| * tools/abicompat.cc: Likewise. |
| * tools/abidiff.cc: Likewise. |
| * tools/abidw.cc: Likewise. |
| * tools/abilint.cc: Likewise. |
| * tools/abipkgdiff.cc: Likewise. |
| * tools/abisym.cc: Likewise. |
| * tools/binilint.cc: Likewise. |
| * tools/fedabipkgdiff: Replace the license header with the |
| SPDX identifier GPL-3.0-or-later. |
| * tools/kmidiff.cc: Likewise. |
| |
| 2020-12-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 2.0 |
| * configure.ac: Bump number version to 2.0 |
| |
| 2020-12-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.8 |
| * NEWS: Update for 1.8 |
| |
| 2020-12-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Update the Changelog for 1.8 |
| * Changelog: Update automatically with "make update-changelog' |
| |
| 2020-12-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Add check-self-compare to release regression testing |
| * Makefile.am: Make 'make tarball-and-all' run the |
| 'check-self-compare' target as part of the release process. |
| |
| 2020-12-01 Dodji Seketeli <dodji@redhat.com> |
| |
| configure: add --enable-rpm415 option |
| * configure: Introduce the --{en, dis}able-rpm415 option. |
| |
| 2020-11-30 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: Bug 26908 - don't crash on empty DW_TAG_partial_unit |
| * src/abg-dwarf-reader.cc (die_has_children): Define new static |
| function. |
| (read_context::build_die_parent_relations_under): Do not try to |
| instantiate an imported_unit_point type for an imported unit with |
| no children node. |
| (imported_unit_point::imported_unit_point): Assert that the |
| imported die has a sub-tree. |
| (imported_unit_point::imported_unit_point): Remove useless spaces. |
| |
| 2020-11-27 Dodji Seketeli <dodji@redhat.com> |
| |
| reader: Fix off-by-one error in assert |
| * src/abg-reader.cc (build_subrange_type): Fix off-by-one error. |
| |
| 2020-11-27 Dodji Seketeli <dodji@redhat.com> |
| |
| writer: fix off-by-one error in assertion |
| * src/abg-writer.cc (write_array_subrange_type): Fix off-by-one |
| error in assertion. |
| * src/abg-dwarf-reader.cc (build_subrange_type): Assert the length |
| of the array complies with its bounds. |
| |
| 2020-11-27 Dodji Seketeli <dodji@redhat.com> |
| |
| abipkgdiff: make --self-check to fail on any change against own ABIXML |
| * tools/abipkgdiff.cc (compare_to_self): Report *any* ABI change. |
| Not just the "net" changes. |
| |
| 2020-11-26 Dodji Seketeli <dodji@redhat.com> |
| |
| abidw: make --abidiff report any change against own ABIXML |
| * tools/abidw.cc (load_corpus_and_write_abixml): Emit an error |
| when comparing the binary to its ABIXML representation yields any |
| change. |
| |
| 2020-11-27 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: Avoid having several functions with the same symbol |
| * src/abg-dwarf-reader.cc |
| (read_context::symbol_already_belongs_to_a_function): Define new |
| member function. |
| (read_context::fixup_functions_with_no_symbols): Use the new |
| symbol_already_belongs_to_a_function function to avoid setting a |
| symbol that already belongs to a function. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| |
| 2020-11-27 Dodji Seketeli <dodji@redhat.com> |
| |
| reader: Don't lose anonymous-ness of decl-only classes |
| * src/abg-reader.cc (build_class_decl): Set the is-anonymous flag |
| when reading a decl-only class. |
| |
| 2020-11-27 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: Introduce internal pretty representation for anonymous classes |
| * include/abg-fwd.h (get_class_or_union_flat_representation): |
| Introduce an "internal" parameter. |
| * src/abg-ir.cc (get_class_or_union_flat_representation): |
| Introduce an "internal" parameter. In the flat representation of |
| a class for internal purposes, always use the prefix "class" even |
| if this is a struct. |
| (get_type_name): To build an internal name for a |
| reference or pointer to an anonymous type, consider the namespace |
| name of said type. |
| (equals): In the overload for decl_base, take the namespace name |
| of anonymous decls into account when comparing them. |
| ({var_decl, union_decl}::get_pretty_representation): Adjust calls |
| to get_class_or_union_flat_representation to pass a proper |
| "internal" argument. |
| * src/abg-default-reporter.cc (default_reporter::report): Adjust |
| the call to get_class_or_union_flat_representation to pass an |
| "internal" argument set to 'false'. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| |
| 2020-11-26 Dodji Seketeli <dodji@redhat.com> |
| |
| writer: Emit definitions of declarations when they are present |
| * src/abg-writer.cc (write_class_decl, write_union_decl): Get the |
| definition of the declaration if it exists and emit that. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| |
| 2020-11-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26780 - Fix array subrange bounds (de)serialization |
| * src/abg-reader.cc (build_subrange_type): Read lower-bound |
| attribute if present. Then try to read upper-bound attribute as |
| well. If this is not an infinite subrange assert that the length |
| must be equal to the difference between the bounds. |
| * src/abg-writer.cc (write_array_subrange_type): Write the |
| lower-bound if it's present and not zero. In that case, write the |
| upper-bound as well. |
| * tests/data/test-diff-pkg/hdf5-1.10.6-2.fc33.x86_64.rpm: Add new |
| binary test input. |
| * tests/data/test-diff-pkg/hdf5-debuginfo-1.10.6-2.fc33.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/hdf5-1.10.6-2.fc33.x86_64.self-check-report-0.txt: |
| Add new reference output. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the binary test input |
| to the set of --self-check tests. |
| |
| 2020-11-26 Dodji Seketeli <dodji@redhat.com> |
| |
| reader: Read array subrange length into an uint64_t |
| * src/abg-reader.cc (build_subrange_type): Change the type of |
| length to uint64_t and read it using strtoull. |
| |
| 2020-11-25 Dodji Seketeli <dodji@redhat.com> |
| |
| abipkgdiff: Avoid uncertainty when sorting worker tasks |
| * elf_size_is_greater: Take the name of the binaries into account |
| when their size is equal. Also, assert that all comparison tasks |
| have compared binaries. |
| |
| 2020-11-25 Dodji Seketeli <dodji@redhat.com> |
| |
| tests/data/test-fedabipkgdiff: Update reference output |
| * tests/data/test-fedabipkgdiff/test7-self-compare-from-fc23-dbus-glib-report-0.txt: |
| Adjust. |
| |
| 2020-11-24 Matthias Maennich <maennich@google.com> |
| |
| abipkgdiff: minor cleanups |
| * tools/abipkgdiff.cc: remove unused using statements |
| (self_compare_task): remove shadowing members and delegate |
| construction to base class. |
| |
| 2020-11-23 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: support artificially generated translation units |
| * configure.ac: Detect if we are running on RPM >= 4.15. If yes, |
| then define the preprocessor macro RPM_4_15. If that macro is |
| defined then test-diff-pkg.cc can support RPMs from Fedora >= 31 |
| as those are compressed with zstd. Earlier RPM versions don't |
| support that compression scheme. |
| * src/abg-dwarf-reader.cc (build_translation_unit_and_add_to_ir): |
| Suffix the offset of the translation unit to its name when that |
| name is "<artificial>". |
| * tests/data/test-diff-pkg/mesa-libGLU-9.0.1-3.fc33.x86_64.rpm: |
| New binary test input. |
| * tests/data/test-diff-pkg/mesa-libGLU-debuginfo-9.0.1-3.fc33.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/mesa-libGLU-9.0.1-3.fc33.x86_64.self-check-report-0.txt: |
| New reference output for the binary test input above. |
| * tests/data/Makefile.am: Add the new test inputs above to source |
| distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the binary test |
| inputs above to source distribution if we are running on an RPM |
| version >= 4.15. |
| |
| 2020-11-20 Dodji Seketeli <dodji@redhat.com> |
| |
| fedabipkgdiff: make --self-compare use abipkgdiff --self-check |
| * tools/fedabipkgdiff (abipkgdiff): If the user provides the |
| --self-compare options, generate the abipkgdiff command by using |
| the --self-check option. |
| (run_abipkgdiff): Each return value of the abipkgidiff runs can be |
| negative because they are unsigned values in essence, but as |
| python doesn't seem to have a unsigned integer type. So we need |
| to consider the max of the absolute value of the return codes |
| here. |
| * tests/data/test-fedabipkgdiff/test7-self-compare-from-fc23-dbus-glib-report-0.txt: |
| Adjust. |
| |
| 2020-11-19 Dodji Seketeli <dodji@redhat.com> |
| |
| abipkgdiff: Add a new --self-check option |
| * tools/abipkgdiff.cc (options::self_check): Define new data |
| member. |
| (options::options): Initialize it. |
| (display_usage): Add help string for the --self-check option. |
| (parse_command): Parse the new --self-check option. |
| (extract_deb): Add missing newline. |
| (compare): Remove useless white space. |
| (compare_to_self, self_compare_prepared_userspace_package) |
| (self_compare_prepared_package, compare_to_self): Add new static |
| functions. |
| (class self_compare_task): Add new class. |
| (prepare_package): Add a new overload that takes just one |
| parameter. |
| (elf_size_is_greater): Don't crash if the args are empty. |
| (main): If the --self-check option is given, make sure we have |
| just one package in argument. Use the new compare_to_self |
| function to handle the --self-check option. |
| * doc/manuals/abipkgdiff.rst: Add documentation for the new |
| --self-check option. |
| |
| 2020-11-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26769 - Fix missing types in abixml output |
| * include/abg-corpus.h (corpus::{record_canonical_type, |
| lookup_canonical_type}): Remove function declarations. |
| * src/abg-corpus-priv.h (corpus::priv::canonical_types_): Remove |
| data member. |
| * src/abg-corpus.cc (corpus::{record_canonical_type, |
| lookup_canonical_type}): Remove functions. |
| * src/abg-ir.cc (type_eligible_for_odr_based_comparison): Remove |
| static function. |
| (type_base::get_canonical_type_for): Don't perform the ODR-based |
| optimization for C++ anymore. |
| * src/abg-reader.cc |
| (read_context&::maybe_add_var_to_exported_decls): Don't add a |
| variable that hasn't been added to its scope. Otherwise, it means |
| we added a variable that wasn't yet properly constructed. Also |
| add a new overload for var_decl_sptr&. |
| (build_var_decl): Do not add the var to its the set of exported |
| declaration before we are sure it has been fully constructed and |
| added to the scope it belongs. |
| (build_class_decl): Only add *static* data members to the list of |
| exported declarations. |
| (handle_var_decl): A var decl seen here is a global variable |
| declaration. Add it to the list of exported declarations. |
| * src/abg-writer.cc (write_context::decl_only_type_is_emitted): |
| Constify parameter. |
| (write_translation_unit): Do not forget to emit referenced types |
| that were maybe not canonicalized. Also, avoid using noop_deleter |
| when it's not necessary. |
| (write_namespace_decl): Do not forget to emit canonicalized types |
| that are present in namespaces other than the global namespace. |
| * tests/runtestslowselfcompare.sh.in: New test that compares |
| libabigail.so against its own ABIXML representation. |
| * tests/Makefile.am: Add the new test runtestslowselfcompare.sh to |
| source distribution. This test is too slow to be run during the |
| course of 'make check'. It takes more than 5 minutes on my slow |
| box here. Rather, it can be run using 'make check-self-compare'. |
| I plan to run this before releases now. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test0.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Likewise. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Likewise. |
| * tests/data/test-read-write/test6.xml: Likewise. |
| |
| 2020-11-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Make sure to canonicalize all types but decl-only classes |
| * include/abg-fwd.h (is_declaration_only_class_or_union_type): |
| Declare new ... |
| * src/abg-ir.cc (is_declaration_only_class_or_union_type): |
| ... function. |
| (clone_array): Add the cloned array subrange to |
| its scope so that it can later be canonicalized. |
| (synthesize_type_from_translation_unit) |
| (synthesize_function_type_from_translation_unit): Canonicalize the |
| synthesized types. |
| (hash_as_canonical_type_or_constant): Ensure that all types are |
| canonicalized. |
| * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Remove |
| useless overload. |
| (build_ir_node_for_variadic_parameter_type) |
| (schedule_array_tree_for_late_canonicalization): Define new static |
| functions. |
| (maybe_strip_qualification): Schedule type canonicalization for |
| types cloned prior to editing. |
| (build_function_type): Use the new |
| build_ir_node_for_variadic_parameter_type. It takes care of |
| canonicalizing variadic parameter types. |
| (build_function_decl): Canonicalize the function type that is |
| created here. |
| (build_ir_node_from_die): Use the overload of |
| maybe_canonicalize_type which canonicalizes class_or_union nodes |
| directly, rather than the one which handles DIE offsets. The |
| latter was used as an optimization to reduce the size of the array |
| of types scheduled for canonicalization, as DIE offsets take less |
| space than pointers to IR types. Now that we have DIE |
| de-duplication, my bet is that we can do away with the former. |
| And that also ensures that we miss no type for canonicalization |
| purposes. |
| * src/abg-reader.cc (build_array_type_def): Canonicalize the |
| subrange types of the array. |
| (build_type): Canonicalize all types. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test0.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2020-11-13 Dodji Seketeli <dodji@redhat.com> |
| |
| ir: Add equality op to array_type_def::subrange_type::bound_value |
| * include/abg-ir.h |
| (array_type_def::subrange_type::bound_value::operator==): Declare |
| new ... |
| * src/abg-ir.cc |
| (array_type_def::subrange_type::bound_value::operator==): |
| ... equality operator. |
| |
| 2020-11-12 Dodji Seketeli <dodji@redhat.com> |
| |
| writer: Sort decls and fix topological sorting for types |
| * include/abg-ir.h (scope_decl::get_sorted_member_decls): Declare |
| new member function. |
| * src/abg-ir.cc (struct decl_topo_comp): New sorting functor. |
| (type_topo_comp::operator()): Re-use the decl_topo_comp to sort |
| type declarations. |
| (scope_decl::priv::sorted_members_): Add new data member. |
| (scope_decl::get_sorted_member_decls): Define new member function. |
| * src/abg-writer.cc (write_translation_unit): Use the new |
| scope_decl::get_sorted_member_decls. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-write/test2.xml: Likewise. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Likewise. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Likewise. |
| |
| 2020-10-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug PR26739 - Handle qualified typedef array types |
| * include/abg-fwd.h (is_typedef_of_array, clone_array) |
| (clone_typedef, clone_qualified_type, clone_array_tree): Declare |
| new functions. |
| (peel_qualified_or_typedef_type): Declare new overload. |
| (is_array_of_qualified_element): Constify the parameter. |
| * include/abg-ir.h ({qualified_type, |
| typedef}_def::set_underlying_type): Add new member functions. |
| (array_type_def::subrange_type::subrange_type): Make constify the |
| reference to the underlying type parameter. |
| * src/abg-ir.cc (is_array_of_qualified_element): Constify the |
| parameter. |
| (peel_qualified_or_typedef_type): Define new |
| overload for type_base_sptr. |
| (clone_typedef_array_qualified_type): Define static function. |
| (clone_array clone_typedef, clone_qualified_type) |
| (clone_array_tree, is_typedef_of_array): Define new functions. |
| (qualified_type_def::get_underlying_type): Rename the return type |
| shared_ptr<type_base> into type_base_sptr. |
| ({typedef, qualified_type}_def::set_underlying_type): Define new |
| member function. |
| (array_type_def::subrange_type::priv::priv): Initialize the |
| 'infinite_' data member. |
| * src/abg-dwarf-reader.cc (maybe_strip_qualification): Handle |
| qualified typedef of arrays. Merge this with the handling of |
| qualified arrays. Note that before editing the elements of the |
| array to make the array (or typedef) qualifier apply to the |
| element the sub-tree is cloned to make its type nodes be |
| 'un-shared'. This prevents us from editing type nodes that are |
| shared by other type expressions. |
| * tests/data/test-diff-filter/test-PR26739-report-0.txt: New |
| reference test output. |
| * tests/data/test-diff-filter/test-PR26739-2-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test-PR26739-v{0,1}.c: Source code |
| of new binary test input. |
| * tests/data/test-diff-filter/test-PR26739-2-v{0,1}.c: Likewise. |
| * tests/data/test-diff-filter/test-PR26739-v{0,1}.o: New binary |
| test inputs. |
| * tests/data/test-diff-filter/test-PR26739-2-v{0,1}.o: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the test inputs |
| above to this harness. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| |
| 2020-11-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Update test-libandroid.so.abi |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Update. |
| |
| 2020-10-29 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: Ignore zero length location expressions from DW_AT_location |
| * src/abg-dwarf-reader.cc (die_location_expr): Ignore zero |
| length location expressions. |
| * tests/data/Makefile.am: Add new test files. |
| * tests/data/test-read-dwarf/test-libandroid.so: New test file. |
| * tests/data/test-read-dwarf/test-libandroid.so.abi: Likewise. |
| * tests/test-read-dwarf.cc: Add new test case. |
| Reported-by: Dan Albert <danalbert@google.com> |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| Cc: Mark Wielaard <mark@klomp.org> |
| |
| 2020-10-29 Giuliano Procida <gprocida@google.com> |
| |
| Improve enum synthetic type names |
| * src/abg-dwarf-reader.cc |
| (build_internal_underlying_enum_type_name): Add a size |
| argument (and don't default is_anonymous argument). Append |
| size of type to synthetic type name. |
| (build_enum_underlying_type): Pass type size to |
| build_internal_underlying_enum_type_name. |
| * tests/data/test-abidiff-exit/test-decl-enum-report-3.txt: |
| Update. Note that there may be an issue with leaf-mode |
| reporting of pointer type changes. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: |
| Regenerate this (catching up with various abidw updates). |
| * tests/data/test-annotate/test-anonymous-members-0.o.abi: |
| Refresh with new type names. |
| * tests/data/test-annotate/test0.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test0.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.hash.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2020-10-29 Giuliano Procida <gprocida@google.com> |
| |
| Improve and stabilise sort of member functions |
| * src/abg-ir.cc |
| (virtual_member_function_less_than::operator()): Name |
| temporaries like offsets and symbols to reduce repetition; |
| test each pair of elements (including symbol presence) and |
| return immediately if there's a difference; add a comparison |
| of linkage name just after comparing symbol names. |
| (sort_virtual_member_functions): Use stable_sort instead of |
| sort. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Update with new ordering of member functions. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| |
| 2020-11-01 Dodji Seketeli <dodji@redhat.com> |
| |
| update-test-output.py: Update syntax |
| * tests/update-test-output.py: Update syntax for python3. |
| |
| 2020-10-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26770 - Spurious declaration-only-ness induces spurious type changes |
| * src/abg-dwarf-reader.cc (add_or_update_class_type): When |
| creating a class, set declaration-only-ness unconditionally. When |
| updating the class however, only set the declaration-only-ness |
| when the current one is not consistent with the size of the class. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| |
| 2020-10-21 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: fix lookup for repeated translation unit paths |
| * src/abg-dwarf-reader.cc(build_translation_unit_and_add_to_ir): |
| Fix lookup for potentially already existing translation units. |
| Reported-by: Dan Albert <danalbert@google.com> |
| |
| 2020-10-21 Giuliano Procida <gprocida@google.com> |
| |
| Stabilise sort of canonical types |
| * src/abg-ir.cc (scope_decl::get_sorted_canonical_types): Sort |
| canonical types with std::stable_sort(..., type_topo_comp()). |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-10-27 Mark Wielaard <mark@klomp.org> |
| |
| Assume subrange bounds types are unsigned if no underlying type is given. |
| * src/abg-dwarf-reader.cc (build_subrange_type): Default |
| is_signed to false. |
| |
| 2020-10-23 Mark Wielaard <mark@klomp.org> |
| |
| dwarf-reader: get subrange_type bounds signedness from underlying type |
| * src/abg-dwarf-reader.cc (die_attribute_has_form) |
| (die_attribute_is_signed, die_attribute_is_unsigned) |
| (die_attribute_has_no_signedness): Remove static functions. |
| (die_constant_attribute): Add the 'is_signed' parameter. |
| (die_address_attribute): Adjust comment. |
| (build_subrange_type): Determine signedness of the bounds by |
| looking at the DW_AT_encoding attribute of the underlying type. |
| |
| 2020-10-23 Dodji Seketeli <dodji@redhat.com> |
| |
| abg-tools-utils: Fix comment |
| * include/abg-tools-utils.h (enum abidiff_status): Fix a comment. |
| |
| 2020-10-13 Dodji Seketeli <dodji@redhat.com> |
| |
| configure: Support ABIGAIL_NO_OPTIMIZATION_DEBUG environment variable |
| * configure.ac: Set the CXXFLAGS and CFLAGS to "-g -O0 -Wall |
| -Wextra -Werror" if the ABIGAIL_NO_OPTIMIZATION_DEBUG is set. |
| |
| 2020-10-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Structurally compare the few non-canonicalized types in general |
| * include/abg-fwd.h (hash_as_canonical_type_or_constant): Remove |
| public declaration of this function. |
| * src/abg-hash.cc (type_base::dynamic_hash::operator()): Add a |
| comment. |
| * src/abg-ir.cc (hash_as_canonical_type_or_constant): Make this |
| function static now. |
| (hash_type_or_decl): Use hash_type for types. |
| * src/abg-writer.cc (type_hasher::operator()): Use hash_type. |
| |
| 2020-10-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix redundancy detection in the diff graph |
| * src/abg-comparison-priv.h |
| (diff_context::priv::last_visited_diff_node_): Remove unnecessary |
| data member. |
| (class_or_union_diff::priv::sorted_{deleted,inserted}_member_functions_): |
| Add new data members. |
| (sort_string_member_function_sptr_map): Declare new function. |
| * src/abg-comparison.cc (sort_string_member_function_sptr_map): |
| Define new function. |
| (redundancy_marking_visitor::visit_begin): If the current diff |
| node is equivalent to another one that has been already marked |
| redundant, then consider the current diff node as redundant as |
| well. Considering the fact an ancestor node has been filtered out |
| is now useless because if that's the case then the current |
| descendant node wouldn't even be walked at reporting time. So |
| remove the call to diff_has_ancestor_filtered_out. |
| (categorize_redundancy): Remove useless call here as well. |
| (diff_has_ancestor_filtered_out, diff_has_ancestor_filtered_out) |
| (diff_context::{mark_last_diff_visited_per_class_of_equivalence, |
| clear_last_diffs_visited_per_class_of_equivalence, |
| get_last_visited_diff_of_class_of_equivalence}): Remove |
| unnecessary functions. |
| (redundancy_marking_visitor::visit_end): Add comment. |
| (class_diff::ensure_lookup_tables_populated): Lexicographically |
| sort inserted/deleted member functions. |
| (class_or_union_diff::chain_into_hierarchy): Chain changed data |
| members diff nodes in a sorted manner. |
| * src/abg-default-reporter.cc (default_reporter::report): Report |
| deleted/inserted member functions in lexicographic order. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: |
| Adjust. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt: |
| Likewise. |
| * 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. |
| * 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. |
| |
| 2020-10-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Consider the implicit 'this' parameter when comparing methods |
| * include/abg-ir.h (function_type::get_first_parm): Declare new |
| accessor. |
| * src/abg-ir.cc (function_type::get_first_parm): Define new |
| accessor. |
| (equals): In the overload for function_type, |
| always take the implicit "this" parameter into account in |
| parameter comparisons. |
| (function_type::get_first_non_implicit_parm): Adjust comment. |
| * src/abg-comp-filter.cc (function_name_changed_but_not_symbol): |
| Avoid potential NULL pointer dereferencing. |
| * src/abg-comparison.cc |
| (function_type_diff::ensure_lookup_tables_populated): Always take |
| the changes to the implicit 'this' parameter into account in the |
| function type diff. |
| (compute_diff): In the overload for function_type, Always compare |
| the implicit 'this' parameter when comparing function parameters. |
| * src/abg-default-reporter.cc (default_reporter::report): Refer to |
| "implicit parameter" when reporting changes on parameters |
| artificially generated by the compiler. |
| * src/abg-suppression.cc (type_suppression::suppresses_diff): Make |
| the 'access_through' predicate work on a qualified version of type |
| 'S', even if it was meant to work on type 'S'. This allows it to |
| work on 'const S', especially when S is accessed through 'pointer |
| to const S', which happens when we consider the implicit 'this' |
| parameter of a const member function. |
| * tests/data/test-abicompat/test5-fn-changed-report-0.txt: Adjust. |
| * tests/data/test-abicompat/test5-fn-changed-report-1.txt: Likewise. |
| * tests/data/test-abidiff-exit/test1-voffset-change-report0.txt: |
| Likewise. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Likewise. |
| * tests/data/test-abidiff/test-struct1-report.txt: Likewise. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-dwarf/test0-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test29-vtable-changes-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test30-vtable-changes-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test31-vtable-changes-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test5-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test8-report.txt: Likewise. |
| * tests/data/test-diff-filter/test0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test01-report.txt: Likewise. |
| * tests/data/test-diff-filter/test10-report.txt: Likewise. |
| * tests/data/test-diff-filter/test13-report.txt: Likewise. |
| * tests/data/test-diff-filter/test2-report.txt: Likewise. |
| * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test4-report.txt: Likewise. |
| * tests/data/test-diff-filter/test41-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test9-report.txt: Likewise. |
| * 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. |
| * 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. |
| * 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. |
| * tests/data/test-diff-suppr/test24-soname-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-10.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-11.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-13.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-15.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-16.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-8.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-9.txt: Likewise. |
| * tests/data/test-diff-suppr/test31-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test33-report-0.txt: Likewise. |
| |
| 2020-08-17 Giuliano Procida <gprocida@google.com> |
| |
| Fix two wrongs in test suppression regex |
| * tests/data/test-diff-suppr/test38-char-class-in-ini.abignore: |
| Don't anchor regex match to beginning of file name. |
| Change "filename_regexp" to "file_name_regexp". |
| |
| 2020-08-17 Giuliano Procida <gprocida@google.com> |
| |
| Add missing newlines to end of test files. |
| * tests/data/test-diff-suppr/test0-type-suppr-2.suppr: Add |
| final new line. |
| * tests/data/test-diff-suppr/test22-suppr-removed-var-sym-4.suppr: |
| Likewise. |
| * tests/data/test-diff-suppr/test23-alias-filter-0.suppr: |
| Likewise. |
| * tests/data/test-diff-suppr/test23-alias-filter-4.suppr: |
| Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-1.suppr: |
| Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-2.suppr: |
| Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-3.suppr: |
| Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-4.suppr: |
| Likewise. |
| * tests/data/test-diff-suppr/test41-enumerator-changes-0.suppr: |
| Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-7.suppr: |
| Likewise. |
| * tests/data/test-ini/test01-equal-in-property-string.abignore: |
| Likewise. |
| |
| 2020-09-18 Giuliano Procida <gprocida@google.com> |
| |
| abg-corpus.cc: report architecture discrepancies |
| * src/abg-corpus.cc (corpus_group::add_corpus): Report |
| architecture discrepancies. |
| |
| 2020-09-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26568 - Union should support more than one anonymous member |
| * src/abg-dwarf-reader.cc (add_or_update_union_type): Don't use |
| the empty name of anonymous members in the lookup to ensure that |
| all data members are unique. Rather, use the whole anonymous |
| member itself for the lookup, just like is done to handle |
| anonymous data member in classes/structs. |
| * src/abg-reader.cc (build_union_decl): Likewise. |
| * src/abg-ir.cc (get_generic_anonymous_internal_type_name): Define |
| new static function. |
| (get_type_name): For internal purposes, make the type name of all |
| anonymous types of a given kind to be the same. This allows the |
| internal representation of anonymous types which are based on type |
| names to all be the same, so that they can be compared among |
| themselves during type canonicalization. |
| * tests/data/test-read-dwarf/test-PR26568-{1,2}.c: Source code of |
| binary test input. |
| * tests/data/test-read-dwarf/test-PR26568-{1,2}.o: New binary test input. |
| * tests/data/test-read-dwarf/test-PR26568-{1,2}.o.abi: New |
| reference test ouput. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-read-dwarf.cc (in_out_specs): Add the new binary test |
| input above to this test harness. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: Adjust. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise. |
| |
| 2020-09-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abidiff and abidw support several --headers-dir{1,2} options |
| * doc/manuals/abidiff.rst: Update documentation for the |
| --headers-dir{1,2} options. |
| * doc/manuals/abidw.rst: Likewise for the --header-dir option. |
| * include/abg-tools-utils.h (gen_suppr_spec_from_headers): Add new |
| overload that takes a vector of headers root dirs. |
| * src/abg-tools-utils.cc (gen_suppr_spec_from_headers_root_dir): |
| Define new function. |
| (gen_suppr_spec_from_headers): Define a new overload that takes a |
| vector of head_root_dir strings; it uses the new |
| gen_suppr_spec_from_headers function. Use the new overload in the |
| previous one that takes just one head_root_dir string. |
| * tools/abidiff.cc (options::headers_dirs{1,2}): Rename |
| option::headers_dir{1,2} into this one and make it be a vector of |
| strings rather than just a string. |
| (parse_command_line): Support several --headers-dir{1,2} on the |
| command line. |
| (set_diff_context_from_opts, set_suppressions): Adjust. |
| * tools/abidw.cc (options::headers_dirs): Renamed |
| options::headers_dir into this and make it be a vector of strings |
| rather than just a string. |
| (parse_command_line): Support several --headers-dir on the command |
| line. |
| (set_suppressions): Adjust. |
| * tests/data/test-abidiff-exit/test-headers-dirs/headers-a/header-a-v{0,1}.h: |
| Header files of new binary test input. |
| * tests/data/test-abidiff-exit/test-headers-dirs/headers-b/header-b-v{0,1}.h: |
| Likewise. |
| * tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v{0,1}.c: |
| Source code of new binary test input. |
| * tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-report-{1,2}.txt: |
| Reference output of new binary test input. |
| * tests/data/test-abidiff-exit/test-headers-dirs/test-headers-dir-v{0,1}.o: |
| New binary test input. |
| * tests/data/Makefile.am: Add the new files above to source |
| distribution. |
| * tests/test-abidiff-exit.cc (InOutSpec::in_elfv{0,1}_path): Add |
| new data members. |
| (in_out_specs): Adjust the content of this array as its type |
| changed. Also, add two new entries to run the test over the new |
| binary test inputs above. |
| (do_prefix_strings): Define new static function. |
| (main): Use it the new do_prefix_strings here. Make abidiff |
| use the --header-dir{1,2} option whenever header directories are |
| specified in an entry of the in_out_specs array. |
| |
| 2020-09-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26309 - Wrong leaf reporting of changes to typedef underlying type |
| * src/abg-ir.cc (equals): In the overload for typedef_decls, |
| report changes to the underlying type as being local of kind |
| LOCAL_TYPE_CHANGE_KIND. |
| * src/abg-comparison.cc |
| (leaf_diff_node_marker_visitor::visit_begin): Do not mark typedef |
| diff node as leaf node. |
| (suppression_categorization_visitor::visit_end): Propagate the |
| 'suppressed' category of the underlying type to the parent typedef |
| unless the later has a local non-type change. |
| (redundancy_marking_visitor::visit_end): Likewise for the |
| 'redundant' category. |
| * include/abg-reporter.h (report_non_type_typedef_changes): Rename ... |
| * src/abg-default-reporter.cc (report_non_type_typedef_changes): |
| ... report_local_typedef_changes into this. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Make the leaf |
| reporter invoke the reporting method of the default reporter for |
| typedefs as all typedef changes are now local. |
| * tests/data/test-diff-filter/test-PR26309-report-0.txt: Add new |
| test reference output. |
| * tests/data/test-diff-filter/test-PR26309-v{0,1}.o: Add new test |
| binary input. |
| * tests/data/test-diff-filter/test-PR26309-v{0,1}.c: Add source |
| code for new test binary input. |
| * tests/data/Makefile.am: Add the new text material above to |
| source distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the new test input |
| above to this test harness. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: Adjust. |
| |
| 2020-09-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix thinko in get_vmlinux_path_from_kernel_dist |
| * src/abg-tools-utils.cc (get_vmlinux_path_from_kernel_dist): Fix |
| thinko. |
| |
| 2020-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| writer: Avoid using dynamic hashing in type maps |
| * include/abg-fwd.h (hash_as_canonical_type_or_constant): Declare ... |
| * src/abg-ir.cc (hash_as_canonical_type_or_constant): ... new |
| function. |
| * src/abg-writer.cc (type_hasher::operator()): Use the new |
| hash_as_canonical_type_or_constant. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| |
| 2020-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Use flat representation to canonicalize anonymous classes and unions |
| * src/abg-ir.cc ({class, union}_decl::get_pretty_representation): |
| Use the flat representation of the class or union even for |
| internal purposes. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Likewise. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| |
| 2020-07-24 Giuliano Procida <gprocida@google.com> |
| |
| DWARF: track chained DIE declaration-only status |
| * src/abg-dwarf-reader.cc (add_or_update_class_type): Add an |
| is_declaration_only argument. Use this in favour of the |
| die_is_declaration_only helper function. |
| (add_or_update_union_type): Ditto. |
| (function_is_suppressed): Ditto. |
| (build_or_get_fn_decl_if_not_suppressed): Ditto. |
| (build_enum_type): Ditto. |
| (build_ir_node_from_die): To the main overload, add |
| is_declaration_only argument and default this to true. |
| Update this to false if the given DIE is not declaration |
| only and pass this on in recusrive calls and calls to |
| build_enum_type, add_or_update_union_type, |
| add_or_update_class_type and |
| build_or_get_fn_decl_if_not_suppressed. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Update |
| test. This is mostly the removal of is-declaration-only |
| attributes, removal of unreachable parts of the type graph and |
| type id renumbering. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| |
| 2020-07-24 Giuliano Procida <gprocida@google.com> |
| |
| DWARF: look up DW_AT_declaration non-recursively |
| * src/abg-dwarf-reader.cc (die_die_attribute): Rename |
| 'look_thru_abstract_origin' argument to 'recursively' and |
| mention DW_AT_specification in its doc comment. Remove stale |
| comment for non-existent argument. Simplify code with the help |
| of the ternary operator. (die_flag_attribute): Add |
| recursively argument, defaulted to true. If this is false, |
| look for attribute using dwarf_attr rather than |
| dwarf_attr_integrate. (die_is_declaration_only): Call |
| die_flag_attribute specifying non-recursive attribute search. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Update |
| tests. This is mostly the removal of unreachable parts of the type |
| graph and type id renumbering. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1-report-0.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| |
| 2020-07-24 Giuliano Procida <gprocida@google.com> |
| |
| Improve documentation of abidiff --type-id-style |
| * tools/abidw.cc (display_usage): In documentation of |
| "--type-id-style" option, add a missing closing ')', spell |
| "type id" without a '-', split overly long string over two |
| lines, use "<...>" to indicate mandatory argument and improve |
| description of formats. |
| * doc/manuals/abidw.rst: In documentation of "--type-id-style" |
| option, use "<...>" to indicate mandatory argument. |
| |
| 2020-07-23 Giuliano Procida <gprocida@google.com> |
| |
| Fix maybe_report_data_members_replaced_by_anon_dm |
| * src/abg-reporter-priv.cc |
| (maybe_report_data_members_replaced_by_anon_dm): Move |
| declarations of anonymous_data_member and |
| dms_replaced_by_same_anon_dm into inner loop. Use |
| anonymous_data_member for testing and reporting, allowing |
| iterators i and j to be replaced by just iterator i. Push |
| first decl onto dms_replaced_by_same_anon_dm unconditionally |
| and move control flow logic into loop condition. |
| * tests/data/Makefile.am: Add new test cases. |
| * tests/data/test-diff-filter/test-PR25661-7-report-1.txt: New |
| test case file. |
| * tests/data/test-diff-filter/test-PR25661-7-report-2.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test-PR25661-7-report-3.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test-PR25661-7-report-4.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test-PR25661-7-v0.c: Likewise. |
| * tests/data/test-diff-filter/test-PR25661-7-v0.o: Likewise. |
| * tests/data/test-diff-filter/test-PR25661-7-v1.c: Likewise. |
| * tests/data/test-diff-filter/test-PR25661-7-v1.o: Likewise. |
| * tests/test-diff-filter.cc: Call new test cases. |
| |
| 2020-07-22 Giuliano Procida <gprocida@google.com> |
| |
| Fix decl_base comparison function |
| * src/abg-ir.cc (equals): In the decl_base overload, note that |
| the value returned by decl_names_equal should be negated and |
| replace decls_are_different with decls_are_same, negating all |
| occurrences. |
| * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: |
| Update tests, removing some spurious anonymous union name change. |
| * tests/data/test-diff-filter/test33-report-0.txt: Diff now |
| completely empty. |
| * tests/data/test-diff-pkg/elfutils-libs-0.170-4.el7.x86_64-multiple-sym-vers-report-0.txt: |
| 3 functions previously considered to have harmless changes are |
| now deemed to have no changes. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| 1 struct RedStore data member previously considered to have |
| harmless changes is now deemed to have no changes. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: |
| One instance of an anonymous struct removed and a typedef |
| repointed at another existing instance; many type ids |
| renumbered. |
| |
| 2020-07-22 Giuliano Procida <gprocida@google.com> |
| |
| Make decl_names_equal more accurate |
| * src/abg-tools-utils.cc (decl_names_equal): Move {l,r}_pos2 |
| declarations into the loop and make {l,r}_length const. Avoid |
| chance of arithmetic on string::npos values. Rework |
| logic so there is a single test for "names compare equal" and |
| a single test for different numbers of name components. |
| * tests/test-tools-utils.cc (main): Add nine more tests. |
| |
| 2020-07-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26261 - Fix logic for canonicalizing DW_TAG_subroutine_type DIEs |
| * src/abg-dwarf-reader.cc (compare_dies): Get out early if we are |
| are in the middle of a potential recursive comparison of function |
| types. Likewise if we detect that the two function types have |
| different textual representations, linkage names, or have a the |
| same textual representation, linkage names and are defined in the |
| same translation unit. |
| * tests/data/test-read-dwarf/PR26261/PR26261-exe: New test binary |
| input file. |
| * tests/data/test-read-dwarf/PR26261/PR26261-exe.abi: New |
| reference test output file. |
| * tests/data/test-read-dwarf/PR26261/PR26261-main.c: Source code |
| of the binary above. |
| * tests/data/test-read-dwarf/PR26261/PR26261-obj{a,b}.{c,h}: |
| Likewise. |
| * tests/data/test-read-dwarf/PR26261/Makefile: Makefile to |
| build the exe out of the source files. |
| * tests/data/Makefile.am: Add the new test input files to source |
| distribution. |
| * tests/test-read-dwarf.cc (in_out_spec): Add the binary test |
| input above to the test harness. |
| |
| 2020-07-29 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: re-indent a block of code |
| * src/abg-dwarf-reader.cc (compare_dies): Properly indent a |
| sub-block of the big switch case statement in there. |
| |
| 2020-07-17 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.cc: Remove duplicated line of code |
| * src/abg-ir.cc (decl_base::set_definition_of_declaration): |
| Remove duplicated assignment statement. |
| |
| 2020-07-16 Giuliano Procida <gprocida@google.com> |
| |
| abg-writer.cc: Fix indentation of XML output |
| * src/abg-writer.cc (write_canonical_types_of_scope): Do not |
| add additional indentation. (write_translation_unit): Pass |
| additional indentation to write_canonical_types_of_scope. |
| (write_class_decl): Ensure optional annotations of base |
| classes have the same indentation as the base classes |
| themselves. |
| * tests/data/test-annotate/libtest23.so.abi: Fix indentation. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Ditto. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Ditto. |
| * tests/data/test-annotate/test-anonymous-members-0.o.abi: |
| Ditto. |
| * tests/data/test-annotate/test1.abi: Ditto. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Ditto. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Ditto. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Ditto. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Ditto. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Ditto. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Ditto. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Ditto. |
| * tests/data/test-diff-suppr/test45-abi-wl.xml: Ditto. |
| * tests/data/test-diff-suppr/test45-abi.xml: Ditto. |
| * tests/data/test-diff-suppr/test46-PR25128-base.xml: Ditto. |
| * tests/data/test-diff-suppr/test46-PR25128-new.xml: Ditto. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Ditto. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Ditto. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test1.abi: Ditto. |
| * tests/data/test-read-dwarf/test1.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Ditto. |
| * tests/data/test-read-write/test10.xml: Ditto. |
| * tests/data/test-read-write/test15.xml: Ditto. |
| * tests/data/test-read-write/test21.xml: Ditto. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Ditto. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Ditto. |
| |
| 2020-07-16 Giuliano Procida <gprocida@google.com> |
| |
| Remove ABI XML test data file blank lines |
| * tests/data/test-abidiff/test-PR18166-libtirpc.so.abi: Remove |
| blank lines. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: |
| Ditto. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Ditto. |
| * tests/data/test-diff-suppr/test45-abi-wl.xml: Ditto. |
| * tests/data/test-diff-suppr/test45-abi.xml: Ditto. |
| * tests/data/test-diff-suppr/test46-PR25128-base.xml: Ditto. |
| * tests/data/test-diff-suppr/test46-PR25128-new.xml: Ditto. |
| |
| 2020-07-15 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.cc: Fix incorrect pop of compared types. |
| * src/abg-ir.cc (equals): In the class_or_union overload, |
| replace one instance of RETURN(false) with return false. |
| |
| 2020-07-09 Giuliano Procida <gprocida@google.com> |
| |
| Enable Clang's -Werror-overloaded-virtual. |
| * configure.ac: Remove the special clause that disabled |
| -Werror-overloaded-virtual for Clang builds. |
| |
| 2020-07-09 Giuliano Procida <gprocida@google.com> |
| |
| Fix inheritance of scope_decl::insert_member_decl |
| * include/abg-ir.h (scope_decl::insert_member_decl): Change |
| type of member argument from const decl_base_sptr& to plain |
| decl_base_sptr. |
| * src/abg-ir.cc (scope_decl::insert_member_decl): Likewise. |
| |
| 2020-07-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Pimpl-ify traversable_base and remove its unused traverse method |
| * include/abg-traverse.h (traversable_base::priv): Declare new type. |
| (traverse_base::priv_sptr): Add pointer to private data |
| member. |
| (traverse_base::visiting_): Move this data member definition into |
| traverse_base::priv. |
| (traverse_base::{visiting, traverse_base, ~traverse_base}): Move |
| definitions out-of-oline. |
| (traverse_base::traverse): Comment out. |
| * src/abg-traverse.cc (struct traversable_base::priv): Define new |
| type. |
| (traversable_base::{traversable_base, ~traversable_base, traverse, |
| visiting}): Move these previous inline definitions here. |
| |
| 2020-07-09 Giuliano Procida <gprocida@google.com> |
| |
| Simplify peel_typedef_pointer_or_reference_type |
| * include/abg-fwd.h (peel_qualified_or_typedef_type): Remove |
| second argument in declarations of both overloads. |
| * src/abg-comp-filter.cc (is_mostly_distinct_diff): Remove |
| second argument to peel_qualified_or_typedef_type. |
| * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Likewise. |
| * src/abg-ir.cc (peel_qualified_or_typedef_type): In both |
| overloads, remove second argument peel_qual_type, simplify |
| code with the assumption it was always false and remove |
| incomplete array type peeling logic. In type_base_sptr |
| overload, remove stray space. |
| |
| 2020-07-09 Giuliano Procida <gprocida@google.com> |
| |
| Remove unused is_reference_or_pointer_diff. |
| * include/abg-comparison.h (is_reference_or_pointer_diff): |
| Drop function declaration. |
| * src/abg-comparison.cc (is_reference_or_pointer_diff): Drop |
| function definition. |
| |
| 2020-07-09 Giuliano Procida <gprocida@google.com> |
| |
| abg-comparison.h: Remove stray declaration |
| * include/abg-comparison |
| (is_reference_or_pointer_diff_to_non_basic_distinct_types): |
| Remove stray declaration. |
| |
| 2020-07-08 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.cc: Refactor operator== methods with helper function |
| * src/abg-ir.cc (try_canonical_compare): New template function. |
| (type_decl::operator==): Use it here. |
| (scope_type_decl::operator==): Likewise. |
| (qualified_type_def::operator==): Likewise. |
| (pointer_type_def::operator==): Likewise. |
| (reference_type_def::operator==): Likewise. |
| (array_type_def::subrange_type::operator==): Likewise. |
| (array_type_def::operator==): Likewise. |
| (enum_type_decl::operator==): Likewise. |
| (typedef_decl::operator==): Likewise. |
| (function_type::operator==): Likewise. |
| (class_or_union::operator==): Likewise. |
| (class_decl::operator==): Likewise. |
| (union_decl::operator==): Likewise. |
| |
| 2020-07-01 Giuliano Procida <gprocida@google.com> |
| |
| abg-comparison.cc: Tidy some corpus_diff code |
| * src/abg-comparison.cc (corpus_diff::priv::emit_diff_stats): |
| Adjust code whitespace; rename the second instance of |
| total_nb_variable_changes to |
| total_nb_unreachable_type_changes. |
| (corpus_diff::has_incompatible_changes): Fix comment typo. |
| |
| 2020-07-06 Giuliano Procida <gprocida@google.com> |
| |
| Fix --type-id-style hash for empty internal names. |
| * src/abg-writer.cc (write_context::get_id_for_type): When |
| hashing internal type names, convert to std::string rather |
| than using the raw method directly as this will avoid a null |
| pointer dereference in the case of an empty string; tabify |
| code indentation. |
| |
| 2020-07-08 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.cc: Tidy some operator== definitions |
| * src/abg-irc.cc (scope_type_decl::operator==): Compare naked |
| canonical type pointers instead of the shared pointers. |
| (qualified_type_def::operator==): Remove excess blank line. |
| (function_type::operator==): Do dynamic_cast and check of |
| argument before comparing naked canonical type pointers. |
| (class_or_union::operator==): Eliminate temporary reference. |
| (class_decl::operator==): Likewise. |
| (union_decl::operator==): Likewise. |
| |
| 2020-07-17 Giuliano Procida <gprocida@google.com> |
| |
| Fix corpus_diff::has_net_changes for --leaf-changes-only mode |
| * include/abg-reporter.h ({reporter_base, default_reporter, |
| leaf_reporter}::diff_has_net_changes): Add new virtual function. |
| This breaks binary compatibility but should conserve source |
| compatibility. |
| * src/abg-default-reporter.cc |
| (default_reporter::diff_has_net_changes): Define new member |
| function. |
| * src/abg-leaf-reporter.cc (leaf_reporter::diff_has_net_changes): |
| Likewise. |
| * src/abg-comparison.cc (corpus_diff::has_net_changes): Invoke |
| reporter_base::diff_has_net_changes on the current reporter, |
| rather than trying to handle all the different kinds of reporters |
| here. |
| (corpus_diff::priv::apply_filters_and_compute_diff_stats): Add a |
| TODO to possibly delegate the implementation of this function to |
| the reporters. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-net-change-report0.txt: |
| Normal mode, nothing suppressed. |
| * tests/data/test-abidiff-exit/test-net-change-report1.txt: |
| Normal mode, everything suppressed. |
| * tests/data/test-abidiff-exit/test-net-change-report2.txt: |
| Leaf mode, nothing suppressed. |
| * tests/data/test-abidiff-exit/test-net-change-report3.txt: |
| Leaf mode, everything suppressions. |
| * tests/data/test-abidiff-exit/test-net-change-v0.c: Test file |
| * tests/data/test-abidiff-exit/test-net-change-v0.o: Test file |
| * tests/data/test-abidiff-exit/test-net-change-v1.c: Test file |
| * tests/data/test-abidiff-exit/test-net-change-v1.o: Test file |
| * tests/data/test-abidiff-exit/test-net-change.abignore: This |
| suppresses changes for all variables, functions and types in |
| the test files, except for the 'victim' function. |
| * tests/test-abidiff-exit.cc: Run new test cases. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-07-01 Giuliano Procida <gprocida@google.com> |
| |
| reporter: Fix report whitespace typos. |
| * src/abg-reporter-priv.cc (represent): Add missing space to |
| string split across two lines in certain anonymous data member |
| diffs. |
| * src/abg-default-reporter.cc (report): In the array_diff |
| overload, eliminate trailing space at end of line. |
| * tests/data/test-diff-dwarf/test10-report.txt: Delete |
| trailing whitespace. |
| * tests/data/test-diff-filter/test24-compatible-vars-report-1.txt: |
| Ditto. |
| * 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: |
| Ditto. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: |
| Ditto. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: |
| Ditto. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Ditto. |
| |
| 2020-07-09 Giuliano Procida <gprocida@google.com> |
| |
| abg-writer.cc: Clean up new line emission. |
| * src/abg-writer.cc (annotate): In the |
| function_decl::parameter_sptr overload, fix code whitespace. |
| (write_decl_in_scope): Remove wrote_context state variable and |
| associated logic; emit new line unconditionally after end of |
| XML tags and nowhere else. |
| (write_canonical_types_of_scope): Emit new line after end of |
| XML comment and nowhere else. |
| (write_translation_unit): Emit new line after end of XML tags |
| and nowhere else. |
| (write_type_decl): Likewise. |
| (write_namespace_decl): Likewise. |
| (write_qualified_type_def): Emit new line after end of XML tag. |
| (write_pointer_type_def): Likewise. |
| (write_reference_type_def): Likewise. |
| (write_array_type_def): Emit new line after end of XML tags |
| and nowhere else. |
| (write_enum_type_decl): Emit new line after end of XML tag. |
| (write_elf_symbol): Likewise. |
| (write_elf_symbols_table): Emit no new lines. |
| (write_elf_needed): Emit new line unconditionally after end of |
| XML tags. |
| (write_typedef_decl): Emit new line after end of XML tag. |
| (write_var_decl): Emit new line after end of XML tag. |
| (write_function_decl): Likewise. |
| (write_function_type): Fold two output statements into |
| one; emit new line after end of XML tag. |
| (write_class_decl_opening_tag): Emit new line unconditionally |
| after end of XML tags and simplify empty element tag logic. |
| (write_union_decl_opening_tag): Likewise. |
| (write_class_decl): Emit new line after end of XML tag and |
| nowhere else. |
| (write_union_decl): Likewise. |
| (write_member_type_opening_tag): Emit new line after end of |
| XML tag. |
| (write_member_type): Emit new lines only after XML tags. |
| (write_type_tparameter): Emit new line after XML tag. |
| (write_non_type_tparameter): Likewise. |
| (write_template_tparameter): Emit new line after XML tag and |
| nowhere else. |
| (write_type_composition): Likewise. |
| (write_template_parameters): Emit no new lines. |
| (write_function_tdecl): Emit new line after XML tag and |
| nowhere else. |
| (write_class_tdecl): Likewise. |
| (write_corpus): Emit new lines only after XML tags. |
| (dump): In the decl_base_sptr overload, don't emit final new |
| line as this is now done by write_decl. In the var_decl_sptr |
| overload, don't emit final new line (mistakenly done to cerr |
| instead of o) as this is now done by write_var_decl. In the |
| translation_unit overload, don't emit final new line as this |
| doubles that emitted by write_translation_unit. |
| * tests/data/test-annotate/libtest23.so.abi: Delete all blank |
| lines. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Ditto. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Ditto. |
| * tests/data/test-annotate/test-anonymous-members-0.o.abi: |
| Ditto. |
| * tests/data/test-annotate/test1.abi: Ditto. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Ditto. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Ditto. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Ditto. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Ditto. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Ditto. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Ditto. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Ditto. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Ditto. |
| * tests/data/test-annotate/test7.so.abi: Ditto. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Ditto. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Ditto. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Ditto. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test1.abi: Ditto. |
| * tests/data/test-read-dwarf/test1.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test7.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test7.so.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: |
| Ditto. |
| * tests/data/test-read-write/test10.xml: Ditto. |
| * tests/data/test-read-write/test15.xml: Ditto. |
| * tests/data/test-read-write/test21.xml: Ditto. |
| * tests/data/test-read-write/test25.xml: Ditto. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Ditto. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Ditto. |
| |
| 2020-07-09 Dodji Seketeli <dodji@redhat.com> |
| |
| reader: Remove useless support for WIP types |
| * src/abg-reader.cc (read_context::m_wip_types_map): Remove data |
| member. |
| (read_context::{clear_wip_classes_map, mark_type_as_wip, |
| unmark_type_as_wip, is_wip_type}): Remove member functions. |
| (read_context::maybe_canonicalize_type): Remove use of |
| is_wip_type. |
| |
| 2020-06-19 Giuliano Procida <gprocida@google.com> |
| |
| Use pointers not strings in type graph comparison. |
| * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: |
| Update. |
| * tests/data/test-diff-pkg/elfutils-libs-0.170-4.el7.x86_64-multiple-sym-vers-report-0.txt: |
| Update. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Update. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Update. |
| |
| 2020-06-10 Giuliano Procida <gprocida@google.com> |
| |
| Add tests for declaration-only enums. |
| * tests/data/test-abidiff-exit/test-decl-enum-report-2.txt: Add |
| new test reference output. |
| * tests/data/test-abidiff-exit/test-decl-enum-report-3.txt: Likewise. |
| * tests/data/test-abidiff-exit/test-decl-enum-report.txt: Likewise. |
| * tests/data/test-abidiff-exit/test-decl-enum-v{0,1}.c: Add source |
| code for the binaries below. |
| * tests/data/test-abidiff-exit/test-decl-enum-v{0,1}.o: Add new |
| binary test inputs. |
| * tests/data/Makefile.am: Add the new files above to source |
| distribution. |
| * tests/test-abidiff-exit.cc: Add the test inputs above to the |
| test harness. |
| |
| 2020-06-10 Giuliano Procida <gprocida@google.com> |
| |
| Add declaration-only enums to XML reader/writer. |
| * src/abg-reader.cc (build_enum_type_decl): Detect a |
| declaration-only enum and flag it as such. |
| (build_type_decl): Support reading the "is-declaration" attribute. |
| (build_class_decl): Adjust. |
| * src/abg-writer.cc (write_is_declaration_only): Renamed |
| write_class_or_union_is_declaration_only into this. |
| (write_enum_is_declaration_only): Remove. |
| (write_type_decl, write_enum_type_decl) |
| (write_class_decl_opening_tag, write_union_decl_opening_tag): Use |
| write_is_declaration_only. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2020-06-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Support declaration-only enums in DWARF reader. |
| * src/abg-dwarf-reader.cc (string_enums_map): Define new |
| convenience typedef. |
| (read_context::decl_only_enums_map_): Define new data member. |
| (read_context::{declaration_only_enums, |
| is_decl_only_enum_scheduled_for_resolution, |
| resolve_declaration_only_enums}): Define new member functions. |
| (build_internal_underlying_enum_type_name) |
| (build_enum_underlying_type): Factorize these functions out of ... |
| (build_enum_type): ... here. Detect a decl-only enum and flag it |
| as such. If the enum type is decl-only, then set its underlying |
| type as decl-only as well. |
| (build_enum_underlying_type): Mark the underlying type as |
| artificial. |
| (get_opaque_version_of_type): Make this handle enums as well. So |
| make its return type be type_or_decl_base_sptr, rather than just |
| class_or_union_sptr as it used to be. |
| (read_debug_info_into_corpus): Add logging to trace decl-only |
| enums resolution. |
| (build_ir_node_from_die): Detect when a suppression specification |
| makes an enum opaque. In that case, get an opaque version of the |
| enum type by invoking get_opaque_version_of_type. Note that |
| get_opaque_version_of_type doesn't support returning opaque |
| -- i.e, decl-only enum types -- yet, but this is going to be |
| handled in a subsequent patch. |
| |
| 2020-06-10 Giuliano Procida <gprocida@google.com> |
| |
| Support incomplete enums in core and diff code. |
| * include/abg-comp-filter.h (has_decl_only_def_change) : Declare |
| New function. |
| * src/abg-comp-filter.cc (there_is_a_decl_only_enum): Define new |
| static function and ... |
| (type_size_changed): ... use it here. |
| (has_decl_only_def_change): Define new function and ... |
| (categorize_harm{less, ful}_diff_node): ... use it here. |
| * include/abg-fwd.h (enums_type, decl_base_wptr): Declare new |
| typedefs. |
| (look_through_decl_only_class): Declare new overload for |
| class_or_union*. |
| (is_compatible_with_enum_type, is_compatible_with_enum_type) |
| (look_through_decl_only, lookup_enum_types, lookup_enum_types): |
| Declare new functions. |
| * include/abg-ir.h (decl_base::{get_is_declaration_only, |
| set_is_declaration_only, set_definition_of_declaration, |
| get_definition_of_declaration, |
| get_naked_definition_of_declaration}): Declare new member |
| functions. They were moved here from the class_or_union class. |
| (class_or_union::{get_earlier_declaration, |
| set_earlier_declaration, get_definition_of_declaration, |
| set_definition_of_declaration, |
| get_naked_definition_of_declaration, get_is_declaration_only, |
| set_is_declaration_only}): Remove these member functions. |
| * src/abg-ir.cc (decl_base::priv::{declaration_, |
| definition_of_declaration_, naked_definition_of_declaration_, |
| is_declaration_only_}): Define data members. Moved here from |
| class_or_union. |
| (decl_base::priv::priv): Adjust to initialize the new data |
| members. |
| (decl_base::{get_earlier_declaration, set_earlier_declaration, |
| get_definition_of_declaration, |
| get_naked_definition_of_declaration, get_is_declaration_only, |
| set_is_declaration_only, set_definition_of_declaration}): Define |
| member functions. |
| (operator|): In the overload for (change_kind, change_kind), |
| adjust the return type of the call to |
| decl_base::get_definition_of_declaration. |
| (look_through_decl_only): Define new function. |
| (look_through_decl_only_class): Adjust. |
| (look_through_decl_only_enum): Likewise. |
| (maybe_update_types_lookup_map<class_decl>): Adjust return type of |
| call to decl_base::get_definition_of_declaration. |
| (types_defined_same_linux_kernel_corpus_public): Use |
| look_through_decl_only_class rather than open coding it. |
| (class_or_union::priv::{declaration_, definition_of_declaration_, |
| naked_definition_of_declaration_, is_declaration_only_}): Remove |
| these data members. They are now carried by decl_base::priv. |
| (class_or_union::{g,s}et_alignment_in_bits): Adjust. |
| (class_or_union::{g,s}et_size_in_bits): Likewise. |
| (class_or_union::operator==): Likewise. |
| (equals): Adjust the overload for class_or_union. |
| (is_compatible_with_enum_type) |
| * src/abg-comparison.cc (try_to_diff<class_decl>): Adjust the |
| return type of decl_base::get_definition_of_declaration. |
| (leaf_diff_node_marker_visitor::visit_begin): Use |
| filtering::has_decl_only_def_change rather than |
| filtering::has_class_decl_only_def_change. Decl-only changes to |
| enums (or any other type really) will thus not be recorded as leaf |
| changes. |
| * src/abg-dwarf-reader.cc (get_scope_for_die): Adjust return type |
| of decl_base::get_definition_of_declaration. |
| * src/abg-default-reporter.cc (default_reporter::report): Report |
| enum decl-only <-> definition changes. |
| * src/abg-hash.cc (class_or_union::hash::operator()): In the |
| overload for class_or_union& adjust the return type for |
| decl_base::get_definition_of_declaration. |
| |
| 2020-06-19 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.cc: Remove unused re_canonicalize function. |
| * include/abg-fwd.h (re_canonicalize): Remove declaration of |
| obsolete function. |
| * include/abg-ir.h (class {decl_base, type_base}): Remove |
| re_canonicalize friend declarations from these classes. |
| * src/abg-ir.cc (re_canonicalize): Remove obsolete function. |
| |
| 2020-06-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26135 - Wrong linkage name causes anonymous classes miscomparison |
| * include/abg-ir.h (class_decl::class_decl): Add two overloads |
| that take the "is_anonymous" flag. |
| (union_decl::union_decl): Likewise. |
| * src/abg-ir.cc (class_decl::class_decl): Define two overloads |
| that take the "is_anonymous" flag and set the linkage name |
| accordingly. |
| (union_decl::union_decl): Likewise. |
| (type_base::get_canonical_type_for): Assert that an anonymous |
| class or union can't have a linkage name for now. |
| * src/abg-dwarf-reader.cc (add_or_update_class_type) |
| (add_or_update_union_type): Use a new overload for the constuctor |
| of {class, union}_decl and set the "is_anonymous" flag. Don't use |
| decl_base::set_is_anonymous anymore. |
| * src/abg-reader.cc (build_class_decl, build_union_decl): |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2020-06-29 Giuliano Procida <gprocida@google.com> |
| |
| Rename declaration-definition change category. |
| * include/abg-comparison.h (TYPE_DECL_ONLY_DEF_CHANGE_CATEGORY): |
| Rename CLASS_DECL_ONLY_DEF_CHANGE_CATEGORY into this. |
| (EVERYTHING_CATEGORY): In the value of this enumerator, rename |
| CLASS_DECL_ONLY_DEF_CHANGE_CATEGORY into |
| TYPE_DECL_ONLY_DEF_CHANGE_CATEGORY. |
| * src/abg-comp-filter.cc (categorize_harmless_diff_node): |
| Likewise. |
| * src/abg-comparison.cc (get_default_harmless_categories_bitmap): |
| Likewise. |
| (operator<<(ostream& o, diff_category c)): Likewise. |
| * src/abg-default-reporter.cc (default_reporter::report): Likewise |
| in the overload for class_or_union_diff. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Likewise in |
| the overload for class_or_union_diff. |
| |
| 2020-06-10 Giuliano Procida <gprocida@google.com> |
| |
| Tidy build_enum_type state variables. |
| * src/abg-dwarf-reader.cc (build_enum_type): Rename local |
| variable enum_is_anonymous to is_anonymous. Move initilisation |
| of local variable is_artificial to location corresponding to |
| that in add_or_update_class_type and add_or_update_union_type |
| functions. |
| |
| 2020-06-10 Giuliano Procida <gprocida@google.com> |
| |
| Refactor d.context() as ctxt in report(enum_diff). |
| * src/abg-default-reporter.cc (report): In the enum_diff |
| overload, introduce the name ctxt to replace four occurrences |
| of d.context(). |
| |
| 2020-06-10 Giuliano Procida <gprocida@google.com> |
| |
| Improve code comments and whitespace. |
| * include/abg-fwd.h: Correct doc-comment reference to |
| enum_type_decl. |
| * src/abg-comp-filter.cc: Fix doc-comment syntax. |
| * src/abg-comparison.cc (operator<<): In the diff_category |
| overload, fix code indentation. |
| * src/abg-default-reporter.cc (report): In the |
| class_or_union_diff overload, adjust comment to reflect that |
| the code is reporting changes between declaration-only and |
| defined types, in either direction. |
| |
| 2020-06-17 Giuliano Procida <gprocida@google.com> |
| |
| get_canonical_type_for: restore environment better |
| * src/abg-ir.cc (get_canonical_type_for): Ensure the |
| do_on_the_fly_canonicalization and |
| decl_only_class_equals_definition flags are restored |
| unconditionally. |
| |
| 2020-06-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 26127 - abidw --annotate emits incomplete function types |
| * include/abg-ir.h (decl_base::clear_qualified_name): Declare new |
| protected member function. |
| ({pointer_type_def, reference_type_def, qualified_type_def, |
| function_type}::on_canonical_type_set): Declare virtual member |
| functions. |
| * src/abg-ir.cc (decl_base::clear_qualified_name): Define new |
| protected member function. |
| ({pointer_type_def, reference_type_def, qualified_type_def, |
| function_type}::on_canonical_type_set): Define virtual member |
| functions. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| |
| 2020-06-11 Giuliano Procida <gprocida@google.com> |
| |
| Fix bug that suppressed DWARF read tests. |
| * tests/test-read-dwarf.cc (in_out_specs): Use NULL instead of |
| empty ABI paths for test25, test26 and test27. (perform): |
| Check members of spec, rather than locals with same name, when |
| deciding to terminate testing early; fix some code whitespace. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Update |
| multidimensional array sizes. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test7.so.abi: Ditto. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Update following translation unit ordering change. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Ditto. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Ditto. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: Update |
| following code changes affecting ordering of some ABI |
| elements. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| Tested-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-06-16 Matthias Maennich <maennich@google.com> |
| |
| cleanup: std::weak_ptr use: replace manual lock by std::weak_ptr::lock |
| * src/abg-comparison-priv.h (diff::priv::get_context): improve |
| weak_ptr usage. |
| (corpus_diff:diff_stats::priv::ctxt): Likewise. |
| * src/abg-comparison.cc (corpus_diff::priv::get_context): Likewise. |
| (var_diff::type_diff): Likewise. |
| * src/abg-ir.cc (elf_symbol::get_next_alias): Likewise. |
| (elf_symbol::get_next_common_instance): Likewise. |
| (type_base::get_canonical_type): Likewise. |
| (qualified_type_def::get_underlying_type): Likewise. |
| (pointer_type_def::get_pointed_to_type): Likewise. |
| (reference_type_def::get_pointed_to_type): Likewise. |
| (array_type_def::subrange_type::get_underlying_type): Likewise. |
| (array_type_def::get_element_type): Likewise. |
| (typedef_decl::get_underlying_type): Likewise. |
| (var_decl::get_type): Likewise. |
| (function_type::get_return_type): Likewise. |
| (function_decl::get_type): Likewise. |
| (function_decl::parameter::get_type): Likewise. |
| (class_or_union::get_naming_typedef): Likewise. |
| (class_or_union::get_definition_of_declaration): Likewise. |
| (class_decl::base_spec::get_base_class): Likewise. |
| (template_parameter::get_enclosing_template_decl): Likewise. |
| (non_type_tparameter::get_type): Likewise. |
| (type_composition::get_composed_type): Likewise. |
| |
| 2020-06-16 Giuliano Procida <gprocida@google.com> |
| |
| Fix leaf-mode formatting of decl <-> defn diffs. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): In the |
| class_or_union_diff overload, add a terminating new line after |
| reporting a declaration-only <-> definition difference. |
| |
| 2020-06-15 Giuliano Procida <gprocida@google.com> |
| |
| abg-writer: Add support for stable hash type ids. |
| * doc/manuals/abidw.rst: Replace stray documentation of |
| --named-type-ids with documention of new --type-id-style |
| option. |
| * include/abg-writer.h (type_id_style_kind): Add new enum. |
| (set_type_id_style): Add new write_context setter. |
| (set_common_options): Set type id style in write context. |
| * include/abg-hash.h (fnv_hash): Declare new 32-bit FNV-1a |
| hash function in abigail::hashing namespace. |
| * src/abg-hash.h (fnv_hash): Define new 32-bit FNV-1a hash |
| function in abigail::hashing namespace. |
| * src/abg-writer.cc (write_context): Add m_type_id_style |
| member to record type style to use, defaulting to |
| SEQUENCE_TYPE_ID_STYLE; add m_used_type_id_hashes to record |
| already-used hashes. |
| (write_context::get_type_id_style): Add new getter. |
| (write_context::set_type_id_style): Add new setter. |
| (get_id_for_type): Add support for HASH_TYPE_ID_STYLE style. |
| (set_type_id_style): Add new helper function. |
| * tools/abidw.cc (options): Add type_id_style member. |
| (display_usage): Add description of --type-id-style option. |
| (parse_command_line): Parse --type-id-style option. |
| * tests/data/Makefile.am: Add new hash type id ABI files. |
| * tests/test-read-dwarf.cc: (InOutSpec): Add type_id_style |
| member. |
| (in_out_specs): Set type_id_style to SEQUENCE_TYPE_ID_STYLE in |
| existing test specifications. Duplicate first 9 test cases |
| with type_id_style set to HASH_TYPE_ID_STYLE. |
| * tests/data/test-read-dwarf/test0.hash.abi: New ABI XML file |
| with hash type ids. |
| * tests/data/test-read-dwarf/test1.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test2.so.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test3.so.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test4.so.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test5.o.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test6.so.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test7.so.hash.abi: Ditto. |
| * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi: |
| Ditto. |
| |
| 2020-06-12 Giuliano Procida <gprocida@google.com> |
| |
| Eliminate non-ASCII characters. |
| * include/abg-diff-utils.h: Replace "’’" with "'". |
| * src/abg-elf-helpers.cc: Replace "â‹…" with ".". |
| * src/abg-ini.cc: Replace "@êef" with "@ref". |
| * src/abg-ir.cc: Ditto. |
| * src/abg-tools-utils.cc: Replace "–" with "-". |
| |
| 2020-06-11 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: get_die_source: always initialize return value |
| * src/abg-dwarf-reader.cc |
| (read_context::get_die_source): Always initialize die_source. |
| (read_context::ContainerType::get_container): Fix |
| initialization of die_source. |
| (read_context::compute_canonical_die): Likewise. |
| (read_context::get_canonical_die): Likewise. |
| (read_context::get_or_compute_canonical_die): Likewise. |
| (read_context::associate_die_to_decl): Likewise. |
| (read_context::set_canonical_die_offset): Likewise. |
| (read_context::schedule_type_for_late_canonicalization): Likewise. |
| (read_context::compare_dies): Likewise. |
| (read_context::get_parent_die): Likewise. |
| (read_context::get_scope_for_die): Likewise. |
| (read_context::add_or_update_union_type): Likewise. |
| (read_context::maybe_canonicalize_type): Likewise. |
| (read_context::build_ir_node_from_die): Likewise. |
| |
| 2020-06-09 Matthias Maennich <maennich@google.com> |
| |
| abipkgdiff: remove unused includes of elfutils/libdw.h and elf.h |
| * tools/abipkgdiff.cc: Drop unused includes. |
| |
| 2020-05-29 Matthias Maennich <maennich@google.com> |
| |
| abg-reporter: fully qualify std::string and std::ostream |
| * include/abg-reporter.h (reporter_base::report) fully qualify |
| std::string and std::ostream for all overloads. |
| (default_reporter::report_local_typedef_changes): Likewise. |
| (default_reporter::report_local_qualified_type_changes): Likewise. |
| (default_reporter::report_local_reference_type_changes): Likewise. |
| (default_reporter::report_local_function_type_changes): Likewise. |
| (default_reporter::report): Likewise. |
| (leaf_reporter::report_changes_from_diff_maps): Likewise. |
| (leaf_reporter::report): Likewise. |
| Suggested-by: Mark Barolak <mbar@google.com> |
| |
| 2020-06-05 Giuliano Procida <gprocida@google.com> |
| |
| Fix HARMLESS_SYMBOL_ALIAS_CHANGE_CATEGORY spelling |
| * include/abg-comparison.h (enum diff_category): Rename |
| HARMLESS_SYMBOL_ALIAS_CHANGE_CATEORY enumerator to |
| HARMLESS_SYMBOL_ALIAS_CHANGE_CATEGORY. |
| * src/abg-comp-filter.cc (categorize_harmless_diff_node): Replace |
| use of HARMLESS_SYMBOL_ALIAS_CHANGE_CATEORY enumerator with |
| HARMLESS_SYMBOL_ALIAS_CHANGE_CATEGORY. |
| * src/abg-comparison.cc (get_default_harmless_categories_bitmap): |
| Replace use of HARMLESS_SYMBOL_ALIAS_CHANGE_CATEORY enumerator |
| with HARMLESS_SYMBOL_ALIAS_CHANGE_CATEGORY. |
| (operator<<): In the diff_category overload, replace use of |
| HARMLESS_SYMBOL_ALIAS_CHANGE_CATEORY enumerator with |
| HARMLESS_SYMBOL_ALIAS_CHANGE_CATEGORY and output correct |
| spelling for both this and HARMLESS_UNION_CHANGE_CATEGORY. |
| * tools/abicompat.cc (create_diff_context): Replace use of |
| HARMLESS_SYMBOL_ALIAS_CHANGE_CATEORY enumerator with |
| HARMLESS_SYMBOL_ALIAS_CHANGE_CATEGORY. |
| |
| 2020-05-18 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: read_context: drop unused symbol versioning code |
| * src/abg-dwarf-reader.cc |
| (read_context::versym_section_): Delete. |
| (read_context::verdef_section_): Delete. |
| (read_context::verneed_section_): Delete. |
| (read_context::symbol_versionning_sections_loaded_): Delete. |
| (read_context::symbol_versionning_sections_found_): Delete. |
| (read_context::initialize): Remove initializations of deleted members. |
| (read_context::get_symbol_versionning_sections): Delete. |
| (read_context::get_version_for_symbol): Delete. |
| (read_context::lookup_elf_symbol_from_index): Use |
| get_version_for_symbol provided by elf_helpers. |
| |
| 2020-05-18 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: Remove unused code |
| * src/abg-dwarf-reader.cc |
| (lookup_public_variable_symbol_from_elf): Delete. |
| (read_context::bss_section_): Delete. |
| (read_context::text_section_): Delete. |
| (read_context::rodata_section_): Delete. |
| (read_context::data_section_): Delete. |
| (read_context::data1_section_): Delete. |
| (read_context::initialize): Remove initializations of deleted members. |
| (read_context::options): Delete. |
| (read_context::bss_section): Delete. |
| (read_context::text_section): Delete. |
| (read_context::rodata_section): Delete. |
| (read_context::data_section): Delete. |
| (read_context::data1_section): Delete. |
| (read_context::get_elf_file_type): Delete. |
| (read_context::lookup_symbol_from_elf): Delete. |
| (read_context::lookup_public_variable_symbol_from_elf): Delete. |
| (read_context::fun_addr_sym_map_sptr): Delete. |
| (read_context::fun_addr_sym_map): Delete. |
| (read_context::get_data_section_for_variable_address): Delete. |
| (read_context::suppression_matches_function_sym_name): Delete. |
| (read_context::suppression_matches_function_name): Delete. |
| (read_context::suppression_matches_type_name): Delete. |
| |
| 2020-05-29 Dodji Seketeli <dodji@redhat.com> |
| |
| abigail.m4: Fix copyright notice |
| * abigail.m4: Mention Red Hat in the copyright and myself as author. |
| |
| 2020-05-18 Matthias Maennich <maennich@google.com> |
| |
| tests: Add kernel symtab test suite |
| * tests/data/Makefile.am: add new test data for runtestsymtab |
| * tests/data/test-symtab/kernel-4.14/Makefile: New test case makefile. |
| * tests/data/test-symtab/kernel-4.14/empty.c: Likewise. |
| * tests/data/test-symtab/kernel-4.14/one_of_each.c: Likewise. |
| * tests/data/test-symtab/kernel-4.14/single_function.c: Likewise. |
| * tests/data/test-symtab/kernel-4.14/single_function_gpl.c: Likewise. |
| * tests/data/test-symtab/kernel-4.14/single_variable.c: Likewise. |
| * tests/data/test-symtab/kernel-4.14/single_variable_gpl.c: Likewise. |
| * tests/data/test-symtab/kernel-4.14/empty.ko: New test data. |
| * tests/data/test-symtab/kernel-4.14/one_of_each.ko: Likewise. |
| * tests/data/test-symtab/kernel-4.14/single_function.ko: Likewise. |
| * tests/data/test-symtab/kernel-4.14/single_function_gpl.ko: Likewise. |
| * tests/data/test-symtab/kernel-4.14/single_variable.ko: Likewise. |
| * tests/data/test-symtab/kernel-4.14/single_variable_gpl.ko: Likewise. |
| * tests/data/test-symtab/kernel-4.19/Makefile: New test case makefile. |
| * tests/data/test-symtab/kernel-4.19/empty.c: Likewise. |
| * tests/data/test-symtab/kernel-4.19/one_of_each.c: Likewise. |
| * tests/data/test-symtab/kernel-4.19/single_function.c: Likewise. |
| * tests/data/test-symtab/kernel-4.19/single_function_gpl.c: Likewise. |
| * tests/data/test-symtab/kernel-4.19/single_variable.c: Likewise. |
| * tests/data/test-symtab/kernel-4.19/single_variable_gpl.c: Likewise. |
| * tests/data/test-symtab/kernel-4.19/empty.ko: New test data. |
| * tests/data/test-symtab/kernel-4.19/one_of_each.ko: Likewise. |
| * tests/data/test-symtab/kernel-4.19/single_function.ko: Likewise. |
| * tests/data/test-symtab/kernel-4.19/single_function_gpl.ko: Likewise. |
| * tests/data/test-symtab/kernel-4.19/single_variable.ko: Likewise. |
| * tests/data/test-symtab/kernel-4.19/single_variable_gpl.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.4/Makefile: New test case makefile. |
| * tests/data/test-symtab/kernel-5.4/empty.c: Likewise. |
| * tests/data/test-symtab/kernel-5.4/one_of_each.c: Likewise. |
| * tests/data/test-symtab/kernel-5.4/single_function.c: Likewise. |
| * tests/data/test-symtab/kernel-5.4/single_function_gpl.c: Likewise. |
| * tests/data/test-symtab/kernel-5.4/single_variable.c: Likewise. |
| * tests/data/test-symtab/kernel-5.4/single_variable_gpl.c: Likewise. |
| * tests/data/test-symtab/kernel-5.4/empty.ko: New test data. |
| * tests/data/test-symtab/kernel-5.4/one_of_each.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.4/single_function.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.4/single_function_gpl.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.4/single_variable.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.4/single_variable_gpl.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.6/Makefile: New test case makefile. |
| * tests/data/test-symtab/kernel-5.6/empty.c: Likewise. |
| * tests/data/test-symtab/kernel-5.6/one_of_each.c: Likewise. |
| * tests/data/test-symtab/kernel-5.6/single_function.c: Likewise. |
| * tests/data/test-symtab/kernel-5.6/single_function_gpl.c: Likewise. |
| * tests/data/test-symtab/kernel-5.6/single_variable.c: Likewise. |
| * tests/data/test-symtab/kernel-5.6/single_variable_gpl.c: Likewise. |
| * tests/data/test-symtab/kernel-5.6/empty.ko: New test data. |
| * tests/data/test-symtab/kernel-5.6/one_of_each.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.6/single_function.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.6/single_function_gpl.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.6/single_variable.ko: Likewise. |
| * tests/data/test-symtab/kernel-5.6/single_variable_gpl.ko: Likewise. |
| * tests/data/test-symtab/kernel/Makefile: New test case source file. |
| * tests/data/test-symtab/kernel/empty.c: Likewise. |
| * tests/data/test-symtab/kernel/one_of_each.c: Likewise. |
| * tests/data/test-symtab/kernel/single_function.c: Likewise. |
| * tests/data/test-symtab/kernel/single_function_gpl.c: Likewise. |
| * tests/data/test-symtab/kernel/single_variable.c: Likewise. |
| * tests/data/test-symtab/kernel/single_variable_gpl.c: Likewise. |
| * tests/test-symtab.cc: New test case to test kernel symtabs. |
| |
| 2020-05-18 Matthias Maennich <maennich@google.com> |
| |
| tests: Add symtab test suite |
| * tests/Makefile.am: add new test runtestsymtab |
| * tests/data/Makefile.am: add new test data for runtestsymtab |
| * tests/data/test-symtab/Makefile: Add this to build the binaries |
| below from their source code. |
| * tests/data/test-symtab/basic/empty.c: New test case source. |
| * tests/data/test-symtab/basic/link_against_me.c: Likewise. |
| * tests/data/test-symtab/basic/no_debug_info.c: Likewise. |
| * tests/data/test-symtab/basic/one_function_one_variable.c: Likewise. |
| * tests/data/test-symtab/basic/one_function_one_variable_undefined.c: Likewise. |
| * tests/data/test-symtab/basic/single_function.c: Likewise. |
| * tests/data/test-symtab/basic/single_undefined_function.c: Likewise. |
| * tests/data/test-symtab/basic/single_undefined_variable.c: Likewise. |
| * tests/data/test-symtab/basic/single_variable.c: Likewise. |
| * tests/data/test-symtab/basic/empty.so: New test data, built from |
| the Makefile above. |
| * tests/data/test-symtab/basic/link_against_me.so: Likewise. |
| * tests/data/test-symtab/basic/no_debug_info.so: Likewise. |
| * tests/data/test-symtab/basic/one_function_one_variable.so: Likewise. |
| * tests/data/test-symtab/basic/one_function_one_variable_undefined.so: Likewise. |
| * tests/data/test-symtab/basic/single_function.so: Likewise. |
| * tests/data/test-symtab/basic/single_undefined_function.so: Likewise. |
| * tests/data/test-symtab/basic/single_undefined_variable.so: Likewise. |
| * tests/data/test-symtab/basic/single_variable.so: Likewise. |
| * tests/test-symtab.cc: New test driver. |
| |
| 2020-05-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 25989 - type_topo_comp doesn't meet irreflexive requirements |
| * src/abg-ir.cc (type_topo_comp::operator()): In the comparison |
| operator consider two equivalent empty-qualified types as being |
| topologically equivalent. |
| |
| 2020-05-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 25661 - Support data member replacement by anonymous data member |
| * include/abg-comp-filter.h (has_data_member_replaced_by_anon_dm): |
| Declare new function. |
| * include/abg-comparison.h (changed_var_sptr) |
| (changed_var_sptrs_type): Declare new typedefs. |
| (HARMLESS_DATA_MEMBER_CHANGE_CATEGORY): Add a new enumerator to |
| the diff_category enum. |
| (EVERYTHING_CATEGORY): In the diff_category, adjust this |
| enumerator to OR the new HARMLESS_DATA_MEMBER_CHANGE_CATEGORY into |
| it. |
| (SUPPRESSED_CATEGORY, PRIVATE_TYPE_CATEGORY) |
| (SIZE_OR_OFFSET_CHANGE_CATEGORY, VIRTUAL_MEMBER_CHANGE_CATEGORY) |
| (CLASS_DECL_ONLY_DEF_CHANGE_CATEGORY) |
| (FN_PARM_TYPE_TOP_CV_CHANGE_CATEGORY) |
| (FN_RETURN_TYPE_CV_CHANGE_CATEGORY, VAR_TYPE_CV_CHANGE_CATEGORY) |
| (VOID_PTR_TO_PTR_CHANGE_CATEGORY) |
| (BENIGN_INFINITE_ARRAY_CHANGE_CATEGORY): Adjust the value of these |
| enumerators of the diff_category enum. |
| (class_or_union_diff::{data_members_replaced_by_adms, |
| ordered_data_members_replaced_by_adms}): Declare new member |
| functions. |
| * include/abg-fwd.h (var_decl_wptr): Declare new typedef. |
| (get_next_data_member, get_first_non_anonymous_data_member) |
| (find_data_member_from_anonymous_data_member) |
| (get_absolute_data_member_offset): Declare new functions. |
| * include/abg-ir.h (struct anonymous_dm_hash): Declare new type. |
| (anonymous_data_member_sptr_set_type): Declare new typedef. |
| (class decl_base): Befriend class class_or_union. |
| (class dm_context_rel): Pimpl-ify this class. |
| (dm_context_rel::{g,s}et_anonymous_data_member_types): Declare new |
| member functions. |
| (var_decl::get_anon_dm_reliable_name): Declare new member |
| function. |
| (class var_decl): Make get_absolute_data_member_offset, |
| get_absolute_data_member_offset be friends of this. |
| (class_or_union::maybe_fixup_members_of_anon_data_member): Declare |
| new protected member function. |
| * src/abg-comp-filter.cc (has_data_member_replaced_by_anon_dm): |
| Define new function. |
| (categorize_harmless_diff_node): Use the above. |
| * src/abg-comparison-priv.h |
| (class_or_union_diff::priv::{dms_replaced_by_adms_, |
| changed_var_sptrs_type dms_replaced_by_adms_ordered_}): Add new |
| data members. |
| (data_member_comp::compare_data_members): Factorize this out of ... |
| (data_member_comp::operator()(decl_base_sptr&, decl_base_sptr&)): |
| ... this. |
| (data_member_comp::operator()(changed_var_sptr&, |
| changed_var_sptr&)): Add new member function. |
| (sort_changed_data_members): Declare ... |
| * src/abg-comparison.cc (sort_changed_data_members): ... new |
| function. |
| (get_default_harmless_categories_bitmap): Adjust to take the new |
| abigail::comparison::HARMLESS_DATA_MEMBER_CHANGE_CATEGORY into |
| account. |
| (operator<<(ostream& o, diff_category c)): Likewise. |
| (class_or_union_diff::ensure_lookup_tables_populated): Handle |
| Handle the insertion of anonymous data members to replace existing |
| data members. |
| (class_or_union_diff::{data_members_replaced_by_adms, |
| ordered_data_members_replaced_by_adms}): Define new accessors. |
| (suppression_categorization_visitor::visit_end): Propagate the |
| SUPPRESSION_CATEGORIZATION_VISITOR from changes to the type of the |
| data member if the data member doesn't have real local changes. |
| * src/abg-default-reporter.cc (default_reporter::report): Report |
| about anonymous data members that replace data members. |
| * src/abg-ir.cc (struct dm_context_rel::priv): Define new data |
| structure. |
| (dm_context_rel::{dm_context_rel, get_is_laid_out, |
| set_is_laid_out, get_offset_in_bits, set_offset_in_bits, |
| operator==, operator!=, get_anonymous_data_member, |
| set_anonymous_data_member}): Define the member functions here as |
| they are not inline anymore. |
| (class_or_union::maybe_fixup_members_of_anon_data_member): Define |
| new member function. |
| (class_or_union::add_data_member): Use it. |
| (get_first_non_anonymous_data_member, get_next_data_member) |
| (get_absolute_data_member_offset) |
| (find_data_member_from_anonymous_data_member): Define new |
| functions. |
| * src/abg-reporter-priv.h |
| (maybe_report_data_members_replaced_by_anon_dm): Declare ... |
| * src/abg-reporter-priv.cc |
| (maybe_report_data_members_replaced_by_anon_dm): ... new function. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Report data |
| members replaced by anonymous data members. |
| * tests/data/test-diff-filter/test-PR25661-[1-6]-report-[1-4].txt: New |
| test reference outputs. |
| * tests/data/test-diff-filter/test-PR25661-[1-6]-v{0,1}.c: Test |
| source code files. |
| * tests/data/test-diff-filter/test-PR25661-[1-6]-v{0,1}.o: Test |
| binary input files. |
| * tests/data/Makefile.am: Add the new test files above to source |
| distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the binary test |
| inputs above to this test harness. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt: |
| Adjust. |
| |
| 2020-05-07 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: support several anonymous data members in a given class |
| * include/abg-ir.h (class_or_union::find_anonymous_data_member): |
| Declare a new member function. |
| (class_or_union::find_data_member): Declare a new overload. |
| (var_decl::get_anon_dm_reliable_name): Declare new member |
| function. |
| * src/abg-ir.cc (var_decl::get_pretty_representation): Make this |
| work on a var_decl is going to be used to represent an anonymous |
| data member even before the var_decl has been added to its finale |
| scope. This is useful to make class_or_union::find_data_member |
| work on a var_decl that is to be used as an anonymous data member. |
| (var_decl::get_anon_dm_reliable_name): Define new member function. |
| (class_or_union::find_data_member): In the existing overload that |
| takes a string, look for the named data member inside the |
| anonymous data members. Define a new overload that takes a |
| var_decl_sptr, to look for anonymous data members. |
| (class_or_union::find_anonymous_data_member): Define a new member |
| function. |
| (lookup_data_member): Use the existing |
| class_or_union::find_data_member. |
| * src/abg-reader.cc: (build_class_decl): Use the full anonymous |
| variable for lookup, rather than its name which is empty and will |
| thus give false positives. |
| * src/abg-dwarf-reader.cc (add_or_update_class_type): Likewise. |
| * src/abg-comparison.cc |
| (class_or_union_diff::ensure_lookup_tables_populated): Name |
| anonymous data members properly - as opposed to wrongly using |
| their empty name. |
| * src/abg-reporter-priv.cc (represent): In the overload for |
| var_diff_sptr, make sure that changes to the /type/ of a variable |
| declaration are always reported. |
| * tests/data/test-abidiff-exit/test-member-size-report0.txt: |
| Adjust as we now emit more detailed changes about anonymous data |
| members. |
| * tests/data/test-abidiff-exit/test-member-size-report1.txt: |
| Likewise. |
| * tests/data/test-annotate/test-anonymous-members-0.o.abi: Adjust |
| to reflect the fact that a class can now have several anonymous |
| data members. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: |
| Likewise. |
| |
| 2020-05-07 Dodji Seketeli <dodji@redhat.com> |
| |
| {default,leaf}-reporter: group data members changes reports together |
| * include/abg-comparison.h |
| (class_or_union_diff::{sorted_changed_data_members, |
| count_filtered_changed_data_members, |
| sorted_subtype_changed_data_members, |
| count_filtered_subtype_changed_data_members}): Declare ... |
| * src/abg-comparison.cc |
| (class_or_union_diff::{sorted_changed_data_members, |
| count_filtered_changed_data_members, |
| sorted_subtype_changed_data_members, |
| count_filtered_subtype_changed_data_members}): ... accessors for |
| existing private data members. |
| * src/abg-default-reporter.cc (default_reporter::report): In the |
| class_or_union_diff& overload, group the reporting of the changes |
| to data member sub-types with the replacement of data members. |
| These are just data member changes after all. Use the newly |
| declared accessors for better measure. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Likewise. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt: Adjust. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Likewise. |
| |
| 2020-05-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Add -g back to ABIGAIL_DEVEL |
| * configure.ac: Don't forget to set -g when ABIGAIL_DEVEL is set. |
| |
| 2020-05-15 Giuliano Procida <gprocida@google.com> |
| |
| clang-format: set continuation indentation to 2 |
| * .clang-format: Set ContinuationIndentWidth to 2. |
| |
| 2020-05-15 Matthias Maennich <maennich@google.com> |
| |
| configure: add more diagnostic options when ABIGAIL_DEVEL is set |
| * configure.ac: add -D_FORTIFY_SOURCE=2 and -D_GLIBCXX_DEBUG |
| compilation defines if ABIGAIL_DEVEL is set. Note that with GCC 4.8.5, |
| -D_FORTIFY_SOURCE=2 requires options to be set. So I am setting |
| the optimization level to -Og. |
| * src/abg-dwarf-reader.cc (read_context::{compute_canonical_die, |
| get_or_compute_canonical_die, associate_die_to_decl, |
| set_canonical_die_offset, schedule_type_for_late_canonicalization, |
| compare_dies}, get_scope_for_die, add_or_update_union_type) |
| (read_debug_info_into_corpus, build_ir_node_from_die): Initialize |
| the 'source' variable. |
| * tests/test-diff-filter.cc (main): Check the return value of the |
| system function. |
| * tests/test-diff-pkg.cc (main): Likewise. |
| * tests/test-read-write.cc (main): Likewise. |
| |
| 2020-05-15 Matthias Maennich <maennich@google.com> |
| |
| configure: add ABIGAIL_DEBUG options |
| * configure.ac: add ABIGAIL_DEBUG environment variable for |
| improved debugging capabilities |
| |
| 2020-05-05 Giuliano Procida <gprocida@google.com> |
| |
| Tidy get_pretty_representation qualified_name. |
| * include/abg-ir.h (type_decl::get_pretty_representation) |
| Change default for qualified_name parameter to true. |
| |
| 2020-05-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 25986 - Wrong name of function type used in change report |
| * src/abg-ir.cc (function_type::get_cached_name): Don't cache |
| names for non-canonicalized types. |
| * tests/data/test-abidiff-exit/test-fun-param-report.txt: Add |
| reference output for new test. |
| * tests/data/test-abidiff-exit/test-fun-param-v{0,1}.abi: Add new test |
| input files. |
| * tests/data/test-abidiff-exit/test-fun-param-v{0,1}.c: Add source |
| files for the above. |
| * tests/data/test-abidiff-exit/test-fun-param-v{0,1}.o: Add |
| binaries for the above. |
| |
| 2020-05-11 Mark Wielaard <mark@klomp.org> |
| |
| Don't iterate before the start of a RandomAccessOutputIterator. |
| * include/abg-diff-utils.h (compute_diff): Put brackets around |
| p[ux].[xy]() + 1 calculation. |
| |
| 2020-05-12 Giuliano Procida <gprocida@google.com> |
| |
| doc: Fix sufficient suppression property lists. |
| * doc/manuals/libabigail-concepts.rst: Add missing |
| sufficient properties for suppress_file, suppress_function and |
| suppress_variable. Use consistent language about what will |
| happen when no property in the list in provided. |
| |
| 2020-05-11 Matthias Maennich <maennich@google.com> |
| |
| cxx-compat: add test suite for cxx-compat |
| * tests/Makefile.am: Add new test case runtestcxxcompat. |
| * tests/test-cxx-compat.cc: New test source file. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-05-11 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: read_context: drop some unused accessor methods |
| * src/abg-dwarf-reader.cc (read_context::fun_syms_sptr): Delete method. |
| (read_context::fun_syms): Likewise. |
| (read_context::var_syms_sptr): Likewise. |
| (read_context::var_syms): Likewise. |
| (read_context::undefined_fun_syms_sptr): Likewise. |
| (read_context::undefined_fun_syms): Likewise. Both overloads. |
| (read_context::undefined_var_syms_sptr): Likewise. |
| (read_context::undefined_var_syms): Likewise. Both overloads. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-05-11 Matthias Maennich <maennich@google.com> |
| |
| tests/.gitignore: ignore all files starting with runtest* |
| * tests/.gitignore: gitignore all files named runtest* |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-05-11 Matthias Maennich <maennich@google.com> |
| |
| configure: set -Wno-error-overloaded-virtual for clang builds |
| * configure.ac: set -Wno-error-overloaded-virtual for clang++ |
| |
| 2020-05-05 Giuliano Procida <gprocida@google.com> |
| |
| Let std::unordered_map::operator[] insert keys. |
| * src/abg-reader.cc (read_context::key_type_decl): Rely on |
| std::unordered_map::operator[] to create map entries if they |
| are missing. (build_elf_symbol_db): Ditto. |
| |
| 2020-05-05 Giuliano Procida <gprocida@google.com> |
| |
| abg-reader.cc: Remove key_replacement_type_map. |
| * src/abg-reader.cc (key_replacement_type_map): Drop unused |
| function. |
| |
| 2020-05-04 Giuliano Procida <gprocida@google.com> |
| |
| Refactor read_parameter_spec_from_string logic. |
| * src/abg-suppression.cc (read_parameter_spec_from_string): |
| Use separate string and regex variables to simplify the |
| creation of returned parameter specification. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-04 Giuliano Procida <gprocida@google.com> |
| |
| Use regex::match wrapper instead of regexec. |
| * src/abg-corpus-priv.h: Mechanically substitute use of |
| regexec with regex::match wrapper. |
| * src/abg-suppression-priv.h: Ditto. |
| * src/abg-suppression.cc: Ditto. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-12 Giuliano Procida <gprocida@google.com> |
| |
| Tidy checks for sufficient suppression properties. |
| * src/abg-suppression.cc (check_sufficient_props): New helper |
| function to check for sufficient properties in a section. |
| (read_type_suppression): Replace conditional logic with call |
| to check_sufficient_props. |
| (read_function_suppression): Ditto. |
| (read_variable_suppression): Ditto. |
| (read_file_suppression): Ditto. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-4.suppr: |
| Explain why the suppression will be ignored. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-4.suppr: |
| Ditto. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-4.suppr: |
| Ditto. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-4.suppr: |
| Ditto. |
| |
| 2020-05-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 25977 - runtestabidiffexit regression on EL7 |
| * abg-comparison.cc: |
| (suppression_categorization_visitor::visit_end): Don't suppress |
| the entire class of equivalence of a function diff node if that |
| function diff node itself was not suppressed. |
| |
| 2020-05-04 Giuliano Procida <gprocida@google.com> |
| |
| Use regex::compile wrapper instead of regcomp. |
| * src/abg-corpus-priv.h: Mechanically substitute use of |
| regcomp with regex::compile wrapper. |
| * src/abg-suppression-priv.h: Ditto. |
| There are no behavioural changes. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-04 Giuliano Procida <gprocida@google.com> |
| |
| Add POSIX regex wrapper functions. |
| * include/abg-regex.h (compile): Declare new function. |
| (match): Declare new function. |
| * src/abg-regex.cc (compile): Add new function wrapping |
| regcomp. (match): Add new function wrapping regexec. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-04 Giuliano Procida <gprocida@google.com> |
| |
| abg-suppression.cc: More uniform variable naming. |
| * src/abg-suppression.cc (read_type_suppression): Rename "nil" |
| variable to "result" and reset it instead of introducing |
| "suppr" later on. (read_function_suppression): Rename "nil" |
| variable to "result" and reset it instead of introducing |
| "result" later on. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-04 Giuliano Procida <gprocida@google.com> |
| |
| Escape names used in symbol whitelisting regex. |
| * include/regex.h (escape): New string reference holder |
| class. (operator<<): Declaration of std::ostream, |
| regex::escape overload. |
| * include/regex.cc (operator<<): New std::ostream, |
| regex::escape overload that outputs regex-escaped strings. |
| * src/abg-tools-utils.cc |
| (gen_suppr_spec_from_kernel_abi_whitelists): Make sure any |
| special regex characters in symbol names are escaped. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-04 Giuliano Procida <gprocida@google.com> |
| |
| Document ^_^ regex in generate_from_strings. |
| * src/abg-regex.cc (generate_from_strings): Document ^_^ |
| regex. |
| |
| 2020-05-04 Giuliano Procida <gprocida@google.com> |
| |
| Tidy #includes in a few files. |
| * src/abg-corpus-priv.h: Separate and sort #include |
| directives. |
| * src/abg-corpus.cc: Ditto. |
| * src/abg-regex.cc: Ditto. |
| * src/abg-suppression-priv.h: Ditto. |
| * src/abg-suppression.cc: Ditto. |
| |
| 2020-05-01 Giuliano Procida <gprocida@google.com> |
| |
| Hoist some common expressions evaluating offsets. |
| * src/abg-suppression.cc (type_suppression::suppresses_diff): |
| Hoist some constant expressions out of loops. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-01 Giuliano Procida <gprocida@google.com> |
| |
| Make set_drops_artifact_from_ir non-const. |
| * include/abg-suppression.h |
| (suppression_base::set_drops_artifact_from_ir): |
| Drop const qualifier. |
| * src/abg-suppression.cc |
| (suppression_base::set_drops_artifact_from_ir): |
| Drop const qualifier. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-01 Giuliano Procida <gprocida@google.com> |
| |
| Eliminate redundant conditional operators. |
| * src/abg-corpus.cc (corpus::priv::build_unreferenced_symbols_tables): |
| Eliminate redundant conditional operator. |
| * src/abg-dwarf-reader.cc (build_reference_type): Ditto. |
| * src/abg-reader.cc (read_static): Ditto. |
| (read_is_artificial): Ditto. (build_function_parameter): |
| Ditto. (build_function_decl): Ditto. |
| (build_qualified_type_decl): Ditto. |
| (build_reference_type_def): Ditto. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-01 Giuliano Procida <gprocida@google.com> |
| |
| Remove stray semicolons. |
| * include/abg-diff-utils.h (display_edit_script): Remove |
| redundant semicolon. |
| * include/abg-fwd.h (lookup_basic_type): Ditto. |
| * src/abg-comparison.cc (mark_diff_as_visited): |
| Ditto. (array_diff::has_local_changes): Ditto. |
| (class_diff::ensure_lookup_tables_populated): Ditto. |
| * src/abg-corpus.cc |
| (corpus::priv::build_unreferenced_symbols_tables): Ditto. |
| * src/abg-default-reporter.cc (default_reporter::report): |
| Ditto. |
| * src/abg-dwarf-reader.cc (finish_member_function_reading): |
| Ditto. |
| * src/abg-ir.cc (is_compatible_with_class_type): Ditto. |
| (enum_type_decl::enumerator::set_name): Ditto. |
| * src/abg-reader.cc (read_corpus_from_input): Ditto. |
| (build_function_type): Ditto. |
| * src/abg-suppression.cc (type_suppression::suppresses_type): |
| Ditto. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-05-01 Giuliano Procida <gprocida@google.com> |
| |
| Remove excess whitespace. |
| * src/abg-suppression.cc: Eliminate double blank lines. |
| (read_parameter_spec_from_string): Eliminate space between |
| ++ operator and its operand. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-01-12 Matthias Maennich <maennich@google.com> |
| |
| corpus/writer: sort emitted translation units by path name |
| * include/abg-fwd.h: remove translation_units fwd declaration. |
| * include/abg-ir.h (struct shared_translation_unit_comparator): |
| Define new class. |
| (translation_units): Define new typedef. |
| * src/abg-corpus.cc (corpus::add): do checked insert into the |
| translation_units set (rather than vector::push_back) |
| * tests/data/test-annotate/test13-pr18894.so.abi: Adjust test data. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| |
| 2020-04-29 Matthias Maennich <maennich@google.com> |
| |
| tests: reorder test execution to optimize 'make check' runtime |
| * tests/Makefile.am(TESTS): split up in expensive and non |
| expensive tests, sort the expensive ones by runime, the cheap |
| ones alphabetically |
| |
| 2020-04-29 Matthias Maennich <maennich@google.com> |
| |
| test-types-stability: parallelize test case alternatives |
| * tests/test-types-stability.cc (test_task): add field no_default_sizes |
| (test_task::perform) Switch on the new flag to test a different |
| behaviour. |
| (main): Schedule an additional test case to test with the new flag. |
| Cc: Mark Wielaard <mark@klomp.org> |
| |
| 2020-05-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix compilation with g++ 4.8.5 on el7 |
| * include/abg-libxml-utils.h (build_sptr<xmlTextReader>): Wrap |
| this specialization in the namespace sptr_utils and do away with |
| the sptr_utils qualifier. |
| * include/abg-regex.h (build_sptr<regex_t>): Likewise. |
| |
| 2020-04-24 Giuliano Procida <gprocida@google.com> |
| |
| Simplify generation of symbol whitelist regex. |
| * include/abg-regex.h (generate_from_strings): Declare new |
| function to build a regex from some strings, representing a |
| membership test. |
| * src/abg-regex.cc (generate_from_strings): Implement new |
| function to build a regex from some strings, representing a |
| membership test, in a straightfoward fashion. |
| * src/abg-tools-utils.cc |
| (gen_suppr_spec_from_kernel_abi_whitelists): Replace |
| regex-building code with a call to generate_from_strings. |
| * tests/test-kmi-whitelist.cc: Update regexes in test. |
| |
| 2020-04-24 Giuliano Procida <gprocida@google.com> |
| |
| Move libxml bits out of abg-sptr-utils.h. |
| * include/abg-sptr-utils.h: Remove reader_sptr and |
| xml_char_sptr typedefs, from namespace |
| sptr_utils. (build_sptr): Remove corresponding template |
| function specialisations for these types. |
| * include/abg-libxml-utils.h: Add reader_sptr and |
| xml_char_sptr typedefs, to namespace xml. (build_sptr): Add |
| corresponding template function specialisations for these |
| types. |
| |
| 2020-04-24 Giuliano Procida <gprocida@google.com> |
| |
| Move regex definitions to own files. |
| * include/Makefile.am: Add abg-regex.h. |
| * src/Makefile.am: Remove abg-sptr-utils.h, add abg-regex.cc |
| * include/abg-sptr-utils.h (regex_t_sptr): Remove this |
| typedef, from namespace abigail::sptr_utils. |
| (regex_t_deleter): Remove this struct, from namespace |
| abigail::sptr_utils. (build_sptr): Remove these template |
| specialisations, in duplicate, for regex_t_sptr. |
| * include/abg-regex.h: New file, introduces namespace |
| abigail::regex. (regex_t_sptr): Add this typedef, to namespace |
| abigail::regex. (regex_t_deleter): Add this struct, to |
| namespace abigail::regex. (build_sptr): Add these template |
| specialisations for regex_t_sptr |
| * src/abg-sptr-utils.cc: Remove this file. |
| * src/abg-regex.cc: Add new file with contents effectively |
| the same as abg-sptr-utils.cc. |
| * src/abg-corpus-priv.h: Update regex_t_sptr namespace |
| qualification. |
| * src/abg-corpus.cc: Ditto. |
| * src/abg-suppression-priv.h: Ditto. |
| * src/abg-suppression.cc: Ditto. |
| |
| 2020-04-27 Mark Wielaard <mark@klomp.org> |
| |
| Add --no-write-default-sizes option. |
| * doc/manuals/abidw.rst: Document --no-write-default-sizes. |
| * include/abg-writer.h (set_write_default_sizes): New function |
| declaration. |
| (set_common_options): Call set_write_default_sizes. |
| * src/abg-reader.cc (build_function_decl): Get default size. |
| (build_pointer_type_def): Likewise. |
| (build_reference_type_def): Likewise. |
| (build_function_type): Likewise. |
| * src/abg-writer.cc (write_context): Add m_write_default_sizes |
| bool. |
| (get_write_default_sizes): New method. |
| (set_write_default_sizes): Likewise. |
| (write_size_and_alignment): Add default size and alignment |
| parameters. |
| (set_write_default_sizes): New function. |
| (write_type_decl): Set default size and alignment. |
| (write_pointer_type_def): Likewise. |
| (write_reference_type_def): Likewise. |
| (write_function_decl): Likewise. |
| (write_function_type): Likewise. |
| (write_class_decl_opening_tag): Likewise. |
| (write_union_decl_opening_tag): Likewise. |
| * tests/test-types-stability.cc (perform): Also test --abidiff |
| with --no-write-default-sizes. |
| * tools/abidw.cc (option): Add default_sizes bool. |
| (parse_command_line): Parse --no-write-default-sizes. |
| (display_usage): Add doc string for --no-write-default-sizes. |
| |
| 2020-04-26 Mark Wielaard <mark@klomp.org> |
| |
| Rename read_elf_symbol_binding to read_elf_symbol_visibility. |
| * src/abg-reader.cc (read_elf_symbol_binding): Renamed to... |
| (read_elf_symbol_visibility): ...this. |
| |
| 2020-04-22 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Omit declaration-only type size 0 diffs. |
| * src/abg-reporter-priv.cc (report_size_and_alignment_changes): |
| Filter out declaration-only / defined type size changes |
| unconditionally. |
| * tests/data/test-abidiff-exit/test-decl-struct-report.txt: |
| Update test. |
| |
| 2020-04-22 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Blank line after declaration-only diff. |
| * src/abg-default-reporter.cc (default_reporter::report): In |
| the class_or_union_diff overload, emit a new line at the end |
| of the declaration-only reporting path. |
| * tests/data/test-abidiff-exit/test-decl-struct-report.txt: |
| Add missing blank lines. |
| |
| 2020-04-22 Giuliano Procida <gprocida@google.com> |
| |
| Add tests for declaration-only struct diffs. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-decl-struct-report.txt: |
| New test case generating "declaration-only" output. |
| * tests/data/test-abidiff-exit/test-decl-struct-v0.c: Ditto. |
| * tests/data/test-abidiff-exit/test-decl-struct-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-decl-struct-v1.c: Ditto. |
| * tests/data/test-abidiff-exit/test-decl-struct-v1.o: Ditto. |
| * tests/test-abidiff-exit.cc: Run new test case. |
| |
| 2020-04-24 Mark Wielaard <mark@klomp.org> |
| |
| Add --no-elf-needed option to drop DT_NEEDED list from corpus. |
| * doc/manuals/abidw.rst: Document --no-elf-needed. |
| * include/abg-writer.h (set_write_elf_needed): New function. |
| (set_common_options): Call it. |
| * src/abg-writer.cc (write_context::m_write_elf_needed): New data |
| member. |
| (write_context::{g,s}et_write_elf_needed): Add new accessors. |
| (set_write_elf_needed): New function. |
| (write_context::write_corpus): Check write_elf_needed. |
| * tools/abidw.cc (options): Add write_elf_needed bool. |
| (display_usage): Describe --no-elf-needed. |
| (parse_command_line): Parse --no-elf-needed. |
| |
| 2020-04-21 Mark Wielaard <mark@klomp.org> |
| |
| Add no-parameter-names to drop function parameter names. |
| * doc/manuals/abidw.rst: Add documentation for --no-parameter-names. |
| * include/abg-writer.h (set_write_parameter_names): New function. |
| (set_write_parameter_names): Call it. |
| * src/abg-writer.cc (write_context): Add m_write_parameter_names |
| bool, get_write_parameter_names and set_write_parameter_names |
| functions. |
| (write_context::write_function_decl): Check write_parameter_names. |
| * tools/abidw.cc (options): Add write_parameter_names. |
| (display_usage): Describe --no-parameter-names. |
| (parse_command_line): Parse --no-parameter-names. |
| |
| 2020-04-24 Dodji Seketeli <dodji@redhat.com> |
| |
| abipkgdiff: Fix race condition while using private types suppr specs |
| * tools/abipkgdiff.cc (compare_args::private_types_suppr{1,2}): |
| Make these data member *not* be a reference anymore. |
| (maybe_create_private_types_suppressions): Rename this into ... |
| (create_private_types_suppressions): ... this. Also, make this |
| function return a copy of the vector of suppression specifications |
| for private types created. |
| (compare_prepared_userspace_packages): Use the new |
| create_private_types_suppressions to create a copy of private |
| types suppression specifications, rather than sharing it from |
| package::private_types_suppressions_. |
| (extract_package_and_map_its_content): Adjust to avoid creating |
| the shared suppression specifications for private types. |
| (package::private_types_suppressions_): Remove this data member |
| that was holding the shared suppressions for private types. |
| (package::private_types_suppressions): Remove these accessors. |
| |
| 2020-04-22 Giuliano Procida <gprocida@google.com> |
| |
| test24-soname-suppr*txt: Fix suppression syntax. |
| * tests/data/test-diff-suppr/test24-soname-suppr-0.txt: Fix |
| typo, change "reached_through" to "accessed_through". |
| * tests/data/test-diff-suppr/test24-soname-suppr-1.txt: Ditto. |
| * tests/data/test-diff-suppr/test24-soname-suppr-2.txt: Ditto. |
| * tests/data/test-diff-suppr/test24-soname-suppr-3.txt: Ditto. |
| * tests/data/test-diff-suppr/test24-soname-suppr-4.txt: Ditto. |
| |
| 2020-04-20 Giuliano Procida <gprocida@google.com> |
| |
| test35-leaf.suppr: fix regex typo. |
| * tests/data/test-diff-suppr/test35-leaf.suppr: Fix typo in |
| regex, "*." -> ".*". |
| |
| 2020-04-21 Matthias Maennich <maennich@google.com> |
| |
| abg-elf-helpers: migrate maybe_adjust_et_rel_sym_addr_to_abs_addr |
| * src/abg-dwarf-reader.cc |
| (maybe_adjust_et_rel_sym_addr_to_abs_addr) |
| (drop the wrapped overload completely): Move out functions. |
| * src/abg-elf-helpers.cc |
| (maybe_adjust_et_rel_sym_addr_to_abs_addr): New function. |
| * src/abg-elf-helpers.h |
| (maybe_adjust_et_rel_sym_addr_to_abs_addr): New function |
| declaration. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-04-21 Matthias Maennich <maennich@google.com> |
| |
| abg-elf-helpers: migrate more elf helpers (architecture specific helpers) |
| * src/abg-dwarf-reader.cc (elf_architecture_is_ppc64): Move |
| function out and adjust callers to call the migrated |
| functions. |
| (elf_architecture_is_big_endian): Likewise. |
| (architecture_word_size): Likewise. |
| (current_elf_file_is_executable): Likewise. |
| (current_elf_file_is_dso): Likewise. |
| * src/abg-elf-helpers.cc (architecture_is_ppc64): Add new function. |
| (architecture_is_big_endian): Likewise. |
| (get_architecture_word_size): Likewise. |
| (is_executable): Likewise. |
| (is_dso): Likewise. |
| * src/abg-elf-helpers.h (architecture_is_ppc64): Add new declaration. |
| (architecture_is_big_endian): Likewise. |
| (get_architecture_word_size): Likewise. |
| (is_executable): Likewise. |
| (is_dso): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-04-21 Matthias Maennich <maennich@google.com> |
| |
| abg-dwarf-reader: migrate more ELF helpers to elf-helpers |
| * src/abg-dwarf-reader.cc (read_context::{opd_section_, |
| ksymtab_section_, ksymtab_reloc_section_, ksymtab_gpl_section_, |
| ksymtab_gpl_reloc_section_, ksymtab_strings_section_}): Make these |
| data members mutable as they are set by their getter member |
| functions, as an implementation detail. |
| (read_context::find_symbol_table_section): |
| adjust to new interface of elf_helpers::find_symbol_table_section. |
| (find_opd_section): use elf_helpers::find_opd_section for lookup. |
| (find_ksymtab_section): use elf_helpers::find_ksymtab_section. |
| (find_ksymtab_gpl_section): use elf_helpers::find_ksymtab_gpl_section. |
| (find_relocation_section): Move out function. |
| (get_binary_load_address): Move out function. |
| (find_ksymtab_reloc_section): use elf_helpers::find_relocation_section |
| (find_ksymtab_gpl_reloc_section): use |
| elf_helpers::find_relocation_section |
| * src/elf-helpers.cc (find_symbol_table_section): change |
| interface to match other find_*_section functions. |
| (find_symbol_table_section_index): Adjust for the new interface of |
| find_symbol_table_section. |
| (find_opd_section): New function. |
| (find_ksymtab_section): New function. |
| (find_ksymtab_gpl_section): New function. |
| (find_relocation_section): New function. |
| (get_binary_load_address): New function. |
| * src/elf-helpers.h (find_symbol_table_section): Change declaration. |
| (find_opd_section): New function declaration. |
| (find_ksymtab_section): New function declaration. |
| (find_ksymtab_gpl_section): New function declaration. |
| (find_relocation_section): New function declaration. |
| (get_binary_load_address): New function declaration. |
| |
| 2020-04-21 Matthias Maennich <maennich@google.com> |
| |
| abg-elf-helpers: consolidate the is_linux_kernel* helpers |
| * src/abg-dwarf-reader.cc |
| (read_context::function_symbol_is_exported): use is_linux_kernel |
| from elf_helpers. |
| (read_context::variable_is_exported): Likewise. |
| (read_context::get_symtab_format): Likewise. |
| (read_context::load_symbol_maps): Likewise. |
| (read_debug_info_into_corpus): Likewise. |
| (read_context::is_linux_kernel_binary): Drop function. |
| (read_context::is_linux_kernel_module): Drop function. |
| * src/abg-elf-helpers.cc (binary_is_linux_kernel): rename to |
| is_linux_kernel |
| (binary_is_linux_kernel_module): rename to is_linux_kernel_module |
| (find_ksymtab_strings_section): Adjust to function renames. |
| * src/abg-elf-helpers.h (binary_is_linux_kernel): rename to |
| is_linux_kernel |
| (binary_is_linux_kernel_module): rename to is_linux_kernel_module |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-04-21 Matthias Maennich <maennich@google.com> |
| |
| abg-elf-helpers: move some kernel helpers from abg-dwarf-reader |
| * abg-dwarf-reader.cc (binary_is_linux_kernel): Move function out. |
| (binary_is_linux_kernel_module): Likewise. |
| (find_ksymtab_strings_section): Likewise. |
| * abg-elf-helpers.cc (binary_is_linux_kernel): Move function in. |
| (binary_is_linux_kernel_module): Likewise. |
| (find_ksymtab_strings_section): Likewise. |
| * abg-elf-helpers.h (binary_is_linux_kernel): Add declaration. |
| (binary_is_linux_kernel_module): Likewise. |
| (find_ksymtab_strings_section): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-04-21 Matthias Maennich <maennich@google.com> |
| |
| abg-elf-helpers: move some versioning helpers from abg-dwarf-reader |
| * abg-dwarf-reader.cc (get_symbol_versionning_sections): Move function out. |
| (get_version_definition_for_versym): Likewise. |
| (get_version_needed_for_versym): Likewise. |
| (get_version_for_symbol): Likewise. |
| * abg-elf-helpers.cc (get_symbol_versionning_sections): Move function in. |
| (get_version_definition_for_versym): Likewise. |
| (get_version_needed_for_versym): Likewise. |
| (get_version_for_symbol): Likewise. |
| * abg-elf-helpers.h (get_symbol_versionning_sections): Add declaration. |
| (get_version_definition_for_versym): Likewise. |
| (get_version_needed_for_versym): Likewise. |
| (get_version_for_symbol): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-04-21 Matthias Maennich <maennich@google.com> |
| |
| abg-elf-helpers: move some elf helpers from abg-dwarf-reader |
| * abg-dwarf-reader.cc (stt_to_elf_symbol_type): Move function out. |
| (stb_to_elf_symbol_binding): Likewise. |
| (stv_to_elf_symbol_visibility): Likewise. |
| (e_machine_to_string): Likewise. |
| (find_section): Likewise. |
| (find_symbol_table_section): Likewise. |
| (find_symbol_table_section_index): Likewise. |
| (enum hash_table_kind): Likewise. |
| (find_hash_table_section_index): Likewise. |
| (get_symbol_versionning_sections): Likewise. |
| (find_text_section): Likewise. |
| (find_bss_section): Likewise. |
| (find_rodata_section): Likewise. |
| (find_data_section): Likewise. |
| (find_data1_section): Likewise. |
| * abg-elf-helpers.cc (stt_to_elf_symbol_type): Move function in. |
| (stb_to_elf_symbol_binding): Likewise. |
| (stv_to_elf_symbol_visibility): Likewise. |
| (e_machine_to_string): Likewise. |
| (find_section): Likewise. |
| (find_symbol_table_section): Likewise. |
| (find_symbol_table_section_index): Likewise. |
| (enum hash_table_kind): Likewise. |
| (find_hash_table_section_index): Likewise. |
| (get_symbol_versionning_sections): Likewise. |
| (find_text_section): Likewise. |
| (find_bss_section): Likewise. |
| (find_rodata_section): Likewise. |
| (find_data_section): Likewise. |
| (find_data1_section): Likewise. |
| * abg-elf-helpers.h (stt_to_elf_symbol_type): Add declaration. |
| (stb_to_elf_symbol_binding): Likewise. |
| (stv_to_elf_symbol_visibility): Likewise. |
| (e_machine_to_string): Likewise. |
| (find_section): Likewise. |
| (find_symbol_table_section): Likewise. |
| (find_symbol_table_section_index): Likewise. |
| (enum hash_table_kind): Likewise. |
| (find_hash_table_section_index): Likewise. |
| (get_symbol_versionning_sections): Likewise. |
| (find_text_section): Likewise. |
| (find_bss_section): Likewise. |
| (find_rodata_section): Likewise. |
| (find_data_section): Likewise. |
| (find_data1_section): Likewise. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-04-21 Matthias Maennich <maennich@google.com> |
| |
| abg-dwarf-reader split: create abg-elf-helpers.{h,cc} and test case |
| * src/Makefile.am: Add new source files abg-elf-helpers.{h,cc}. |
| * src/abg-elf-helpers.cc: New source file. |
| * src/abg-elf-helpers.h: New header file. |
| * tests/.gitignore: Exclude runtestelfhelpers from being committed. |
| * tests/Makefile.am: Add new test case runtestelfhelpers. |
| * tests/test-elf-helpers.cc: New test source file. |
| Reviewed-by: Giuliano Procida <gprocida@google.com> |
| |
| 2020-04-20 Matthias Maennich <maennich@google.com> |
| |
| tests: parallelize diff-suppr test |
| * tests/test-diff-suppr.cc(main): parallelize test execution. |
| (test_task) new abigail::workers::task implementation to run |
| test cases in this test as separate worker tasks. |
| |
| 2020-04-20 Matthias Maennich <maennich@google.com> |
| |
| abg-dwarf-reader: simplify symbol map update |
| * src/abg-dwarf-reader.cc |
| (read_context::load_symbol_maps_from_symtab_section): simplify |
| symbol map update for fun_syms_, undefined_fun_syms_, var_syms_, |
| undefined_var_syms_. |
| |
| 2020-04-20 Matthias Maennich <maennich@google.com> |
| |
| make: add distcheck-fast target |
| * Makefile.am: add distcheck-fast make target |
| |
| 2020-04-14 Giuliano Procida <gprocida@google.com> |
| |
| Fix variable suppression name_not_regex. |
| * src/abg-suppression-priv.h: In get_symbol_name_not_regex |
| method of variable_suppression::priv, fix typo causing |
| miscompilation of regex. |
| |
| 2020-04-13 Mark Wielaard <mark@klomp.org> |
| |
| Add --drop-undefined-syms to abidw. |
| * include/abg-dwarf-reader.h (set_drop_undefined_syms): |
| New declaration. |
| * src/abg-dwarf-reader.cc (class read_context): Add private |
| bool drop_undefined_syms_. |
| (drop_undefined_syms): New getter and setter method. |
| (set_drop_undefined_syms): New function. |
| (function_is_suppressed): Check drop_undefined_syms on |
| read_context. |
| (variable_is_suppressed): Likewise. |
| * src/abg-reader.cc (read_context): Add private bool |
| m_drop_undefined_syms. |
| (drop_undefined_syms): New getter and setter method. |
| * tools/abidw.cc (struct options): Add drop_undefined_syms. |
| (display_usage): Print --drop-undefined-syms. |
| (parse_command_line): Parse --drop-undefined-syms. |
| (main): Call set_drop_undefined_syms. |
| |
| 2020-04-12 Mark Wielaard <mark@klomp.org> |
| |
| Add --drop-private-types to abidw. |
| * tools/abidw.cc (options): Add drop_private_types bool. |
| (display_usage): Add --drop-private-types. |
| (parse_command_line): Parse --drop-private-types, set opts. |
| (set_suppressions): Call set_drops_artifact_from_ir when |
| drop_private_types set. |
| * doc/manuals/abidw.rst: Document --drop-private-types. |
| |
| 2020-04-12 Mark Wielaard <mark@klomp.org> |
| |
| Add --header-file option to add individual public header files. |
| * include/abg-tools-utils.h (gen_suppr_spec_from_headers): Add |
| hdr_files string vector argument. |
| * src/abg-tools-utils.cc (handle_file_entry): New function that |
| adds one specific file to the type_suppression. Implementation |
| lifted from... |
| (handle_fts_entry): ...here. Call handle_file_entry for each file. |
| (gen_suppr_spec_from_headers): Also takes a header_files string |
| vector as argument. Call handle_file_entry for each file entry. |
| * tools/abidiff.cc (options): Add header_files1 and header_files2 |
| string vectors. |
| (display_usage): Print --header-file1 and --header-file2 usage. |
| (parse_command_line): Handle --header-file1, --hf1 and |
| --header-file2, --hf2. |
| (set_diff_context_from_opts): Call gen_suppr_spec_from_headers |
| with header_files1 and header_files2. |
| (set_suppressions): Likewise. |
| * tools/abidw.cc (options): Add header_files string vector. |
| (display_usage): Print --header-file usage. |
| (parse_command_line): Handle --header-file1, --hf1. |
| (maybe_check_header_files): New function. |
| (set_suppressions): Call gen_suppr_spec_from_headers with |
| header_files. |
| (main): Call maybe_check_header_files. |
| * tools/abilint.cc (options): Add header_files string vector. |
| (display_usage): Print --header-file usage. |
| (parse_command_line): Handle --header-file1, --hf1. |
| (set_suppressions): Call gen_suppr_spec_from_headers with |
| header_files. |
| * doc/manuals/abidiff.rst: Document --header-file1, --hf1 and |
| --header-file2, --hf2. Add new options to documentation of |
| --drop-private-types. |
| * doc/manuals/abidw.rst: Document --header-file, --hf. |
| * doc/manuals/abilint.rst: Likewise. |
| |
| 2020-04-08 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Document and refresh tests. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-v1.cc: |
| Comment test. Reorder members of ops to get better coverage. |
| * tests/data/test-abidiff-exit/test-leaf-fun-type-v1.cc: |
| Comment test. |
| * tests/data/test-abidiff-exit/test-leaf-more-v1.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v1.cc: |
| Comment test. Update comment on ops2. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-v1.c: |
| Comment test. |
| * tests/data/test-abidiff-exit/test-leaf-stats-v1.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-report.txt: |
| Update locations. Update report to reflect deletion, |
| insertion and changed members (was previously changed only).: |
| * tests/data/test-abidiff-exit/test-leaf-peeling-report.txt: |
| Update locations. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-report.txt: |
| Ditto.: |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-v0.cc: |
| Added one line comment referring to -v1 source file. |
| * tests/data/test-abidiff-exit/test-leaf-fun-type-v0.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-more-v0.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v0.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-v0.c: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-stats-v0.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-v0.o: Recompiled. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-v1.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-fun-type-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-fun-type-v1.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-more-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-more-v1.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v1.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-v1.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-stats-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-stats-v1.o: Ditto. |
| |
| 2020-04-14 Giuliano Procida <gprocida@google.com> |
| |
| abg-reporter-priv.cc: Improve readability of represent helper function. |
| * src/abg-reporter-priv.cc (represent): In the var_diff_sptr |
| overload, rename pretty_representation to o_pretty_representation, |
| introduce n_pretty_representation where needed and replace the |
| duplicate tr1 and tr2 with these; rename all other variables foo1 |
| and foo2 to o_foo and n_foo respectively, using _type instead of |
| _t; introduce o_anon and n_anon and use them to make the local |
| variable is_strict_anonymous_data_member_change const, make |
| ABG_ASSERT in anonymous data member handling more obvious in the |
| case where anonymity has changed and allow simplification of |
| formatting in this case; move declarations of const local |
| variables above those of the non-const, state-tracking, variables. |
| |
| 2020-04-07 Giuliano Procida <gprocida@google.com> |
| |
| abg-reporter-priv.cc: Fix anonymous member size change reports. |
| * src/abg-reporter-priv.cc (represent): In the var_diff_sptr |
| overload, factor out some expressions as local variables, rely |
| on diff_to_be_reported to decide whether to emit a change, |
| fold together local/non-local change reporting using |
| local_changes to preserve current name formatting differences, |
| keep track explicitly of whether size information has been |
| emitted and ensure it happens if needed, make offset and size |
| change reporting for anonymous data members more meaningful. |
| * tests/test-abidiff-exit.cc: Run new test cases. |
| * tests/data/Makefile.am: Add new test files. |
| * tests/data/test-abidiff-exit/test-member-size-v0.cc: New |
| test. |
| * tests/data/test-abidiff-exit/test-member-size-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-member-size-v1.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-member-size-v1.o: Ditto. |
| * tests/data/test-abidiff-exit/test-member-size-report0.txt: |
| New test, default mode. |
| * tests/data/test-abidiff-exit/test-member-size-report1.txt: |
| New test, --leaf-changes-only mode. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-report.txt: |
| Eliminate duplicate reporting of member sizes. |
| * tests/data/test-abidiff-exit/test-leaf-more-report.txt: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-report.txt: |
| Ditto. |
| * tests/data/test-abidiff-exit/test-no-stray-comma-report.txt: |
| Ditto. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt: |
| Add size report for anonymous data member. |
| * tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt: |
| Ditto. |
| * 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: |
| Add missing size change report. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Remove |
| size change report for previously reported type. |
| * tests/data/test-diff-suppr/test46-PR25128-report-1.txt: |
| Eliminate duplicate reporting of member size change. |
| * tests/data/test-diff-suppr/test46-PR25128-report-2.txt: |
| Ditto. |
| |
| 2020-04-07 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: More compact references to prior diffs. |
| * src/abg-reporter-priv.cc (represent): In the var_diff_sptr |
| overload, use consistent punctuation and keep to a single line |
| of output when referring back to an existing type diff report. |
| Remove unnecessary braces around single line conditional |
| blocks. |
| * src/abg-reporter-priv.h: In the macro |
| RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER, use |
| consistent punctuation when referring back to an existing type |
| diff report. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust |
| formatting of back references to existing type diff reports. |
| * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: |
| Ditto. |
| * tests/data/test-diff-filter/test16-report-2.txt: Ditto. |
| * tests/data/test-diff-filter/test17-1-report.txt: Ditto. |
| * tests/data/test-diff-filter/test25-cyclic-type-report-1.txt: |
| Ditto. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Ditto. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Ditto. |
| |
| 2020-04-06 Giuliano Procida <gprocida@google.com> |
| |
| test-abidiff-exit.cc: Drop redundant --redundant. |
| * tests/test-abidiff-exit.cc: Drop obsolete --redundant flag |
| and comment as --redundant is now implied by |
| --leaf-changes-only. |
| |
| 2020-04-06 Giuliano Procida <gprocida@google.com> |
| |
| Rename test-abidiff-exit/test-leaf[0-3] files. |
| * tests/data/Makefile.am: Rename test files. |
| * tests/test-abidiff-exit.cc: Rename test files. |
| * tests/data/test-abidiff-exit/test-leaf-fun-type-report.txt: |
| Renamed from test-leaf2-report.txt. |
| * tests/data/test-abidiff-exit/test-leaf-fun-type-v0.cc: |
| Renamed from test-leaf2-v0.cc. |
| * tests/data/test-abidiff-exit/test-leaf-fun-type-v0.o: |
| Renamed from test-leaf2-v0.o. |
| * tests/data/test-abidiff-exit/test-leaf-fun-type-v1.cc: |
| Renamed from test-leaf2-v1.cc. |
| * tests/data/test-abidiff-exit/test-leaf-fun-type-v1.o: |
| Renamed from test-leaf2-v1.o. |
| * tests/data/test-abidiff-exit/test-leaf-more-report.txt: |
| Renamed from test-leaf1-report.txt. |
| * tests/data/test-abidiff-exit/test-leaf-more-v0.cc: Renamed |
| from test-leaf1-v0.cc. |
| * tests/data/test-abidiff-exit/test-leaf-more-v0.o: Renamed |
| from test-leaf1-v0.o. |
| * tests/data/test-abidiff-exit/test-leaf-more-v1.cc: Renamed |
| from test-leaf1-v1.cc. |
| * tests/data/test-abidiff-exit/test-leaf-more-v1.o: Renamed |
| from test-leaf1-v1.o. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-report.txt: |
| Renamed from test-leaf3-report.txt. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-v0.c: |
| Renamed from test-leaf3-v0.c. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-v0.o: |
| Renamed from test-leaf3-v0.o. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-v1.c: |
| Renamed from test-leaf3-v1.c. |
| * tests/data/test-abidiff-exit/test-leaf-redundant-v1.o: |
| Renamed from test-leaf3-v1.o. |
| * tests/data/test-abidiff-exit/test-leaf-stats-report.txt: |
| Renamed from test-leaf0-report.txt. |
| * tests/data/test-abidiff-exit/test-leaf-stats-v0.cc: Renamed |
| from test-leaf0-v0.cc. |
| * tests/data/test-abidiff-exit/test-leaf-stats-v0.o: Renamed |
| from test-leaf0-v0.o. |
| * tests/data/test-abidiff-exit/test-leaf-stats-v1.cc: Renamed |
| from test-leaf0-v1.cc. |
| * tests/data/test-abidiff-exit/test-leaf-stats-v1.o: Renamed |
| from test-leaf0-v1.o. |
| |
| 2020-04-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Update the mailing list registration form on the web page |
| * doc/website/mainpage.txt: Use the form at |
| https://sourceware.org/mailman/listinfo/libabigail to register to |
| the mailing list. |
| |
| 2020-03-30 Giuliano Procida <gprocida@google.com> |
| |
| abg-dwarf-reader.cc: Avoid division by zero. |
| * src/abg-dwarf-reader.cc (perform_late_type_canonicalizing): |
| If total is zero, don't try to output percentages using it as |
| a divisor. |
| |
| 2020-03-29 Giuliano Procida <gprocida@google.com> |
| |
| abidiffpkg: Remove stray test report file. |
| * tests/data/Makefile.am: Removed |
| tests/data/test-diff-pkg/dirpkg-2-report-1.txt. |
| * tests/data/test-diff-pkg/dirpkg-2-report-1.txt: Removed. |
| |
| 2020-03-29 Giuliano Procida <gprocida@google.com> |
| |
| test-diff-suppr.cc: Add missing tests. |
| * tests/test-diff-suppr.cc: Add stanzas for |
| test6-fn-suppr-report-4, test16-suppr-removed-fn-report-5 and |
| test22-suppr-removed-var-sym-report-5 and |
| test23-alias-filter-report-4 tests. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-4.txt: |
| Number parameters from 1 and update expected output to current |
| formatting. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-5.txt: |
| Update expected output to current formatting. |
| * tests/data/test-diff-suppr/test22-suppr-removed-var-sym-report-5.txt: |
| Update expected output to current formatting. |
| |
| 2020-03-29 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Remove blank line after typedef changes. |
| * include/abg-reporter.h |
| (default_reporter::report_local_typedef_changes): Change |
| return type to void. |
| * src/abg-default-reporter.cc: |
| (default_reporter::report_local_typedef_changes): Change |
| return type to void, remove emit_nl state variable and logic. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Remove |
| blank lines. |
| * tests/data/test-diff-dwarf/test42-PR21296-clanggcc-report0.txt: |
| Ditto. |
| * tests/data/test-diff-suppr/test39-opaque-type-report-0.txt: |
| Ditto. |
| |
| 2020-03-26 Giuliano Procida <gprocida@google.com> |
| |
| Fix size calculations for multidimensional arrays. |
| * include/abg-ir.h (array_type_def::append_subrange): Remove |
| this function. |
| * src/abg-ir.cc (array_type_def::set_element_type): Add a note |
| about safe usage. |
| (array_type_def::append_subrange): Inline this function into |
| its only caller append_subranges and remove it. |
| (array_type_def::append_subranges): Do correct multiplicative |
| calculation of multidimensional array sizes. |
| * src/abg-reader.cc (build_array_type_def): When checking |
| calculated against read array sizes, warn once if value |
| matches old behaviour rather than raising an assertion. |
| Otherwise, before raising an assertion, emit an informative |
| error message. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Correct |
| array sizes. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Ditto. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Ditto. |
| * tests/data/test-annotate/test7.so.abi: Ditto. |
| * tests/data/test-diff-dwarf/test10-report.txt: Ditto. |
| * tests/data/test-diff-dwarf/test11-report.txt: Ditto. |
| * tests/data/test-read-write/test25.xml: Ditto. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-27 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Remove new lines after parameter diffs. |
| * src/abg-default-reporter.cc: (report_local_function_type_changes): |
| Remove unnecessary blank lines after lists of parameter changes. |
| * tests/data/test-*/test*report*.txt: Remove blank lines after |
| parameter change lists in 12 files. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-27 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Eliminate leaf mode double blank lines. |
| * src/abg-leaf-reporter.cc: (report_diffs) Emit 1 instead of 2 |
| new lines between sections. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-report.txt: |
| Replace double blank lines with single ones. |
| * tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt: |
| Ditto. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Ditto. |
| * tests/data/test-*/test*report*.txt:: Ditto. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-27 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Fix variable declaration formatting. |
| * src/abg-reporter-priv.cc: (represent) In the var_diff_sptr |
| overload, make sure the state variables begin_with_and and |
| emitted are updated consistently; add a TODO for one case |
| which may result in the end of the function being reached |
| without having emitted a report; add missing new lines |
| following reporting of anonymous member changes; only emit a |
| final new line if begin_with_and hasn't tracked one already; |
| document state variables. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt: |
| Add missing blank line after anonymous member change text. |
| * tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt: |
| Add missing "and " continuation. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-27 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Remove member function diff blank lines. |
| * src/abg-default-reporter.cc (report): In the |
| class_or_union_diff overload, don't emit a new line after each |
| list of member function, member type, template member |
| function and template member class changes. |
| * src/abg-leaf-reporter.cc (report): : In the |
| class_or_union_diff overload, don't emit a new line after each |
| list of member function changes. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-v0.cc: |
| New test case for --leaf-changes-only member function diffs. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-v0.o: |
| Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-v1.cc: |
| Ditto. Also add a TODO regarding a potentially bad diff. |
| * tests/data/test-abidiff-exit/test-leaf-cxx-members-v1.o: |
| Ditto. |
| * tests/data/test-abidiff/test-struct1-report.txt: Remove |
| blank lines after member function changes lists. |
| * tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt: |
| Ditto. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: |
| Ditto. |
| * tests/test-abidiff-exit.cc: Add new test case. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-26 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Fix enum impacted interfaces blank line. |
| * src/abg-default-reporter.cc (report): In the enum_diff |
| overload, don't emit a blank line before a possible "impacted |
| interfaces" stanza. In the class_or_union overload, change a |
| stray conditional to use the emitted state variable for |
| consistency. |
| * tests/data/test*report*.txt: Remove blank lines after enum |
| diffs in 17 files. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-26 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Remove blank line after base class diffs. |
| * src/abg-default-reporter.cc (report): In the class_diff |
| overload, eliminate the extra blank line after base class |
| changes and remove unneeded new line logic. |
| * tests/data/test*report*.txt: Remove blank lines after base |
| class diffs in 9 files. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-26 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Clean up new lines between sections. |
| * src/abg-default-reporter.cc (report): In the corpus_diff |
| override, add back the extra blank line per changed function |
| but remove the extra one after all changed changed functions |
| and variables; comment these. |
| * src/abg-leaf-reporter.cc (report): In the corpus_diff |
| override, add back the extra blank line per changed function |
| but remove the extra one after all changed changed functions |
| and variables; comment these. |
| * src/abg-reporter-priv.cc |
| (maybe_report_unreachable_type_changes): Remove extra blank |
| line emitted after all unreachable type changes; comment |
| this. |
| * tests/data/test*report*.txt: Remove/add blank lines. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-26 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.cc: Add types_have_similar_structure tests. |
| * src/abg-ir.cc (types_have_similar_structure): Update TODO |
| regarding structure of arrays - multidimensional arrays are |
| the issue. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-report.txt: |
| Updated following changes. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v0.cc: Add |
| more cases (see below). |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v0.o: |
| Updated. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v1.cc: Add |
| comment about a potential change to local-change semantics; |
| add test cases to demonstrate that * and & and * and *** are |
| structurally different; add a TODO regarding multidimensional |
| arrays where changes are sometimes missed in leaf mode. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v1.o |
| |
| 2020-03-28 Giuliano Procida <gprocida@google.com> |
| |
| abg-reader.cc: Fix code indentation and tabify. |
| * src/abg-reader.cc (build_elf_symbol_db): Fix code |
| indentation. |
| (build_array_type_def): Tabify. |
| |
| 2020-03-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Update tests/data/test-abidiff-exit/test-leaf-peeling-report.txt |
| * tests/data/test-abidiff-exit/test-leaf-peeling-report.txt: |
| Update output. |
| |
| 2020-03-25 Giuliano Procida <gprocida@google.com> |
| |
| abidiff: Remove some more unnecessary blank lines. |
| * src/abg-default-reporter.cc (report) In the |
| class_or_union_diff overload, don't emit a new line after |
| calls to represent. In the union_diff overload, emit a new |
| line after a from/to change; fix indentation. In the |
| corpus_diff overload, don't emit an extra new line after |
| reporting a diff. |
| * src/abg-leaf-reporter.cc (report_diffs) Don't emit a new |
| line after reporting a canonical diff. In the |
| class_or_union_diff overload, don't emit a new line after |
| calls to represent. In the corpus_diff overload, don't emit an |
| extra new line after reporting a diff. |
| * src/abg-reporter-priv.cc (represent): Emit a final new line, |
| but only if needed. |
| (maybe_report_interfaces_impacted_by_diff): Emit a new line |
| after the last impacted interface. |
| * tests/data/test-*/*report*.txt: Remove blank lines (and add |
| a missing one) to 77 test cases. |
| |
| 2020-03-25 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.cc: Improve types_have_similar_structure. |
| * include/abg-fwd.h (types_have_similar_structure): In both |
| overloads, add an indirect_type argument, defaulting to |
| false. |
| * src/abg-ir.cc (reference_type_def constructor): Tabify. |
| (types_have_similar_structure): In both overloads, add an |
| indirect_type argument and update documentation text. In the |
| type_base_sptr overload, pass indirect_type in the tail |
| call. In the type_base* overload, replace was_indirect_type |
| with indirect_type; peel CV qualifiers and typedefs without |
| testing as the peel function does this; replace the |
| indiscriminate peeling of qualifier/pointer/reference/array |
| type components with code that checks the same |
| pointer/reference/array type component is used on each side |
| and makes recursive calls with indirect_type set to true; pass |
| the indirect_type argument recursively when comparing other |
| subtypes; move the typeid check earlier, document its purpose |
| and remove unneccessary checks after later dynamic casts; |
| remove an always-true conditional; add a TODO for comparing |
| array types more accurately. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v0.cc: New |
| test case. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-v1.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf-peeling-report.txt: |
| Ditto. |
| * tests/test-abidiff-exit.cc: Run new test case. |
| |
| 2020-03-19 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.cc: Remove always-true check. |
| * src/abg-ir.cc (types_have_similar_structure): Remove |
| identical nested conditional. |
| (reference_type_def::reference_type_def): Tabify. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-19 Giuliano Procida <gprocida@google.com> |
| |
| abg-ir.cc: Fix peel_typedef_type(const type_base*). |
| * src/abg-ir.cc (peel_typedef_type): In the const type_base* |
| overload, return the original argument rather than null if the |
| type isn't actually a typedef. |
| |
| 2020-03-18 Giuliano Procida <gprocida@google.com> |
| |
| Eliminate redundancy in representation of local change kinds. |
| * include/abg-ir.h (change_kind): Remove redundant |
| LOCAL_CHANGE_KIND member, renumber members and update |
| comments. |
| * src/abg-comparison.cc (distinct_diff::has_local_changes): |
| Remove redundant LOCAL_CHANGE_KIND. |
| (var_diff::has_local_changes |
| * src/abg-ir.cc (equals): In the type_base, |
| qualified_type_def, pointer_type_def, reference_type_def, |
| array_type_def::subrange_type, array_type_def, enum_type_decl, |
| typedef_decl, var_decl, function_type, function_decl, |
| function_decl::parameter, class_or_union, |
| class_decl::base_spec, class_decl, decl_base and scope_decl |
| overloads, remove redundant LOCAL_CHANGE_KIND. |
| (enum_has_non_name_change): Remove redundant |
| LOCAL_CHANGE_KIND. |
| |
| 2020-03-20 Dodji Seketeli <dodji@redhat.com> |
| |
| dwarf-reader: Fix bloom filter access in GNU_HASH section |
| * src/abg-dwarf-reader.cc (bloom_word_at): Properly read an |
| element from the bloom bitmasks array of 32-bits values as a |
| 64-bits value in a portable way. Always return a 64 bits value. |
| (lookup_symbol_from_gnu_hash_tab): Use a 64-bits value to store |
| the bloom bitmask. |
| * tests/data/test-lookup-syms/test1-32bits.so: New test input, |
| compiled as a 32bits binary to test for ELFCLASS32 binaries. |
| * tests/data/test-lookup-syms/test1.c.compiling.txt: Documentation |
| about how to compile the test1[-21bits].so files. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-lookup-syms.cc (in_out_specs): Add the |
| test1-32bits.so test case to this test harness. |
| |
| 2020-03-18 Giuliano Procida <gprocida@google.com> |
| |
| Ensure change_kind enum values are used consistently. |
| * src/abg-comparison.cc (distinct_diff::has_local_changes): |
| Remove unnecessary parentheses around return expression. |
| * src/abg-default-reporter.cc (report): In the reference_diff |
| overload, replace test against LOCAL_CHANGE_KIND with test |
| against ALL_LOCAL_CHANGES_MASK. |
| * src/abg-ir.cc (equals): In the array_type_def and class_decl |
| overloads, add missing LOCAL_TYPE_CHANGE_KIND. In the |
| class_decl overload, also add missing LOCAL_CHANGE_KIND. In |
| the enum_type_decl and function_decl::parameter overloads |
| clarify pairing of LOCAL*CHANGE_KIND bits. |
| (enum_has_non_name_change): Clarify pairing of |
| LOCAL*CHANGE_KIND bits. |
| |
| 2020-03-18 Giuliano Procida <gprocida@google.com> |
| |
| dwarf-reader: Use all bits of Bloom filter words. |
| * src/abg-dwarf-reader.cc (lookup_symbol_from_gnu_hash_tab): |
| Don't narrow calculated Bloom word to 8 bits before using it |
| to mask the fetched Bloom word. |
| |
| 2020-03-15 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: remove superfluous ABG_ASSERT |
| * src/abg-dwarf-reader.cc |
| (maybe_adjust_et_rel_sym_addr_to_abs_addr): improve NULL check, |
| remove superfluous ABG_ASSERT |
| * tests/data/Makefile.am: Add new test case to the distribution. |
| * tests/test-read-dwarf.cc: Likewise. |
| * tests/data/test-read-dwarf/test27-bogus-binary.elf: New test case. |
| |
| 2020-03-15 Matthias Maennich <maennich@google.com> |
| |
| test-read-dwarf: ensure in_elf_path exists and add missing test files |
| * tests/data/Makefile.am: add missing test case files |
| * tests/test-read-dwarf.cc (test_task::perform): assert the |
| input elf file exists. |
| |
| 2020-03-18 Matthias Maennich <maennich@google.com> |
| |
| configure: add support for memory sanitizer (--enable-msan) |
| * configure.ac: Add configure options for -fsanitize=memory |
| |
| 2020-03-18 Dodji Seketeli <dodji@redhat.com> |
| |
| abipkgdiff: fix documentation of --impacted-interface |
| * tools/abipkgdiff.cc (display_usage): Use the same help string |
| for the --impacted-interface option as abidiff does. |
| |
| 2020-03-15 Matthias Maennich <maennich@google.com> |
| |
| abidiff: fix documentation of --impacted-interfaces |
| * tools/abidiff.cc(display_usage): Fix doc string for |
| --impacted-interfaces. |
| Reported-by: Saravana Kannan <saravanak@google.com> |
| |
| 2020-03-17 Giuliano Procida <gprocida@google.com> |
| |
| Tag add/remove/change lines unconditionally with [A], [D], [C]. |
| * src/abg-default-reporter.cc (report): In the corpus_diff |
| override, remove calculations of number of changes (total) and |
| comparisons against arbitrary threshold (large_num); emit [A], |
| [D], [C] tags unconditionally. |
| * src/abg-reporter-priv.cc |
| (maybe_report_unreachable_type_changes): Remove comparisons of |
| number of changes against arbitrary threshold (large_num); |
| emit [A], [D], [C] tags unconditionally; fix quoting of |
| deleted unreachable types; fix indentation of changed |
| unreachable types. |
| * tools/abipkgdiff.cc (compare_prepared_userspace_packages): |
| Emit [D] and [A] tags for removed and added binaries. |
| * tests/data/test-*/*report*.txt: In 109 report files, add |
| tags [A], [D], [C] tags and correct some indentation and |
| quoting. |
| |
| 2020-03-12 Matthias Maennich <maennich@google.com> |
| |
| abg-workers: guard bring_workers_down to avoid dead lock |
| * src/abg-workers.cc(do_bring_workers_down): keep |
| task_todo_mutex locked while writing bring_workers_down, |
| (wait_to_execute_a_task): rewrite the loop condition to ensure |
| safe access to bring_workers_down. |
| |
| 2020-03-12 Matthias Maennich <maennich@google.com> |
| |
| configure: add support for thread sanitizer (--enable-tsan) |
| * configure.ac: Add configure options for -fsanitize=thread |
| |
| 2020-03-13 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: gnu_hash_tab lookup: fix overflow in bloom hash calculation |
| * src/abg-dwarf-reader.cc(lookup_symbol_from_gnu_hash_tab): Fix |
| signed integer overflow. |
| |
| 2020-03-12 Giuliano Procida <gprocida@google.com> |
| |
| Treat function type changes as local. |
| * src/abg-ir.cc (types_have_similar_structure): Always compare |
| function types (instead of just returning true) regardless of |
| whether they are components of pointer-to-function or |
| reference-to-function types. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-leaf2-report.txt: New test |
| case. |
| * tests/data/test-abidiff-exit/test-leaf2-v0.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf2-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf2-v1.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf2-v1.o: Ditto. |
| * tests/test-abidiff-exit.cc: Run new test case. |
| |
| 2020-03-13 Giuliano Procida <gprocida@google.com> |
| |
| Output 2-space indentation consistently. |
| * src/abg-default-reporter.cc (report): In the |
| class_or_union_diff override, use 2-space indentation when |
| listing changed members. In the var_diff override, do the same |
| for variable type changes. |
| * src/abg-leaf-reporter.cc: Ditto. |
| * tests/data/test-*/*report*.txt: Update many test cases. |
| |
| 2020-03-16 Giuliano Procida <gprocida@google.com> |
| |
| Eliminate some unnecessary blank lines in diff output. |
| * src/abg-default-reporter.cc (report): In the type_decl_diff, |
| enum_diff, array_diff, class_diff, union_diff and var_diff |
| overrides, simplify new line logic which no longer needs to be |
| threaded through report_name_size_and_alignment_changes. In |
| the distinct_diff override, simplify new line logic which no |
| longer needs to be threaded through |
| report_size_and_alignment_changes. In the enum_diff override, |
| emit just one blank line after each enum. In the array_diff |
| override, remove stray location reporting which doesn't appear |
| to ever trigger; fix new line logic. In the |
| class_or_union_diff override, simplify new line logic for |
| deleted members; pass indentation to represent_data_member. |
| * src/abg-leaf-reporter.cc (report): In the array_diff, |
| class_diff, union_diff and var_diff overrides, simplify new |
| line logic which no longer needs to be threaded through |
| report_name_size_and_alignment_changes. In the distinct_diff |
| override, simplify new line logic which no longer needs to be |
| threaded through report_size_and_alignment_changes. In the |
| array_diff override, remove stray location reporting which |
| doesn't appear to ever trigger; fix new line handling. In the |
| class_or_union_diff override, simplify new line logic for |
| deleted members; pass indentation to represent_data_member. |
| In the corpus_diff override, tabify source indentation. |
| * src/abg-reporter-priv.cc (represent_data_member): Handle |
| indentation; fix new line logic. |
| (report_size_and_alignment_changes): Fix new line logic |
| for "type size hasn't changed" message; simplify new line |
| logic and replace local bool n with argument bool nl for |
| clarity. |
| (report_size_and_alignment_changes): Remove bool nl argument |
| and associated code as it had become always false; take |
| responsibility for emitting terminating new lines and change |
| return type to void. |
| (report_name_size_and_alignment_changes): Fix new line logic; |
| remove bool nl argument and associated code as it had become |
| always false; take responsibility for emitting terminating new |
| lines and change return type to void. |
| (maybe_report_interfaces_impacted_by_diff) In both overrides, |
| remove new line prefix code and new_line_prefix argument. |
| * src/abg-reporter-priv.h (represent_data_member): Add indent |
| argument. |
| (report_size_and_alignment_changes) Remove bool nl argument; |
| change return type to void. |
| (report_name_size_and_alignment_changes) Remove bool nl |
| argument; change return type to void. |
| (maybe_report_interfaces_impacted_by_diff) In both overrides, |
| remove new_line_prefix argument. |
| * tests/data/test-*/*report*.txt: Remove some blank lines. |
| |
| 2020-03-12 Giuliano Procida <gprocida@google.com> |
| |
| abg-leaf-reporter.cc: Fix indentation of function parameter diffs. |
| * src/abg-leaf-reporter.cc (report): In the fn_parm_diff |
| override, indent the lines of detail by 2 spaces. |
| * tests/data/test-abidiff-exit/test-leaf3-report.txt: Update |
| report with correct indentation. |
| |
| 2020-03-12 Giuliano Procida <gprocida@google.com> |
| |
| Fix interaction of --redundant and --leaf-changes-only options. |
| * src/abg-comparison.cc (diff_context::show_leaf_changes_only): |
| Remove "--leaf-changes-only implies --redundant" logic. |
| * tools/abidiff.cc (display_usage): Mention that |
| --leaf-changes-only implies --redundant. |
| (set_diff_context_from_opts): Make --leaf-changes-only imply |
| --redundant; document this behaviour in a comment. |
| * tools/abipkgdiff.cc: Ditto. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-leaf3-report.txt: Add new |
| test case, to show --leaf-changes-only implies --redundant. |
| * tests/data/test-abidiff-exit/test-leaf3-v0.c: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf3-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf3-v1.c: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf3-v1.o: Ditto. |
| * tests/test-abidiff-exit.cc: Run new test case. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: |
| Update abipkgdiff report with --redundant output. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt: |
| Ditto. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Ditto. |
| |
| 2020-03-13 Giuliano Procida <gprocida@google.com> |
| |
| Add more leaf change reporting. |
| * doc/manuals/abidiff.rst: Update the documentation for |
| --leaf-changes-only. |
| * doc/manuals/abipkgdiff.rst: Likewise. |
| * src/abg-comparison.cc (emit_diff_stats): Exclude non-leaf |
| changes to variables from the reported total of leaf changes. |
| * src/abg-default-reporter.cc (report): In the corpus_diff |
| override, move some code and comments for clarity. |
| * src/abg-leaf-reporter.cc (report): In the corpus_diff |
| override, additionally report removed/added/changed variables |
| and removed/added symbols absent from debug info. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-leaf0-report.txt: Update |
| to include reporting of variable diff (change of type). |
| * tests/data/test-abidiff-exit/test-leaf1-report.txt: New test |
| case with added/removed variables/functions and changed |
| variables (both local and non-local type changes). |
| * tests/data/test-abidiff-exit/test-leaf1-v0.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf1-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf1-v1.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf1-v1.o: Ditto. |
| * tests/test-abidiff-exit.cc: Run new test case. Supply |
| --redundant otherwise the test isn't meaningful. |
| |
| 2020-03-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Update fedabipkgdiff tests according to commit b602f46c |
| * tests/data/test-fedabipkgdiff/test0-from-fc20-to-fc23-dbus-glib-report-0.txt: |
| Adjust for useless whitespace removal. |
| * tests/data/test-fedabipkgdiff/test1-from-fc20-to-dbus-glib-0.106-1.fc23.x86_64-report-0.txt: Likewise. |
| * tests/data/test-fedabipkgdiff/test2-dbus-glib-0.100.2-2.fc20--dbus-glib-0.106-1.fc23-report-0.txt: Likewise. |
| * tests/data/test-fedabipkgdiff/test3-dbus-glib-0.100.2-2.fc20.i686--dbus-glib-0.106-1.fc23.i686-report-0.txt: Likewise. |
| * tests/data/test-fedabipkgdiff/test4-glib-0.100.2-2.fc20.x86_64.rpm-glib-0.106-1.fc23.x86_64.rpm-report-0.txt: Likewise. |
| |
| 2020-03-11 Giuliano Procida <gprocida@google.com> |
| |
| Fix spurious new lines after diff sections. |
| * src/abg-default-reporter.cc (report): In the corpus_diff |
| overload, just use a local boolean emitted state variable |
| within each section to determine whether or not to follow the |
| section with an extra new line. |
| * src/abg-leaf-reporter.cc: Ditto. |
| * tests/data/test-*/*report*.txt: Remove unwanted new lines |
| from 27 files. |
| |
| 2020-03-10 Giuliano Procida <gprocida@google.com> |
| |
| abg-comparison.cc: Remove stray function declaration. |
| * src/abg-comparison.cc (show_relative_offset_changes): Remove |
| this stray function declaration. |
| |
| 2020-03-10 Giuliano Procida <gprocida@google.com> |
| |
| abisym: Remove leading space in output. |
| * tools/abisym.cc (main): Remove leading space from output. |
| * tests/data/test-lookup-syms/test0-report.txt: Remove leading |
| space from expected output. |
| * tests/data/test-lookup-syms/test01-report.txt: Ditto. |
| * tests/data/test-lookup-syms/test02-report.txt: Ditto. |
| * tests/data/test-lookup-syms/test1-1-report.txt: Ditto. |
| |
| 2020-03-09 Giuliano Procida <gprocida@google.com> |
| |
| Fix the reporting of leaf change statistics. |
| * src/abg-comparison.cc |
| (apply_filters_and_compute_diff_stats): Increment the correct |
| counter for leaf variable changes. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-leaf0-report.txt: New test |
| case. |
| * tests/data/test-abidiff-exit/test-leaf0-v0.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf0-v0.o: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf0-v1.cc: Ditto. |
| * tests/data/test-abidiff-exit/test-leaf0-v1.o: Ditto. |
| * tests/test-abidiff-exit.cc: Run new test case. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-03-05 Giuliano Procida <gprocida@google.com> |
| |
| Add space missing between "[C]" tag and description of changed item. |
| * src/abg-default-reporter.cc (report): In the overload for |
| corpus_diff, output space after "[C]". |
| * src/abg-leaf-reporter.cc (report): Likewise. |
| * tests/data/test-*/*report*.txt: Update all the test |
| reports. |
| |
| 2020-03-05 Giuliano Procida <gprocida@google.com> |
| |
| Correct various inconsequential typos. |
| * src/abg-leaf-reporter.cc (report): In the class_or_union_diff |
| overoad, swap calls to report_mem_header to match the rest of the |
| code. |
| * src/abg-reporter-priv.cc (represent): In the var_diff_sptr |
| overload, add some missing whitespace; remember we've emitted the |
| pretty representation in 2 cases where this was omitted (though 1 |
| of these is the last case where it makes no difference). |
| maybe_report_diff_for_symbol Add some missing whitespace; remember |
| we've reported a diff (and need a trailing newline) in 1 case |
| where this was omitted, also affecting the return value of the |
| function (but no caller cares). |
| |
| 2020-03-05 Giuliano Procida <gprocida@google.com> |
| |
| Correct spelling of "alignment". |
| * src/abg-reporter-priv.cc: s/alignement/alignment/ |
| * tests/data/test-abidiff/test-struct0-report.txt: Ditto.. |
| * tests/data/test-abidiff/test-struct1-report.txt: Ditto. |
| * tests/data/test-abidiff/test-var0-report.txt: Ditto. |
| |
| 2020-02-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.8 |
| * configure.ac: Update version number to 1.8 |
| |
| 2020-02-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Update website for 1.7 |
| * doc/website/mainpage.txt: Update for 1.7 |
| |
| 2020-02-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog |
| * ChangeLog: Automatically update by running: |
| 'make update-changelog'. |
| |
| 2020-02-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.7 |
| * NEWS: update for 1.7 |
| |
| 2020-02-25 Dodji Seketeli <dodji@redhat.com> |
| |
| gen-changelog.py: Update the script for python3 |
| * gen-changelog.py (process_commit): Use the functional notation |
| for the print function invocation required by python3. |
| (output_commits, get_rel_tags, ): Specify that the output stream |
| of the subprocess running the git command is in the text format. |
| |
| 2020-02-26 Dodji Seketeli <dodji@redhat.com> |
| |
| tools-utils: Drop redefinition of fopen when BAD_FTS is defined |
| * src/abg-tools-utils.cc: Do not remap fopen to fopen64 as we |
| don't use fopen explicitly anymore. |
| |
| 2020-02-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright year to 2020 |
| * include/abg-comp-filter.h: Update copyright year to 2020. |
| * include/abg-comparison.h: Likewise. |
| * include/abg-config.h: Likewise. |
| * include/abg-corpus.h: Likewise. |
| * include/abg-cxx-compat.h: Likewise. |
| * include/abg-diff-utils.h: Likewise. |
| * include/abg-dwarf-reader.h: Likewise. |
| * include/abg-fwd.h: Likewise. |
| * include/abg-hash.h: Likewise. |
| * include/abg-ini.h: Likewise. |
| * include/abg-interned-str.h: Likewise. |
| * include/abg-ir.h: Likewise. |
| * include/abg-libxml-utils.h: Likewise. |
| * include/abg-libzip-utils.h: Likewise. |
| * include/abg-reader.h: Likewise. |
| * include/abg-reporter.h: Likewise. |
| * include/abg-sptr-utils.h: Likewise. |
| * include/abg-suppression.h: Likewise. |
| * include/abg-tools-utils.h: Likewise. |
| * include/abg-traverse.h: Likewise. |
| * include/abg-viz-common.h: Likewise. |
| * include/abg-viz-dot.h: Likewise. |
| * include/abg-viz-svg.h: Likewise. |
| * include/abg-workers.h: Likewise. |
| * include/abg-writer.h: Likewise. |
| * src/abg-comp-filter.cc: Likewise. |
| * src/abg-comparison-priv.h: Likewise. |
| * src/abg-comparison.cc: Likewise. |
| * src/abg-config.cc: Likewise. |
| * src/abg-corpus-priv.h: Likewise. |
| * src/abg-corpus.cc: Likewise. |
| * src/abg-default-reporter.cc: Likewise. |
| * src/abg-diff-utils.cc: Likewise. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * src/abg-hash.cc: Likewise. |
| * src/abg-ini.cc: Likewise. |
| * src/abg-internal.h: Likewise. |
| * src/abg-ir-priv.h: Likewise. |
| * src/abg-ir.cc: Likewise. |
| * src/abg-leaf-reporter.cc: Likewise. |
| * src/abg-libxml-utils.cc: Likewise. |
| * src/abg-libzip-utils.cc: Likewise. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-reporter-priv.cc: Likewise. |
| * src/abg-reporter-priv.h: Likewise. |
| * src/abg-sptr-utils.cc: Likewise. |
| * src/abg-suppression-priv.h: Likewise. |
| * src/abg-suppression.cc: Likewise. |
| * src/abg-tools-utils.cc: Likewise. |
| * src/abg-traverse.cc: Likewise. |
| * src/abg-viz-common.cc: Likewise. |
| * src/abg-viz-dot.cc: Likewise. |
| * src/abg-viz-svg.cc: Likewise. |
| * src/abg-workers.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| * tests/print-diff-tree.cc: Likewise. |
| * tests/test-abicompat.cc: Likewise. |
| * tests/test-abidiff-exit.cc: Likewise. |
| * tests/test-abidiff.cc: Likewise. |
| * tests/test-alt-dwarf-file.cc: Likewise. |
| * tests/test-core-diff.cc: Likewise. |
| * tests/test-diff-dwarf-abixml.cc: Likewise. |
| * tests/test-diff-dwarf.cc: Likewise. |
| * tests/test-diff-filter.cc: Likewise. |
| * tests/test-diff-pkg.cc: Likewise. |
| * tests/test-diff-suppr.cc: Likewise. |
| * tests/test-diff2.cc: Likewise. |
| * tests/test-dot.cc: Likewise. |
| * tests/test-ini.cc: Likewise. |
| * tests/test-ir-walker.cc: Likewise. |
| * tests/test-lookup-syms.cc: Likewise. |
| * tests/test-read-dwarf.cc: Likewise. |
| * tests/test-read-write.cc: Likewise. |
| * tests/test-svg.cc: Likewise. |
| * tests/test-tools-utils.cc: Likewise. |
| * tests/test-types-stability.cc: Likewise. |
| * tests/test-utils.cc: Likewise. |
| * tests/test-utils.h: Likewise. |
| * tests/test-write-read-archive.cc: Likewise. |
| * tools/abiar.cc: Likewise. |
| * tools/abicompat.cc: Likewise. |
| * tools/abidiff.cc: Likewise. |
| * tools/abidw.cc: Likewise. |
| * tools/abilint.cc: Likewise. |
| * tools/abipkgdiff.cc: Likewise. |
| * tools/abisym.cc: Likewise. |
| * tools/binilint.cc: Likewise. |
| * tools/kmidiff.cc: Likewise. |
| * update-copyright.sh: Fix the updating script to handle not just |
| "Red Hat, Inc." |
| |
| 2020-02-21 Dodji Seketeli <dodji@redhat.com> |
| |
| abixml-reader: Support SONAME related properties on file suppression |
| * doc/manuals/libabigail-concepts.rst: Update the documentation to |
| mention soname_regexp and soname_not_regexp is supported in the |
| [suppress_file] section. |
| * include/abg-suppression.h (suppression_matches_soname) |
| (suppression_matches_soname_or_filename): Declare new functions. |
| Make them be friends of class suppression_base. |
| * src/abg-reader.cc |
| (read_context::corpus_is_suppressed_by_soname_or_filename): Define |
| new member function. |
| (read_corpus_from_input): Apply file suppression. |
| * src/abg-suppression.cc (read_file_suppression): Support |
| "soname_regexp" and "soname_not_regexp" in the [suppress_file] |
| section. |
| (suppression_matches_soname) |
| (suppression_matches_soname_or_filename): Define new functions. |
| * tests/data/test-diff-suppr/libtest48-soname-abixml-report-{1,2}.txt: |
| New test reference output files. |
| Likewise. |
| * tests/data/test-diff-suppr/libtest48-soname-abixml-suppr.txt: |
| New test suppression file. |
| * tests/data/test-diff-suppr/libtest48-soname-abixml-suppr-{2,3,4}.txt:: |
| Likewise. |
| * tests/data/test-diff-suppr/libtest48-soname-abixml-v{0,1}.so: New |
| test binary input files. |
| * tests/data/test-diff-suppr/libtest48-soname-abixml-v{0,1}.so.abi: |
| New abixml for the binary input files above. |
| * tests/data/test-diff-suppr/test48-soname-abixml-v{0,1}.c: Source |
| code of the binary input files above. |
| * tests/data/Makefile.am: Add the above test material to source |
| distribution. |
| * tests/test-diff-suppr.cc (in_out_specs): Add the test input |
| above to this test harness. |
| |
| 2020-02-21 Dodji Seketeli <dodji@redhat.com> |
| |
| suppression: Better handle soname/filename properties evaluation |
| * include/abg-suppression.h |
| (suppression_base::has_{soname,file_name}_related_property): Add |
| new member functions. |
| * src/abg-dwarf-reader.cc (read_context::suppression_can_match): |
| Fix the logic to make a difference between the case where the |
| suppression doesn't have any soname/filename property and the case |
| where the suppression does have a soname/filename property that |
| does not match the current binary. |
| * src/abg-reader.cc (read_context::suppression_can_match): |
| Likewise. |
| * src/abg-suppression-priv.h |
| (suppression_base::priv::matches_soname): If the suppression does |
| not have any soname related property then it doesn't match the |
| soname we are looking at. |
| (suppression_base::priv::matches_binary_name): If the suppression |
| does not have any filename related property then it doesn't match |
| the filename we are looking at. |
| * src/abg-suppression.cc |
| (suppression_base::has_{soname,file_name}_related_property): |
| Define new member functions. |
| (sonames_of_binaries_match): If the suppression does not have any |
| soname related property then it doesn't match the corpora of the |
| diff we are looking at. |
| (names_of_binaries_match): If the suppression does not have any |
| filename related property then it doesn't match the corpora of the |
| diff we are looking at. |
| (type_suppression::suppresses_type): Fix the logic to make a |
| difference between the case where the suppression doesn't have any |
| soname/filename property and the case where the suppression does |
| have a soname/filename property that does not match the current |
| binary. |
| (function_suppression::suppresses_{function, function_symbol}): |
| Likewise. |
| (variable_suppression::suppresses_{variable, variable_symbol}): |
| Likewise. |
| (file_suppression::suppresses_file): Likewise. |
| |
| 2020-02-05 Giuliano Procida <gprocida@google.com> |
| |
| Fix stray comma in leaf-changes-only mode. |
| * src/abg-reporter-priv.cc (represent): Don't try to follow |
| output of indented pretty representation with a comma, just |
| emit "and" unconditionally; remove unnecessary intermediate |
| ostringstream. |
| * tests/data/Makefile.am: Add new test case files. |
| * tests/data/test-abidiff-exit/test-no-stray-comma-*: New test |
| cases. |
| * tests/data/test-diff-suppr/test46-PR25128-report-?.txt: |
| Replace unindented comma with indented "and". |
| * tests/test-abidiff-exit.cc: Add no-stray-comma test case. |
| Reviewed-by: Matthias Maennich <maennich@google.com> |
| |
| 2020-02-04 Giuliano Procida <gprocida@google.com> |
| |
| Sort kernel module object files before processing them. |
| * src/abg-tools-utils.cc (get_binary_paths_from_kernel_dist): |
| Sort module_paths. |
| |
| 2020-02-04 Matthias Maennich <maennich@google.com> |
| |
| abg-workers: Rework the worker queue to improve concurrent behaviour |
| * include/abg-workers.h (workers::task): move entire |
| implementation to header and drop superfluous forward declaration. |
| * src/abg-workers.cc (workers::task):: Likewise. |
| (workers::queue::priv): Drop queue_cond_mutex, rename queue_cond |
| to tasks_todo_cond, add task_done_cond, make default_notify |
| static. |
| (workers::queue::priv::priv): Add default arguments to fully |
| qualified constructor, drop the remaining ones. |
| (workers::queue:prive::more_tasks_to_execute): Drop method. |
| (workers::queue:prive::schedule_task): Do not synchronize access |
| to the queue condition variable, but only on the mutex. |
| (do_bring_workers_down): Likewise. Also await tasks_done to be |
| empty. |
| (workers::queue:prive::worker::wait_to_execute_a_task): Await |
| tasks on the tasks_todo with tasks_todo_(cond|mutex) and signal |
| task completion to tasks_done_cond. |
| |
| 2020-02-03 Matthias Maennich <maennich@google.com> |
| |
| abg-dwarf-reader: zero initialize local Dwarf_Addr values |
| * src/abg-dwarf-reader.cc |
| (read_context::get_first_exported_fn_address_from_DW_AT_ranges): |
| initialize local Dwarf_Addr variables. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-01-29 Matthias Maennich <maennich@google.com> |
| |
| abg-comparison: prefer .empty() over implicit bool conversion of .size() |
| * src/abg-comparison.cc (corpus_diff::has_changes): prefer |
| !container.empty() over bool(container.size()) |
| [1] https://clang.llvm.org/extra/clang-tidy/checks/readability-container-size-empty.html |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-01-29 Matthias Maennich <maennich@google.com> |
| |
| Fix some parameter name inconsistencies |
| * src/abg-comparison-priv.h |
| (corpus_diff::priv::count_unreachable_types): use consistent |
| parameter naming. |
| * tools/abidiff.cc(main): Likewise. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-02-03 Giuliano Procida <gprocida@google.com> |
| |
| Don't ignore options when diffing translation units (.bi files). |
| * tests/data/Makefile.am: Add test case files. |
| * tests/data/test-abidiff-exit/test-loc-*: New test cases. |
| * tests/test-abidiff-exit.cc (in_out_specs): Add new test cases. |
| * tools/abidiff.cc (main): Use populated ctxt for translation unit |
| diff. |
| |
| 2020-01-29 Giuliano Procida <gprocida@google.com> |
| |
| Fix typo in COMPILING. |
| * COMPILING: |
| |
| 2020-01-29 Giuliano Procida <gprocida@google.com> |
| |
| Remove redundant mention of libtool in COMPILING documentation. |
| * COMPILING: Remove redundant mention of libtool. |
| |
| 2020-01-26 Matthias Maennich <maennich@google.com> |
| |
| Testing: add Catch Unit test framework |
| * tests/.gitignore: Add entry for .dirstamp |
| * tests/Makefile.am: Add libcatch test library and use it for |
| runtestkmiwhitelist. |
| * tests/lib/catch.cc: New test driver implementation. |
| * tests/lib/catch.hpp: Add Catch v1.12.2 header only test library. |
| * tests/test-kmi-whitelist.cc: Migrate to use Catch test framework. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-01-25 Matthias Maennich <maennich@google.com> |
| |
| abg-fwd: drop duplicate forward declaration for corpus_sptr |
| * include/abg-fwd.h: drop superfluous forward declaration. |
| |
| 2020-01-25 Matthias Maennich <maennich@google.com> |
| |
| Fix / add include guards |
| * include/abg-dwarf-reader.h: Move include guard to the beginning. |
| * include/abg-reporter-priv.h: Likewise. |
| * include/abg-libxml-utils.h: Add include guard. |
| * include/abg-libzip-utils.h: Likewise. |
| |
| 2020-01-25 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: handle binaries with missing symtab |
| * src/abg-dwarf-reader.cc (load_symbol_maps_from_symtab_section): |
| Handle elf file with missing symtab. |
| * tests/test-read-dwarf.cc (InOutSpec): add test case. |
| * tests/data/test-read-dwarf/test26-bogus-binary.elf: new test data. |
| |
| 2020-01-24 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: handle symtab.section_header.sh_entsize == 0 |
| * src/abg-dwarf-reader.cc (load_symbol_maps_from_symtab_section): |
| Handle elf file with invalid sh_entsize. |
| * tests/test-read-dwarf.cc (test_task::perform): handle empty |
| in_abi_path and out_abi_path as 'read only' test. |
| (InOutSpec): add test case. |
| * tests/data/test-read-dwarf/test25-bogus-binary.elf: new test data. |
| |
| 2020-01-21 Matthias Maennich <maennich@google.com> |
| |
| clang-format: Better approximation for binary operators and assignments |
| * .clang-format: Add BreakBeforeBinaryOperators option. |
| |
| 2020-01-14 Matthias Maennich <maennich@google.com> |
| |
| KMI Whitelists: Drop old whitelist extraction methods |
| * include/abg-tools-utils.h |
| (gen_suppr_spec_from_kernel_abi_whitelist): Delete declaration. |
| * src/abg-tools-utils.cc |
| (gen_suppr_spec_from_kernel_abi_whitelist): Delete definition |
| and migrate users to gen_suppr_spec_from_kernel_abi_whitelists. |
| * tools/abidiff.cc (set_suppressions): Migrate from using |
| gen_suppr_spec_from_kernel_abi_whitelist to |
| gen_suppr_spec_from_kernel_abi_whitelists. |
| * tools/abidw.cc (set_suppressions): Likewise. |
| * tools/abipkgdiff.cc: Drop unused using definition. |
| * tools/kmidiff.cc: Likewise. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-01-14 Matthias Maennich <maennich@google.com> |
| |
| KMI Whitelists: Add functionality to make whitelists additive |
| * include/abg-tools-utils.h |
| (gen_suppr_spec_from_kernel_abi_whitelists): New function. |
| * src/abg-tools-utils.cc |
| (gen_suppr_spec_from_kernel_abi_whitelists): Likewise. |
| * tests/.gitignore: Ignore new test executable. |
| * tests/Makefile.am: Add new test executable. |
| * tests/data/test-kmi-whitelist/whitelist-with-another-single-entry: |
| New test input file. |
| * tests/data/test-kmi-whitelist/whitelist-with-duplicate-entry: |
| Likewise. |
| * tests/data/test-kmi-whitelist/whitelist-with-single-entry: |
| Likewise. |
| * tests/data/test-kmi-whitelist/whitelist-with-two-sections: |
| Likewise. |
| * tests/data/Makefile.am: Add above test material. |
| * tests/test-kmi-whitelist.cc: Add new test executable. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-01-13 Matthias Maennich <maennich@google.com> |
| |
| writer: completely skip over empty corpora |
| * src/abg-writer.cc (write_corpus): completely skip empty |
| corpora rather than creating an empty entry for them. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-01-13 Matthias Maennich <maennich@google.com> |
| |
| corpus: is_empty: consider actual translation unit contents |
| * src/abg-corpus.cc (corpus::is_empty): consider a list of |
| empty members to be empty. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-01-13 Matthias Maennich <maennich@google.com> |
| |
| abg-reader: handle empty corpus nodes in xml representation |
| * src/abg-reader.cc (read_corpus_from_input): when assigning a |
| corpus node, assure the node actually has children. |
| * tests/test-abidiff.cc (main): Add test for variants of empty |
| xml nodes to the test harness. |
| * tests/data/test-abidiff/test-empty-corpus-0.xml: Test input |
| containing an empty xml node that closes immediately. |
| * tests/data/test-abidiff/test-empty-corpus-0.xml: Test input |
| containing an empty xml node that closes immediately with a tag. |
| * tests/data/test-abidiff/test-empty-corpus-0.xml: Test input |
| containing an empty xml node that closes with a tag on a new line. |
| * tests/data/test-abidiff/test-empty-corpus-report.txt: |
| Expected test output (empty abidiff) for diffing xml with itself. |
| * tests/data/Makefile.am: Add the new test input material above |
| to source distribution. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2020-01-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 25409 - Fix reading layout-offset-in-bits attribute of data-member |
| * src/abg-reader.cc (read_offset_in_bits): Fix comment. Use |
| stroull rather than atoi. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0: |
| Add new binary test input. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0-report-0.txt: |
| Add new reference output. |
| * tests/data/test-diff-dwarf-abixml/PR25409-librte_bus_dpaa.so.20.0.abi: |
| Add new abixml representation for the binary test input above. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-dwarf-abixml.cc (in_out_specs): Add the test |
| input above to the test harness. |
| |
| 2020-01-13 Matthias Maennich <maennich@google.com> |
| |
| abidiff/kmidiff: do not default-suppress added symbols |
| * tools/abidiff.cc (adjust_diff_context_for_kmidiff): Drop |
| default suppression of added symbols. |
| * tools/kmidiff.cc (set_diff_context): Likewise. |
| * tests/data/test-diff-suppr/test46-PR25128-report-1.txt: Adjust |
| test expectation. |
| * tests/data/test-diff-suppr/test46-PR25128-report-2.txt: Add |
| test case for abidiff with flag --no-added-syms. |
| * tests/data/Makefile.am: add new testcase. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2019-12-15 Matthias Maennich <maennich@google.com> |
| |
| Add (undocumented) support for version suffixes |
| * configure.ac: add substitution for VERSION_SUFFIX |
| * include/abg-version.h.in: add define for ABIGAIL_VERSION_SUFFIX |
| * include/abg-config.h(abigail_get_library_version): add support |
| for a version suffix |
| * src/abg-config.cc(abigail_get_library_version): Likewise. |
| * src/abg-tools-utils.cc(get_library_version_string): Likewise. |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2019-11-13 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: relax restriction about relocation sections in try_reading_first_ksymtab_entry |
| * src/abg-dwarf-reader.cc (try_reading_first_ksymtab_entry): |
| remove assertion and update documentation |
| Fixes: 43679a610316 ("dwarf-reader: refactor try_reading_first_ksymtab_entry_using{pre,}_v4_19_format") |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2019-11-11 Matthias Maennich <maennich@google.com> |
| |
| abg-dwarf-reader: resolve relocation sections by index |
| * src/abg-dwarf-reader.cc (find_relocation_section): New function. |
| (find_ksymtab_reloc_section): Use find_relocation_section to |
| resolve the ksymtab's relocation section. |
| (find_ksymtab_gpl_reloc_section): Likewise. |
| Fixes: e6870326e01a ("Support pre and post v4.19 ksymtabs for Linux kernel modules") |
| Cc: Jessica Yu <jeyu@kernel.org> |
| Cc: Android Kernel Team <kernel-team@android.com> |
| Reviewed-by: Dodji Seketeli <dodji@seketeli.org> |
| |
| 2019-12-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc typo fixes |
| * src/abg-comparison.cc |
| (leaf_diff_node_marker_visitor::visit_begin): Fix typo in |
| comments. |
| * src/abg-corpus.cc |
| (corpus::get_types_not_reachable_from_public_interfaces): |
| Likewise. |
| * src/abg-ir.cc (decl_base::set_has_anonymous_parent): Likewise. |
| * src/abg-reader.cc (add_read_context_suppressions): Likewise. |
| |
| 2019-11-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24690 - Support comparing non-reachable types of a binary |
| * include/abg-comparison.h (string_type_base_sptr_map): Define new |
| typedef. |
| (diff_context::show_unreachable_types): Declare new member |
| functions. |
| (corpus_diff::{deleted_unreachable_types, |
| deleted_unreachable_types_sorted, added_unreachable_types, |
| added_unreachable_types_sorted, changed_unreachable_types, |
| changed_unreachable_types_sorted}): Likewise. |
| (maybe_report_unreachable_type_changes): Declare this function a |
| friend of class corpus_diff. |
| (corpus_diff::diff_stats::{num_added_unreachable_types, |
| num_added_unreachable_types_filtered_out, |
| net_num_added_unreachable_types, num_removed_unreachable_types, |
| num_removed_unreachable_types_filtered_out, |
| net_num_removed_unreachable_types, num_changed_unreachable_types, |
| num_changed_unreachable_types_filtered_out, |
| net_num_changed_unreachable_types}): Likewise. |
| * src/abg-comparison-priv.h |
| (diff_context::priv::show_unreachable_types_): Define new data |
| member. |
| (diff_context::priv::priv): Initialize the new data member. |
| (diff_comp::operator()): Use pretty representation of diff |
| subjects to sort them, rather than just their name. Also, add |
| comment to the other member functions of diff_comp. |
| (corpus_diff::{unreachable_types_edit_script_, |
| deleted_unreachable_types_, deleted_unreachable_types_sorted_, |
| suppressed_deleted_unreachable_types_, added_unreachable_types_, |
| added_unreachable_types_sorted_, |
| suppressed_added_unreachable_types_, changed_unreachable_types_, |
| changed_unreachable_types_sorted_}): Define new data members. |
| (corpus_diff::priv::apply_supprs_to_added_removed_fns_vars_unreachable_types): |
| Changed the name of |
| corpus_diff::priv::apply_suppressions_to_added_removed_fns_vars into |
| this. |
| (corpus_diff::priv::{added_unreachable_type_is_suppressed, |
| deleted_unreachable_type_is_suppressed, |
| changed_unreachable_types_sorted, count_unreachable_types}): |
| Declare new member functions. |
| (corpus_diff::diff_stats::priv::{num_added_unreachable_types, |
| num_added_unreachable_types_filtered_out, |
| num_removed_unreachable_types, |
| num_removed_unreachable_types_filtered_out, |
| num_changed_unreachable_types, |
| num_changed_unreachable_types_filtered_out}): Define new data |
| members. |
| (sort_string_type_base_sptr_map): Declare new function. |
| * src/abg-comparison.cc (sort_string_type_base_sptr_map) |
| (diff_context::show_unreachable_types): Define new functions. |
| (corpus_diff::diff_stats::{num_added_unreachable_types, |
| num_added_unreachable_types_filtered_out, |
| net_num_added_unreachable_types, |
| net_num_removed_unreachable_types, |
| num_removed_unreachable_types_filtered_out, |
| num_removed_unreachable_types}): Define new member functions. |
| (diff_maps::insert_diff_node): Do not update the map "diff -> |
| impacted interfaces" if the current impacted interface is nil. |
| This happens if we are looking at a diff node for a change on a |
| type that is not reachable from any interfaces. |
| (corpus_diff::priv::ensure_lookup_tables_populated): Handle the |
| edit script for unreachable types. |
| (corpus_diff::priv::apply_supprs_to_added_removed_fns_vars_unreachable_types): |
| Rename |
| corpus_diff::priv::apply_suppressions_to_added_removed_fns_vars |
| into this. Apply suppression specifications to added and removed |
| unreachable types as well. |
| (corpus_diff::priv::{added,deleted}_unreachable_type_is_suppressed): |
| Define new member functions. |
| (corpus_diff::priv::{count_unreachable_types, |
| changed_unreachable_types_sorted}): Likewise. |
| (corpus_diff::priv::apply_filters_and_compute_diff_stats): Update |
| statistics (including walking changed unreachable types to apply |
| categorization and redundancy filters to them) related to |
| unreachable types. |
| (corpus_diff::priv::emit_diff_stats): Emit diff stats related to |
| unreachable types. |
| (corpus_diff::priv::maybe_dump_diff_tree): Dump diff tree nodes |
| related to unreachable types. |
| (corpus_diff::{deleted_unreachable_types, |
| deleted_unreachable_types_sorted, added_unreachable_types, |
| added_unreachable_types_sorted, changed_unreachable_types, |
| changed_unreachable_types_sorted): Define new member functions. |
| (corpus_diff::has_changes): Take deleted/added/changed unreachable |
| types into account. |
| (corpus_diff::has_incompatible_changes): Take net removed/changed |
| unreachable types into account. |
| (corpus_diff::has_net_subtype_changes): Take net removed and |
| changed unreachable types into account. |
| (corpus_diff::has_net_changes): Take net removed/added/changed |
| unreachable types into account. |
| (corpus_diff::traverse): When traversing the components of a |
| corpus_diff node, make sure to traverse the changed unreachable |
| types of the corpus. |
| (leaf_diff_node_marker_visitor::visit_begin): Arrange for the fact |
| that the current topmost interface can be nil if we are looking at |
| types not reachable from global functions/variables. Also, make |
| sure that only leaf nodes that are reachable from a global |
| function/variable are recorded as leaf nodes. |
| (compute_diff): In the overload for corpus_sptr, compute the |
| changes between types not reachable from global functions and |
| variables, if the user wishes that we do so. Also, add more |
| comments. |
| (apply_suppressions): Update for the name change of the function |
| apply_suppressions_to_added_removed_fns_vars to |
| apply_supprs_to_added_removed_fns_vars_unreachable_types. |
| * include/abg-corpus.h |
| (corpus::{record_type_as_reachable_from_public_interfaces, |
| type_is_reachable_from_public_interfaces, |
| get_types_not_reachable_from_public_interfaces}): Declare new |
| member functions. |
| (corpus::recording_types_reachable_from_public_interface_supported): |
| Declare new virtual member function. |
| (corpus_group::get_public_types_pretty_representations): Declare |
| new member functons. |
| (corpus_group::recording_types_reachable_from_public_interface_supported): |
| Declare new virtual member function. |
| * src/abg-corpus-priv.h |
| (corpus::priv::{types_not_reachable_from_pub_ifaces_, |
| pub_type_pretty_reprs_}): Define new data members. |
| (corpus::priv::priv): Initialize the pub_type_pretty_reprs_ data |
| member because it's a pointer. |
| (corpus::priv::get_public_types_pretty_representations): Declare |
| new member function. |
| (corpus::priv::~priv): Declare a destructor. |
| * src/abg-corpus.cc |
| (corpus::priv::get_public_types_pretty_representations): Define |
| new member function. |
| (corpus::priv::~priv): Define new destructor to delete the new |
| pub_type_pretty_reprs_ member pointer. |
| (corpus::{record_type_as_reachable_from_public_interfaces, |
| type_is_reachable_from_public_interfaces, |
| get_types_not_reachable_from_public_interfaces, |
| recording_types_reachable_from_public_interface_supported}): |
| Define new member functions |
| (corpus_group::get_public_types_pretty_representations): Likewise. |
| * include/abg-diff-utils.h (struct deep_ptr_eq_functor): Document |
| the equality operator. Also, add an overload to the equality |
| operator, for weak_ptr<T>. The existing equality operator |
| overload was just for shared_ptr<T>. |
| * include/abg-fwd.h (is_user_defined_type): Declare function. |
| * include/abg-ir.h (operator!=(const decl_base_sptr&, const |
| decl_base_sptr&)): Declare new operator. |
| (type_maps::get_types_sorted_by_name): Declare |
| new member function. |
| (decl_base::{g,s}et_is_artificial): Declare new member function. |
| (function_decl::parameter::{g,s}et_artificial): Remove these |
| member functions. |
| * src/abg-ir.cc (operator!=(const decl_base_sptr&, const |
| decl_base_sptr&)): Define new operator. |
| (decl_base::priv::is_artificial_): Define new data |
| member. |
| (type_maps::priv::sorted_types_): Define new data member. |
| (struct type_name_comp): Define new comparison functor to sort |
| types based on their pretty representations. |
| (decl_base::priv::priv): Initialize it. |
| (decl_base::{g,s}et_is_artificial): Define new member functions. |
| (type_maps::get_types_sorted_by_name): Define new member function. |
| (is_user_defined_type): Define new function overloads. |
| (strip_typedef, function_type::{function_type, set_parameters}): |
| Adjust using decl_base::get_is_artificial rather than |
| function_decl::parameter::get_artificial. |
| (function_decl::parameter::priv::artificial_): Remove this data |
| member. |
| (function_decl::parameter::priv::priv): Adjust to the removal of |
| function_decl::parameter::priv::artificial_. This constructor |
| does not take an "is_artificial" flag anymore. |
| (function_decl::parameter::parameter): Adjust to the removal of |
| the is_artificial flag from the arguments of the constructor of |
| function_decl::parameter::parameter::priv. |
| (function_decl::parameter::get_artificial): Remove this member |
| function. |
| * src/abg-reporter-priv.h (maybe_report_unreachable_type_changes): |
| Declare new function. |
| * src/abg-reporter-priv.cc |
| (maybe_report_unreachable_type_changes): Define new function. |
| * src/abg-default-reporter.cc (default_reporter::report): In the |
| overload for corpus_diff&, report added/removed/changed types that |
| are not reachable from global functions and variables using the |
| new function maybe_report_unreachable_type_changes. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): In the |
| overload for corpus_diff, report changes to types unreachable from |
| global functions or variables, using the new function |
| maybe_report_unreachable_type_changes. |
| * src/abg-dwarf-reader.cc (build_ir_node_from_die): When the user |
| requests that all types be loaded, record relevant types as |
| reachable from global functions and variables. |
| (build_enum_type, add_or_update_class_type) |
| (add_or_update_union_type): Read the 'is-artificial' DWARF |
| attribute and set the corresponding decl_base property |
| accordingly. |
| (finish_member_function_reading, strip_typedef) |
| (function_type::function_type): Adjust using |
| decl_base::get_is_artificial, rather than |
| function_decl::parameter::get_artificial. |
| * include/abg-reader.h |
| (consider_types_not_reachable_from_public_interfaces): Declare new |
| function. |
| * src/abg-reader.cc |
| (read_context::m_tracking_non_reachable_types): Add new data |
| member. |
| (read_context::read_context): Initialize it. |
| (read_context::tracking_non_reachable_types): Define accessors for |
| the new data member above. |
| (read_is_declaration_only): Re-indent. |
| (read_is_artificial): Define new helper function. |
| (build_function_parameter): Use the new read_is_artificial |
| function here, rather than open-coding it. |
| (build_enum_type_decl, build_class_decl, build_union_decl): |
| Support reading the 'is-artificial' property by using the new |
| read_is_artificial function. |
| (read_corpus_from_input): If the user wants us to take |
| non-reachable types into account, then make sure we do so. |
| (read_tracking_non_reachable_types, read_is_non_reachable_type): |
| Define new static functions. |
| (handle_element_node, build_type): Read the "is-non-reachable" |
| attribute on type element nodes if the user wants us to track |
| non-reachable types. |
| (consider_types_not_reachable_from_public_interfaces): Define new |
| function. |
| * src/abg-writer.cc (write_is_artificial): Define new static |
| helper function. |
| (annotate): Adjust using decl_base::get_is_artificial rather than |
| function_decl::parameter::get_artificial. |
| (write_enum_type_decl, write_class_decl_opening_tag) |
| (write_union_decl_opening_tag): Support writing the |
| "is-artificial" property, using the new write_is_artificial |
| function. |
| (write_function_type): Adjust this to use the new |
| write_is_artificial rather than open-coding writing the |
| 'is-artificial' attribute. |
| (write_is_non_reachable) |
| (write_tracking_non_reachable_types): Define new static functions. |
| (write_enum_type_decl, write_class_decl_opening_tag) |
| (write_union_decl_opening_tag): Write the 'is-no-reachable' |
| attribute when applicable. |
| (write_corpus, write_corpus_group): Write the |
| 'tracking-non-reachable-types' attribute when applicable. |
| * tools/abidiff.cc (options::options): Initialize ... |
| (options::show_all_types): ... new data member. |
| (display_usage): Add help string from the new |
| --non-reachable-types option. |
| (parse_command_line): Parse the new --non-reachable-types option. |
| (set_diff_context_from_opts): Set the |
| dwarf_reader::read_context::show_unreachable_types property. |
| (set_native_xml_reader_options): Define new |
| static function. |
| (main): Load all types when analyzing the DWARF or the ABIXML |
| files, if the user wants us to do so. |
| * tools/abipkgdiff.cc (options::show_all_types): Define new data |
| member. |
| (options::options): Initialize it. |
| (parse_command_line): Parse the --non-reachable-types option to |
| set the options::show_all_types data member. |
| (display_usage): Add a help string for the new |
| --non-reachable-types option. |
| (set_diff_context_from_opts): Set the |
| dwarf_reader::read_context::show_unreachable_types property based |
| on the options::show_all_type data member. |
| (compare): Configure the read context to load all types while |
| analyzing the DWARF info, depending on the options::show_all_type |
| data member. |
| * doc/manuals/abidiff.rst: Document the new --non-reachable-types |
| option added to abidiff above. |
| * doc/manuals/abipkgdiff.rst: Add documentation for the |
| --non-reachable-types option. |
| * tests/data/test-diff-suppr/test47-non-reachable-types-v{0,1}.c: |
| Source code files of test binary input. |
| * tests/data/test-diff-suppr/test47-non-reachable-types-suppr-{1,2,3,4,5}.txt: |
| New test input files. |
| * tests/data/test-diff-suppr/test47-non-reachable-types-report-{1,2,3,4,5,6,7,8,9,10}.txt: |
| New test reference output files. |
| * tests/data/test-diff-suppr/test47-non-reachable-types-v{0,1}.o.alltypes.abixml: |
| New test input abixml. |
| * tests/data/Makefile.am: Add the new test material to source |
| distribution. |
| * tests/test-diff-suppr.cc (in_out_specs): Add the new tests above |
| to this test harness. |
| * tests/data/test-abidiff/test-struct1-report.txt: Adjust. |
| * tests/data/test-diff-pkg/PR24690/flatpak-debuginfo-1.2.4-3.fc30.x86_64.rpm: |
| New input binary RPM. |
| * tests/data/test-diff-pkg/PR24690/flatpak-debuginfo-1.4.0-1.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24690/flatpak-devel-1.2.4-3.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24690/flatpak-devel-1.4.0-1.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24690/flatpak-libs-1.2.4-3.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24690/flatpak-libs-1.4.0-1.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24690/flatpak-libs-debuginfo-1.2.4-3.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24690/flatpak-libs-debuginfo-1.4.0-1.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24690/PR24690-report-0.txt: New test |
| reference output. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the new test material |
| above to this test harness. |
| |
| 2019-11-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Small style fix in abg-default-reporter.cc |
| * src/abg-default-reporter.cc (default_reporter::report): In the |
| overload for corpus_diff, break a line longer than 80 characters. |
| |
| 2019-10-21 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: add support for symbol namespaces in ksymtab entries |
| * src/abg-dwarf-reader.cc |
| (read_context::try_reading_first_ksymtab_entry): Add |
| symbol_offset parameter. |
| (read_context::get_ksymtab_entry_size): Add support for variable |
| size ksymtab entries due to symbol namespaces. |
| (load_kernel_symbol_table): only load nb_entries when needed |
| [1] https://lore.kernel.org/lkml/20190906103235.197072-1-maennich@google.com/ |
| |
| 2019-10-21 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: refactor try_reading_first_ksymtab_entry_using{pre,}_v4_19_format |
| * src/abg-dwarf-reader.cc(try_reading_first_ksymtab_entry): |
| New function to consolidate functionality for |
| try_reading_first_ksymtab_entry_using_{pre,}v4_19_format functions. |
| (try_reading_first_ksymtab_entry_using_v4_19_format, |
| try_reading_first_ksymtab_entry_using_pre_v4_19_format): |
| refactor to use try_reading_first_ksymtab_entry |
| |
| 2019-10-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 25128 - Handle decl-only classes that differ only in size |
| * include/abg-comp-filter.h (is_decl_only_class_with_size_change): |
| Declare an overload. |
| * include/abg-fwd.h (look_through_decl_only_class): Declare an |
| overload. |
| * src/abg-comp-filter.cc (is_decl_only_class_with_size_change): |
| Define an overload that takes class_or_union& type. Re-write the |
| previous overload in terms of this new one. |
| * src/abg-ir.cc (look_through_decl_only_class): Define a new |
| overload that takes a class_or_union&. Rewrite the previous |
| overload in terms of this one. |
| (equals): In the overload for class_or_union&, use |
| is_decl_only_class_with_size_change to detect cases of decl-only |
| classes that differ only by their size attribute and avoid |
| comparing them. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-diff-filter/test41-report-0.txt: Likewise. |
| |
| 2019-10-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 25128 - Leaf diff reporter shouldn't compare decl-only classes |
| * include/abg-comp-filter.h (is_decl_only_class_with_size_change): |
| Declare new function. |
| * src/abg-comp-filter.cc (is_decl_only_class_with_size_change): |
| Define new function. |
| * src/abg-comparison.cc |
| (leaf_diff_node_marker_visitor::visit_begin): Use the newly |
| defined is_decl_only_class_with_size_change above to ignore bogus |
| decl-only classes with a size change. |
| * tests/data/test-diff-suppr/test45-abi-report-1.txt: New test input. |
| * tests/data/test-diff-suppr/test45-abi-wl.xml: Likewise. |
| * tests/data/test-diff-suppr/test45-abi.xml: Likewise. |
| * tests/data/test-diff-suppr/test45-abi.suppr.txt: New reference |
| output for the test input above. |
| * tests/data/test-diff-suppr/test46-PR25128-base.xml: New test input. |
| * tests/data/test-diff-suppr/test46-PR25128-new.xml: Likewise. |
| * tests/data/test-diff-suppr/test46-PR25128-report-1.txt: New |
| reference input for the test input above. |
| * tests/data/Makefile.am: Add the new test material to source distribution. |
| * tests/test-diff-suppr.cc (in_out_spec): Add the new test input |
| above to this test harness. |
| |
| 2019-10-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 25095 - Apply symbol white lists to ELF symbols |
| * src/abg-tools-utils.cc (gen_suppr_spec_from_kernel_abi_whitelist): |
| Generate a suppression specification which considers the name of |
| the symbol associated to a function/variable, rather than just the |
| name of said function/variable. |
| |
| 2019-10-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Support symbol_name_not_regexp in [suppress_{function, variable}] |
| * doc/manuals/libabigail-concepts.rst: Document the new |
| symbol_name_not_regexp properties for the |
| suppress_{function,variable} directives. |
| * include/abg-suppression.h |
| ({function,variable}_suppression::{g,s}et_symbol_name_not_regex_str): |
| Declare new member functions. |
| * src/abg-dwarf-reader.cc |
| (read_context::is_elf_symbol_suppressed): Define new member functions. |
| (read_context::{load_symbol_maps_from_symtab_section, |
| populate_symbol_map_from_ksymtab, |
| populate_symbol_map_from_ksymtab_reloc}): Drop suppressed symbols |
| when reading symbol tables. |
| ({function,variable}_is_suppressed): Consider that in C, the |
| linkage name is _by default_ the same as the function/variable |
| name. Remove local variable. |
| * include/abg-ir.h (elf_symbol_is_{function,variable}): Add ... |
| * src/abg-ir.cc (elf_symbol_is_{function,variable}): ... new |
| functions. |
| * src/abg-reader.cc (build_elf_symbol): Take an additional boolean |
| to detect and drop suppressed symbols. |
| (build_elf_symbol_db): Adjust the call to build_elf_symbol to make |
| it detect and drop suppressed symbols. |
| (read_corpus_from_input): Be mindful that the set of symbols for a |
| given corpus can be empty because of suppression specifications. |
| * src/abg-suppression-priv.h |
| ({function,variable}_suppression::priv::symbol_name_not_regex[_str_]): |
| Add new data members. |
| (function,variable}_suppression::priv::get_symbol_name_not_regex): |
| Add new member functions. |
| ({function,variable}_is_suppressed): Guard against empty name. |
| (is_elf_symbol_suppressed): Define new function template. |
| * src/abg-suppression.cc |
| ({function,variable}_suppression::{g,s}et_symbol_name_not_regex_str): |
| Define new member functions. |
| ({function,variable}_suppression::suppresses_function) |
| (suppression_matches_{function,variable}_sym_name) |
| (read_{function,variable}_suppression): Support the new |
| "symbol_name_not_regex" property. |
| * tests/data/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-1.txt: |
| New test reference report. |
| * tests/data/test-diff-suppr/test44-suppr-sym-name-not-regexp-report-2.txt: |
| Likewise. |
| * tests/data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v{0,1}.c: |
| Sources of the new test input. |
| * tests/data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v{0,1}.o: |
| New test input binaries. |
| * tests/data/test-diff-suppr/test44-suppr-sym-name-not-regexp-v{0,1}.o.abi: |
| New test input abixml files. |
| * tests/data/test-diff-suppr/test44-suppr-sym-name-not-regexp.suppr.txt: |
| Next test suppression specification. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-suppr.cc (in_out_specs): Add the input tests |
| above to the test harness. |
| |
| 2019-10-24 Dodji Seketeli <dodji@redhat.com> |
| |
| [abg-comparison.cc] Fix comments typo |
| * src/abg-comparison.cc |
| (leaf_diff_node_marker_visitor::visit_begin): Fix typo in comment. |
| |
| 2019-10-04 Matthias Maennich <maennich@google.com> |
| |
| kmidiff: fix help message |
| * tools/kmidiff.c (display_usage): add missing line breaks to |
| help text |
| |
| 2019-10-04 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: read_corpus_from_elf: unconditionally load elf properties |
| * src/abg-dwarf-reader.cc (read_corpus_from_elf): |
| unconditionally load elf properties into context |
| |
| 2019-10-04 Dodji Seketeli <dodji@redhat.com> |
| |
| PR25058 - Better support fn DIEs referring to symbols using DW_AT_ranges |
| * src/abg-dwarf-reader.cc |
| (read_context::get_first_exported_fn_address_from_DW_AT_ranges): |
| Rename read_context::get_first_address_from_DW_AT_ranges into |
| this. Walk through the addresses referred to by the DW_AT_ranges |
| attribute until we find one that is for an exported function |
| symbol, rather than just picking the first address of the set. |
| (read_context::get_function_address): Adjust. |
| |
| 2019-10-03 Dodji Seketeli <dodji@redhat.com> |
| |
| PR25058 - Support decl DIEs referring to symbols using DW_AT_ranges |
| * src/abg-dwarf-reader.cc |
| (read_context::get_first_address_from_DW_AT_ranges): Define new |
| member function. |
| (read_context::get_function_address): Use the new |
| read_context::get_first_address_from_DW_AT_ranges here. |
| * tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: |
| New reference test output. |
| * tests/data/test-diff-dwarf/PR25058-liblttng-ctl.so: New test |
| input binary. |
| * tests/data/test-diff-dwarf/PR25058-liblttng-ctl2.10.so: New test |
| input binary. |
| * tests/data/Makefile.am: Add the new test materials above to |
| source distribution. |
| * tests/test-diff-dwarf.cc (in_out_specs): Add the new input test |
| input binary files to this test harness. |
| |
| 2019-10-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix thinkos in DW_FORM_strx detection in configure.ac |
| * configure.ac: Fix thinko when setting the HAVE_DW_FORM_strx |
| macro. |
| |
| 2019-10-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a typo in a comment of abg-dwar-reader.cc |
| * src/abg-dwarf-reader.cc (compare_dies_string_attribute_value): |
| Fix a typo in the comment of this function. |
| |
| 2019-09-30 Dodji Seketeli <dodji@redhat.com> |
| |
| PR25042 - Support string form DW_FORM_strx{1,4} from DWARF 5 |
| * configure.ac: Detect the presence of the DW_FORM_strx{1,4} |
| enumerators. |
| * src/abg-dwarf-reader.cc (form_is_DW_FORM_strx): Define new |
| function. |
| (compare_dies_string_attribute_value): Use the new |
| form_is_DW_FORM_strx here. |
| * tests/data/Makefile.am: Add the new test input files below to |
| source distribution. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0: |
| New binary test input file. |
| * tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi: |
| Reference output of the new binary test input file. |
| * tests/test-read-dwarf.cc (in_out_specs): Add the input test |
| files above to the test harness, for platforms that support the |
| DW_FORM_strx form. |
| |
| 2019-09-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Support the "name_not_regexp" property in the [suppress_type] section |
| * doc/manuals/libabigail-concepts.rst: Update this to document the |
| new name_not_regexp property of the suppress_type directive. |
| * include/abg-suppression.h |
| (type_suppression::{g,s}et_type_name_not_regex_str): Declare new accessors. |
| * src/abg-suppression-priv.h |
| (type_suppression::priv::{type_name_not_regex_str_, |
| type_name_not_regex_}): Define new data members. |
| (type_suppression::priv::{get_type_name_not_regex, |
| set_type_name_not_regex, get_type_name_not_regex_str, |
| set_type_name_not_regex_str}): Define new member functions. |
| * src/abg-suppression.cc |
| (type_suppression::get_type_name_regex_str): Fix comments. |
| (type_suppression::{set_type_name_not_regex_str, |
| get_type_name_not_regex_str}): Define new data members. |
| (suppression_matches_type_name): Adapt to support the new |
| type_name_not_regex property. |
| (read_type_suppression): Support parsing the type_name_not_regexp |
| property. |
| * tests/data/test-diff-suppr/test42-negative-suppr-type-report-0.txt: |
| New test reference output. |
| * tests/data/test-diff-suppr/test42-negative-suppr-type-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test42-negative-suppr-type-suppr-1.txt: |
| New test input. |
| * tests/data/test-diff-suppr/test42-negative-suppr-type-suppr-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test42-negative-suppr-type-v0.{cc, o}: Likewise. |
| * tests/data/test-diff-suppr/test42-negative-suppr-type-v1.{cc, |
| o}: Likewise. |
| * tests/data/Makefile.am: Add the test files above to source |
| distribution. |
| * tests/test-diff-suppr.cc (int_out_specs): Add the new tests to |
| the harness. |
| |
| 2019-09-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Better propagation of suppressed-ness to function types |
| * src/abg-comparison.cc |
| (suppression_categorization_visitor::visit_end): Propagate |
| suppression-ness from suppressed function type diff node to its |
| parent function node if the latter doesn't have any local non-type |
| change. |
| * tests/data/test-diff-suppr/test43-suppr-direct-fn-subtype-report-1.txt: |
| New test reference output. |
| * tests/data/test-diff-suppr/test43-suppr-direct-fn-subtype-suppr-1.txt: |
| New test input suppression file. |
| * tests/data/test-diff-suppr/test43-suppr-direct-fn-subtype-v{0,1}.cc: |
| Source code of input binary file. |
| * tests/data/test-diff-suppr/test43-suppr-direct-fn-subtype-v{0,1}.o: |
| Input binary files. |
| * tests/data/Makefile.am: Add the new test input files above to |
| source distribution. |
| * tests/test-diff-suppr.cc (in_out_specs): Add the test input to |
| test harness. |
| |
| 2019-09-04 Dodji Seketeli <dodji@redhat.com> |
| |
| [has_type_change] Better detect type size changes |
| * src/abg-comp-filter.cc (has_type_change): Support function |
| parameters. |
| |
| 2019-09-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix reading of relocation sections when endianness mismatches |
| * src/abg-dwarf-reader.cc |
| (read_context::{get_ksymtab_format_module, |
| populate_symbol_map_from_ksymtab_reloc}): Use elf_getdata rather |
| than elf_rawdata. |
| |
| 2019-09-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Guard testing v4.19+ AARCH64 kernel module loading for EL6 support |
| * tests/test-read-dwarf.cc: Do not run the test on |
| PR25007-sdhci.ko if the macros R_AARCH64_PREL32 and |
| R_AARCH64_ABS64 are not defined. |
| |
| 2019-09-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Remove the elf_symbol::get_value property |
| * include/abg-ir.h (elf_symbol::{elf_symbol, create}): Remove the |
| 'val' parameter. |
| * src/abg-dwarf-reader.cc (elf_symbol::get_value): Remove this |
| member function declaration. |
| (lookup_symbol_from_sysv_hash_tab) |
| (lookup_symbol_from_gnu_hash_tab, lookup_symbol_from_symtab) |
| (create_default_var_sym, create_default_fn_sym) |
| (read_context::lookup_elf_symbol_from_index): Adjust calls to |
| creating elf_symbol instances. |
| * src/abg-ir.cc (elf_symbol::priv::value_): Remove this data |
| member. |
| (elf_symbol::{priv::priv, elf_symbol, create): Adjust. |
| * src/abg-reader.cc (build_elf_symbol): Likewise. |
| |
| 2019-09-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 25007 - Don't use section-relative symbol values on ET_REL binaries |
| * src/abg-dwarf-reader.cc |
| (read_context::{lookup_native_elf_symbol_from_index, |
| maybe_adjust_et_rel_sym_addr_to_abs_addr}): Define new member |
| functions. |
| (read_context::lookup_elf_symbol_from_index): Add a new overload. |
| Write the old overloads in terms of the new one. |
| (read_context::{load_symbol_maps_from_symtab_section, |
| populate_symbol_map_from_ksymtab_reloc}): Use the new |
| maybe_adjust_et_rel_sym_addr_to_abs_addr function to translate the |
| symbol value/address into a binary-relative address before adding |
| it to the addr->sym maps. |
| (read_context::maybe_adjust_{fn, var}_sym_address): Do not adjust |
| DWARF-referred-to addresses of ET_REL symbols anymore. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko: New binary test input. |
| * tests/data/test-read-dwarf/PR25007-sdhci.ko.abi: ABI |
| representation of the above. |
| * tests/test-read-dwarf.cc: Add the new test input to the harness. |
| * tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test20-inline-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test20-inline-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test41-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test9-report.txt: Likewise. |
| |
| 2019-09-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Detect the presence of R_AARCH64_{ABS64, PREL32} macros |
| * configure.ac: Define macros HAVE_R_AARCH64_{ABS64, PREL32}_MACRO |
| if the macros R_AARCH64_{ABS64, PREL32} are present. |
| * src/abg-dwarf-reader.cc |
| (read_context::get_ksymtab_format_module): Conditionalize the use |
| of R_AARCH64_{ABS64, PREL32} using HAVE_R_AARCH64_{ABS64, PREL32}_MACRO. |
| |
| 2019-09-03 Jessica Yu <jeyu@kernel.org> |
| |
| Support pre and post v4.19 ksymtabs for Linux kernel modules |
| * include/abg-ir.h (elf_symbol::{elf_symbol, create}): Take new |
| symbol value and shndx parameters. |
| (elf_symbol::{get_value, get_shndx}): Declare new accessors. |
| * src/abg-ir.cc (elf_symbol::priv::{value_, shndx_}): New data |
| members. |
| (elf_symbol::priv::priv): Adjust. |
| (elf_symbol::elf_symbol): Take new value and is_linux_string_cst |
| parameters. |
| (elf_symbol::create): Likewise. |
| (elf_symbol::{get_value, get_is_linux_string_cst}): Define new |
| accessors. |
| * src/abg-reader.cc (build_elf_symbol): Adjust. |
| * src/abg-dwarf-reader.cc (binary_is_linux_kernel) |
| (binary_is_linux_kernel): New static functions. |
| (lookup_symbol_from_sysv_hash_tab) |
| (lookup_symbol_from_gnu_hash_tab) |
| (lookup_symbol_from_symtab): Adjust. |
| (read_context::{ksymtab_reloc_section_, |
| ksymtab_gpl_reloc_section_, ksymtab_strings_section_}): New data |
| members. |
| (read_context::read_context): Initialize ksymtab_reloc_section_, |
| ksymtab_gpl_reloc_section_, ksymtab_strings_section_. |
| (read_context::{find_ksymtab_reloc_section, |
| find_ksymtab_gpl_reloc_section, find_ksymtab_strings_section, |
| find_any_ksymtab_reloc_section, get_ksymtab_format_module, |
| populate_symbol_map_from_ksymtab, |
| populate_symbol_map_from_ksymtab_reloc, is_linux_kernel_module}): |
| New member functions. |
| (read_context::load_kernel_symbol_table): Adjust to call either |
| populate_symbol_map_from_ksymtab{_reloc,} depending on ksymtab |
| format. |
| (read_context::get_ksymtab_format): Adjust to call |
| get_ksymtab_format_module for linux kernel modules. |
| (read_context::lookup_elf_symbol_from_index): Adjust. |
| (create_default_var_sym, create_default_fn_sym): Adjust. |
| |
| 2019-08-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Serialize canonical types to avoid testing if types have been emitted |
| * include/abg-fwd.h (is_decl_slow) |
| (peel_pointer_or_reference_type): Declare new functions. |
| * include/abg-ir.h (struct canonical_type_hash): Define new type. |
| (type_base_ptr_set_type, type_base_ptrs_type) |
| (type_base_sptrs_type, canonical_type_sptr_set_type): Define new |
| typedefs. |
| (environment::get_canonical_types_map): Declare new member |
| function. |
| (scope_decl::{get_canonical_types, get_sorted_canonical_types}): |
| Declare new member functions. |
| * src/abg-ir.cc (is_ptr_ref_or_qual_type) |
| (peel_pointer_or_reference_type, is_decl_slow): Define new |
| functions. |
| (environment::{get_canonical_types_map}): Define new member |
| functions. |
| (canonical_type_hash::operator()): Likewise. |
| (scope_decl::{get_canonical_types, get_sorted_canonical_types}): |
| Likewise. |
| (struct type_topo_comp): Define new comparison functor type. |
| (environment::{sorted_canonical_types_}): Define new data member. |
| (scope_decl::priv::{canonical_types_, sorted_canonical_types_}): |
| Likewise. |
| (scope_decl::is_empty): Take the presence of canonical types into |
| account when determining if a scope is empty or not. |
| (is_decl): Make this work for cases where the artifact at hand is |
| a type which has a declaration, as opposed to being a pure |
| declaration like a variable or a function. |
| (canonicalize): Add the canonical type the list of canonical types |
| of its scope. |
| * src/abg-dwarf-reader.cc (read_context::die_is_in_cplus_plus): |
| Define new member function. |
| * src/abg-writer.cc (write_type, write_canonical_types_of_scope): |
| Define new static functions. |
| (fn_type_ptr_set_type): Define new typedef. |
| (write_context::{m_referenced_fn_types_set, |
| m_referenced_non_canonical_types_set}): Add new data members. |
| (write_context::m_referenced_types_set): Renamed |
| m_referenced_types_map into this. |
| (write_context::get_referenced_types): Adjust. |
| (write_context::get_referenced_{function_types, |
| non_canonical_types}): |
| (write_context::record_type_as_referenced): Adjust to add the |
| referenced type in the proper set which would be one of the three |
| following: write_context::{get_referenced_types, |
| get_referenced_function_types, |
| get_referenced_non_canonical_types}. |
| (write_context::{type_is_referenced, clear_referenced}): Adjust. |
| (write_translation_unit): Use the new |
| write_canonical_types_of_scope. Also emit declaration-only |
| classes that have member types. Do not test if a given type of a |
| given scope has been emitted, in general, as this was super slow |
| given the number of types. Emit referenced function types (as |
| these don't belong to any scope). Rather than using the expensive |
| "is_function_type" on *all* the referenced types, just walk the |
| set write_context::get_referenced_function_types. Likewise, |
| rather than using type_base::get_naked_canonical_type on |
| *all* the referenced types, just walk the set |
| write_context::get_referenced_non_canonical_types |
| (write_class): Use write_canonical_types_of_scope here. |
| * tools/abilint.cc (main): Support linting corpus group abixml |
| files. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test-anonymous-members-0.o.abi: Likewise. |
| * tests/data/test-annotate/test0.abi: Likewise. |
| * tests/data/test-annotate/test1.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-annotate/test2.so.abi: Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-annotate/test4.so.abi: Likewise. |
| * tests/data/test-annotate/test6.so.abi: Likewise. |
| * tests/data/test-annotate/test7.so.abi: Likewise. |
| * tests/data/test-annotate/test8-qualified-this-pointer.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test0.abi: Likewise. |
| * tests/data/test-read-dwarf/test1.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test2.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test4.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test6.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test7.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| * tests/data/test-read-write/test10.xml: Likewise. |
| * tests/data/test-read-write/test14.xml: Likewise. |
| * tests/data/test-read-write/test15.xml: Likewise. |
| * tests/data/test-read-write/test17.xml: Likewise. |
| * tests/data/test-read-write/test18.xml: Likewise. |
| * tests/data/test-read-write/test19.xml: Likewise. |
| * tests/data/test-read-write/test2.xml: Likewise. |
| * tests/data/test-read-write/test20.xml: Likewise. |
| * tests/data/test-read-write/test21.xml: Likewise. |
| * tests/data/test-read-write/test22.xml: Likewise. |
| * tests/data/test-read-write/test23.xml: Likewise. |
| * tests/data/test-read-write/test24.xml: Likewise. |
| * tests/data/test-read-write/test25.xml: Likewise. |
| * tests/data/test-read-write/test26.xml: Likewise. |
| * tests/data/test-read-write/test27.xml: Likewise. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: Likewise. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: Likewise. |
| * tests/data/test-read-write/test3.xml: Likewise. |
| * tests/data/test-read-write/test6.xml: Likewise. |
| |
| 2019-07-24 Matthias Maennich <maennich@google.com> |
| |
| abg-dwarf-reader: detect kernel modules without exports as such |
| * src/abg-dwarf-reader.cc(is_linux_kernel_binary): consider |
| binaries only having a .modinfo section to be kernel binaries |
| Co-developed-by: Alessio Balsini <balsini@android.com> |
| |
| 2019-07-22 Matthias Maennich <maennich@google.com> |
| |
| Ensure a consistent C++ standard use |
| * configure.ac: add -std=c++11 flag to CXXFLAGS when compiling |
| for C++11 |
| * src/Makefile.am: drop now obsolete setting of the -std flag |
| * tests/Makefile.am: likewise |
| Reported-by: Chun-Hung Wu <Chun-hung.Wu@mediatek.com> |
| |
| 2019-07-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24787 - Filter out enum changes into compatible integer types |
| * include/abg-comparison.h (peel_typedef_or_qualified_type_diff): |
| Declare new function. |
| (peel_pointer_or_qualified_type_diff): Rename |
| peel_pointer_or_qualified_type into this. |
| * include/abg-fwd.h (is_enum_type): Declare a new overload for |
| type_or_decl_base*. |
| * src/abg-comp-filter.cc (has_harmless_enum_to_int_change): Define |
| new static function. |
| * src/abg-comparison.cc (categorize_harmless_diff_node): Use the |
| new has_harmless_enum_to_int_change here. |
| (peel_pointer_or_qualified_type_diff): Renamed |
| peel_pointer_or_qualified_type into this. |
| (is_diff_of_basic_type): Adjust. |
| (peel_typedef_or_qualified_type_diff): Define new function. |
| * test-diff-filter/PR24787-lib{one, two}.so: New test input |
| binaries. |
| * test-diff-filter/PR24787-{one, two}.c: Source files of the test |
| input binaries above. |
| * test-diff-filter/PR24787-report-0.txt: Test output reference. |
| * tests/data/Makefile.am: Add the new testing material to source |
| distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the new test to |
| the test harness. |
| |
| 2019-07-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Add timing to the verbose logs of abidw |
| * include/abg-tools-utils.h (class timer): Declare new type. |
| (operator<<(ostream&, const timer&)): Declare new streaming |
| operator for the new timer type. |
| * src/abg-tools-utils.cc (struct timer::priv): Define new type. |
| (timer::{timer, start, stop, value_in_seconds, value, |
| value_as_string, ~timer}): Define member functions. |
| (operator<<(ostream& o, const timer& t)): Define streaming |
| operator. |
| (build_corpus_group_from_kernel_dist_under): Add timing logs to |
| the linux kernel reading process. |
| * src/abg-dwarf-reader.cc |
| (read_context::canonicalize_types_scheduled): Add timing logs to |
| type canonicalization. |
| (read_debug_info_into_corpus): Add timing logs for the whole debug |
| info loading and internal representation building process. |
| * tools/abidw.cc (load_corpus_and_write_abixml): Add timing logs |
| for the binary loading and serizalization process. |
| (load_kernel_corpus_group_and_write_abixml): Add timing logs the |
| Linux Kernel binary loading and writing process. |
| |
| 2019-07-18 Dodji Seketeli <dodji@redhat.com> |
| |
| [ir] Fix indentation and add comments |
| * src/abg-ir.cc (types_defined_same_linux_kernel_corpus_public): |
| Fix indentation and add comments. |
| |
| 2019-07-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Implement fast comparison of Linux Kernel types when applicable |
| * include/abg-corpus.h (corpus::origin): Add a new |
| LINUX_KERNEL_BINARY_ORIGIN enumerator. |
| (corpus::{s,g}et_group): Declare new member |
| functions. |
| (class corpus): Make the corpus_group class friend of this one. |
| (corpus_group::get_main_corpus): Declare new member function. |
| * src/abg-corpus-priv.h (corpus::priv::group): Define new data |
| member. |
| (corpus::priv::priv): Initialize the new corpus::priv::group data |
| member. |
| * src/abg-corpus.cc (corpus::{g,s}et_group): Define new member |
| functions. |
| (corpus_group::get_main_corpus): Likewise. |
| (corpus_group::add_corpus): Use the new corpus::set_group() here |
| to to make the corpus be aware of the group it belongs to. |
| * src/abg-dwarf-reader.cc (read_debug_info_into_corpus): Set the |
| current corpus origin to the corpus::LINUX_KERNEL_BINARY_ORIGIN if |
| we are looking at a Linux Kernel binary. |
| (read_context::main_corpus_from_current_group): Use the |
| corpus_group::get_main_corpus method. |
| (should_reuse_type_from_corpus_group): Return the corpus group, |
| rather than the main corpus. |
| (read_debug_info_into_corpus): Add the current corpus to the |
| current corpus group before the debug info reading is done. That |
| way, the corpus group will be accessible from the current corpus |
| during the construction of the internal representation. |
| (read_and_add_corpus_to_group_from_elf): Add the corpus to the |
| group only if it wasn't added to it before. |
| * include/abg-ir.h (operator{==,!=}): Declare new deep equality |
| and inequality operators for class_or_union_sptr and |
| union_decl_sptr. |
| * src/abg-ir.cc (types_defined_same_linux_kernel_corpus_public): |
| Define a new static function. |
| (type_base::get_canonical_type_for): Use the new |
| types_defined_same_linux_kernel_corpus_public here to speed up |
| type comparison. |
| (equals): In the overload of class_or_union, use the new |
| types_defined_same_linux_kernel_corpus_public as well, to speed up |
| type comparison. |
| (operator{==,!=}): Define new deep equality and inequality |
| operators for class_or_union_sptr and union_decl_sptr. |
| (maybe_update_types_lookup_map): In the overload function for |
| type_decl_sptr, class_decl_sptr, union_decl_sptr, |
| enum_type_decl_sptr, typedef_decl_sptr, qualified_type_def_sptr, |
| reference_type_def_sptr, array_type_def_sptr, |
| array_type_def::subrange_sptr, and function_type_sptr, update the |
| type lookup maps of the containing corpus group as well, not just |
| the ones of the current corpus. |
| * src/abg-reader.cc (build_enum_type_decl): Forgot to set the |
| "is-anonymous" flag. Oops, fix this. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2019-07-09 Matthias Maennich <maennich@google.com> |
| |
| abg-tools-utils: add missing header include guards |
| * include/abg-tools-utils.h: add header include guards |
| |
| 2019-07-05 Matthias Maennich <maennich@google.com> |
| |
| Add compatibility layer for C++11 mode |
| * include/abg-cxx-compat.h: new file introducing the abg_compat |
| namespace to provide C++11 functionality from either std::tr1 |
| or std:: |
| * include/Makefile.am: Add the new abg-cxx-compat.h to source |
| distribution. |
| * include/abg-comparison.h: replace std::tr1 usage by abg_compat |
| and adjust includes accordingly: likewise |
| * include/abg-diff-utils.h: likewise |
| * include/abg-fwd.h: likewise |
| * include/abg-ini.h: likewise |
| * include/abg-interned-str.h: likewise |
| * include/abg-ir.h: likewise |
| * include/abg-libxml-utils.h: likewise |
| * include/abg-libzip-utils.h: likewise |
| * include/abg-reporter.h: likewise |
| * include/abg-sptr-utils.h: likewise |
| * include/abg-suppression.h: likewise |
| * include/abg-tools-utils.h: likewise |
| * include/abg-workers.h: likewise |
| * src/abg-comp-filter.cc: likewise |
| * src/abg-comparison-priv.h: likewise |
| * src/abg-corpus.cc: likewise |
| * src/abg-dwarf-reader.cc: likewise |
| * src/abg-hash.cc: likewise |
| * src/abg-ir.cc: likewise |
| * src/abg-reader.cc: likewise |
| * src/abg-suppression.cc: likewise |
| * src/abg-tools-utils.cc: likewise |
| * src/abg-writer.cc: likewise |
| * tests/test-diff-filter.cc: likewise |
| * tests/test-diff-pkg.cc: likewise |
| * tests/test-read-dwarf.cc: likewise |
| * tests/test-read-write.cc: likewise |
| * tests/test-types-stability.cc: likewise |
| * tests/test-write-read-archive.cc: likewise |
| * tools/abicompat.cc: likewise |
| * tools/abidiff.cc: likewise |
| * tools/abidw.cc: likewise |
| * tools/abilint.cc: likewise |
| * tools/abipkgdiff.cc: likewise |
| |
| 2019-07-05 Matthias Maennich <maennich@google.com> |
| |
| Update tests/.gitignore to ignore runtesttoolsutils |
| * tests/.gitignore: ignore runtesttoolsutils |
| |
| 2019-07-05 Matthias Maennich <maennich@google.com> |
| |
| Drop requirement to compile with GNU extensions |
| * include/abg-tools-utils.h (get_stream): Change return type to |
| std::fstream |
| * src/abg-corpus.cc: remove unused #include of ext/stdio_filebuf.h |
| * src/abg-tools-utils (temp_file::priv): remove filebuf_ member, |
| and replace iostream_ by fstream_ with changing the shared_ptr |
| type accordingly |
| (temp_file::priv::priv): initialize fstream_ based on |
| temporary file name |
| (temp_file::priv::~priv): adjust destruction accordingly |
| (temp_file::is_good): test the fstream rather than the fd |
| (temp_file::get_stream): adjust return type to std::fstream |
| and adjust implementation based on the changes in temp_file::priv |
| * src/Makefile.am: remove gnu extension from c++ standard flag |
| * tests/Makefile.am: likewise |
| |
| 2019-07-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc indent cleanup |
| * src/abg-dwarf-reader.cc (addr_elf_symbol_sptr_map_sptr): Fix a |
| typo in the comment of this typedef. |
| * src/abg-ir.cc (hash_type_or_decl): Fix typo in a comment. |
| * src/abg-writer.cc (write_translation_unit): Remove useless |
| vertical space. |
| |
| 2019-07-08 Dodji Seketeli <dodji@redhat.com> |
| |
| [xml-writer] Remove a useless kludge |
| * src/abg-writer.cc (write_context::type_is_emitted): Remove |
| useless kludge from here. |
| |
| 2019-07-08 Dodji Seketeli <dodji@redhat.com> |
| |
| [xml-writter] Speedup function_type::get_cached_name |
| * src/abg-ir.cc (function_type::get_cached_name): Really cache the |
| computed name of function_type instances. |
| |
| 2019-07-08 Dodji Seketeli <dodji@redhat.com> |
| |
| [xml-writter] Avoid using RTTI when dynamically hashing types |
| * include/abg-fwd.h (hash_type): Declare new function. |
| * src/abg-ir.cc (hash_type): Define new function. |
| * src/abg-writer.cc (type_hasher::operator()): Use the new |
| hash_type rather than the old hash_type_or_decl. |
| |
| 2019-07-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Implement a poor-man's RTTI for performance |
| * include/abg-fwd.h (is_type_decl): Replace the overloads |
| that takes a type_base* and/or a decl_base* by one that takes a |
| type_or_decl_base*. |
| * include/abg-ir.h (type_or_decl_base::type_or_decl_kind): Define |
| new enum. |
| (type_or_decl_base::{kind, runtime_type_instance, |
| type_or_decl_base_pointer}): Declare new accessors. |
| (operator{|,|=,&,&=): Declare new operators for the new |
| type_or_decl_base::type_or_decl_kind enum. |
| (global_scope::global_scope): Move the definition of this |
| constructor to ... |
| * src/abg-ir.cc (global_scope::global_scope): ... here. |
| (type_or_decl_base::priv::{kind_, rtti_, type_or_decl_ptr_}): |
| Add new data members. |
| (type_or_decl_base::priv::priv): Take a |
| type_or_decl_base::type_or_decl_kind enum. |
| (type_or_decl_base::priv::kind): Define new accessors. |
| (operator{|,|=,&,&=): Define new operators for the new |
| type_or_decl_base::type_or_decl_kind enum. |
| (type_or_decl_base::type_or_decl_base): Take a |
| type_or_decl_base::type_or_decl_kind enum. |
| (type_or_decl_base::{kind, runtime_type_instance, |
| type_or_decl_base_pointer}): Define new accessors. |
| (decl_base::decl_base, scope_decl::scope_decl) |
| (type_base::type_base, scope_type_decl::scope_type_decl) |
| (class_or_union::class_or_union) : Adjust to set the runtime type |
| identifier of the instances of these types. |
| (global_scope::global_scope, type_decl::type_decl) |
| (qualified_type_def::qualified_type_def) |
| (pointer_type_def::pointer_type_def) |
| (reference_type_def::reference_type_def |
| array_type_def::subrange_type::subrange_type) |
| (array_type_def::array_type_def, enum_type_decl::enum_type_decl) |
| (typedef_decl::typedef_decl, var_decl::var_decl) |
| (function_type::function_type, method_type::method_type) |
| (function_decl::function_decl) |
| (function_decl::parameter::parameter, method_decl::method_decl) |
| (class_decl::class_decl, class_decl::base_spec::base_spec) |
| (union_decl::union_decl, template_decl::template_decl) |
| (type_tparameter::type_tparameter) |
| (non_type_tparameter::non_type_tparameter) |
| (template_tparameter::template_tparameter) |
| (type_composition::type_composition) |
| (function_tdecl::function_tdecl, function_tdecl::function_tdecl) |
| (class_tdecl::class_tdecl): |
| Likewise and call runtime_type_instance() here to set the runtime |
| type instance pointers of the current instance. |
| (is_decl, is_type, is_class_type, is_pointer_type): Adjust to use |
| the new poor-man's rtti machinery. |
| (is_type_decl): Replace the overloads that takes a type_base* |
| and/or a decl_base* by one that takes a type_or_decl_base*. |
| (pointer_type_def::operator==, class_decl::operator==): Use the |
| poor-man's rtti machinery to replace dynamic_cast. |
| hash_type_or_decl: Replace dynamic_cast<const type_base> by |
| is_type() and dynamic_cast<const decl_base*> by is_decl(). |
| |
| 2019-07-05 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf-reader] Make sure to canonicalize anonymous types |
| * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Add two new |
| overloads. One that takes type_base_sptr, one that takes a |
| Dwarf_Die* and type_base_sptr. These force canonicalization for |
| anonymous types. |
| (build_function_type): Schedule function types for |
| canonicalization. |
| (build_ir_node_from_die): For struct/classes and unions, use the |
| new overload of maybe_canonicalize_type to schedule |
| canonicalization. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2019-07-04 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf-reader] Constify the first parameter of maybe_canonicalize_type |
| * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Make the |
| first parameter const. |
| (read_context::{get_canonical_die, lookup_artifact_from_die, |
| lookup_type_from_die, schedule_type_for_late_canonicalization}): |
| Adjust. |
| |
| 2019-06-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abidiff --harmless show harmless changes in unions |
| * include/abg-fwd.h (get_class_or_union_flat_representation): Add |
| a "qualified_name" boolean parameter. |
| * include/abg-ir.h ({type_or_decl_base, decl_base, type_decl, |
| namespace_decl, array_type_def::subrange_type, array_type_def, |
| enum_type_decl, typedef_decl, var_decl, function_decl, |
| function_decl::parameter, function_type, method_type, class_decl, |
| union_decl}::get_pretty_representation): Likewise. |
| * src/abg-ir.cc ({type_or_decl_base, decl_base, type_decl, |
| namespace_decl, array_type_def::subrange_type, array_type_def, enum_type_decl, |
| typedef_decl, var_decl, function_decl, function_decl::parameter, |
| function_type, method_type, class_decl, union_decl, |
| }::get_pretty_representation): Adjust the code to emit qualified |
| or non-qualified names depending on the new "qualified_name" |
| boolean parameter. |
| (get_class_or_union_flat_representation): Likewise. |
| * src/abg-default-reporter.cc (default_reporter::report): Use |
| get_class_or_union_flat_representation with the new |
| "qualified_name" boolean set to false. |
| * tests/data/test-diff-dwarf/test38-union-report-0.txt: Adjust. |
| * tests/test-diff-filter.cc (in_out_specs): Run the test harness |
| on test-PR24731-v{0,1}.o make abidiff use the --harmless option. |
| |
| 2019-06-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24731 - Wrongly reporting union members order change |
| * include/abg-comp-filter.h (union_diff_has_harmless_changes): |
| Declare new function and ... |
| * src/abg-comp-filter.cc (union_diff_has_harmless_changes): |
| ... define it here. |
| (categorize_harmless_diff_node): Use the new |
| union_diff_has_harmless_changes here. |
| * include/abg-comparison.h (HARMLESS_UNION_CHANGE_CATEGORY): Add a |
| new enumerator to diff_category enum. Adjust the value of the |
| other enumerators. |
| * src/abg-comparison.cc (get_default_harmless_categories_bitmap): |
| Add the new HARMLESS_UNION_CHANGE_CATEGORY in here. |
| (operator<<(ostream& o, diff_category c)): Support the new |
| HARMLESS_UNION_CHANGE_CATEGORY. |
| * tests/data/test-diff-filter/test-PR24731-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test-PR24731-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test-PR24731-v0.c: Likewise. |
| * tests/data/test-diff-filter/test-PR24731-v0.o: Likewise. |
| * tests/data/test-diff-filter/test-PR24731-v1.c: Likewise. |
| * tests/data/test-diff-filter/test-PR24731-v1.o: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-filter.cc (in_out_spec): Add the new test input |
| to this test harness. |
| |
| 2019-06-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Fully account for anonymous-ness of scopes when comparing decl names |
| * include/abg-ir.h (decl_base::{get_has_anonymous_parent, |
| set_has_anonymous_parent, |
| get_is_anonymous_or_has_anonymous_parent}): Declare new member |
| functions. |
| * src/abg-ir.cc (decl_base::priv::has_anonymous_parent_): Define |
| new data member. |
| (decl_base::priv): Initialize the new data member. |
| (decl_base::{get_has_anonymous_parent, set_has_anonymous_parent, |
| get_is_anonymous_or_has_anonymous_parent}): Define new member |
| functions. |
| (equals): In the overload for decl_base, use the new |
| decl_names_equal for decls that have anonymous scopes. |
| (scope_decl::add_member_decl): Propagate the |
| decl_base::has_anonymous_parent_ property. |
| * include/abg-tools-utils.h |
| (get_anonymous_struct_internal_name_prefix) |
| (get_anonymous_union_internal_name_prefix) |
| (get_anonymous_enum_internal_name_prefix, decl_names_equal): |
| Declare new functions. |
| * src/abg-comp-filter.cc (has_harmless_name_change): Handle the |
| case where the name change is actually from an anonymous name to |
| another one, using the new decl_names_equal function. |
| * src/abg-dwarf-reader.cc |
| (get_internal_anonymous_die_prefix_name): Renamed |
| get_internal_anonynous_die_base_name into this. Use the new |
| get_anonymous_{struct, union, enum}_internal_name_prefix functions |
| here. |
| (get_internal_anonymous_die_name, die_qualified_type_name) |
| (build_enum_type, add_or_update_class_type) |
| (add_or_update_union_type): Adjust. |
| * src/abg-tools-utils.cc (get_anonymous_struct_internal_name_prefix) |
| (get_anonymous_union_internal_name_prefix) |
| (get_anonymous_enum_internal_name_prefix, decl_names_equal): |
| Define new functions. |
| * tests/test-tools-utils.cc: New test file. |
| * tests/Makefile.am: Add new runtesttoolsutils test, built from |
| test-tools-utils.cc. |
| * tests/data/test-diff-dwarf/test46-rust-report-0.txt: Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| |
| 2019-06-12 Matthias Maennich <maennich@google.com> |
| |
| abg-reporter.h: add missing includes / using declarations |
| * include/abg-reporter.h: fix includes and using declarations |
| |
| 2019-06-17 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf-reader] Fix indentation in compare_dies_string_attribute_value |
| * src/abg-dwarf-reader.cc (compare_dies_string_attribute_value): |
| Fix indentation. |
| |
| 2019-06-17 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf-reader] Optimize speed of compare_as_decl_dies |
| * src/abg-dwarf-reader.cc (die_is_class_type): Take a const |
| pointer to Dwarf_Die. |
| (compare_as_decl_dies): For classes/structs, call |
| compare_dies_string_attribute_value just once to compare the |
| DW_AT_name attribute values. |
| |
| 2019-06-13 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf-reader] Better use of linkage name for fn decl de-duplication |
| * src/abg-dwarf-reader.cc (read_context::{die_is_in_c, |
| die_is_in_c_or_cplusplus}): Define new member functions. |
| (fn_die_equal_by_linkage_name): Define new static function. |
| (compare_dies): In the case for for DW_TAG_subprogram, use the new |
| fn_die_equal_by_linkage_name. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| |
| 2019-06-13 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf-reader] Re-use function types inside a given TU |
| * src/abg-dwarf-reader.cc (istring_fn_type_map_type): Declare new |
| typedef. |
| (die_is_function_type): Define new static function. |
| (read_context::per_tu_repr_to_fn_type_maps_): Define new data |
| member ... |
| (read_context::per_tu_repr_to_fn_type_maps): ... and its accessor. |
| (read_context::{associate_die_repr_to_fn_type_per_tu, |
| lookup_fn_type_from_die_repr_per_tu}): Define new member |
| functions. |
| (build_function_type): Use the new |
| read_context::lookup_fn_type_from_die_repr_per_tu and |
| read_context::associate_die_repr_to_fn_type_per_tu functions, |
| instead of read_context::lookup_type_from_die. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| |
| 2019-06-03 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf-reader] const-ify Dwarf_Die* use in many places |
| * src/abg-dwarf-reader.cc (get_parent_die, get_scope_die) |
| (die_is_anonymous, die_is_type, die_is_decl, die_is_namespace) |
| (die_is_pointer_type, pointer_or_qual_die_of_anonymous_class_type) |
| (die_is_reference_type, die_is_pointer_or_reference_type) |
| (die_is_qualified_type, die_has_object_pointer) |
| (die_is_at_class_scope, die_unsigned_constant_attribute) |
| (die_signed_constant_attribute, die_attribute_is_signed) |
| (die_attribute_is_unsigned, die_attribute_has_no_signedness) |
| (die_name, die_location, die_qualified_type_name) |
| (die_qualified_decl_name, die_qualified_name) |
| (die_qualified_type_name_empty) |
| (die_return_and_parm_names_from_fn_type_die) |
| (die_function_signature, die_function_type_is_method_type) |
| (die_pretty_print_type, die_pretty_print_decl, die_pretty_print) |
| (maybe_canonicalize_type, build_subrange_type) |
| (build_subranges_from_array_type_die, compare_dies) |
| (read_context::get_container) |
| (read_context::compute_canonical_die_offset) |
| (read_context::get_or_compute_canonical_die) |
| (read_context::get_die_source) |
| (read_context::get_die_qualified_type_name) |
| (read_context::get_die_pretty_representation) |
| (read_context::get_die_language, read_context::odr_is_relevant) |
| (read_context::set_canonical_die_offset) |
| (read_context::associate_die_to_type, die_is_anonymous) |
| (die_string_attribute, die_constant_attribute) |
| (die_attribute_has_form, die_linkage_name) |
| (die_decl_file_attribute, die_die_attribute, die_size_in_bits) |
| (die_is_decl, die_is_namespace) |
| (pointer_or_qual_die_of_anonymous_class_type, die_is_array_type) |
| (die_is_pointer_reference_or_typedef_type) |
| (die_peel_pointer_and_typedef, die_function_type_is_method_type) |
| (die_virtuality, die_is_virtual) |
| (compare_dies_string_attribute_value, compare_dies_cu_decl_file) |
| (die_location_expr, die_member_offset) |
| (get_internal_anonynous_die_base_name, compare_as_decl_dies) |
| (compare_as_type_dies): Const-ify the Dwarf_Die* parameter(s) of |
| these functions. |
| |
| 2019-06-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Take anonymous scopes into account when comparing decls |
| * include/abg-interned-str.h (interned_string::clear): Add new |
| member function. |
| * src/abg-ir.cc (equals): In the overload for decl_base, consider |
| the scope of the current (anonymous) decl. If that scope is |
| anonymous then take that into account as well. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Adjust. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| .clang-format: Add more options for match existing coding style |
| * .clang-format: Add options for ConstructorInitializers |
| Set SortUsingDeclarations=false |
| Set AlignConsecutiveDeclarations=true |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| .gitignore: Add libabigail-?.* *.orig files |
| * .gitignore: add entries for distribution artifacts |
| * .gitignore: add *.orig files |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| abg-writer: drop deprecated API |
| * include/abg-fwd.h (ABG_DEPRECATED): Remove this macro. |
| * include/abg-writer.h (write_translation_unit, write_corpus) |
| (write_corpus_group): Drop the deprecated overloads of these |
| declarations. |
| * src/abg-writer.cc (write_translation_unit, write_corpus) |
| (write_corpus_group): Drop the deprecated overloads of these |
| definitions. |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| abidw: add option to only emit file names (--short-locs) |
| * include/abg-writer.h (set_short_locs): Declare new function. |
| (set_common_options): Use it. |
| set_opts |
| * src/abg-writer.cc (write_context::m_short_locs): New data |
| member. |
| (write_context::write_context): Initialize it. |
| (write_context::{g,s}et_short_locs): Define new accessors. |
| (write_location, write_translation_unit, write_corpus): Honour the |
| new write_context::get_short_locs property. |
| (set_short_locs): Define new function. |
| * tools/abidw.cc (options::short_locs): New data member. |
| (display_usage): Help string for the new --no-show-locs option. |
| (parse_command_line): Parse the new --no-show-locs option. |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| abidw: add option to omit the compilation directory |
| * include/abg-writer.h (set_write_comp_dir): Declare new function. |
| (set_common_options): Use it. |
| * src/abg-writer.cc (write_context::m_write_comp_dir): Define new |
| data member. |
| (write_context::write_context): Initialize it. |
| (write_context::{g,s}et_write_comp_dir): Define new member |
| accessors. |
| (set_write_comp_dir): Define new free-form getter. |
| (write_translation_unit): Teach to respect write_comp_dir flag of |
| write_context. |
| * tools/abidw.cc (options::write_corpus_path): Define new data |
| member. |
| (options::options): Initialize it. |
| (display_usage): Add doc string for a new command line option: --no-comp-dir-path. |
| (parse_command_line): Parse the new command line option --no-comp-dir-path. |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| Make write_architecture and write_corpus_path flags in the write_context |
| * include/abg-writer.h (set_write_architecture) |
| (set_write_corpus_path): Declare new getter functions. |
| (write_corpus): Take a new "member_of_group" argument. |
| (set_common_options): Use set_write_{architecture, corpus_path} |
| here. |
| * src/abg-writer.cc (write_context::m_write_{architecture, |
| corpus_path}}): Add new data members. |
| (write_context::write_context): Initialize the new data members. |
| (write_context::{s,g}et_write_{architecture, corpus}): Define new |
| accessors. |
| (set_write_{architecture, corpus}): Define new free-form getter |
| functions. |
| (write_corpus): Add flag to make aware if written as part of a |
| group. |
| * tools/abidw.cc (load_corpus_and_write_abixml) |
| (load_kernel_corpus_group_and_write_abixml): Drop obsolete option |
| handling as xml_writer::set_common_options now takes care of it. |
| ldiff --git a/include/abg-writer.h b/include/abg-writer.h |
| index 200b5f7..729b455 100644 |
| --- a/include/abg-writer.h |
| +++ b/include/abg-writer.h |
| @@ -53,6 +53,11 @@ set_show_locs(write_context& ctxt, bool flag); |
| void |
| set_annotate(write_context& ctxt, bool flag); |
| +void |
| +set_write_architecture(write_context& ctxt, bool flag); |
| + |
| +void |
| +set_write_corpus_path(write_context& ctxt, bool flag); |
| /// A convenience generic function to set common options (usually used |
| /// by Libabigail tools) from a generic options carrying-object, into |
| @@ -69,6 +74,8 @@ set_common_options(write_context& ctxt, const OPTS& opts) |
| { |
| set_annotate(ctxt, opts.annotate); |
| set_show_locs(ctxt, opts.show_locs); |
| + set_write_architecture(ctxt, opts.write_architecture); |
| + set_write_corpus_path(ctxt, opts.write_corpus_path); |
| } |
| void |
| @@ -105,7 +112,10 @@ write_corpus_to_archive(const corpus_sptr corp, |
| const bool annotate = false); |
| bool |
| -write_corpus(write_context& ctxt, const corpus_sptr& corpus, unsigned indent); |
| +write_corpus(write_context& ctxt, |
| + const corpus_sptr& corpus, |
| + unsigned indent, |
| + bool member_of_group = false); |
| bool ABG_DEPRECATED |
| write_corpus(const corpus_sptr& corpus, unsigned indent, write_context& ctxt); |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| abidw: Consolidate setting options |
| * include/abg-writer.h (set_common_option): Declare new function. |
| * tools/abidw.cc (load_corpus_and_write_abixml) |
| (load_kernel_corpus_group_and_write_abixml): Use the newly |
| introduced set_common_option. |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| write_context: allow mutating the ostream used |
| * include/abg-writer.h (set_ostream): Declare new function. |
| * src/abg-writer.cc (write_context::m_ostream): Make this data |
| member be a pointer rather than a reference. |
| (write_context::{write_context, get_ostream): Adjust. member. |
| (write_context::set_ostream): Define new member function. |
| (set_ostream): Define new free-form function. |
| * tools/abidw.cc (load_corpus_and_write_abixml) |
| (load_kernel_corpus_group_and_write_abixml): Use the feature of |
| mutating the ostream and reuse the write_context in most cases. |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| abg-writer: Refactor write_corpus_group API |
| * include/abg-writer.h (write_corpus_group): Introduce new |
| overload write_corpus_group(ctxt, corpus_group, indent) and |
| deprecate all others. |
| * src/abg-writer.cc (write_corpus_group): Likewise for the |
| definitions and adjust. |
| * tools/abidw.cc (load_kernel_corpus_group_and_write_abixml): |
| Migrate to new API of write_corpus_group() |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| abg-writer: Refactor write_corpus API |
| * include/abg-writer.h (write_corpus): Introduce new overload |
| write_corpus(ctxt, corpus, indent) and deprecate all others. |
| * src/abg-writer.cc (write_corpus): Likewise for the definitions |
| and adjust. |
| * tests/test-read-dwarf.cc (test_task::perform): Use the new |
| write_corpus which requires a write_context. |
| * tools/abidw.cc (load_corpus_and_write_abixml, ): Likewise. |
| * tools/abilint.cc (main): Likewise. Also simplify logic around the |
| locations as they now can be expressed with less code. |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| abg-writer: Refactor write_translation_unit API |
| * include/abg-writer.h (write_translation_unit): Declare a new |
| overload write_translation_unit(ctxt, tu, indent) and deprecate |
| all others. |
| * src/abg-writer.cc (write_translation_unit): Likewise in the |
| definitions. |
| (write_corpus, dump, write_translation_unit): Adjust. |
| * tools/abilint.cc (main): use new write_translation_unit() API |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| Add deprecation facilities |
| * include/abg-fwd.h: Introduce deprecation macro ABG_DEPRECATED |
| |
| 2019-05-21 Matthias Maennich <maennich@google.com> |
| |
| abg-writer: Simplify 'annotate' propagation |
| * src/abg-writer.cc (write_context::write_context): remove |
| 'annotate' parameter. |
| (write_translation_unit, write_corpus, write_corpus_group, dump): Adjust. |
| |
| 2019-05-15 Matthias Maennich <maennich@google.com> |
| |
| Add .clang-format approximation |
| * .clang-format: New File. |
| |
| 2019-05-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24552 - abidiff fails comparing a corpus against a corpus group |
| * include/abg-corpus.h (corpus{_group}::get_{fun, |
| var}_symbol_map): Make these member functions virtual. |
| * src/abg-corpus.cc (corpus::lookup_{function, variable}_symbol): |
| Use the virtual corpus::get_{fun, var}_symbol_map() member |
| function to get the symbols of the current corpus or corpus_group. |
| * tests/data/Makefile.am: Add the new test input material below to |
| source distribution. |
| * tests/data/test-abidiff/test-PR24552-report0.txt: New test input. |
| * tests/data/test-abidiff/test-PR24552-v0.abi: Likewise. |
| * tests/data/test-abidiff/test-PR24552-v1.abi: Likewise. |
| * tests/test-abidiff.cc (main): Support comparing corpus groups. |
| (specs): Add the new test inputs to the harness. |
| |
| 2019-05-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24560 - Assertion failure on an abixml with an anonymous type |
| * src/abg-reader.cc (read_context::maybe_canonicalize_type): Delay |
| canonicalization of union types too. |
| (build_class_decl, build_union_decl): Do not try to re-use |
| anonymous types. |
| |
| 2019-05-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Handle Linux kernel binaries with no __ksymtab section |
| * src/abg-dwarf-reader.cc (find_section): Use elf_getshdrstrndx |
| rather than poking at the elf header on our own. |
| (read_context::find_any_ksymtab_section): Define new member |
| function. |
| (read_context::{get_symtab_format, |
| try_reading_first_ksymtab_entry_using_pre_v4_19_format}): Use the |
| new find_any_ksymtab_section rather than find_ksymtab_section. |
| (read_context::get_nb_ksymtab_entries): Handle the absence of |
| __ksymtab. |
| (read_context::get_nb_ksymtab_gpl_entries): Handle the absence of |
| __ksymtab_gpl. |
| (read_context::load_kernel_symbol_table): Handle the case of zero |
| ksymtab entries. |
| (read_context::{maybe_adjust_address_for_exec_or_dyn, |
| maybe_adjust_fn_sym_address, load_kernel_symbol_table}): Handle an |
| address that is zero. |
| |
| 2019-05-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix logic of get_binary_load_address |
| * src/abg-dwarf-reader.cc (get_binary_load_address): Consider the |
| load address pointed to by the program header pointer returned by |
| gelf_getphdr rather than the program header itself. |
| |
| 2019-05-10 maennich@google.com <maennich@google.com> |
| |
| Bug 24431 Treat __ksymtab as int32_t for v4.19+ kernels |
| * src/abg-dwarf-reader.cc (maybe_adjust_sym_address_from_v4_19_ksymtab): |
| treat passed addr as 32bit signed offset in case of v4.19+ __ksymtabs |
| |
| 2019-05-10 maennich@google.com <maennich@google.com> |
| |
| Bug 24431 Read 32bit values when testing for the v4.19 symbol table format |
| * src/abg-dwarf-reader.cc |
| (try_reading_first_ksymtab_entry_using_v4_19_format): attempt to |
| read first __ksymtab entry into int32_t to preserve sign |
| |
| 2019-05-10 maennich@google.com <maennich@google.com> |
| |
| dwarf-reader: templatize read_int_from_array_of_bytes |
| * src/abg-dwarf-reader.cc (read_int_from_array_of_bytes): |
| templatize return type to allow passing of signed integer references |
| |
| 2019-05-10 maennich@google.com <maennich@google.com> |
| |
| dwarf-reader: Fix comments for try_reading_first_ksymtab_entry_using_{pre_,}v4_19_format |
| * src/abg-dwarf-reader.cc: swap the comments of |
| try_reading_first_ksymtab_entry_using_{pre_,}v4_19_format |
| |
| 2019-05-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Better handle several anonymous types of the same kind |
| *unqualified* name of its scope. Unlike for qualified names, the |
| scoped name won't have a "__anonymous_*__" string in its name if its |
| directly containing scope is not anonymous; a qualified name might |
| still have that string in its name because the decl has a parent scope |
| (not necessarily its directly containing scope though) that is |
| anonymous. |
| The patch goes on to update the logic for comparison of decls that are |
| anonymous. For a decl which direct scope is *NOT* anonymous, the |
| scoped name is what's used in the comparison. Otherwise, only the |
| name of the decl is used. |
| The patch also updates how we detect changes in data members and |
| member types, in the comparison engine. It now uses the names of the |
| data members, rather than their qualified name. This is in the scope |
| of the current class/union anyway. The improvement is that the fact |
| that the class/union itself is anonymous (even if its anonymous name |
| changes to another anonymous name) won't have any spurious impact on |
| the detection of name change of the members. |
| The patch considers the change of an anonymous decl name which |
| anonymous name changes to another anonymous name as being harmless. |
| The patch updates the logic of category propagation in the comparison |
| engine. Although a public typedef to private underlying type needs to |
| stay public and thus not propagate the PRIVATE_TYPE_CATEGORY from its |
| child diff node to himself, it still needs to suppress the changes to |
| the private underlying diff node that were suppressed (because of the |
| private-ness), unless that typedef has local changes. |
| * include/abg-ir.h (decl_base::get_scoped_name): Declare new |
| member function. |
| (scope_decl::get_num_anonymous_member_{classes, unions, enums}): |
| Declare new virtual member functions. |
| (class_decl::get_num_anonymous_member_{classes, unions, enums}): |
| Adjust to make these virtual. It's not necessary but I feel |
| redundancy is a kind of self-documentation here. |
| * src/abg-comp-filter.cc (has_harmless_name_change): Consider |
| anonymous name changes as harmless. |
| * src/abg-comparison.cc |
| (class_or_union_diff::ensure_lookup_tables_populated): Consider |
| the names of the members rather than their qualified names. |
| (suppression_categorization_visitor::visit_end): Suppress the |
| changes to the private underlying diff node that were suppressed |
| because of the private-ness, unless that typedef has local |
| changes. |
| * src/abg-dwarf-reader.cc (build_enum_type) |
| (add_or_update_class_type, add_or_update_union_type): Handle |
| anonymous types in namespaces as well, not just in class/unions. |
| * src/abg-ir.cc (decl_base::priv::scoped_name_): Define new data |
| member. |
| (decl_base::get_scoped_name): Define new member function. |
| (equals): For the decl_base overload, use scoped name in the |
| comparison, unless the decl belongs to an anonymous type. For the |
| class_or_union_diff, only consider scoped_name during comparison. |
| Avoid name comparison between anonymous types. |
| (scope_decl::get_num_anonymous_member_{classes, unions, enums}): |
| Define new member functions. |
| (types_have_similar_structure): Do not compare names between |
| anonymous types. |
| (qualified_name_setter::do_update): Update scoped names too. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust. |
| * tests/data/test-annotate/libtest23.so.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-diff-dwarf/test43-PR22913-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-dwarf/test46-rust-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test33-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt: |
| Likewise. |
| * 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. |
| * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2019-05-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Handle several member anonymous types of the same kind |
| * include/abg-ir.h |
| (class_or_union::get_num_anonymous_member_{classes, unions, |
| enums}): Declare new member functions. |
| * src/abg-dwarf-reader.cc (get_internal_anonynous_die_base_name) |
| (build_internal_anonymous_die_name) |
| (get_internal_anonymous_die_name, is_anonymous_type_die): Define |
| new static functions. |
| (die_qualified_type_name): Use the new |
| get_internal_anonymous_die_name. |
| (get_scope_for_die): Fix this to put anonymous types that were |
| wrongly emitted into the scope of DW_TAG_subroutine_type or |
| DW_TAG_array_type by buggy DWARF emitters into the enclosing |
| namespace, rather than into the enclosing class/union. |
| (build_enum_type): Take the scope of the enum to have a chance to |
| properly name potential anonymous enums. |
| (lookup_class_typedef_or_enum_type_from_corpus): Take an anonymous |
| member type index for when the DIE we are lookup up represents an |
| anonymous type. Support proper building of the internal anonymous |
| name of the anonymous type we are lookup up. |
| (add_or_update_class_type): Use the new |
| get_internal_anonynous_die_base_name and |
| build_internal_anonymous_die_name functions. Support making sure |
| that the anonymous member type we are adding to the class wasn't |
| already there, especially for cases where we are updating a class |
| type. |
| (add_or_update_union_type): Use the new |
| get_internal_anonynous_die_base_name and |
| build_internal_anonymous_die_name functions. |
| (build_ir_node_from_die): Adjust the use of build_enum_type to |
| pass it the scope of the enum type we are building. |
| * src/abg-ir.cc (lookup_union_type): Add a new overload. |
| (lookup_class_or_typedef_type): Use the new overload of |
| lookup_union_type above to support looking up union types too. |
| (class_or_union::get_num_anonymous_member_{classes, unions, |
| enums}): Define new member functions. |
| * src/abg-reporter-priv.cc (represent): Detect when anonymous |
| types of anonymous data members have their internal names change, |
| probably because anonymous member types were inserted in the scope. |
| * tests/data/Makefile.am: Add the new test-anonymous-members-0.* |
| test input files to the source distribution. |
| * tests/data/test-annotate/test-anonymous-members-0.cc: New test |
| input file. |
| * tests/data/test-annotate/test-anonymous-members-0.o: Likewise. |
| * tests/data/test-annotate/test-anonymous-members-0.o.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/test-annotate.cc (int_out_specs): Add the new test inputs |
| to this test harness. |
| |
| 2019-04-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Use canonical types hash maps for type IDs in abixml writer |
| * src/abg-writer.cc (write_context::{type_has_existing_id, |
| get_id_for_type}): Save the canonical type of the type in the map, |
| not the type itself. |
| (write_context::{type_is_emitted}): Use the canonical type rather |
| than the type itself. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2019-04-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't try to de-duplicate all anonymous struct DIEs |
| * include/abg-fwd.h (is_typedef): Remove the overloads for |
| type_base_sptr and decl_base_sptr. Replace those with an overload |
| for type_or_decl_base_sptr. |
| * src/abg-ir.cc (is_typedef): Do the same for the definitions. |
| * src/abg-dwarf-reader.cc (add_or_update_class_type) |
| (add_or_update_union_type): Do not de-duplicate anonymous |
| struct/union DIEs. |
| (build_typedef_type): Try to de-duplicate typedefs DIEs. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2019-04-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Canonicalize types non tied to any DWARF DIE |
| * src/abg-dwarf-reader.cc |
| (read_context::extra_types_to_canonicalize_): Add new data member. |
| (read_context::{initialize, clear_types_to_canonicalize}): Adjust. |
| (read_context::extra_types_to_canonicalize): Create new accessor. |
| (read_context::schedule_type_for_late_canonicalization): Add new |
| overload for type_base_sptr. |
| (read_context::perform_late_type_canonicalizing): Perform the |
| canonicalization of the types created by the DWARF analyzer, but |
| that are not tied to any DIE. |
| (maybe_strip_qualification): Take a read_context&. Schedule newly |
| created types (during type edition) for late canonicalization. |
| (build_ir_node_from_die): Adjust the call to |
| maybe_strip_qualification to pass a read_context. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| |
| 2019-04-18 Mark Wielaard <mark@klomp.org> |
| |
| Don't try to read a build_id as string in find_alt_debug_info_link. |
| * src/abg-dwarf-reader.cc (find_alt_debug_info_link): Remove |
| build_id argument. Don't try to read the buildid chars as a |
| string. |
| (find_alt_debug_info): Don't call find_alt_debug_info_link |
| with a build_id string argument. |
| |
| 2019-04-18 Mark Wielaard <mark@klomp.org> |
| |
| Fix an undefined behaviour in has_var_type_cv_qual_change |
| * src/abg-comp-filter.cc: (has_var_type_cv_qual_change): |
| Initialize the ch_kind variable before using it. |
| |
| 2019-04-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Add --enable-{asan,ubsan} configure options |
| * configure.ac: Add configure options for -fsanitize=address and |
| -fsanitize=undefined. |
| |
| 2019-04-18 Dodji Seketeli <dodji@redhat.com> |
| |
| abg-tools-utils.cc: Plug a leak in find_file_under_dir |
| * src/abg-tools-utils.cc (find_file_under_dir): Call fts_close |
| before return. |
| |
| 2019-04-18 Matthias Maennich <maennich@google.com> |
| |
| dwarf-reader: fix undefined behaviour in get_binary_load_address |
| * src/abg-dwarf-reader.cc (get_binary_load_address): Move the |
| ph_mem and program_header variables out of the inner for-loop. |
| |
| 2019-04-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Delay canonicalization for array and qualified types |
| * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Delay the |
| canonicalization of array and qualified types, just like what we |
| do for classes and function types already. |
| (maybe_strip_qualification): Do not |
| re-canonicalize array and qualified types here because it should |
| not be necessary anymore. |
| |
| 2019-04-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a memory leak in real_path |
| * src/abg-tools-utils.cc (real_path): Fee the returned pointer of |
| realpath. |
| |
| 2019-04-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Enable building with AddressSanitizer activated |
| * configure.ac: If ABIGAIL_DEVEL_ASAN=on (in addition to |
| ABIGAIL_DEVEL=on), then turn on AddressSanitizer in the build. |
| |
| 2019-04-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24431 - ELF reader fails to determine __ksymtab format |
| * src/abg-dwarf-reader.cc |
| (read_context::{try_reading_first_ksymtab_entry_using_pre_v4_19_format, |
| try_reading_first_ksymtab_entry_using_v4_19_format}): Define new |
| member functions. |
| (read_context::maybe_adjust_sym_address_from_v4_19_ksymtab): Make |
| member function this const. |
| (read_context::get_ksymtab_format): Implement the new heuristic |
| here, using try_reading_first_ksymtab_entry_using_pre_v4_19_format |
| and try_reading_first_ksymtab_entry_using_v4_19_format, rather |
| than assuming that if we have no relocations, then we are in the |
| v4.19 format. |
| (maybe_adjust_sym_address_from_v4_19_ksymtab): When on a 64 bits |
| architecture, ensure the 32 bits address read from the v4.19 |
| format __ksymtab section is converted into a 64 bits address. |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| Update .gitignore files to ignore typical dev side products |
| * tests/.gitignore: exclude tests binaries and test results |
| * tools/.gitignore: update to ignore produced binaries |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| dwarf-reader: fix recursion in expr_result::operator& |
| * src/abg-dwarf-reader.cc: fix expr_result::operator& |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| distinct_diff: avoid expression with side effects within typeid |
| * src/abg-comparison.cc: fix clang warning "potentially-evaluated-expression" |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| ir: drop unused data members from {environment,qualified_name}_setter |
| * src/abg-ir.cc: drop unused data members |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| suppressions: drop unused parameter from type_is_suppressed |
| * include/abg-suppression-priv.h: drop unused argument from type_is_suppressed |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| viz-dot: remove unused members from dot |
| * include/abg-viz-dot.h: remove unused data members from 'dot' |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| add missing virtual destructors |
| * include/abg-comparison.h: add virtual destructor for corpus_diff and diff_node_visitor |
| * include/abg-corpus.h: add virtual destructor for corpus |
| * include/abg-reporter.h: add virtual destructor for reporter_base |
| * include/abg-traverse.h: add virtual destructor for traversable_base |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| diff-utils: point: fix postfix decrement/increment operator |
| * include/abg-diff-utils.h: fix postfix dec/inc operator |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| abg-reader: clarify boolean use of assignment |
| * src/abg-reader.cc: clarify boolean use of assignment |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| abilint: fix return types bool -> int |
| * tools/abilint.cc: return int in main rather than bool. |
| * tests/print-diff-tree.cc: Likewise. |
| |
| 2019-04-15 Matthias Maennich via libabigail <libabigail@sourceware.org> |
| |
| abg-fwd.h: fix mismatched tags for ir_node_visitor |
| * include/abg-fwd.h: forward-declare ir_node_visitor as class |
| |
| 2019-04-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24431 - ELF reader can't interpret ksymtab with Kernel 4.19+ |
| * src/abg-dwarf-reader.cc (enum kernel_symbol_table_kind): Move this |
| enum at the top. |
| (enum ksymtab_format): Define new enum. |
| (read_context::{ksymtab_format_, ksymtab_entry_size_, |
| nb_ksymtab_entries_, nb_ksymtab_gpl_entries_}): Define new data |
| members. |
| (read_context::initiliaze): Initialize the new data members above. |
| (read_context::{get_ksymtab_format, get_ksymtab_symbol_value_size, |
| get_ksymtab_entry_size, get_nb_ksymtab_entries, |
| get_nb_ksymtab_gpl_entries, |
| maybe_adjust_sym_address_from_v4_19_ksymtab}): Define new member |
| functions. |
| (read_context::load_kernel_symbol_table): Support loading from |
| both pre and post v4.19 linux kernels with their different ksymtab |
| formats. Add more comments. |
| |
| 2019-04-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24430 - Fold away const for array types |
| * include/abg-fwd.h (is_array_of_qualified_element): Declare 2 |
| overloads of this function. |
| (re_canonicalize): Declare a new function. |
| * include/abg-ir.h (class {decl_base, type_base}): Declare |
| re_canonicalize as a friend of these classes. |
| * src/abg-dwarf-reader.cc (maybe_strip_qualification): Detect |
| qualified array types and appropriately qualifies the array |
| element type, instead of qualifying the array type itself. |
| Re-canonicalize the resulting type if necessary. |
| * src/abg-ir.cc (is_array_of_qualified_element): Define 2 |
| overloads of this function. |
| (re_canonicalize): Define new function. |
| * tests/data/Makefile.am: The two new test binary input files |
| PR24430-fold-qualified-array-clang and |
| PR24430-fold-qualified-array-gcc to source distribution, as well |
| as the expected reference output. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-diff-filter/PR24430-fold-qualified-array-clang: |
| New binary test input coming from the bug report. |
| * tests/data/test-diff-filter/PR24430-fold-qualified-array-gcc: |
| Likewise. |
| * tests/data/test-diff-filter/PR24430-fold-qualified-array-report-0.txt: |
| Expected reference abi difference. |
| * tests/data/test-diff-filter/test33-report-0.txt: Adjust. |
| * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/test-diff-filter.cc: Add the new binary test input to this |
| test harness. |
| |
| 2019-04-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix "Add test for the fix for PR24410" |
| * tests/data/test-diff-pkg/PR24410-new/poppler-debuginfo-0.73.0-8.fc30.x86_64.rpm: |
| Really add this. |
| * tests/data/test-diff-pkg/PR24410-new/poppler-qt5-0.73.0-8.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24410-new/poppler-qt5-debuginfo-0.73.0-8.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24410-new/poppler-qt5-devel-0.73.0-8.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24410-old/poppler-debuginfo-0.73.0-4.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24410-old/poppler-qt5-0.73.0-4.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24410-old/poppler-qt5-debuginfo-0.73.0-4.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24410-old/poppler-qt5-devel-0.73.0-4.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/PR24410-report-0.txt: Likewise. |
| |
| 2019-04-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Add test for the fix for PR24410 |
| * tests/data/test-diff-pkg/PR24410-new/poppler-debuginfo-0.73.0-8.fc30.x86_64.rpm: |
| Add new test input. |
| * tests/data/test-diff-pkg/PR24410-new/poppler-qt5-0.73.0-8.fc30.x86_64.rpm: |
| Add new test input. |
| * tests/data/test-diff-pkg/PR24410-new/poppler-qt5-debuginfo-0.73.0-8.fc30.x86_64.rpm: |
| Add new test input. |
| * tests/data/test-diff-pkg/PR24410-new/poppler-qt5-devel-0.73.0-8.fc30.x86_64.rpm: |
| Add new test input. |
| * tests/data/test-diff-pkg/PR24410-old/poppler-debuginfo-0.73.0-4.fc30.x86_64.rpm: |
| Add new test input. |
| * tests/data/test-diff-pkg/PR24410-old/poppler-qt5-0.73.0-4.fc30.x86_64.rpm: |
| Add new test input. |
| * tests/data/test-diff-pkg/PR24410-old/poppler-qt5-debuginfo-0.73.0-4.fc30.x86_64.rpm: |
| Add new test input. |
| * tests/data/test-diff-pkg/PR24410-old/poppler-qt5-devel-0.73.0-4.fc30.x86_64.rpm: |
| Add new test input. |
| * tests/data/test-diff-pkg/PR24410-report-0.txt: Add new test |
| input. |
| * tests/data/Makefile.am: Add the test input above to source |
| distribution. |
| * tests/test-diff-pkg.cc: Make this test harness use the new input |
| rpms above. |
| |
| 2019-04-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Propagate private type diff category through refs/qualified type diffs |
| * src/abg-comparison.cc |
| (suppression_categorization_visitor::visit_end): Propagate |
| suppressed and private type diff categories for reference and |
| qualified types. For qualified types, make sure they don't have |
| local changes. Even when there are no local changes, do not |
| propagate private diff categories to typedefs. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2019-04-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix anonymous union constructed under the wrong context |
| * src/abg-dwarf-reader.cc (add_or_update_class_type) |
| (add_or_update_union_type): Only reuse anonymous class/union types |
| which have the same scope as the current one. |
| |
| 2019-04-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Internal pretty repr of union cannot be flat representation |
| * src/abg-ir.cc (union_decl::get_pretty_representation): |
| Anonymous internal pretty representation of unin is its fully |
| qualified name. |
| |
| 2019-04-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc comment fixes |
| * src/abg-comp-filter.cc (has_harmless_name_change): Fix comment. |
| * src/abg-ir.cc (var_decl::get_qualified_name): Likewise. |
| |
| 2019-03-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.7 |
| * configure.ac: Bump version number to 1.7 |
| |
| 2019-03-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Update website mainpage for 1.6 release |
| * doc/website/mainpage.txt: Update for 1.6 release. |
| |
| 2019-03-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog |
| * ChangeLog: Update automatically by using "make |
| update-changelog". |
| |
| 2019-03-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.6 |
| * NEWS: Update for 1.6 |
| |
| 2019-03-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing assignment operators |
| * include/abg-interned-str.h (interned_string::operator=): Define |
| assignment operator. |
| * include/abg-ir.h |
| ({location, enum_type_decl::enumerator}::operator=): Declare |
| assignment operator. |
| * src/abg-ir.cc (enum_type_decl::enumerator::operator=): Define |
| assignment operator. |
| |
| 2019-03-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24378 - DW_TAG_subroutine_type as a DIE scope causes infinite loop |
| * src/abg-dwarf-reader.cc (get_scope_die): Look through |
| DW_TAG_subroutine_type to get the scope of a given DIE. |
| * tests/data/Makefile.am: Add the two new files below to source |
| distribution. |
| * tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi: New |
| reference test output. |
| * tests/data/test-read-dwarf/PR24378-fn-is-not-scope.o: New binary |
| test input. |
| * tests/test-read-dwarf.cc (in_out_specs): Add the new test input |
| to the test harness. |
| |
| 2019-03-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc cleanups |
| * src/abg-dwarf-reader.cc (build_function_type): Cleanup |
| indentation and comments. |
| |
| 2019-03-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Better pointer name equality optimization in DIE de-duplication code |
| * src/abg-dwarf-reader.cc |
| (die_is_pointer_reference_or_typedef_type) |
| (die_peel_pointer_and_typedef): Define new static functions. |
| (compare_dies_string_attribute_value): Turn this function into a |
| static one. |
| (compare_dies_cu_decl_file): Make this function compare the cu |
| decl file name of the leaf type of the pointer, not just the one |
| of the pointer itself. |
| (compare_as_decl_dies): Compare the DWARF tags too. |
| (compare_dies): Simplify logic. |
| |
| 2019-03-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Add ir::{lookup_data_member, get_function_parameter} |
| * include/abg-ir.h (lookup_data_member, get_function_parameter): |
| Declare new functions. |
| * src/abg-ir.cc (lookup_data_member, get_function_parameter): |
| Define them. |
| |
| 2019-03-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Better detection of void* to something* change |
| * include/abg-ir.h (is_void_type): Add a new overload that takes |
| type_base*. |
| * src/abg-ir.cc (is_void_type): Define the new overload that takes |
| type_base*. |
| (is_void_pointer_type): Look through typedefs in |
| the pointed-to type. |
| |
| 2019-03-21 Dodji Seketeli <dodji@redhat.com> |
| |
| PR24257 - Handle DW_TAG_typedef with no underlying type |
| * src/abg-dwarf-reader.cc (build_typedef_type): DW_TAG_typedef |
| with no underlying type means typedef void foo. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2019-02-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not build DIE -> parent map just because we see an asm TU |
| * src/abg-dwarf-reader.cc: |
| |
| 2019-02-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid over-suppressing fns & vars when analysing the Kernel |
| * include/abg-dwarf-reader.h (get_ignore_symbol_table): Take a |
| const read_context&. |
| * src/abg-dwarf-reader.cc (get_ignore_symbol_table): Likewise. |
| (function_is_suppressed): When the symbol table optimization is in |
| flight -- that is, when no symbol table has been loaded -- do not |
| try to see if a given function symbol was exported at the ELF |
| level or not. Just look at if the function was suppressed or not. |
| (variable_is_suppressed): Likewise for variables. |
| |
| 2019-02-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24188 - Assertion failed while analysing a Fortran binary |
| * src/abg-dwarf-reader.cc (compare_as_type_dies): Handle |
| DW_TAG_string_type DIEs here. |
| (compare_dies): Handle DW_TAG_string_type DIEs by using |
| compare_as_type_dies. |
| * tests/data/test-diff-pkg/netcdf-fortran-debuginfo-4.4.4-10.fc29.x86_64.rpm: |
| New test RPM. |
| * tests/data/test-diff-pkg/netcdf-fortran-debuginfo-4.4.4-11.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/netcdf-fortran-mpich-4.4.4-10.fc29.x86_64-4.4.4-11.fc30.x86_64-report-0.txt: |
| New expected test reference output. |
| * tests/data/test-diff-pkg/netcdf-fortran-mpich-4.4.4-10.fc29.x86_64.rpm: |
| New test RPM. |
| * tests/data/test-diff-pkg/netcdf-fortran-mpich-4.4.4-11.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/netcdf-fortran-mpich-debuginfo-4.4.4-10.fc29.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/netcdf-fortran-mpich-debuginfo-4.4.4-11.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/netcdf-fortran-mpich-devel-4.4.4-10.fc29.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/netcdf-fortran-mpich-devel-4.4.4-11.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/Makefile.am: Add the new test input material above to |
| source distribution. |
| * tests/test-diff-pkg.cc (in_out_spec): Add the new test RPMs |
| above to the set of RPMs to use as test input. |
| |
| 2019-02-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24157 - Wrong support of Ada ranges |
| * include/abg-ir.h (array_type_def::subrange_type::bound_value): |
| Define new class. |
| (array_type_def::subrange_type::subrange_type): Adjust to use the |
| new bound_value type for bound values. |
| (array_type_def::subrange_type::{get_upper_bound, get_lower_bound, |
| set_upper_bound, set_lower_bound}): Return or take int64_t rather |
| than size_t. |
| (array_type_def::subrange_type::get_length): Return uint64_t |
| rather than size_t. |
| * src/abg-dwarf-reader.cc (die_signed_constant_attribute) |
| (die_constant_attribute, die_attribute_has_form) |
| (die_attribute_is_signed, die_attribute_is_unsigned) |
| (die_attribute_has_no_signedness): Define new static functions. |
| (get_default_array_lower_bound): Return uint64_t rather than int. |
| (build_subrange_type): Use the new |
| array_type_def::subrange_type::bound_value type for bound values. |
| Use the new die_constant_attribute function, rather than |
| die_unsigned_constant_attribute to fecth the bound values. |
| * src/abg-ir.cc |
| (array_type_def::subrange_type::bound_value::{bound_value, |
| get_signedness, set_signedness, get_signed_value, |
| get_unsigned_value, set_unsigned, set_signed}): Define new member |
| functions. |
| (array_type_def::subrange_type::priv::{lower_bound_, |
| upper_bound}): Use the new class bound_value. |
| (array_type_def::subrange_type::priv::priv): Adjust to use the new |
| bound_value class to hold bound values. |
| (array_type_def::subrange_type::subrange_type): Likewise. |
| (array_type_def::subrange_type::{get_upper_bound, get_lower_bound, |
| set_upper_bound, set_lower_bound}): Return or take int64_t rather |
| than size_t. |
| (array_type_def::subrange_type::get_length): Return uint64_t |
| rather than size_t. |
| (types_have_similar_structure): Handle array_type_def::subrange_type |
| * src/abg-reader.cc (build_subrange_type): Use the new |
| array_type_def::subrange_type::bound_value to hold bound values. |
| * tests/data/test-diff-pkg/GtkAda-debuginfo-2.24.2-29.fc29.x86_64.rpm: |
| New binary RPM as test input. |
| * tests/data/test-diff-pkg/GtkAda-debuginfo-2.24.2-30.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/GtkAda-devel-2.24.2-29.fc29.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/GtkAda-devel-2.24.2-30.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64--2.24.2-30.fc30.x86_64-report-0.txt: |
| New expected test output. |
| * tests/data/test-diff-pkg/GtkAda-gl-2.24.2-29.fc29.x86_64.rpm: |
| New binary RPM as test input. |
| * tests/data/test-diff-pkg/GtkAda-gl-2.24.2-30.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/GtkAda-gl-debuginfo-2.24.2-29.fc29.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/GtkAda-gl-debuginfo-2.24.2-30.fc30.x86_64.rpm: |
| Likewise. |
| * tests/data/Makefile.am: Add the new test material above to source |
| distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the new input testing |
| RPMs in here. |
| |
| 2019-01-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Small apidoc fix |
| * src/abg-comparison.cc (enum_diff::changed_enumerators): Fix apidoc. |
| |
| 2019-01-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 24139 - Support suppressing some enumerator changes |
| * doc/manuals/libabigail-concepts.rst: Document the new |
| 'changed_enumerators' property. |
| * include/abg-suppression.h |
| (type_suppression::{g, s}et_changed_enumerator_names): Declare two |
| new member functions. |
| * src/abg-suppression-priv.h |
| (type_suppression::priv::changed_enumerator_names_): Add a new |
| data member. |
| * src/abg-suppression.cc |
| (type_suppression::{g,s}et_changed_enumerator_names): Define two |
| new member functions. |
| (type_suppression::suppresses_diff): Support evaluating the new |
| 'changed_enumerators = <vector of changed enumerators>'. |
| (read_type_suppression): Read the new list |
| property'changed_enumerators" and store it into the |
| type_suppression using the new |
| type_suppression::set_changed_enumerator_names (). |
| * tests/data/test-diff-suppr/libtest4{0,1}-enumerator-changes-v{0,1}.so: |
| Add new test inpujts. |
| * tests/data/test-diff-suppr/test4{0,1}-enumerator-changes-0.suppr: |
| Add a new suppr spec for this new test. |
| * tests/data/test-diff-suppr/test4{0,1}-enumerator-changes-report-0.txt: |
| The default report. |
| * tests/data/test-diff-suppr/test4{0,1}-enumerator-changes-v{0,1}.cc: |
| Add Source code of libtest4{0,1}-enumerator-changes-v{0,1}.so. |
| * tests/data/Makefile.am: Add the test files above to source |
| distribution. |
| * tests/test-diff-suppr.cc: Add the test input files above to the |
| harness. |
| |
| 2019-01-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Better comments in the comparison engine |
| * include/abg-comparison.h (enum diff_category): Add comments to |
| describe what to update when a new enumerator is added to this enum. |
| * src/abg-comp-filter.cc (has_fn_return_type_cv_qual_change): Fix |
| comment thinko here. |
| |
| 2019-01-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20175 - Classify CV qual changes in variable type as harmless |
| * include/abg-comparison.h (VAR_TYPE_CV_CHANGE_CATEGORY): Add new |
| enumerator to diff_category enum. |
| (EVERYTHING_CATEGORY): Update this enumerator. |
| * src/abg-comp-filter.cc (type_diff_has_cv_qual_change_only): |
| Support array diff nodes carrying a cv qual change on the element |
| type. |
| (has_var_type_cv_qual_change): Define new static function. |
| (categorize_harmless_diff_node): Use the new |
| has_var_type_cv_qual_change to categorize variable diff node with |
| cv qual change on its type as harmless. |
| * src/abg-comparison.cc |
| (get_default_harmless_categories_bitmap): Update this. |
| (operator<<(ostream& o, diff_category c)): Likewise. |
| * include/abg-ir.h (equals_modulo_cv_qualifier): Declare new ... |
| * src/abg-ir.cc (equals_modulo_cv_qualifier): ... function. |
| * 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: |
| Update expected test output. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Likewise. |
| * tests/data/Makefile.am: Add the new test material below to |
| source distribution. |
| * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt: |
| New expecte test output. |
| * tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64.rpm: New |
| test input. |
| * tests/data/test-diff-pkg/nss-3.24.0-1.0.fc23.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/nss-debuginfo-3.23.0-1.0.fc23.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/nss-debuginfo-3.24.0-1.0.fc23.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/nss-devel-3.23.0-1.0.fc23.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/nss-devel-3.24.0-1.0.fc23.x86_64.rpm: Likewise. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the test input above |
| to the test harness. |
| |
| 2019-01-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Properly add the new rust tests to EXTRA_DIST |
| * tests/data/Makefile.am: Add the new rust tests to |
| EXTRA_DIST. |
| |
| 2019-01-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Conditionalize the Rust support regression test |
| * tests/test-diff-dwarf.cc: Run the rust support regression test |
| only if we support Rust on the platform. |
| * tests/test-utils.h: Include config.h. |
| |
| 2019-01-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a typo in the recent Rust support and update regression tests |
| * configure.ac: Fix the typo HAS_LANG_Rust into HAS_DW_LANG_Rust. |
| * tests/data/test-diff-dwarf/test46-readme.txt: Add new file to |
| the test suite. |
| * tests/data/test-diff-dwarf/test46-rust-libone.so: Likewise. |
| * tests/data/test-diff-dwarf/test46-rust-libtwo.so: Likewise. |
| * tests/data/test-diff-dwarf/test46-rust-report-0.txt: Likewise. |
| * tests/test-diff-dwarf.cc (in_out_specs): Update the tests array |
| to compare the two new binaries included above. |
| |
| 2019-01-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Overhaul detection the DW_LANG_* enumerators from dwarf.h |
| * configure.ac: Detect the presence of DW_LANG_{UPC, D, Python, |
| Go, C11, C_plus_plus_03, C_plus_plus_11, C_plus_plus_14, |
| Mips_Assembler, Rust} and define the corresponding |
| HAVE_DW_LANG_*_enumerator macro accordingly. |
| * include/abg-ir.h (LANG_C_plus_plus_03): Define this new |
| enumerator in the translation_unit::language enum. |
| * src/abg-dwarf-reader.cc (dwarf_language_to_tu_language): Use the |
| new HAVE_DW_LANG_*_enumerator macros. |
| (get_default_array_lower_bound): Support the |
| translation_unit::LANG_C_plus_plus_03 enumerator. |
| * src/abg-ir.cc (is_cplus_plus_language): Support the |
| translation_unit::LANG_C_plus_plus_03 enumerator. |
| |
| 2019-01-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a thinko |
| * src/abg-dwarf-reader.cc (dwarf_language_to_tu_language): Fix a |
| thinko in the detection of the support of the DW_LANG_Rust enumerator. |
| |
| 2019-01-17 Mark Wielaard <mark@klomp.org> |
| |
| Conditionalize the use of DW_LANG_C_plus_plus_03 and DW_LANG_Rust |
| * include/abg-ir.h (LANG_C_plus_plus_03): Add this new language |
| enum to "enum translation_unit::language". |
| * src/abg-dwarf-reader.cc (dwarf_language_to_tu_language): Do not |
| use DW_LANG_Rust or DW_LANG_C_plus_plus_03 if these are not |
| defined. |
| (get_default_array_lower_bound): Handle the new |
| translation_unit::LANG_C_plus_plus_03 enumerator. |
| |
| 2019-01-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Support some new DWARF language encoding for C and C++ |
| * src/abg-dwarf-reader.cc (dwarf_language_to_tu_language): Support |
| new DW_LANG_{C11, C_plus_plus_03, C_plus_plus_11, C_plus_plus_14} |
| enumerators. |
| |
| 2019-01-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Add (very) basic support for Rust |
| * include/abg-ir.h (LANG_Rust): Add this new enumerator to the |
| "enum language" enum. |
| * src/abg-dwarf-reader.cc (dwarf_language_to_tu_language): Handle |
| the Rust language. |
| (get_default_array_lower_bound): Likewise. |
| |
| 2019-01-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Separate public types of first binary from those of the second |
| * include/abg-dwarf-reader.h (read_context_get_path): Declare new |
| function. |
| * include/abg-reader.h (read_context_get_path): Likewise. |
| * src/abg-dwarf-reader.cc (read_context_get_path): Define new function. |
| * src/abg-reader.cc (read_context_get_path): Likewise. |
| * tools/abidiff.cc (set_suppressions): Set the suppression |
| specification derived from the --headers-dir1 option only for the first |
| binary, and similarly, from the --headers-dir2 option only for the |
| second binary. |
| |
| 2019-01-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 23044 - Assertions with side effects |
| * configure.ac: |
| * include/abg-diff-utils.h: |
| * include/abg-fwd.h: |
| * src/abg-comp-filter.cc: |
| * src/abg-comparison-priv.h: |
| * src/abg-comparison.cc: |
| * src/abg-corpus-priv.h: |
| * src/abg-corpus.cc: |
| * src/abg-default-reporter.cc: |
| * src/abg-diff-utils.cc: |
| * src/abg-dwarf-reader.cc: |
| * src/abg-hash.cc: |
| * src/abg-ini.cc: |
| * src/abg-ir.cc: |
| * src/abg-leaf-reporter.cc: |
| * src/abg-reader.cc: |
| * src/abg-reporter-priv.cc: |
| * src/abg-suppression.cc: |
| * src/abg-tools-utils.cc: |
| * src/abg-workers.cc: |
| * src/abg-writer.cc: |
| * tests/test-diff-filter.cc: |
| * tests/test-diff-pkg.cc: |
| * tests/test-read-dwarf.cc: |
| * tests/test-read-write.cc: |
| * tests/test-types-stability.cc: |
| * tools/abicompat.cc: |
| * tools/abidw.cc: |
| * tools/abipkgdiff.cc: |
| |
| 2019-01-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright for 2019 |
| * include/abg-comp-filter.h: Update copyright for 2019 |
| * include/abg-comparison.h: Update copyright for 2019 |
| * include/abg-config.h: Update copyright for 2019 |
| * include/abg-corpus.h: Update copyright for 2019 |
| * include/abg-diff-utils.h: Update copyright for 2019 |
| * include/abg-dwarf-reader.h: Update copyright for 2019 |
| * include/abg-fwd.h: Update copyright for 2019 |
| * include/abg-hash.h: Update copyright for 2019 |
| * include/abg-ini.h: Update copyright for 2019 |
| * include/abg-interned-str.h: Update copyright for 2019 |
| * include/abg-ir.h: Update copyright for 2019 |
| * include/abg-libxml-utils.h: Update copyright for 2019 |
| * include/abg-libzip-utils.h: Update copyright for 2019 |
| * include/abg-reader.h: Update copyright for 2019 |
| * include/abg-reporter.h: Update copyright for 2019 |
| * include/abg-sptr-utils.h: Update copyright for 2019 |
| * include/abg-suppression.h: Update copyright for 2019 |
| * include/abg-tools-utils.h: Update copyright for 2019 |
| * include/abg-traverse.h: Update copyright for 2019 |
| * include/abg-viz-common.h: Update copyright for 2019 |
| * include/abg-viz-dot.h: Update copyright for 2019 |
| * include/abg-viz-svg.h: Update copyright for 2019 |
| * include/abg-workers.h: Update copyright for 2019 |
| * include/abg-writer.h: Update copyright for 2019 |
| * src/abg-comp-filter.cc: Update copyright for 2019 |
| * src/abg-comparison-priv.h: Update copyright for 2019 |
| * src/abg-comparison.cc: Update copyright for 2019 |
| * src/abg-config.cc: Update copyright for 2019 |
| * src/abg-corpus-priv.h: Update copyright for 2019 |
| * src/abg-corpus.cc: Update copyright for 2019 |
| * src/abg-default-reporter.cc: Update copyright for 2019 |
| * src/abg-diff-utils.cc: Update copyright for 2019 |
| * src/abg-dwarf-reader.cc: Update copyright for 2019 |
| * src/abg-hash.cc: Update copyright for 2019 |
| * src/abg-ini.cc: Update copyright for 2019 |
| * src/abg-internal.h: Update copyright for 2019 |
| * src/abg-ir-priv.h: Update copyright for 2019 |
| * src/abg-ir.cc: Update copyright for 2019 |
| * src/abg-leaf-reporter.cc: Update copyright for 2019 |
| * src/abg-libxml-utils.cc: Update copyright for 2019 |
| * src/abg-libzip-utils.cc: Update copyright for 2019 |
| * src/abg-reader.cc: Update copyright for 2019 |
| * src/abg-reporter-priv.cc: Update copyright for 2019 |
| * src/abg-reporter-priv.h: Update copyright for 2019 |
| * src/abg-sptr-utils.cc: Update copyright for 2019 |
| * src/abg-suppression-priv.h: Update copyright for 2019 |
| * src/abg-suppression.cc: Update copyright for 2019 |
| * src/abg-tools-utils.cc: Update copyright for 2019 |
| * src/abg-traverse.cc: Update copyright for 2019 |
| * src/abg-viz-common.cc: Update copyright for 2019 |
| * src/abg-viz-dot.cc: Update copyright for 2019 |
| * src/abg-viz-svg.cc: Update copyright for 2019 |
| * src/abg-workers.cc: Update copyright for 2019 |
| * src/abg-writer.cc: Update copyright for 2019 |
| * tests/print-diff-tree.cc: Update copyright for 2019 |
| * tests/test-abicompat.cc: Update copyright for 2019 |
| * tests/test-abidiff-exit.cc: Update copyright for 2019 |
| * tests/test-abidiff.cc: Update copyright for 2019 |
| * tests/test-alt-dwarf-file.cc: Update copyright for 2019 |
| * tests/test-core-diff.cc: Update copyright for 2019 |
| * tests/test-diff-dwarf-abixml.cc: Update copyright for 2019 |
| * tests/test-diff-dwarf.cc: Update copyright for 2019 |
| * tests/test-diff-filter.cc: Update copyright for 2019 |
| * tests/test-diff-pkg.cc: Update copyright for 2019 |
| * tests/test-diff-suppr.cc: Update copyright for 2019 |
| * tests/test-diff2.cc: Update copyright for 2019 |
| * tests/test-ini.cc: Update copyright for 2019 |
| * tests/test-ir-walker.cc: Update copyright for 2019 |
| * tests/test-lookup-syms.cc: Update copyright for 2019 |
| * tests/test-read-dwarf.cc: Update copyright for 2019 |
| * tests/test-read-write.cc: Update copyright for 2019 |
| * tests/test-types-stability.cc: Update copyright for 2019 |
| * tests/test-utils.cc: Update copyright for 2019 |
| * tests/test-utils.h: Update copyright for 2019 |
| * tests/test-write-read-archive.cc: Update copyright for 2019 |
| * tools/abiar.cc: Update copyright for 2019 |
| * tools/abicompat.cc: Update copyright for 2019 |
| * tools/abidiff.cc: Update copyright for 2019 |
| * tools/abidw.cc: Update copyright for 2019 |
| * tools/abilint.cc: Update copyright for 2019 |
| * tools/abipkgdiff.cc: Update copyright for 2019 |
| * tools/abisym.cc: Update copyright for 2019 |
| * tools/binilint.cc: Update copyright for 2019 |
| * tools/kmidiff.cc: Update copyright for 2019 |
| * update-copyright.sh: Update new year to 2019 |
| |
| 2018-12-06 Xiao Jia via libabigail <libabigail@sourceware.org> |
| |
| Some documentation fixes |
| * COMPILING: Add the pkg-config dependency. |
| * doc/manuals/kmidiff.rst: Replace the redundant --full-impact |
| documentation with the proper --impacted-interfaces one. |
| |
| 2018-11-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Add basic support for Fortran binaries |
| * src/abg-dwarf-reader.cc (die_pretty_print_type): Support |
| DW_TAG_string_type DIEs. They all have the same representation |
| for now. |
| |
| 2018-11-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Some light style change in abidiff.cc |
| * tools/abidiff.cc (adjust_diff_context_for_kmidiff): Take a |
| reference to diff_context rather than a pointer. |
| (main): Adjust. |
| |
| 2018-11-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Add a --fail-no-debug-info to abidiff |
| * doc/manuals/abidiff.rst: Document the new --fail-no-debug-info |
| option. |
| * tools/abidiff.cc (options::fail_no_debug_info): Define new data |
| member. |
| (display_usage): Provide a help string for the new |
| --fail-no-debug-info option. |
| (parse_command_line): Parse the new option. |
| (main): If --fail-no-debug-info and no debug info was found, or |
| not alternate debuginfo file was found, bail out. |
| |
| 2018-11-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Support having several debuginfo search dirs for a binary |
| * doc/manuals/abidiff.rst: Adjust doc for the |
| --debug-info-dir{1,2} that can now be provided several times. |
| * include/abg-dwarf-reader.h ({create, reset}_read_context) |
| (read_corpus_from_elf): Take a vector of debug info root dirs. |
| * include/abg-tools-utils.h (trim_leading_string) |
| (find_file_under_dir, make_path_absolute_to_be_freed) |
| (convert_char_stars_to_char_star_stars): Declare new functions. |
| * src/abg-dwarf-reader.cc (find_alt_debug_info_link): Renamed |
| find_alt_debug_info_location into this. |
| (find_alt_debug_info_path): Define new static function. |
| (find_alt_debug_info): Take a vector of debug info root dirs. Use |
| the new find_alt_debug_info_path to look into the debug info root |
| dirs for the alt debug info. |
| (read_context::debug_info_root_paths_): Define new data member. |
| (read_context::read_context): Take a vector of debug info root |
| dirs and initialize the new read_context::debug_info_root_paths_. |
| (read_context::{initialize, create_default_dwfl}): Take a vector |
| of debug info root dirs and adjust. |
| (read_context::{add_debug_info_root_paths, |
| add_debug_info_root_path, find_alt_debug_info}): Define new member |
| functions. |
| (read_context::load_debug_info): Look into the debug info roots |
| for split debug info files. |
| (create_read_context, read_corpus_from_elf): Take a vector of |
| debug info root dirs and adjust. |
| (has_alt_debug_info): Adjust. |
| * src/abg-tools-utils.cc (trim_leading_string) |
| (make_path_absolute_to_be_freed, find_file_under_dir) |
| (convert_char_stars_to_char_star_stars): Define new functions. |
| (entry_of_file_with_name): Define new static function. |
| (build_corpus_group_from_kernel_dist_under): Adjust. |
| * tests/print-diff-tree.cc (main): Adjust. |
| * tests/test-diff-dwarf.cc (main): Adjust. |
| * tests/test-ir-walker.cc (main): Adjust. |
| * tests/test-read-dwarf.cc (main): Adjust. |
| * tools/abicompat.cc (main): Adjust. |
| * tools/abidiff.cc (options::di_root_paths{1,2}): Changed |
| di_root_path{1,2} into this, change their types into vectors of |
| allocated char*. |
| (options::prepared_di_root_paths{1,2}): Define new data members. |
| (options::~options): Define new destructor. |
| (parse_command_line): Adjust. |
| (prepare_di_root_paths): Define new static function. |
| (handle_error): Remove arguments input_file_name, |
| debug_info_dir{1,2}. Now just take an instance of options |
| instead. Adjust. |
| (main): Adjust. |
| * tools/abidw.cc (options::dir_root_paths): Renamed dir_root_path |
| into this and make it be a vector of allocated char*. |
| (options::prepared_di_root_paths): Define new data member. |
| (options::~options): Free the allocated char* in |
| options::dir_root_paths. |
| (parse_command_line): Support several --debug-info-dir. |
| (load_corpus_and_write_abixml): Adjust. |
| (prepare_di_root_paths): Define static function. |
| (main): Adjust. |
| * tools/abilint.cc (main): Adjust. |
| * tools/abipkgdiff.cc (compare): Adjust. |
| |
| 2018-10-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Update website for 1.5 |
| * doc/website/mainpage.txt: Update website for 1.5 |
| |
| 2018-10-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.6 |
| * configure.ac: Bump version number to 1.6 |
| |
| 2018-10-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog for 1.5 |
| * ChangeLog: Update automatically by calling make |
| update-changelog. |
| |
| 2018-10-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.5 |
| * NEWS: Update for 1.5 |
| |
| 2018-10-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug rhbz1638554 - assertion failed in is_mostly_distinct_diff |
| * src/abg-comp-filter.cc (is_mostly_distinct_diff): Handle the |
| case of the type diff of the function parameter diff being a |
| distinct diff. |
| |
| 2018-10-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Define UINT64_MAX when it's not defined |
| * src/abg-dwarf-reader.cc: Define UINT64_MAX when it's not defined. |
| |
| 2018-10-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Better support array with unknown upper bound |
| * include/abg-comparison.h |
| (BENIGN_INFINITE_ARRAY_CHANGE_CATEGORY): A new enumerator in the |
| diff_category enum. |
| (EVERYTHING_CATEGORY): Adjust. |
| * src/abg-comparison.cc (get_default_harmless_categories_bitmap): |
| Adjust. |
| (operator<<(ostream& o, diff_category)): Likewise. |
| * include/abg-ir.h (array_type_def::subrange_type::is_infinite): |
| Declare new member function. |
| * src/abg-ir.cc (array_type_def::subrange_type::priv::infinite_): |
| New data member. |
| (array_type_def::subrange_type::priv::priv): Initialize it. |
| (array_type_def::subrange_type::get_length): Better support |
| unknown sized subrange. |
| (array_type_def::subrange_type::is_infinite): Define new member |
| function. |
| * src/abg-comp-filter.cc (has_benign_infinite_array_change): |
| Define new static function. |
| (categorize_harmless_diff_node): Use the new |
| has_benign_infinite_array_change above. |
| * src/abg-dwarf-reader.cc (build_subrange_type): Better recognize a |
| subrange type with unknown upper bound. Represent that with the |
| new array_type_def::subrange_type::is_infinite member property. |
| * src/abg-reader.cc (build_subrange_type): Likewise. |
| * tests/data/test-abidiff/test-PR18166-libtirpc.so.abi: Adjust. |
| * tests/data/test-annotate/libtest23.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test7.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2018-10-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Add default suppression specification for the libvirt project |
| * default.abignore: Suppress changes on functions with symbol |
| version LIBVIRT_PRIVATE in libvirt.so.* shared objects. |
| |
| 2018-10-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Add default suppression specification for the krb5 project |
| * default.abignore: Ignore changes about functions starting with |
| krb5int_.*. |
| |
| 2018-10-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc comment fix |
| * src/abg-suppression.cc (type_suppression::suppresses_diff): Fix |
| comment. |
| |
| 2018-10-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 23708 - categorize void* to pointer change as harmless |
| * include/abg-comparison.h (VOID_PTR_TO_PTR_CHANGE_CATEGORY): New |
| enumerator in the diff_category enum. Also, adjust the |
| EVERYTHING_CATEGORY enumerator. |
| * include/abg-fwd.h (is_void_pointer_type): Declare new function. |
| * src/abg-comp-filter.cc (has_void_ptr_to_ptr_change): Define new |
| static function and ... |
| (categorize_harmless_diff_node): ... use it here. |
| * src/abg-comparison.cc (get_default_harmless_categories_bitmap): |
| Add the new abigail::comparison::VOID_PTR_TO_PTR_CHANGE_CATEGORY |
| category in here. |
| (operator<<(ostream& o, diff_category c)): Add support for the new |
| VOID_PTR_TO_PTR_CHANGE_CATEGORY. |
| * src/abg-ir.cc (is_void_pointer_type): Define new function. |
| * tests/data/Makefile.am: Add the new test material below to source distribution. |
| * tests/data/test-diff-filter/test47-filter-void-ptr-change-report-0.txt: |
| New test reference output. |
| * tests/data/test-diff-filter/test47-filter-void-ptr-change-v{0,1}.c: |
| Source code of the new binary test input below. |
| * tests/data/test-diff-filter/test47-filter-void-ptr-change-v{0,1}.o: |
| New binary test input. |
| * tests/test-diff-filter.cc: Add the test input/output above to |
| test harness. |
| |
| 2018-10-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Categorize CV qualifier changes on fn return types as harmless |
| * include/abg-comparison.h (FN_RETURN_TYPE_CV_CHANGE_CATEGORY): |
| New enumerator for diff_category. |
| (EVERYTHING_CATEGORY): Update. |
| * src/abg-comp-filter.cc (type_diff_has_cv_qual_change_only): |
| Factorize this function out of ... |
| (has_fn_parm_type_cv_qual_change): ... this one. |
| (has_fn_return_type_cv_qual_change): Define new static function. |
| (categorize_harmless_diff_node): Use the new |
| has_fn_return_type_cv_qual_change. |
| * src/abg-comparison.cc (get_default_harmless_categories_bitmap): |
| Adjust to add the new FN_RETURN_TYPE_CV_CHANGE_CATEGORY category. |
| (operator<<(ostream& o, diff_category c)): Support the new |
| FN_RETURN_TYPE_CV_CHANGE_CATEGORY. |
| * tests/data/Makefile.am: Add the new test material below to |
| source distribution. |
| * tests/data/test-diff-filter/test46-fn-return-qual-change-report-0.txt: |
| New reference output for the new input test. |
| * tests/data/test-diff-filter/test46-fn-return-qual-change-v{0,1}.c: |
| New source code for the new binary test input. |
| * tests/data/test-diff-filter/test46-fn-return-qual-change-v{0,1}.o: |
| New binary test input files. |
| * tests/test-diff-filter.cc: Add the new test input above to test |
| harness. |
| |
| 2018-10-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix propagation of private type suppression category |
| * include/abg-comp-filter.h (has_harmful_name_change): Declare new |
| function overloads. |
| * include/abg-comparison.h (PRIVATE_TYPE_CATEGORY): New enumerator |
| for diff_category; |
| (EVERYTHING_CATEGORY): Adjust this enumerator in diff_category; |
| (is_suppressed): Take an output parameter to say if the |
| suppression is a private type suppression. |
| * include/abg-suppression.h (is_private_type_suppr_spec): Take a |
| const reference parameter and add an overload for a shared |
| pointer. |
| * src/abg-comp-filter.cc (has_harmful_name_change): Define new |
| function. |
| * src/abg-comparison-priv.h (diff::priv::is_filtered_out): Diffs |
| of category PRIVATE_TYPE_CATEGORY are also considered filtered |
| out. |
| * src/abg-comparison.cc (diff::is_filtered_out): Adjust to account |
| for canonical diffs of category PRIVATE_TYPE_CATEGORY. |
| (diff::is_suppressed): Add an overload that takes a |
| is_private_type output parameter. Re-write the old overload in |
| terms of the new one. |
| (operator<<(ostream& o, diff_category c)): Handle |
| PRIVATE_TYPE_CATEGORY. |
| (category_propagation_visitor::visit_end): Do not propagate |
| PRIVATE_TYPE_CATEGORY here. Do not propagate |
| HARMLESS_DECL_NAME_CHANGE_CATEGORY either, when the class does |
| have a harmful decl name change. |
| (suppression_categorization_visitor::visit_begin): Set the new |
| PRIVATE_TYPE_CATEGORY category but do not propagate it. |
| (suppression_categorization_visitor::visit_end): Add some |
| comments. |
| * src/abg-default-reporter.cc (default_reporter::report): Avoid |
| reporting typedef underlying types that are in the |
| PRIVATE_TYPE_CATEGORY category. |
| * src/abg-suppression.cc (type_suppression::suppresses_diff): Do |
| not peel typedefs if we are a private type suppression. |
| (is_private_type_suppr_spec): Take a const reference. |
| * tests/data/Makefile.am: Add the new test material below to |
| source distribution. |
| * tests/test-diff-suppr.cc: Use new test binary input. |
| * tests/data/test-diff-filter/test7-report.txt: Adjust. |
| * tests/data/test-diff-suppr/test39-opaque-type-report-0.txt: New |
| test reference output. |
| * tests/data/test-diff-suppr/test39-opaque-type-v{0,1}.c: Source |
| code of new test binary input. |
| * tests/data/test-diff-suppr/test39-opaque-type-v{0,1}.o: New test |
| binary input. |
| * tests/data/test-diff-suppr/test39-public-headers-dir/test39-header-v{0,1}.h: |
| Source code of new test binary input. |
| |
| 2018-09-25 Dodji Seketeli <dodji@redhat.com> |
| |
| PR23641 - confusion when a type definition DIE is matched by a supprspec and its decl DIEs aren't |
| * src/abg-dwarf-reader.cc (get_opaque_version_of_type): If no |
| pre-existing opaque version was found, a new one is created and |
| returned. Take a needed "where_offset" parameter. |
| (build_ir_node_from_die): Adjust the call to |
| get_opaque_version_of_type. |
| |
| 2018-09-21 Dodji Seketeli <dodji@redhat.com> |
| |
| PR23641 - Type definition DIE matched by a supprspec but not its decl |
| *definition* of T, they will be dropped too. |
| We'll end up with those two libraries that are identical (modulo the |
| order in which libabigail sees type declarations and their |
| definitions) and are considered different when a suppression |
| specification makes us drop T: the second library appears to |
| libabigail as if T was removed from it. |
| This is the problem addressed by this patch. |
| When the definition of a type T is suppressed because it's considered |
| private then we look if there was a forward declaration for it |
| elsewhere, that is not matched by the private type suppression |
| specification. If we encountered such a type declaration then it |
| means that declaration is in effect an "opaque" version of T. So |
| rather than just dropping T altogether, we keep (and build an IR) for |
| its opaque version only. And we drop the definition of T. |
| This seems to fix the issue. |
| I can't seem to reproduce the slight re-ordering of DIEs descriptions that |
| uncover the issue so I'll rely on integration tests to catch future |
| regressions on this issue, rather than on unit tests. Sigh. |
| * include/abg-tools-utils.h (PRIVATE_TYPES_SUPPR_SPEC_NAME): |
| Remove this extern constant definition. |
| * src/abg-dwarf-reader.cc (type_is_suppressed): Add an overload |
| that takes an additional type_is_private output parameter. |
| (get_opaque_version_of_type): New static function. |
| (build_ir_node_from_die): For class types, get the opaque version |
| for suppressed private types rather than dropping them altogether. |
| * src/abg-reader.cc (type_is_suppressed): Adjust. |
| * src/abg-suppression-priv.h (type_is_suppressed): Add an overload |
| that takes a type_is_private output parameter. |
| * include/abg-suppression.h (get_private_types_suppr_spec_label) |
| (is_private_type_suppr_spec): Declare new functions. |
| * src/abg-suppression.cc |
| (get_private_types_suppr_spec_label, is_private_type_suppr_spec): |
| Define new functions. |
| (suppression_matches_type_name_or_location): Use the new |
| get_private_types_suppr_spec_label rather than a global extern |
| variable. |
| * src/abg-tools-utils.cc (handle_fts_entry): Adjust to use the new |
| get_private_types_suppr_spec_label. |
| (gen_suppr_spec_from_headers): Handle the case or an empty headers |
| root dir. |
| |
| 2018-09-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Add option to avoid walking abigail::ir nodes twice |
| * include/abg-ir.h (struct ir_node_visitor): Make this be a class. |
| Add a private data member to it, following the 'pimpl' idiom. |
| (ir_node_visitor::{allow_visiting_already_visited_type_node, |
| mark_type_node_as_visited, forget_visited_type_nodes, |
| type_node_has_been_visited}): Declare new member functions. |
| * src/abg-ir.cc ({type_base, type_decl, scope_type_decl, |
| qualified_type_decl, pointer_type_def, reference_type_def, |
| array_type_def, enum_type_decl, typedef_decl, class_or_union, |
| class_decl, union_decl}::traverse): Avoid re-visiting the type |
| node if the visitor was configured as such. |
| (struct ir_node_visitor::priv): Define new struct. |
| (ir_node_visitor::{allow_visiting_already_visited_type_node, |
| mark_type_node_as_visited, forget_visited_type_nodes, |
| type_node_has_been_visited}): Define new member functions. |
| * tests/test-ir-walker.cc |
| (name_printing_visitor::name_printing_visitor): Avoid visiting a |
| type node twice. |
| |
| 2018-08-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix apidoc of dwarf_reader::get_soname_of_elf_file |
| * src/abg-dwarf-reader.cc (get_soname_of_elf_file): Document the |
| first parameter. Remove bogus documentation of the previous 'elf' |
| parameter. |
| |
| 2018-08-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 23533 - Accept '=' in ini property values |
| * src/abg-ini.cc (char_is_delimiter): Take a new include_equal |
| flag to control is the equal character should be considered as a |
| delimiter or not. |
| (char_is_property_value_char): Accept the equal character as a |
| valid property value character. |
| * tests/Makefile.am: Build a new runtestini test from the new |
| tests/test-ini.cc source file. |
| * tests/data/Makefile.am: Add the two new test inputs below to |
| source distribution. |
| * tests/data/test-ini/test01-equal-in-property-string.{abignore, |
| abignore.expected}: New test inputs. |
| * tests/test-ini.cc: New test harness. |
| |
| 2018-08-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Make test-ir-walker work on ELF binaries directly |
| * test-ir-walker.cc (main): Load an ABI corpus from an elf file |
| and walk its translation units. |
| |
| 2018-07-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Allow use of python even when fedabipkgdiff is disabled |
| * configure.ac: Detect the presence and version of python even |
| when fedabipkgdiff is disabled. |
| |
| 2018-07-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.5 |
| * configure.ac: Bump version number to 1.5 |
| |
| 2018-07-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog for 1.4 release |
| * ChangeLog: Update this using make update-changelog |
| |
| 2018-07-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.4 release |
| * NEWS: Added 1.4 entries |
| |
| 2018-07-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Properly add test materials for test-diff-suppr/test38-char-class-in-ini* |
| * tests/data/Makefile.am: Add proper path for |
| test-diff-suppr/test38-char-class-in-ini*. |
| |
| 2018-07-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Allow square brackets in ini property values |
| * src/abg-ini.cc (char_is_delimiter): Possibly disallow square |
| bracket characters into the set of delimiters. |
| * tests/data/test-diff-suppr/test38-char-class-in-ini-report-0.txt: |
| New reference output. |
| * tests/data/test-diff-suppr/test38-char-class-in-ini-v{0,1}.c: |
| Source code new test binaries. |
| * tests/data/test-diff-suppr/test38-char-class-in-ini-v{0,1}.o: |
| New test binaries. |
| * tests/data/test-diff-suppr/test38-char-class-in-ini.abignore: |
| New test abi suppression file. |
| * tests/data/Makefile.am: Add the new test materials above to |
| source distribution. |
| * tests/test-diff-suppr.cc: Add the test materials above to the |
| set of tests to run. |
| |
| 2018-07-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix race between runtestdefaultsupprs{py3.sh,.py} |
| * tests/Makefile.am: Run runtestdefaultsupprspy3.sh if we are in |
| python3 mode otherwise run runtestdefaultsupprs.py. |
| |
| 2018-06-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Ensure die_function_type_is_method_type returns a class type die |
| * src/abg-dwarf-reader.cc (die_peel_typedef): Define new static |
| function. |
| (die_function_type_is_method_type): Use the function above to peel |
| the class die from potential typedefs wrapping it. |
| |
| 2018-06-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style adjustements |
| * include/abg-suppression.h |
| (function_suppression::ADDED_FUNCTION_CHANGE_KIND): Fix the |
| comment of this enumerator. |
| (suppresses_variable): Cleanup parameter name. |
| * src/abg-comparison.cc: Remove useless horizontal space. |
| * src/abg-suppression.cc |
| (variable_suppression::suppresses_variable): Fix typo. |
| |
| 2018-06-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Initial basic support of union type in suppression specifications |
| * src/abg-suppression.cc (suppression_matches_type_no_name): |
| Support union types. |
| |
| 2018-06-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Filter out changes like type to const type |
| * include/abg-comparison.h (FN_PARM_TYPE_CV_CHANGE_CATEGORY): Add |
| this new enumerator to the diff_category enum. Also, OR this to |
| the value of the EVERYTHING_CATEGORY enumerator. |
| * src/abg-comp-filter.cc (has_fn_parm_type_top_cv_qual_change): |
| Rename has_fn_parm_type_cv_qual_change into this. |
| (has_fn_parm_type_cv_qual_change): New function. |
| (categorize_harmless_diff_node): Categorize cv qual changes as |
| being of category FN_PARM_TYPE_CV_CHANGE_CATEGORY. |
| * src/abg-comparison.cc (get_default_harmless_categories_bitmap): |
| Add FN_PARM_TYPE_CV_CHANGE_CATEGORY to the default harmless |
| categories. |
| * 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: Adjust. |
| |
| 2018-06-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix redundancy detection through fn ptr and typedef paths |
| * include/abg-comparison.h |
| (is_function_type_diff_with_local_changes) |
| (is_reference_or_pointer_diff_to_non_basic_distinct_types) |
| (peel_typedef_diff): Declare new functions. |
| * src/abg-comparison.cc |
| (is_function_type_diff_with_local_changes) |
| (is_reference_or_ptr_diff_to_non_basic_nor_distinct_types) |
| (peel_typedef_diff): Define new functions. |
| (is_reference_or_pointer_diff): Peel typedefs before operating. |
| (redundancy_marking_visitor::visit_begin): Only sibbling parameter |
| diff node that carry basic type changes (or distinct type changes) |
| are *not* marked as redundant. All other kinds of sibbling |
| parameter diff nodes are markes redundant. Also, rather than |
| never marking function type diffs as redundant by fear of missing |
| local changes on these, just avoid marking function type diff |
| nodes with local changes. It's possible to be that precise now |
| that we can detect that a diff node carries local changes. |
| * tests/data/test-diff-suppr/test37-opaque-type-v{0,1}.o: New |
| binary tests input. |
| * tests/data/test-diff-suppr/test37-opaque-type-v{0,1}.c: Source |
| code of the binary tests input above. |
| * tests/data/test-diff-suppr/test37-opaque-type-header-dir/test37-opaque-type-header-v{0,1}.h: |
| Headers of the binary tests input above. |
| * tests/data/test-diff-suppr/test37-opaque-type-report-0.txt: |
| Reference output for this new test. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-suppr.cc (in_out_specs): Add the new test input |
| above to the test harness. |
| |
| 2018-06-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix indentation of help string in abipkgdiff |
| * tools/abipkgdiff.cc (display_usage): Fix indentation of help |
| string. |
| |
| 2018-06-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Identify a function using its symbol name and version |
| * src/abg-default-reporter.cc (default_reporter::report): In C, |
| tell the user about the underlying function symbol name only if |
| said symbol name is different from the name of the function. |
| * src/abg-ir.cc (function_decl::get_id): If the function has an |
| underlying symbol, use the symbol name and version as the function |
| ID. But if the function symbol has an alias then use the linkage |
| name as the ID. |
| * tests/data/test-diff-pkg/elfutils-debuginfo-0.170-4.el7.x86_64.rpm: |
| New binary test input. |
| * tests/data/test-diff-pkg/elfutils-debuginfo-0.171-1.el7.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/elfutils-devel-0.170-4.el7.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/elfutils-devel-0.171-1.el7.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/elfutils-libs-0.170-4.el7.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/elfutils-libs-0.171-1.el7.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/elfutils-libs-0.170-4.el7.x86_64-multiple-sym-vers-report-0.txt: |
| New reference test output. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Integrate the new test |
| inputs above into the harness. |
| |
| 2018-06-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version to 1.4 |
| * configure.ac: Bump version to 1.4 |
| |
| 2018-06-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Explicitely detect anonymous data member changes |
| * include/abg-comp-filter.h (has_anonymous_data_member_change): |
| Add new function declaration. |
| * include/abg-fwd.h (is_data_member, is_anonymous_data_member): |
| declare new overloads. |
| * src/abg-comp-filter.cc (has_anonymous_data_member_change): |
| Define new overloads. |
| * src/abg-ir.cc (is_data_member, is_anonymous_data_member): Define |
| new overloads. |
| * src/abg-reporter-priv.cc (represent): In the var_diff overload, |
| detect when we have anonymous data member changes and emit |
| explicit error messages then. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-report-0.txt: |
| New test material. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-v0.cc: Likewise. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-v0.o: Likewise. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-v1.cc: Likewise. |
| * tests/data/test-diff-dwarf/test45-anon-dm-change-v1.o: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to source |
| distribution. |
| * tests/test-diff-dwarf.cc (in_out_specs): Add the new test |
| material above to the test harness. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise. |
| |
| 2018-06-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Add test44-anon-struct-union-v{0,1}.o to source distribution |
| * tests/data/Makefile.am: Add |
| test-diff-dwarf/test44-anon-struct-union-v{0,1}.o files to source |
| distribution. |
| |
| 2018-06-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Use the flat representation for anonymous struct/unions |
| * src/abg-ir.cc (get_class_or_union_flat_representation): Take a |
| const class_or_union* (like what the declaration in the header |
| file says), rather than just a class_or_union*. |
| ({class,union}_decl::get_pretty_representation): For anonymous |
| classes and unions, use the flat representation. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-diff-dwarf/test43-PR22913-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test44-anon-struct-union-report-0.txt: |
| New test reference output. |
| * tests/data/test-diff-dwarf/test44-anon-struct-union-v{0,1}.cc: |
| Source code of new test binary outputs. |
| * tests/data/test-diff-dwarf/test44-anon-struct-union-v{0,1}.o: |
| New test binary outputs. |
| * tests/data/Makefile.am: Add the new test materials above to |
| source districution. |
| * tests/test-diff-dwarf.cc (in_out_specs): Add the new test |
| material above to the test harness here. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| |
| 2018-06-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Better detect when pointer and qualified types carry local changes |
| * src/abg-comparison.cc |
| (leaf_diff_node_marker_visitor::visit_begin): Do not mark |
| qualified types as leaf diff nodes. |
| (redundancy_marking_visitor::visit_end): Changes to qualified type |
| are never considered local. This is just as for pointer and |
| reference types. |
| * src/abg-default-reporter.cc |
| (default_reporter::report_local_reference_type_changes): Display |
| structural changes of the pointed-to type. |
| (default_reporter::report): In the overload for reference_diff, |
| better detect and handle when we have local changes, or not. |
| * src/abg-ir.cc (equals): In the overload for qualified_type_def |
| and reference_type_de, report local type changes of the underlying |
| type as local changes. Add comments in the overload for pointer |
| type, and make it look like the the overload for reference_type. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): In the |
| overload for pointer_diff, remove end of line. |
| * tests/data/test-diff-filter/libtest45-basic-type-change-report-1.txt: Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise. |
| |
| 2018-05-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Better detect when diff nodes only carry local type changes |
| * include/abg-comparison.h ({diff, type_diff_base, decl_diff_base, |
| distinct_diff, var_diff, pointer_diff, reference_diff, array_diff, |
| qualified_type, enum_diff, class_or_union_diff, class_diff, |
| base_diff, scope_diff, fn_parm_diff, function_type_diff, |
| function_decl_diff, typedef_diff, |
| translation_unit_diff}::has_local_changes): Return an enum |
| change_kind, rather than just a bool. |
| (is_diff_of_basic_type): Declare an overload that takes a boolean |
| flag. |
| (is_qualified_type_diff, peel_pointer_diff, peel_reference_diff) |
| (peel_qualified_type, peel_pointer_or_qualified_type): Declare new |
| functions |
| * include/abg-fwd.h (peel_qualified_type): |
| * include/abg-ir.h (enum change_kind::{LOCAL_TYPE_CHANGE_KIND, |
| LOCAL_NON_TYPE_CHANGE_KIND, ALL_LOCAL_CHANGES_MASK}): Add these |
| three new enumerators. |
| * src/abg-comparison.cc ({distinct_diff, var_diff, pointer_diff, |
| array_diff, reference_diff, qualified_type_diff, enum_diff, |
| class_or_union_diff, class_diff, base_diff, scope_diff, |
| fn_parm_diff, function_type_diff, function_decl_diff, |
| type_decl_diff, typedef_diff, |
| translation_unit_diff}::has_local_changes): Adjust to return an |
| enum change_kind, rather than just a bool. |
| (has_local_type_change_only): Define new functions. |
| (has_basic_type_change_only): Use the new |
| has_local_type_change_only function and the new overload for |
| is_diff_of_basic_type. |
| (is_diff_of_basic_type): Define an overload that takes a boolean |
| flag. |
| (is_qualified_type_diff, peel_pointer_diff, peel_reference_diff) |
| (peel_qualified_type, peel_pointer_or_qualified_type): Define new |
| functions. |
| * src/abg-ir.cc (equals): In the overloads for decl_base, |
| scope_decl, type_base, qualified_type_diff, pointer_type_def, |
| reference_type_def, array_type_def, enum_type_decl, typedef_decl, |
| var_decl, function_type, function_decl, function_decl::parameter, |
| class_or_union, class_decl::base_spec and class_decl, properly set |
| the new abigail::ir::{LOCAL_CHANGE_KIND, |
| LOCAL_NON_TYPE_CHANGE_KIND, LOCAL_TYPE_CHANGE_KIND} bits. |
| (types_have_similar_structure): Peel qualified types and typedefs |
| off, first thing. |
| (peel_qualified_or_typedef_type): Define new function. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Adjust. |
| * tests/data/test-diff-filter/libtest45-basic-type-change-report-{0,1}.txt: |
| New reference test reports. |
| * tests/data/test-diff-filter/libtest45-basic-type-change-v{0,1}.so: |
| New input test binaries. |
| * tests/data/test-diff-filter/test45-basic-type-change-v{0,1}.cc: |
| Source code of the input test binaries above. |
| * tests/data/Makefile.am: Add the new test file above to source |
| distribution. |
| * tests/test-diff-filter.cc: Add the test input above to the test |
| harness. |
| |
| 2018-05-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Improve detection of local *type* changes |
| * include/abg-fwd.h (is_type_decl): Declare new overload for |
| type_base*. |
| (types_have_similar_structure): Declare new function. |
| * src/abg-comparison.cc |
| (class_or_union_diff::priv::count_filtered_changed_dm): Even when |
| looking at local changes only, do not forget to count nodes that |
| were filtered out. |
| * src/abg-ir.cc (types_have_similar_structure): Define new |
| function. |
| (is_type_decl): Define new overload for |
| type_base*. |
| (is_enum_type): |
| (equals): In the overload for var_decl, use the new |
| types_have_similar_structure function to detect local (type) |
| changes. |
| * src/abg-reporter-priv.cc (represent): In the overload for |
| var_decl, use the diff::has_local_changes function to detect local |
| changes, now that we can better detect local changes. |
| * tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt: |
| Adjust. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Likewise. |
| |
| 2018-05-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Remove references, arrays and fn parms from leaf diff nodes |
| * src/abg-comparison.cc |
| (leaf_diff_node_marker_visitor::visit_begin): Do not mark |
| references, array and fn parms diff nodes as leaf nodes. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Adjust. |
| |
| 2018-05-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typo in tests/runtestdefaultsupprs.py |
| * tests/runtestdefaultsupprs.py.in: Fix typo. |
| |
| 2018-05-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog |
| * ChangeLog: Update this file automatically by running the "make |
| update-changelog" command. |
| |
| 2018-05-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.3 release |
| * NEWS: Update for 1.3. |
| |
| 2018-05-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't bail because "rpm" issued an error |
| * src/abg-tools-utils.cc (get_dsos_provided_by_rpm): Do not fail |
| when the rpm command issues an error. Rather rely on the presence |
| of a valid output or not. Also, make sure to filter out error |
| outputs so that they don't appear in the general output of tools |
| using this function. |
| |
| 2018-05-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Handle cases where no python2 interpreter is found |
| * configure.ac: When no python2 is found and only python3 is |
| found, then use python3. |
| |
| 2018-05-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Use the correct python interpreter in runtestdefaultsupprs.py |
| * configure.ac: Make the PYTHON environemnt variable usable in |
| auto-generated files. |
| * tests/runtestdefaultsupprs.py.in: Use the python interpreter |
| detected by configure. |
| |
| 2018-05-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Use the dynamically selected python for Koji configure tests |
| * configure.ac: Use the python interpreter that was selected by |
| the configure script for the Koji version test. |
| |
| 2018-05-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Sort the output of the leaf reporter |
| * include/abg-comparison.h (diff_ptrs_type): Define new typedef. |
| * src/abg-comparison-priv.h (sort_string_diff_ptr_map): Declare |
| new function. |
| * src/abg-comparison.cc (sort_string_diff_sptr_map): Update |
| comment. |
| (sort_string_diff_ptr_map): Define new function. |
| * src/abg-leaf-reporter.cc (report_diffs): Sort the diff nodes |
| before reporting about them. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Adjust. |
| |
| 2018-05-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Show data member offsets in bytes too |
| * src/abg-reporter-priv.cc (represent): In the overload for |
| var_diff_sptr, use the function show_offset_or_size, rather than |
| emit_num_value. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Adjust. |
| * tests/data/test-diff-filter/test44-anonymous-data-member-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test44-anonymous-data-member-report-1.txt: Adjust. |
| |
| 2018-05-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Initial support of anonymous data members |
| * include/abg-comparison.h (is_class_or_union_diff) |
| (is_anonymous_class_or_union_diff): Declare new functions. |
| * include/abg-fwd.h (is_class_type): Declare new overload for |
| type_or_decl_base&. |
| (is_data_member): Declare new overload for decl_base*. |
| (is_anonymous_data_member) |
| (anonymous_data_member_to_class_or_union) |
| (get_class_or_union_flat_representation) |
| (data_member_has_anonymous_type): Declare new functions. |
| (is_at_class_scope): Return the class or union scope. |
| * include/abg-ir.h (var_decl::get_qualified_name): New virtual |
| data member which overloads decl_base::get_qualified_name. |
| * src/abg-comparison.cc (is_class_or_union_diff) |
| (is_anonymous_class_or_union_diff): Define new functions |
| (leaf_diff_node_marker_visitor::visit_begin): Don't mark anonymous |
| class or union diff nodes as diff nodes. |
| * src/abg-ir.cc (is_data_member): Define new overload for |
| decl_base*. |
| (is_class_type, is_union_type): Define new overload for type_or_decl_base&. |
| (is_anonymous_data_member) |
| (anonymous_data_member_to_class_or_union) |
| (get_class_or_union_flat_representation) |
| (data_member_has_anonymous_type): Define new function overloads. |
| (var_decl::get_qualified_name): Define new virtual member |
| function. |
| (is_at_class_scope): Return the class or union scope. |
| (var_decl::get_pretty_representation): Support anonymous data |
| members. |
| (equals): In the overload for class_or_union_diff, mark data |
| member textual representation changes as local changes. |
| * src/abg-reporter-priv.cc (represent): In the overload for |
| var_diff, support changes to anonymous data members. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Report sorted |
| -- by offset -- data member changes before the ones that are |
| sorted by other things. |
| * tests/data/test-diff-filter/libtest44-anonymous-data-member-v{0,1}.so: |
| New binary test input |
| * tests/data/test-diff-filter/test44-anonymous-data-member-report-{0,1}.txt: |
| New reference test outputs. |
| * tests/data/test-diff-filter/test44-anonymous-data-member-v{0,1}.c: |
| Source code of the new binary test output above. |
| * tests/data/Makefile.am: Add the new test files above to the |
| source distribution. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust test reference |
| output. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-diff-dwarf/test43-PR22913-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Likewise. |
| |
| 2018-04-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Represent sizes and offsets in bytes and hexadecimal values |
| * doc/manuals/abidiff.rst: Add documentation for the new |
| --show-bits, --show-bytes, --show-hex and --show-dec options. |
| * doc/manuals/abipkgdiff.rst: Likewise. |
| * doc/manuals/kmidiff.rst: Likewise. |
| * include/abg-comparison.h (diff_context::{show_hex_values, |
| show_offsets_sizes_in_bits}): Declare new member functions. |
| * src/abg-comparison-priv.h (diff_context::priv::{hex_values_, |
| show_offsets_sizes_in_bits_}): Declare new data members. |
| (diff_context::priv::priv): Initialize them. |
| * src/abg-comparison.cc (diff_context::{show_hex_values, |
| show_offsets_sizes_in_bits}): Define new member functions. |
| * src/abg-default-reporter.cc (default_reporter::report): Adjust |
| the call to maybe_report_diff_for_symbol. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Likewise. |
| * src/abg-reporter-priv.h (convert_bits_to_bytes) |
| (maybe_convert_bits_to_bytes, emit_num_value, show_offset_or_size) |
| (show_numerical_change): Declare new functions. |
| (maybe_report_diff_for_symbol): Take a diff_context in parameter. |
| * src/abg-reporter-priv.cc (convert_bits_to_bytes, emit_num_value) |
| (maybe_convert_bits_to_bytes, show_numerical_change) |
| (show_offset_or_size): Define new functions. |
| (represent): In the overload for method_decl, var_decl, use the |
| new emit_num_value function. |
| (represent_data_member): Use the new show_offset_or_size function. |
| (maybe_show_relative_offset_change): Use the new |
| convert_bits_to_bytes, diff_context::show_offsets_sizes_in_bits, |
| emit_num_value functions. |
| (maybe_show_relative_offset_change): Likewise. |
| (report_size_and_alignment_changes): Use the new emit_num_value |
| and show_numerical_change functions. |
| (maybe_report_diff_for_symbol): Tak a diff_context in argument. |
| Use the new show_numerical_change function. |
| * tests/test-diff-filter.cc (in_out_spec): Add a new entry to test |
| hexa and bytes output. |
| * tools/abidiff.cc (options::{show_hexadecimal_values, |
| show_offsets_sizes_in_bits}): New data members. |
| (options::options): Initialize them. |
| (display_usage): New help strings for the new |
| --show{bytes,bits,hex,dec} options. |
| (parse_command_line): Parse the new --show{bytes,bits,hex,dec} options. |
| (set_diff_context_from_opts) Set the diff context wrt hex and |
| bytes values. |
| * tools/abipkgdiff.cc (options::{show_hexadecimal_values, |
| show_offsets_sizes_in_bits}): New data members. |
| (options::options): Initialize them. |
| (display_usage): New help strings for the new |
| --show{bytes,bits,hex,dec} options. |
| (set_diff_context_from_opts): Set the diff context wrt hex and |
| bytes values. |
| (parse_command_line): Parse the new --show{bytes,bits,hex,dec} |
| options. |
| * tools/kmidiff.cc (options::{show_hexadecimal_values, |
| show_offsets_sizes_in_bits}): New data members. |
| (options::options): Initialize them. |
| (display_usage):New help strings for the new |
| --show{bytes,bits,hex,dec} options. |
| (parse_command_line): Parse the new --show{bytes,bits,hex,dec} |
| options. |
| (set_diff_context): Set the diff context wrt hex and bytes values. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt: |
| New reference test output. |
| * tests/data/Makefile.am: Add the new reference test output above |
| to source distribution. |
| * tests/data/test-abicompat/test0-fn-changed-report-0.txt: Adjust. |
| * tests/data/test-abicompat/test0-fn-changed-report-2.txt: Likewise. |
| * tests/data/test-abicompat/test5-fn-changed-report-0.txt: Likewise. |
| * tests/data/test-abicompat/test5-fn-changed-report-1.txt: Likewise. |
| * tests/data/test-abicompat/test6-var-changed-report-0.txt: Likewise. |
| * tests/data/test-abicompat/test6-var-changed-report-1.txt: Likewise. |
| * tests/data/test-abicompat/test7-fn-changed-report-0.txt: Likewise. |
| * tests/data/test-abicompat/test7-fn-changed-report-1.txt: Likewise. |
| * tests/data/test-abicompat/test7-fn-changed-report-2.txt: Likewise. |
| * tests/data/test-abicompat/test8-fn-changed-report-0.txt: Likewise. |
| * tests/data/test-abicompat/test9-fn-changed-report-0.txt: Likewise. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Likewise. |
| * tests/data/test-abidiff/test-qual-type0-report.txt: Likewise. |
| * tests/data/test-abidiff/test-struct0-report.txt: Likewise. |
| * tests/data/test-abidiff/test-struct1-report.txt: Likewise. |
| * tests/data/test-abidiff/test-var0-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test0-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test1-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test10-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test11-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test13-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test21-redundant-fn-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test22-changed-parm-c-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test26-added-parms-before-variadic-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test27-local-base-diff-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test3-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test34-pr19173-libfoo-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-clang-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test35-pr19173-libfoo-long-gcc-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test37-union-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test39-union-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test40-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test43-PR22913-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test8-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test9-report.txt: Likewise. |
| * tests/data/test-diff-filter/test0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test01-report.txt: Likewise. |
| * tests/data/test-diff-filter/test1-report.txt: Likewise. |
| * tests/data/test-diff-filter/test10-report.txt: Likewise. |
| * tests/data/test-diff-filter/test11-report.txt: Likewise. |
| * tests/data/test-diff-filter/test13-report.txt: Likewise. |
| * tests/data/test-diff-filter/test14-0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test14-1-report.txt: Likewise. |
| * tests/data/test-diff-filter/test15-0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test15-1-report.txt: Likewise. |
| * tests/data/test-diff-filter/test16-report-2.txt: Likewise. |
| * tests/data/test-diff-filter/test16-report.txt: Likewise. |
| * tests/data/test-diff-filter/test17-0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test17-1-report.txt: Likewise. |
| * tests/data/test-diff-filter/test2-report.txt: Likewise. |
| * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt: Likewise. |
| * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test3-report.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test32-ppc64le-struct-change-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test37-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test39/test39-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test42-leaf-report-output-0.txt: Likewise. |
| * tests/data/test-diff-filter/test6-report.txt: Likewise. |
| * tests/data/test-diff-filter/test9-report.txt: Likewise. |
| * tests/data/test-diff-pkg/dirpkg-1-report-1.txt: Likewise. |
| * tests/data/test-diff-pkg/dirpkg-3-report-1.txt: Likewise. |
| * tests/data/test-diff-pkg/dirpkg-3-report-2.txt: Likewise. |
| * tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt: Likewise. |
| * 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. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Likewise. |
| * tests/data/test-diff-pkg/symlink-dir-test1-report0.txt: Likewise. |
| * tests/data/test-diff-pkg/tarpkg-0-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/tarpkg-1-report-0.txt: Likewise. |
| * 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. |
| * 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. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test11-add-data-member-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test12-add-data-member-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test12-add-data-member-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test13-suppr-through-pointer-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test13-suppr-through-pointer-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test14-suppr-non-redundant-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test14-suppr-non-redundant-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test23-alias-filter-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test23-alias-filter-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-10.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-16.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test25-typedef-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test26-loc-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test26-loc-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-8.txt: Likewise. |
| * tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test30-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test31-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test32-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test32-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test33-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test35-leaf-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test4-local-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test4-local-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-8.txt: Likewise. |
| * tests/data/test-diff-suppr/test8-redundant-fn-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test8-redundant-fn-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test9-changed-parm-c-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test9-changed-parm-c-report-1.txt: Likewise. |
| |
| 2018-04-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Use absolute builddir paths in automake test files |
| * tests/runtestdefaultsupprs.py.in: Use abs_top_builddir rather |
| than top_builddir. |
| |
| 2018-04-10 Jonathan Wakely <jwakely@redhat.com> |
| |
| Use std::string::substr instead of appending single chars |
| * src/abg-ini.cc (trim_white_space): Use std::string::substr |
| instead of appending single chars. |
| |
| 2018-04-10 Jonathan Wakely <jwakely@redhat.com> |
| |
| Rename misleading remove_trailing_white_spaces functions |
| * include/abg-tools-utils.h (trim_white_space): Renamed |
| remove_trailing_white_spaces into this. |
| * src/abg-ini.cc (trim_white_space): Likewise. |
| * src/abg-tools-utils.cc (get_dsos_provided_by_rpm): Adjust. |
| |
| 2018-04-10 Jonathan Wakely <jwakely@redhat.com> |
| |
| Remove unused local set<string> variables |
| * src/abg-tools-utils.cc (get_dsos_provided_by_rpm): Remove unsed |
| set<string> variable. |
| * tools/abipkgdiff.cc (maybe_create_public_dso_sonames_set): |
| Likewise. |
| |
| 2018-04-10 Jonathan Wakely <jwakely@redhat.com> |
| |
| Remove assertion with side-effects |
| * src/abg-tools-utils.cc (get_dsos_provided_by_rpm): Fix |
| std::string::sbustr and remove assert with side effect. |
| |
| 2018-04-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style changes |
| * src/abg-comparison.cc (category_propagation_visitor): Adjust comment. |
| * src/abg-default-reporter.cc |
| (default_reporter::report_local_function_type_changes): Remove |
| useless new line. |
| |
| 2018-04-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Update tests for the "better leaf mode redundancy management" patchset |
| * tests/data/test-abidiff-exit/test1-voffset-change-report1.txt: Adjust. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Likewise. |
| * tests/data/test-abidiff/test-enum0-report.txt: Likewise. |
| * tests/data/test-abidiff/test-enum1-report.txt: Likewise. |
| * tests/data/test-diff-filter/test1-report.txt: Likewise. |
| * tests/data/test-diff-filter/test14-0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test15-0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test17-0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test28-redundant-and-filtered-children-nodes-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test3-report.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise. |
| * tests/data/test-diff-filter/test32-ppc64le-struct-change-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test4-report.txt: Likewise. |
| * tests/data/test-diff-filter/test41-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test42-leaf-report-output-0.txt: Likewise. |
| * tests/data/test-diff-pkg/dirpkg-3-report-1.txt: Likewise. |
| * tests/data/test-diff-pkg/dirpkg-3-report-2.txt: Likewise. |
| * tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt: Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Likewise. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: Likewise. |
| * 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. |
| * tests/data/test-diff-suppr/test1-typedef-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test13-suppr-through-pointer-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test14-suppr-non-redundant-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test14-suppr-non-redundant-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test15-suppr-added-fn-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test16-suppr-removed-fn-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test17-suppr-added-var-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test18-suppr-removed-var-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test2-struct-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test25-typedef-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-report-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test30-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test34-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test35-leaf-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-9.txt: Likewise. |
| * tests/data/test-diff-suppr/test8-redundant-fn-report-0.txt: Likewise. |
| |
| 2018-04-13 Dodji Seketeli <dodji@redhat.com> |
| |
| [abipkgdiff]: in leaf mode we always show redundant changes |
| * tools/abipkgdiff.cc (set_diff_context_from_opts): |
| diff_context::show_leaf_changes_only automatically makes us show |
| redundant changes. So do not try to show redundant changes in |
| that case. |
| |
| 2018-04-13 Dodji Seketeli <dodji@redhat.com> |
| |
| When we say an a change was reported earlier give its source location |
| * src/abg-reporter-priv.h |
| (RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER2) |
| (RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER3): Report the |
| location of the artifact. |
| |
| 2018-04-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid reporting an enum change if it has already been reported |
| * src/abg-default-reporter.cc (default_reporter::report): In the |
| enum_diff overload, do not report a node if it's always been |
| reported; rather, say that it has been reported earlier. |
| |
| 2018-04-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Always show redundant changes in leaf mode |
| * src/abg-comparison.cc (diff_context::show_leaf_changes_only): |
| Show redundant changes when in leaf mode. |
| |
| 2018-04-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix leaf report of class data member changes |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): In the |
| class_or_uion_diff overload, do not emit the data member changes |
| header twice. |
| * src/abg-reporter-priv.cc (represent): In the var_diff_sptr |
| overload, show data member changes when its textual representation |
| changed. |
| |
| 2018-04-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Only show leaf type changes in the leaf type changes section |
| * src/abg-leaf-reporter.cc (report_type_changes_from_diff_maps): |
| Split this out from leaf_reporter::report_changes_from_diff_maps |
| and make it report only about leaf *type* changes. |
| (leaf_reporter::report_changes_from_diff_maps): Use the new |
| report_type_changes_from_diff_maps function. |
| (leaf_reporter::report): In the overload for corpus_diff, use the |
| new report_type_changes_from_diff_maps function, instead of the |
| report_changes_from_diff_maps function. |
| |
| 2018-04-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't filter out typedef changes with redundant underlying type changes |
| * src/abg-default-reporter.cc (default_reporter::report): In the |
| overload for typedef, report underlying type changes een when they |
| are redundant, if the whole typedef change needs to be repoted. |
| |
| 2018-04-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Improve function changes reporting in leaf and default mode |
| * src/abg-default-reporter.cc (default_reporter::report): In the |
| overload for fn_parm_diff, consider that parameter type changes are |
| never redundant. |
| * src/abg-ir.cc (equals): In the overload for function_type, |
| consider that if the textual representation of the function return |
| type or a function parameter changed, then that's a local change |
| for the current instance of function_type. Likewise, in the |
| overload for function_decl, consider that a change in the textual |
| representation of the function_decl is a local change. Likewise, |
| in the overload of function_decl::parameter, consider that a |
| change in the textual representation of the parameter type is a |
| local change. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Report leaf |
| changes to functions. |
| |
| 2018-04-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Better handle category propagation of pointer changes |
| * src/abg-comparison.cc |
| (leaf_diff_node_marker_visitor::visit_begin): Do not consider |
| local pointer changes as being leaf changes. |
| (suppression_categorization_visitor::visit_end): |
| Allow propagation of the SUPPRESSED_CATEGORY category to pointer |
| diff nodes. |
| (redundancy_marking_visitor::visit_end): Allow propagation of the |
| REDUNDANT_CATEGORY category to pointer diff nodes. |
| * src/abg-ir.cc (equals): In the pointer_type_def overload, |
| consider changes where the textual representation of the |
| pointed-to changed as being local to the pointer type. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): In the |
| pointer_diff overload, report the change in the textual |
| representation of the pointer. |
| |
| 2018-04-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix meaning of "harmless name change" to avoid overfiltering |
| * include/abg-ir.h (enum_has_non_name_change): Declare new |
| * function. Make it a friend of class enum_type_decl. |
| * src/abg-comp-filter.cc (has_harmless_name_change): A typedef |
| name change cannot be harmless if the textual representation of |
| the underlying type changes too. Also, use the new |
| enum_has_non_name_change to tighten the harmless name change |
| definition for an enum. |
| * src/abg-default-reporter.cc |
| (default_reporter::report_local_typedef_changes): If the name of |
| the typedef changed, report it no matter what. |
| * src/abg-ir.cc (enum_has_non_name_change): Define new function. |
| |
| 2018-04-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not mark "distinct" diff nodes as being redundant |
| * include/abg-comp-filter.h (is_mostly_distinct_diff): Declare new |
| function. |
| * include/abg-fwd.h (peel_typedef_pointer_or_reference_type): Take |
| a boolean to decide to peel qualified types or not. |
| * src/abg-comp-filter.cc (is_mostly_distinct_diff): Define this function. |
| * src/abg-comparison.cc (redundancy_marking_visitor::visit_begin): |
| Do not mark distinct_diff nodes as being redundant. |
| * src/abg-ir.cc (peel_typedef_pointer_or_reference_type): |
| Implement taking a boolean to decide to peel qualified types or |
| not. |
| |
| 2018-04-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Overhaul of the report diff stats summary |
| * include/abg-comparison.h |
| (corpus_diff::diff_stats::{num_leaf_type_changes, |
| num_leaf_type_changes_filtered_out, net_num_leaf_type_changes, |
| num_leaf_func_changes, num_leaf_func_changes_filtered_out, |
| net_num_leaf_func_changes, num_leaf_var_changes, |
| num_leaf_var_changes_filtered_out, net_num_leaf_var_changes}): |
| Declare new member functions. |
| * src/abg-comparison-priv.h |
| (corpus_diff::priv::count_leaf_type_changes): Declare new member |
| function. |
| * src/abg-comparison.cc |
| (corpus_diff::diff_stats::net_num_leaf_changes): Fix comment. |
| (corpus_diff::diff_stats::{num_leaf_type_changes, |
| num_leaf_type_changes_filtered_out, net_num_leaf_type_changes, |
| num_leaf_func_changes, num_leaf_func_changes_filtered_out, |
| net_num_leaf_func_changes, num_leaf_var_changes, |
| num_leaf_var_changes_filtered_out, net_num_leaf_var_changes}): |
| Define these member functions. |
| (do_count_diff_map_changes): Move this macro out of ... |
| (corpus_diff::priv::count_leaf_changes): ... this. Also, use |
| the new function corpus_diff::priv::count_leaf_type_changes. |
| (corpus_diff::priv::count_leaf_type_changes): Splitted this out of |
| the previous corpus_diff::priv::count_leaf_changes function. |
| (corpus_diff::priv::apply_filters_and_compute_diff_stats): Account |
| for (filtered) types, functions and variables, in a leaf change |
| manner. |
| (corpus_diff::priv::emit_diff_stats): Emit a better stat summary |
| that takes into account leaf-changed types, functions and |
| variables. |
| |
| 2018-04-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not show decl-only-to-def changes in the leaf reporter |
| * include/abg-comp-filter.h (has_class_decl_only_def_change): |
| Declare this function. |
| * src/abg-comp-filter.cc (has_class_decl_only_def_change): Make |
| this function be non-static. |
| * src/abg-comparison.cc |
| (leaf_diff_node_marker_visitor::visit_begin): Use it to avoid |
| marking class-decl-only-def changes as being leaf changes. |
| * libtest43-decl-only-def-change-leaf-report-v0.so: New test input file. |
| * libtest43-decl-only-def-change-leaf-report-v1.so: Likewise. |
| * test43-decl-only-def-change-leaf-report-0.txt: Likewise. |
| * test43-decl-only-def-change-leaf-report-v0.cc: Likewise. |
| * test43-decl-only-def-change-leaf-report-v1.cc: Likewise. |
| * tests/test-diff-filter.cc (in_out_specs): Run the test over the |
| new test input. |
| * tests/data/Makefile.am: Add the new test materials to source |
| distribution. |
| |
| 2018-03-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't possibly forget type definition when reading a CorpusGroup |
| * src/abg-dwarf-reader.cc (add_or_update_class_type): Look for |
| declaration-only-ness to determine if we've already seen the same |
| type from the main corpus of the group. |
| |
| 2018-03-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't crash when invoking kmidiff with no debug info root dir |
| * tools/kmidiff.cc (main): Do not crash on empty debug info root |
| dir. |
| |
| 2018-03-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not enable fedabipkgdiff tests if fedabipkgdiff itself is disabled |
| * tests/Makefile.am: Run runtestfedabipkgdiff{py3?}.py only if |
| fedabipkgdiff itself is enabled. |
| |
| 2018-03-25 Chenxiong Qi <cqi@redhat.com> |
| |
| Bug 22722 - Make fedabipkgdiff and its tests support both python 3 and 2 |
| * configure.ac: Add new option --enable-python3. Add new |
| test runner file tests/runtestdefaultsupprs-py3 and |
| tests/runtestfedabipkgdiffpy3.sh. Add required six Python module. |
| * tests/Makefile.am: Add new test files |
| tests/runtestdefaultsupprspy3.sh and |
| tests/runtestfedabipkgdiffpy3.sh accordingly. |
| * tests/mockfedabipkgdiff.in: Convert print statement to |
| six.print_. Replace call to function filter with list |
| comprehension. Replace basestring with six.string_types. |
| * tests/runtestdefaultsupprspy3.sh.in: New shell script to run |
| test runtestdefaultsupprs with Python 3. |
| * tests/runtestdefaultsupprs.py.in: Repalce a few tabs with |
| proper number of spaces which is detected by Python 3 |
| interpreter. |
| * tests/runtestfedabipkgdiffpy3.sh.in: New shell script to run |
| test runtestfedabipkgdiff with Python 3. |
| * tests/runtestfedabipkgdiff.py.in: Use python from env in |
| shebang instead of a fixed path to a Python interpreter. |
| * tools/fedabipkgdiff: Globally replace print statement with a |
| function call to print which is available by importing |
| print_function from __future__ module. Use six.print_ to output |
| string to stderr instead. Convert function call to map to |
| for-loop. (cmp_nvr): Change argument to handle a Koji build |
| mapping instead of only the nvr. (Brew.listBuilds): use the new |
| cmp_nvr to sort builds. |
| |
| 2018-03-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Detect the presence of 'rpm' as it's now needed by abipkgdiff |
| * configure.ac: Detect that the 'rpm' is present. Otherwise, |
| disable rpm support. |
| |
| 2018-03-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abipkgdiff avoid comparing private DSOs from RPMs |
| * doc/manuals/abipkgdiff.rst: Add documentation for the new |
| --private-dso option. |
| * include/abg-tools-utils.h (execute_command_and_get_output) |
| (execute_command_and_get_output, remove_trailing_white_spaces): |
| Declare new functions. |
| * src/abg-tools-utils.cc (execute_command_and_get_output) |
| (get_dsos_provided_by_rpm, remove_trailing_white_spaces): Define |
| new functions. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the new --private-dso |
| option where it makes sense. |
| * tools/abipkgdiff.cc (options::compare_private_dsos): Add new |
| data member. |
| (options::options): Initialize it. |
| (package::public_dso_sonames_): Add new data member. |
| (package::public_dso_sonames): Add new accessors pair. |
| (display_usage): Add a help string for the new --private-dso |
| option. |
| (maybe_create_public_dso_sonames_set) |
| (must_compare_public_dso_only): Define new static functions. |
| (create_maps_of_package_content): Call the new |
| maybe_create_public_dso_sonames_set. Skip packages which SONAME |
| is not in the set of public SONAMES. |
| (parse_command_line): Parse the new --private-dso option. |
| |
| 2018-03-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Skip changes to function *types* in the leaf reporter |
| * src/abg-leaf-reporter.cc |
| (leaf_reporter::report_changes_from_diff_maps): Don't report |
| function type changes. |
| |
| 2018-03-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Report change locations in leaf reports |
| * src/abg-leaf-reporter.cc (report_diffs): Report the source |
| location of the diff. |
| * tests/data/test-diff-filter/test42-leaf-report-output-0.txt: |
| Update test reference output. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Likewise. |
| * tests/data/test-diff-suppr/test35-leaf-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: Likewise. |
| |
| 2018-03-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Make the "upload-release" target be usable in parallel |
| * Makefile.am: Re-arrange the upload-release target to make it |
| usable with 'make upload-release -jN'. |
| |
| 2018-03-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.3 |
| * configure.ac: Now that 1.2 is out of the door, bump version |
| number to 1.3 |
| |
| 2018-03-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Update website for 1.2 |
| * doc/website/mainpage.txt: Update link to download the tarball, |
| for 1.2. |
| |
| 2018-03-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog for 1.2 |
| * ChangeLog: Updated automatically by running make update-changelog. |
| |
| 2018-03-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.2 |
| * NEWS: Update for 1.2 |
| |
| 2018-01-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typo in abipkgdiff documenation |
| * doc/manuals/abipkgdiff.rst: Fix a typo |
| |
| 2018-01-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Update abipkgdiff documentation wrt suppression specifications |
| * doc/manuals/abipkgdiff.rst: Mention the .abignore file that is |
| read by the tool and considered as a suppression specification |
| file. |
| |
| 2018-03-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix indentation in the DWARF reader |
| * src/abg-dwarf-reader.cc (build_subrange_type): Fix indentation. |
| |
| 2018-03-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix the output indentation of abidiff --help |
| * tools/abidiff.cc (display_usage): Fix indentation of the help |
| string for the --drop-private-types option. |
| |
| 2018-03-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22913 - Correctly de-duplicate pointers to anonymous structs inside a given |
| * src/abg-dwarf-reader.cc |
| (pointer_or_qual_die_of_anonymous_class_type) |
| (die_is_qualified_type): Define new functions. |
| (compare_dies): If pointers, reference or qualified type have an |
| anonymous struct as their underlying type, then we need to |
| structurally compare the underlying anonymous struct. |
| * tests/data/test-diff-dwarf/libtest43-PR22913-v{0,1}.so: New |
| binary test input files. |
| * tests/data/test-diff-dwarf/test43-PR22913-report-0.txt: New |
| reference output of the comparison of the two binaries above. |
| * tests/data/test-diff-dwarf/test43-PR22913-v{0,1}.c: Source code |
| of the binaries above. |
| * tests/test-diff-dwarf.cc (in_out_specs): Make the test harness |
| compare the two binaries above. |
| * tests/data/Makefile.am: Add the new test files above to the |
| source distribution. |
| |
| 2018-02-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Initial support for Ada ranges |
| * include/abg-ir.h (type_maps::subrange_types): Declare new |
| accessors. |
| (is_ada_language, is_subrange_type): Declare new functions. |
| (class array_type_def::subrange_type): Make this extend type_base |
| and decl_base. |
| (array_type_def::subrange_type::{get_language, operator==, |
| get_pretty_representation, traverse}): Declare new member |
| functions. |
| (ir_node_visitor::visit_begin): Add new overloads for |
| array_type::def::subrange_type. |
| * src/abg-dwarf-reader.cc (build_subrange_type): Define new static |
| function. |
| (build_subranges_from_array_type_die): Cleanup the parameters of |
| this function. |
| (build_array_type): Adjust. |
| (build_ir_node_from_die): Support free-form DW_TAG_subrange_type. |
| (read_context::odr_is_relevant): Handle Ada. |
| (die_qualified_type_name): Support DW_TAG_subrange_type. |
| (die_pretty_print_type): Likewise. Make the handling of |
| DW_TAG_subrange_type use die_qualified_type_name. Adjust the use |
| of build_subranges_from_array_type_die. |
| (get_scope_die): a DW_TAG_array_type cannot be a scope. Rather, |
| it's its scope that can be a scope. |
| * src/abg-ir.cc (type_maps::priv::subrange_types_): New data |
| member. |
| (type_maps::empty): Adjust. |
| (type_maps::subrange_types): Define new accessors. |
| (is_ada_language, is_subrange_type): Define new functions. |
| (odr_is_relevant): Support Ada. |
| (maybe_update_types_lookup_map): Add an overload for |
| array_type_def::subrange_type. In the decl_base_sptr overload, |
| add support for the array_type_def::subrange_type type. |
| (struct array_type_def::subrange_type::priv::location_): Remove |
| this as it's now carried by the parent decl_base type. |
| (array_type_def::subrange_type::subrange_type): Adjust. Take an |
| environement pointer, a name, an underlying type and a language. |
| (array_type_def::subrange_type::{g,s}et_underlying_type): Define |
| new accessors. |
| (array_type_def::subrange_type::{get_language, |
| get_pretty_representation, traverse}): Define new member |
| functions. |
| (array_type_def::subrange_type::as_string): Add a representation |
| for Ada. |
| (equals): Define new overload for array_type_def::subrange_type. |
| (array_type_def::subrange_type::operator==): Define three new |
| overloads for decl_base, type_base and subrange_type. |
| (array_type_def::subrange_type::operator!=): Define new operator. |
| (get_type_representation): In the overload for array_type_def, |
| support Ada. |
| (array_type_def::get_language): Define new member function. |
| (ir_node_visitor::visit_{begin,end}): Define new overloads for |
| array_type_def::subrange_type. |
| * src/abg-reader.cc (build_subrange_type): Adjust documentation. |
| Support the new 'id', 'name', and 'type-id' properties. |
| * src/abg-writer.cc (write_array_subrange_type): Define new static |
| function. |
| (write_array_type_def): Use the new write_array_subrange_type |
| function. |
| * tests/data/test-abidiff/test-PR18166-libtirpc.so.abi: Adjust. |
| * tests/data/test-annotate/libtest23.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-annotate/test7.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: Likewise. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test7.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| * tests/data/test-read-write/test25.xml: Likewise. |
| |
| 2018-02-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Add newline at end of version string display |
| * tools/abidiff.cc (main): Add a newline at the end of the version |
| string line. |
| * tools/abidw.cc (main): Likewise. |
| * tools/abipkgdiff.cc (main): Likewise. |
| * tools/kmidiff.cc (main): Likewise. |
| |
| 2018-01-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.2 |
| * configure.ac: Bump version number to 1.2 |
| |
| 2018-01-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Update website for 1.1 |
| * doc/website/mainpage.txt: Update for 1.1. |
| |
| 2018-01-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog for 1.1 |
| * ChangeLog: Automatically update using 'make update-changelog'. |
| |
| 2018-01-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.1 |
| * NEWS: Update for 1.1 |
| |
| 2018-01-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Correctly link with pthread |
| * src/Makefile.am: use -lpthread, not -pthread. |
| |
| 2018-01-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Skip class types with changed names in leaf reports |
| * include/abg-comp-filter.h (has_class_or_union_type_name_change) |
| (has_basic_or_class_type_name_change): Declare new functions. |
| * include/abg-comparison.h (is_diff_of_class_or_union_type): |
| Likewise. |
| * src/abg-comp-filter.cc (has_class_or_union_type_name_change) |
| (has_basic_or_class_type_name_change): |
| * src/abg-comparison.cc |
| (leaf_diff_node_marker_visitor::visit_begin): Use the new |
| filtering::has_basic_or_class_type_name_change to test if a basic |
| or class/union diff type carries a name change. Update comment. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| Adjust. |
| |
| 2018-01-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Only consider local changes when filtering subtype changes |
| * src/abg-comparison-priv.h |
| (class_or_union_diff::priv::{count_filtered_subtype_changed_dm, |
| count_filtered_changed_dm}): Take an additional flag. |
| * src/abg-comparison.cc |
| (class_or_union_diff::priv::{count_filtered_subtype_changed_dm, |
| count_filtered_changed_dm}): Likewise. When asked, only consider |
| local changes. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Consider |
| reporting only the *net local* data member changes. |
| |
| 2018-01-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Make kmidiff show the wrong option when it complains about it |
| * tools/kmidiff.cc (parse_command_line): Don't forget to record |
| the wrong option in options::wrong_option. |
| |
| 2018-01-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typo in abipkgdiff.cc |
| * tools/abipkgdiff.cc (compare_task::perform): Fix a typo in a |
| comment. |
| |
| 2018-01-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Suppress duplicates when listing package content |
| * tools/abipkgdiff.cc (maybe_update_package_content): Rename |
| maybe_update_vector_of_package_content into this. Take a set of |
| strings, rather than a vector of strings. |
| (get_interesting_files_under_dir): Adjust. |
| |
| 2018-01-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix symlinks paths handling in abipkgdiff |
| * include/abg-tools-utils.h (real_path): Declare new function. |
| * src/abg-tools-utils.cc (real_path): Define it. |
| * tools/abipkgdiff.cc (package::convert_path_to_relative): Use the |
| new real_path function to consider real path (where symlinks are |
| resolved) of the extraction directory of the package. |
| (get_interesting_files_under_dir): Similarly, use the new |
| real_path function to consider the real path of the directory we |
| are exploring. |
| |
| 2018-01-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix logic in common_prefix |
| * src/abg-tools-utils.cc (common_prefix): Fix logic error. |
| |
| 2018-01-12 Dodji Seketeli <dodji@redhat.com> |
| |
| abipkgdiff --verbose shouldn't trigger --fail-no-dbg |
| * tools/abipkgdiff.cc (compare): In the overload for elf_files, |
| separate the effect of --verbose from the one of --fail-no-dbg. |
| |
| 2018-01-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22692 - Consider Java as a language that supports the ODR |
| * include/abg-ir.h (is_java_language): Declare new function. |
| * src/abg-dwarf-reader.cc (odr_is_relevant): Adjust to consider |
| that Java also respects the ODR. |
| * src/abg-ir.cc (is_java_language): Define new function. |
| (odr_is_relevant): Adjust to consider that Java also respects the |
| ODR. |
| |
| 2018-01-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix version revision number printing in tools --help option |
| * configure.ac: Properly set the VERSION_REVISION macro. |
| * include/abg-tools-utils.h (get_library_version_string): Declare |
| new function. |
| * src/abg-tools-utils.cc (get_library_version_string): Define the |
| new function. |
| (gen_suppr_spec_from_kernel_abi_whitelist): Dis-ambiguate the use |
| of the 'config' type. |
| * tools/abicompat.cc (main): Use the new |
| abigail::tools_utils::get_library_version_string function. |
| * tools/abidiff.cc (main): Likewise. |
| * tools/abidw.cc (main): Likewise. |
| * tools/abilint.cc (main): Likewise. |
| * tools/abipkgdiff.cc (main): Likewise. |
| * tools/abisym.cc (main): Likewise. |
| * tools/kmidiff.cc (main): Likewise. |
| |
| 2018-01-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22684 - Add --d{1,2} options to kmidiff |
| * doc/manuals/kmidiff.rst: Add documentation for the new options. |
| * tools/kmidiff.cc (options::{di_root_path{1,2}): New data |
| members. |
| (display_usage): Add help strings for the new options. |
| (parse_command_line): Parse the new options. |
| (main): Pass the debug info root directory to |
| build_corpus_group_from_kernel_dist_under. |
| |
| 2018-01-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright notice for all source files |
| * update-copyright.sh: New sed-based script to update the year |
| in the copyright notice. |
| * include/abg-comp-filter.h: Updated the year in the copyright |
| notice. |
| * include/abg-comparison.h: Likewise. |
| * include/abg-config.h: Likewise. |
| * include/abg-corpus.h: Likewise. |
| * include/abg-diff-utils.h: Likewise. |
| * include/abg-dwarf-reader.h: Likewise. |
| * include/abg-fwd.h: Likewise. |
| * include/abg-hash.h: Likewise. |
| * include/abg-ini.h: Likewise. |
| * include/abg-interned-str.h: Likewise. |
| * include/abg-ir.h: Likewise. |
| * include/abg-libxml-utils.h: Likewise. |
| * include/abg-libzip-utils.h: Likewise. |
| * include/abg-reader.h: Likewise. |
| * include/abg-reporter.h: Likewise. |
| * include/abg-sptr-utils.h: Likewise. |
| * include/abg-suppression.h: Likewise. |
| * include/abg-tools-utils.h: Likewise. |
| * include/abg-traverse.h: Likewise. |
| * include/abg-viz-common.h: Likewise. |
| * include/abg-viz-dot.h: Likewise. |
| * include/abg-viz-svg.h: Likewise. |
| * include/abg-workers.h: Likewise. |
| * include/abg-writer.h: Likewise. |
| * src/abg-comp-filter.cc: Likewise. |
| * src/abg-comparison-priv.h: Likewise. |
| * src/abg-comparison.cc: Likewise. |
| * src/abg-config.cc: Likewise. |
| * src/abg-corpus-priv.h: Likewise. |
| * src/abg-corpus.cc: Likewise. |
| * src/abg-default-reporter.cc: Likewise. |
| * src/abg-diff-utils.cc: Likewise. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * src/abg-hash.cc: Likewise. |
| * src/abg-ini.cc: Likewise. |
| * src/abg-internal.h: Likewise. |
| * src/abg-ir-priv.h: Likewise. |
| * src/abg-ir.cc: Likewise. |
| * src/abg-leaf-reporter.cc: Likewise. |
| * src/abg-libxml-utils.cc: Likewise. |
| * src/abg-libzip-utils.cc: Likewise. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-reporter-priv.cc: Likewise. |
| * src/abg-reporter-priv.h: Likewise. |
| * src/abg-sptr-utils.cc: Likewise. |
| * src/abg-suppression-priv.h: Likewise. |
| * src/abg-suppression.cc: Likewise. |
| * src/abg-tools-utils.cc: Likewise. |
| * src/abg-traverse.cc: Likewise. |
| * src/abg-viz-common.cc: Likewise. |
| * src/abg-viz-dot.cc: Likewise. |
| * src/abg-viz-svg.cc: Likewise. |
| * src/abg-workers.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| * tests/print-diff-tree.cc: Likewise. |
| * tests/test-abicompat.cc: Likewise. |
| * tests/test-abidiff-exit.cc: Likewise. |
| * tests/test-abidiff.cc: Likewise. |
| * tests/test-alt-dwarf-file.cc: Likewise. |
| * tests/test-core-diff.cc: Likewise. |
| * tests/test-diff-dwarf-abixml.cc: Likewise. |
| * tests/test-diff-dwarf.cc: Likewise. |
| * tests/test-diff-filter.cc: Likewise. |
| * tests/test-diff-pkg.cc: Likewise. |
| * tests/test-diff-suppr.cc: Likewise. |
| * tests/test-diff2.cc: Likewise. |
| * tests/test-ir-walker.cc: Likewise. |
| * tests/test-lookup-syms.cc: Likewise. |
| * tests/test-read-dwarf.cc: Likewise. |
| * tests/test-read-write.cc: Likewise. |
| * tests/test-types-stability.cc: Likewise. |
| * tests/test-utils.cc: Likewise. |
| * tests/test-utils.h: Likewise. |
| * tests/test-write-read-archive.cc: Likewise. |
| * tools/abiar.cc: Likewise. |
| * tools/abicompat.cc: Likewise. |
| * tools/abidiff.cc: Likewise. |
| * tools/abidw.cc: Likewise. |
| * tools/abilint.cc: Likewise. |
| * tools/abipkgdiff.cc: Likewise. |
| * tools/abisym.cc: Likewise. |
| * tools/binilint.cc: Likewise. |
| * tools/kmidiff.cc: Likewise. |
| |
| 2017-12-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22437 - Make fedabipkgdiff use all debug info RPMs of a sub-RPM |
| * tools/fedabipkgdiff (RPM::get_all_debuginfo_rpms): Define new |
| member function. |
| (RPM::generate_comparison_halves): The ancillary debuginfo RPM of |
| a given RPM now has a list type; there can be more than one |
| debuginfo RPM associated to a given RPM, especially if the RPM is |
| a devel one. |
| (format_debug_info_pkg_options): Define new function. |
| (abipkgdiff): Use the new function above. |
| |
| 2017-12-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Improve comments wording in fedabipkgdiff |
| * tools/fedabipkgdiff (class RPM): Fix wording. |
| (RPM::__init__): Likewise. |
| |
| 2017-12-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Update & cleanup the tools manuals summary |
| * doc/manuals/abidw.rst: Use the same header structure as or the |
| other tools manual. |
| * doc/manuals/kmidiff.rst: Likewise. |
| * doc/manuals/libabigail-tools.rst: Add the new kmidiff tool to |
| the summary. |
| |
| 2017-12-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22488 - Make abipkgdiff handle different binaries with same basename |
| * include/abg-tools-utils.h (string_suffix) |
| (sorted_strings_common_prefix): Declare new functions. |
| (dir_name): Take a new keep_separator_at_end parameter at the end. |
| * src/abg-tools-utils.cc (dir_name): Take a new |
| keep_separator_at_end parameter at the end. Add a comment for it |
| and update. |
| (string_suffix, sorted_strings_common_prefix): Define new |
| functions. |
| (common_prefix): Define new static function. |
| * tools/abipkgdiff.cc (get_interesting_files_under_dir): Forward |
| declare this pre-existing static function. |
| (package::{common_paths_prefix_, elf_file_paths_}): New data |
| members. |
| (package::{common_paths_prefix, elf_file_paths, |
| convert_path_to_relative, convert_path_to_unique_suffix, |
| load_elf_file_paths}): New member functions. |
| (create_maps_of_package_content): Use the new |
| package::{load_elf_file_paths, convert_path_to_unique_suffix} |
| functions. |
| (compare_prepared_userspace_packages): Show relative paths of |
| package elements in reported. |
| * tests/data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64--dbus-glib-0.104-3.fc23.armv7hl-report-0.txt: |
| Update test ouptut. |
| * tests/data/test-diff-pkg/libxfce4ui-devel-4.12.1-8.fc27.ppc64-self-report-0.txt: |
| Likewise. |
| |
| 2017-12-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Fully report diagnostic about alternate debug info file not found |
| * src/abg-dwarf-reader.cc (status_to_diagnostic_string): Report |
| textual diagnostic for the STATUS_ALT_DEBUG_INFO_NOT_FOUND case |
| too. |
| |
| 2017-11-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22436 - make abipkgdiff accept several debuginfo packages |
| * doc/manuals/abipkgdiff.rst: Document the fact that --d{1,2} can |
| be provided several times on the command line. |
| * tools/abipkgdiff.cc (options::debug_packages{1,2}): Rename the |
| debug_package{1,2} data members into this, and make them be vector |
| of strings, rather than just strings. |
| (package::debug_info_packages_): Renamed |
| package::debug_info_package_ into this and make it be a vector of |
| package_sptr, rather than just a package_sptr. |
| (package::debug_info_packages): Renamed the method |
| package::debug_info_package into this and -- for the getter |
| overload -- make it return a vector of package_sptr, rather than |
| just a package_sptr. Likewise for the setter overload. Add a |
| non-const getter overload. |
| (package::erase_extraction_directories) |
| (extract_package_and_map_its_content): Adjust. |
| (extract_rpm, extract_deb): Do not erase the content of the |
| extraction directory (if it was pre-existing) prior to extracting |
| the RPM/deb into it. |
| (pkg_extraction::pkgs): Renamed pkg_extraction::pkg into this and |
| make it be a vector of packages, rather than just a package. |
| (pkg_extraction::pkg_extraction): Adjust to take a package_sptr |
| rather than just a package. Add an overload to take a vector of |
| packages_sptr. |
| (pkg_extraction::perform): Extract the vector of package that the |
| task is not responsible for, not just one random package. |
| (extract_package_and_map_its_content): Adjust. |
| (prepare_packages): Take smart pointers to package rather than |
| just packages. Adjust accordingly. |
| (compare_prepared_package): Make the overload that takes two |
| packages to take two smart pointers of packages. |
| (compare): Make the overload that takes two package take two |
| package_sptr. |
| (parse_command_line): Parse having --d{1,2} several times for a |
| given input package. |
| (main): Take several debug info packages for one input file. |
| * include/abg-tools-utils.h (split_string): Declare ... |
| * src/abg-tools-utils.cc (split_string): ... new function. |
| * tests/data/test-diff-pkg/libxfce4ui-debuginfo-4.12.1-8.fc27.ppc64.rpm: |
| Add a new RPM test input file. |
| * tests/data/test-diff-pkg/libxfce4ui-devel-4.12.1-8.fc27.ppc64-self-report-ok-0.txt: |
| new reference output file. |
| * tests/data/Makefile.am: Add the new test input files above to source |
| distribution. |
| * tests/test-diff-pkg.cc (in_out_spec): Add new test entry to |
| specify two debug info packages for one input package. |
| (test_task::perform): Support having several debug info package |
| paths in the IntOutSpec::{first,second}_in_debug_package_path data |
| member. The debug info packages paths are separated by either a |
| white space or commas. |
| |
| 2017-11-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Update version number to 1.1 |
| * configure.ac: Update version number to 1.1 |
| |
| 2017-11-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22076 - Disable fedabipkgdiff for old koji clients |
| * configure.ac: Try to invoke the koji.read_config method. If it |
| fails then disable the fedabipkgdiff feature. |
| |
| 2017-11-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Update the release text template after 1.0 |
| * release-text-template.txt: Update some wording. |
| |
| 2017-11-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Update website for 1.0 |
| * doc/website/mainpage.txt: Update after 1.0 release. |
| |
| 2017-11-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.0 |
| * NEWS: Update for 1.0 |
| |
| 2017-11-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Automatically Update ChangeLog for 1.0 |
| * ChangeLog: Automatically update for 1.0 |
| |
| 2017-11-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22438 - Emit a clear message when debug info is not found |
| * include/abg-dwarf-reader.h (enum abigail::dwarf_reader::status): |
| Add a new STATUS_ALT_DEBUG_INFO_NOT_FOUND enumerator there. |
| (refers_to_alt_debug_info): Declare new function. |
| * src/abg-dwarf-reader.cc (read_corpus_from_elf): Detect when the |
| referred-to alternate debug info file is not found and flip the |
| STATUS_ALT_DEBUG_INFO_NOT_FOUND bit of the status accordingly. If |
| the debug info was found but not the alternate debug info, then do |
| not try to read the debug info at all. |
| (refers_to_alt_debug_info): Define new function. |
| * tools/abidiff.cc (handle_error): Define new static function. |
| (main): Use it, rather than handling errors preventing libabigail |
| from reading the corpus on a case by case basis. |
| tools/abipkgdiff.cc (compare): Handle the case where no alternate |
| debug info was found. |
| * tests/data/test-diff-pkg/libxfce4ui-devel-4.12.1-8.fc27.ppc64-self-report-0.txt: |
| New test output reference. |
| * tests/data/test-diff-pkg/libxfce4ui-devel-4.12.1-8.fc27.ppc64.rpm: |
| New test input RPM. |
| * tests/data/test-diff-pkg/libxfce4ui-devel-debuginfo-4.12.1-8.fc27.ppc64.rpm: |
| Likewise. |
| * tests/data/Makefile.am: Add the new test files above to source |
| distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add a new test case from |
| the new input files above. |
| |
| 2017-11-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Support systems where fts.h can't be used with _FILE_OFFSET_BITS set |
| * configure.ac: Detect if we are on a system where fts.h cannot be |
| included with _FILE_OFFSET_BITS defined. If that is the case, |
| then define the BAD_FTS macro. |
| * src/abg-tools-utils.cc: If BAD_FTS is defined then include fts.h |
| with _FILE_OFFSET_BITS not defined (that is, before config.h) but |
| then make sure that open and fopen are 64 bits aware. |
| * tools/abipkgdiff.cc: Likewise. |
| |
| 2017-11-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Edit the NEWS file a tiny little bit for 1.0 |
| * NEWS: Cleanup. |
| |
| 2017-11-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Automatically Update ChangeLog for 1.0 |
| * ChangeLog: Update this file by running "make update-changelog". |
| |
| 2017-11-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.0 changes |
| * NEWS: Update for 1.0 changes |
| |
| 2017-11-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.0 |
| * configure.ac: Bump version number to 1.0 |
| |
| 2017-11-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't make system headers depend on config.h |
| * tools/abipkgdiff.cc: Include config.h after system headers and |
| before libabigail's headers. |
| |
| 2017-11-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Wire the --no-show-locs option to abidw |
| * doc/manuals/abidw.rst: Update the documentation. |
| * tests/test-annotate.cc: Now that --no-show-locs has an effect on |
| the ABIXML output, let's not use it here, because it changes the |
| output and we don't want that. |
| * tools/abidw.cc (display_usage): Fix a typo in the help string. |
| (load_corpus_and_write_abixml): Set the "show-locs" option to the |
| write_context object that we use. |
| |
| 2017-11-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Allow setting options to instances of xml_writer::write_context |
| * include/abg-writer.h (create_write_context, set_show_locs) |
| (set_annotate): Declare new functions. |
| (write_corpus, write_corpus_group): Remove the output stream and |
| the annotate parameters as these can be retrieved from the |
| context. |
| * src/abg-writer.cc (write_context::m_show_locs): New data member. |
| (write_context::write_context): Initialize it. |
| (write_context::{get_show_locs, set_show_locs}): Add new member |
| functions. |
| (write_location): Take a write_context, rather than an output |
| stream. From the context, we detect if the user did set the "show |
| loc" option and act accordingly. Write the second overload in |
| terms of the first one. |
| (create_write_context, set_show_locs, set_annotate): Define new |
| functions. |
| (write_type_decl, write_qualified_type_def) |
| (write_pointer_type_def, write_reference_type_def) |
| (write_array_type_def, write_enum_type_decl, write_typedef_decl) |
| (write_var_decl, write_function_decl) |
| (write_class_decl_opening_tag, write_union_decl_opening_tag) |
| (write_type_tparameter, write_non_type_tparameter) |
| (write_function_tdecl, write_class_tdecl): Adjust the invocation |
| of write_location. |
| (write_corpus, write_corpus_group): Remove the output stream and |
| the annotate parameters as these can be retrieved from the |
| context. Adjust. |
| * tools/abidw.c: (load_corpus_and_write_abixml): Create a |
| write_context object, set the 'annotate' option to it and use that |
| object to actually write out the corpus. |
| |
| 2017-11-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Remove useless vertical space from src/abg-writer.cc |
| * src/abg-writer.cc (class write_context): Remove useless vertical |
| space near the end of the class definition. |
| |
| 2017-10-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Add a --suppressions option to fedabipkgdiff |
| * tools/fedabipkgdiff (abipkgdiff): If a suppression file was |
| provided, pass it to the underlying abipkgdiff tool. |
| (build_commandline_args_parser): Parse the new --suppressions |
| option. |
| * docs/manuals/fedabipkgdiff.rst: Add documentation for the new |
| --suppressions option. |
| |
| 2017-10-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Handle exceptions when global_config is not yet set in fedabipkgdiff |
| * tools/fedabipkgdiff: When handling an exception, if the |
| global_config object is not yet set then just let the exception |
| through. |
| |
| 2017-10-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a indentation warning from GCC 7.2.1 |
| * tools/abipkgdiff.cc (compare): In the overload of elf_file, fix |
| a mis-indentation pointed out by a GCC 7.2.1 warning. |
| |
| 2017-10-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Cleanup a switch-case logic to avoid a GCC 7.2.1 warning |
| * src/abg-dwarf-reader.cc (die_qualified_type_name): Cleanup a |
| switch case to make the form support more what we meant, and shut |
| down a GCC 7.2.1 warning. |
| |
| 2017-10-09 Mark Wielaard <mark@klomp.org> |
| |
| Fix -Wmisleading-indentation warning in abg-leaf-reporter.cc. |
| * src/abg-leaf-reporter.cc (leaf_reporter::report): Fix misleading |
| indentation. |
| |
| 2017-10-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Add --impacted-changes option to kmidiff |
| * doc/manuals/kmidiff.rst: Document the new --impacted-changes |
| option. |
| * tools/kmidif.cc (options::show_impacted_interfaces): Add new |
| data member. |
| (options::options): Initialize the new data member to false. |
| (display_usage): Add a description string for the new |
| --impacted-changes option. |
| (parse_command_line): Parse the new --impacted-changes option. |
| (set_diff_context): Update the 'show-impacted-interface' property |
| accordingly. |
| |
| 2017-10-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Add --full-impact option to kmidiff |
| * doc/manuals/kmidiff.rst: Add documentation for the new |
| --full-impact|-f option. |
| * tools/kmidiff.cc (options::leaf_changes_only): Add new data |
| member. |
| (option::option): Initialize the new data member. |
| (display_usage): Add a documentation string for the new |
| --full-impact|-f option. |
| (parse_command_line): Parse the new --full-impact|-f option. |
| (set_diff_context): Set the diff context appropriately. |
| |
| 2017-09-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Add a --leaf-changes-only option to abipkgdiff |
| * doc/manuals/abipkgdiff.rst: Add documentation for the new |
| --leaf-change-only, --impacted-interfaces and --full-impact |
| options. |
| * tools/abipkgdiff.cc (options::{leaf_changes_only, |
| show_impacted_interfaces, show_full_impact_report): Add new data |
| members. |
| (options::options): Initialize them. |
| (display_usage): Add help strings for the new --leaf-change-only, |
| --impacted-interfaces and --full-impact|-f options. |
| (set_diff_context_from_opts): Set the diff context for the |
| 'leaf-changes-only' and 'show-impacted-interfaces' flags. |
| (parse_command_line): Parse the --leaf-change-only, |
| --impacted-interfaces and --full-impact options. Handle the case |
| where the --linux-kernel-abi-whitelist|-w option is given a |
| whitelist *package*. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt: |
| New test output reference. |
| * tests/test-diff-pkg.cc (in_out_spec): Compare |
| data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64.rpm and |
| data/test-diff-pkg/spice-server-0.12.8-1.el7.x86_64.rpm with the |
| new --leaf-changes-only and --impacted-interfaces options, using |
| the new output reference above. |
| * tests/data/Makefile.am: Add the new test material to source |
| distribution. |
| |
| 2017-08-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Initial implementation of a --leaf-changes-only option to abidiff |
| * doc/manuals/abidiff.rst: Add documentation the new |
| --leaf-changes-only and --impacted-interfaces options. |
| * src/abg-leaf-reporter.cc: New file. |
| * src/Makefile.am: Add the new src/abg-leaf-reporter.cc file to |
| source distribution. |
| * include/abg-fwd.h (get_var_size_in_bits) |
| (function_decl_is_less_than): Declare new functions. |
| (get_name): Add new overload for type_or_decl_base*. |
| * include/abg-ir.h (struct type_or_decl_hash, type_or_decl_equal) |
| (type_or_decl_base_comp): Define new types. |
| (artifact_sptr_set_type, artifact_ptr_set_type): Define new |
| typedefs. |
| * include/abg-comp-filter.h: Update copyright year. |
| (has_basic_type_name_change): Add new function declaration. |
| * src/abg-comp-filter.cc (decl_name_changed): Take a |
| type_or_decl_base rather than just a decl. Add an overload for |
| diff*. |
| (has_basic_type_name_change): Define new function. |
| * include/abg-comparison.h: Update copyright year. |
| (string_diff_ptr_map): Define this new typedef. |
| (class diff_maps): Define this new class. |
| (diff_context::{set_corpora}): Remove this member function. |
| (diff_context::{set_corpus_diff, get_corpus_diff, |
| show_leaf_changes_only, show_impacted_interfaces, |
| forbid_visiting_a_node_twice_per_interface}): Declare these new |
| member functions. |
| (diff_node_visitor::priv_): Add a new pimpl data member. |
| (diff_node_visitor::{diff_node_visitor, get_visiting_kind, |
| set_visiting_kind}): Turn these into out-of-line member functions. |
| (diff_node_visitor::{set,get}_current_topmost_iface_diff): Add new |
| member functions. |
| (class {scope_diff, function_type_diff, corpus_diff}): Add class |
| leaf_reporter as a friend. |
| (corpus_diff::mark_leaf_diff_nodes, get_leaf_diffs): Declare new |
| member functions. |
| (diff::{visiting_a_node_twice_is_forbidden_per_interface, |
| parent_interface_node}): Define new member functions. |
| (is_diff_of_basic_type): Return a type_decl_diff* rather than just |
| a bool. |
| (is_enum_diff, is_array_diff, is_function_type, is_typedef_diff) |
| (is_corpus_diff): Declare new functions. |
| (corpus_diff::diff_stats::{num_leaf_changes, |
| num_leaf_changes_filtered_out, net_num_leaf_changes}): Add new |
| member functions. |
| (is_distinct_diff): Declare new function. |
| * include/abg-reporter.h: Forward-declare "class diff_maps". |
| (reporter_base::diff_to_be_reported): Declare a new virtual member |
| function. |
| (reporter_base::{report_local_typedef_changes, |
| report_local_reference_type_changes, |
| report_local_function_type_changes}): Declare new member |
| functions. |
| (class leaf_reporter): Define new type. |
| * src/abg-comparison-priv.h (struct diff_hash, diff_equal): Define |
| new types. |
| (diff_artifact_set_map_type): Define new typedef. |
| (diff_context::priv::{first_corpus_, second_corpus_}): Remove |
| these data members. |
| (diff_context::priv::{corpus_diff_, leaf_changes_only_, |
| reset_visited_diffs_for_each_interface_, |
| show_impacted_interfaces_}): Add new data members. |
| (diff_context::priv::priv): Adjust. |
| (corpus_diff::priv::{leaf_diffs_, parent_interface_}): Add new |
| data member. |
| (corpus_diff::diff_stats::priv::{num_leaf_changes, |
| num_leaf_changes_filtered_out}): Add new data members. |
| (corpus_diff::priv::count_leaf_changes): Define new member |
| function. |
| (sort_artifacts_set, get_fn_decl_or_var_decl_diff_ancestor) |
| (is_diff_of_global_decls): Declare new functions. |
| (function_comp::operator()): Factorize this out into the new |
| function abigail::ir::function_decl_is_less_than. |
| * src/abg-ir.cc (get_var_size_in_bits) |
| (function_decl_is_less_than): Define new functions. |
| (get_name): Define new overload for type_or_decl_base*. |
| * src/abg-comparison.cc (is_enum_diff, is_typedef_diff) |
| (is_array_diff, is_function_type_diff, is_corpus_diff) |
| (is_distinct_diff, sort_artifacts_set, is_diff_of_global_decls): |
| Define new functions. |
| (is_union_diff): Fix comment. |
| (diff_context::forbid_visiting_a_node_twice_per_interface): Define |
| new member functions. |
| (diff_context::set_corpus_diff, get_corpus_diff) |
| (diff_context::show_leaf_changes_only) |
| (diff_context::visiting_a_node_twice_is_forbidden_per_interface) |
| (diff_context::show_impacted_interfaces): Define new member |
| functions. |
| (diff_context::get_reporter): Create the reporter that matches |
| what diff_context::show_leaf_changes_only says. |
| (diff_node_visitor::priv): Define a new type. |
| (diff_node_visitor::{diff_node_visitor, get_visiting_kind, |
| set_visiting_kind, or_visiting_kind, |
| set_current_topmost_iface_diff, get_current_topmost_iface_diff}): |
| Define new out-of-line member functions. |
| (struct diff_maps::priv): Define new type. |
| (diff_maps::{diff_maps, get_type_decl_diff_map, |
| get_type_decl_diff_map, get_enum_diff_map, get_class_diff_map, |
| get_union_diff_map, get_typedef_diff_map, get_array_diff_map, |
| get_function_type_diff_map, get_function_decl_diff_map, |
| get_var_decl_diff_map, get_reference_diff_map, |
| get_fn_parm_diff_map, get_distinct_diff_map, insert_diff_node, |
| lookup_impacted_interfaces}): Define member functions. |
| (corpus_diff::{mark_leaf_diff_nodes, get_leaf_diffs}): Define new |
| member functions. |
| (struct leaf_diff_node_marker_visitor): Define new type. |
| (corpus_diff::apply_filters_and_suppressions_before_reporting): |
| Mark diff nodes in here. |
| (corpus_diff::traverse): Appropriately set the current topmost |
| interface into the visitor before visiting a diff node. |
| (compute_diff): In the overload for corpus_sptr, adjust to reflect |
| that we are now storing the corpus_diff in the diff context. |
| (is_diff_of_basic_type): Return a type_decl_diff*, not just a |
| bool. |
| (corpus_diff::priv::count_leaf_changes): Define a new member |
| function. |
| (corpus_diff::diff_stats::{num_leaf_changes, |
| num_leaf_changes_filtered_out, net_num_leaf_changes}): Define new |
| member functions. |
| (corpus_diff::priv::apply_filters_and_compute_diff_stats): Use the |
| new corpus_diff::priv::count_leaf_changes to compute the number of |
| leaf changes. |
| (corpus_diff::priv::emit_diff_stats): Emit the report about leaf |
| type changes when necessary. |
| * src/abg-reporter-priv.h (report_mem_header): Declare new |
| overload. |
| (maybe_show_relative_offset_change,): Pass the var_diff_sptr |
| parameter by const reference. |
| (represent): Pass the var_diff_sptr parameter by const reference |
| and take a new "local-only" flag. |
| (maybe_show_relative_size_change) |
| (maybe_report_interfaces_impacted_by_diff): Declare new functions. |
| * src/abg-default-reporter.cc: Adjust copyright year. |
| (default_reporter::{report_local_typedef_changes, |
| report_local_qualified_type_changes, |
| report_local_reference_type_changes, |
| report_local_function_type_changes}): Define new member functions. |
| (default_reporter::report): Adjust. Add an overload for |
| function_type_diff&. In the overload for qualified_type_diff, if |
| the name of the underlying type changed, do not detail the changes |
| any further. In the overload for function_decl_diff, Adjust to |
| use the new diff_context::get_{first, second}_corpus member |
| function. In the overload for enum_diff, call the new |
| maybe_report_interfaces_impacted_by_diff that is advertised below. |
| * src/abg-reporter-priv.cc (represent): Adjust the overload for |
| var_diff_sptr. |
| (report_mem_header): Define new overload. |
| (maybe_show_relative_size_change) |
| (maybe_report_interfaces_impacted_by_diff): Define new functions. |
| (reporter_base::diff_to_be_reported): Define new member function. |
| (maybe_show_relative_offset_change): Pass the var_diff_sptr |
| parameter by const reference. |
| (represent): In the overload for var_diff_sptr, pass the |
| var_diff_sptr parameter by reference. Take a 'local_only' flag. |
| Iisplay type changes only if we are not displaying "local changes |
| only". Display size changes of data members too, when in |
| "local-only" mode. |
| * src/abg-suppression.cc (sonames_of_binaries_match) |
| (names_of_binaries_match): Adjust. |
| * tools/abidiff.cc (options::{leaf_changes_only, |
| show_impacted_interfaces}): Add new data members. |
| (display_usage): Emit usage string for the new --leaf-changes-only |
| and --impacted-interfaces options. |
| (parse_command_line): Parse the new --leaf-changes-only and the |
| --impacted-interfaces options. |
| (set_diff_context_from_opts): Set the 'show-leaf-changes' and the |
| 'show-impacted-interfaces' flags. |
| * tests/data/test-diff-filter/libtest42-leaf-report-v{0,1}.so: New |
| test input. |
| * tests/data/test-diff-filter/test42-leaf-report-output-0.txt: New |
| test reference output. |
| * tests/data/test-diff-filter/test42-leaf-report-v{0,1}.cc: Source |
| code of the new test inputs. |
| * tests/test-diff-filter.cc (in_out_specs): Use the new test |
| inputs above in this harness. |
| * tests/data/test-diff-suppr/libtest35-leaf-v0.so: New test input. |
| * tests/data/test-diff-suppr/test35-leaf-report-0.txt: New test |
| reference output. |
| * tests/data/test-diff-suppr/test35-leaf-v{0,1}.cc: Source code of |
| the new test inputs. |
| * tests/data/test-diff-suppr/test35-leaf.suppr: Suppression |
| specification to use for the test35 test. |
| * tests/data/test-diff-suppr/libtest36-leaf-v0.so: New test input. |
| * tests/data/test-diff-suppr/libtest36-leaf-v1.so: Likewise. |
| * tests/data/test-diff-suppr/test36-leaf-report-0.txt: New |
| reference test output. |
| * tests/data/test-diff-suppr/test36-leaf-v0.cc: Source code of |
| test input above. |
| * tests/data/test-diff-suppr/test36-leaf-v1.cc: Likewise. |
| * tests/test-diff-suppr.cc (in_out_specs): Use the new test inputs |
| above in this harness. |
| * tests/data/Makefile.am: Add the new test inputs above to source |
| distribution. |
| |
| 2017-07-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Allow several kinds of reports to be emitted |
| * include/Makefile.am: Add the new abg-reporter.h header file to |
| source distribution. |
| * include/abg-comparison.h: Include the new abg-reporter.h header |
| file. |
| (diff_context::{g,s}et_reporter): Declare new accessors. |
| ({type_diff_base, decl_diff_base, corpus_diff}::priv): Make this |
| be a struct rather than a class. |
| ({decl_diff_base, class_diff, scope_diff, function_type_diff, |
| corpus_diff}): Declare default_reporter a friend class of these. |
| * include/abg-reporter.h: New file. |
| * src/Makefile.am: Add abg-comparison-priv.h, |
| abg-reporter-priv.{h,cc} and abg-default-reporter.cc files to |
| source distribution. |
| * src/abg-comparison-priv.h: New file. |
| * src/abg-comparison.cc (sort_enumerators) |
| (sort_changed_enumerators, sort_data_members) |
| (sort_string_function_ptr_map) |
| (sort_string_function_decl_diff_sptr_map) |
| (sort_string_var_diff_sptr_map, sort_string_elf_symbol_map) |
| (sort_string_var_ptr_map, sort_string_data_member_diff_sptr_map) |
| (sort_unsigned_data_member_diff_sptr_map) |
| (sort_string_diff_sptr_map, sort_string_base_diff_sptr_map) |
| (sort_string_base_sptr_map, sort_string_fn_parm_diff_sptr_map) |
| (sort_string_parm_map, get_leaf_type, sort_enumerators) |
| (sort_changed_enumerators): Make these functions non-static and |
| move them at the beginning of the file. These functions are now |
| declared in abg-compared-priv.h so they can be shared privately |
| with other files in src/. |
| (diff_context::{g,s}et_reporter): Define new accessors. |
| ({diff_context, diff, type_diff_base, decl_diff_base, |
| distinct_diff, pointer_diff, array_diff, reference_diff, |
| qualified_type_diff, enum_diff, class_or_union_diff, class_diff, |
| base_diff, scope_diff, fn_parm_diff, function_type_diff, |
| function_decl_diff, type_decl_diff, typedef_diff, |
| translation_unit_diff, corpus_diff::diff_stats, |
| corpus_diff}::priv) |
| (diff_less_than_functor, enumerator_value_comp) |
| (changed_enumerator_comp, base_spec_comp, base_diff_comp) |
| (data_member_diff_comp, diff_comp, fn_parm_diff_comp, parm_comp) |
| (elf_symbol_comp, function_comp, function_decl_diff_comp) |
| (var_diff_sptr_comp): Move these type definitions to |
| abg-comparison-priv.h |
| (report_size_and_alignment_changes, report_loc_info) |
| (maybe_report_diff_for_member, maybe_report_diff_for_symbol) |
| (represent, represent_data_member) |
| (maybe_show_relative_offset_change, represent) |
| (report_size_and_alignment_changes, report_loc_info) |
| (report_name_size_and_alignment_changes, report_mem_header) |
| (maybe_report_diff_for_member, maybe_report_diff_for_symbol) |
| (show_linkage_name_and_aliases): Move these definitions to |
| abg-reporter-priv.cc. |
| ({distinct_diff, var_diff, pointer_diff, array_diff, |
| reference_diff, qualified_type_diff, enum_diff, |
| class_or_union_diff, class_diff, base_diff, union_diff, |
| scope_diff, fn_parm_diff, function_type_diff, type_decl_diff, |
| typedef_diff, corpus_diff}::report): Use the reporter object to |
| report about the changes carried by the the current diff node. |
| * src/abg-default-reporter.cc: New file. |
| * src/abg-reporter-priv.h: Likewise. |
| |
| 2017-10-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright year to tools/abidiff.cc |
| * tools/abidiff.cc: Update copyright year. |
| |
| 2017-10-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing comment to type declaration |
| * include/abg-comparison.h (struct diff_sptr_hasher): Add missing |
| comment. |
| |
| 2017-10-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style fixes in abg-writer.cc |
| * src/abg-writer.cc (type_hasher): Add comment. |
| (write_context::record_decl_as_emitted): Remove useless newline. |
| |
| 2017-10-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Initialize naked canonical type |
| * src/abg-ir.cc (type_base::priv::priv): Initialize the naked |
| canonical type data member. |
| |
| 2017-10-04 Dodji Seketeli <dodji@redhat.com> |
| |
| [abixml writer] Use an unordered set when appropriate |
| * src/abg-writer.cc (write_context::m_emitted_decl_only_set): |
| Renamed m_emitted_decl_only_map into this and make the type be a |
| set, rather than a map. |
| (write_context::{record_decl_only_type_as_emitted, |
| decl_only_type_is_emitted}): Adjust. |
| |
| 2017-09-29 Dodji Seketeli <dodji@redhat.com> |
| |
| [abixml writer] Store pointers to emitted types rather than type-ids |
| * src/abg-writer.cc (type_ptr_set_type): Declare new typedef. |
| (writer_context::m_emitted_type_id_map): Remove this data member. |
| (writer_context::m_emitted_type_set): Add a new data member. |
| (writer_context::{record_type_id_as_emitted, type_id_is_emitted, |
| clear_emitted_types_map}): Remove these member functions. |
| (writer_context::{record_type_as_emitted, type_is_emitted}): Use |
| the new m_emitted_type_set data member above. |
| |
| 2017-09-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Use an unordered map for canonical DIE offsets |
| * src/abg-dwarf-reader.cc |
| (read_context::canonical_type_die_offsets_): Renamed the |
| canonical_type_die_vecs_ data member into this. |
| (read_context::canonical_decl_die_offsets_): Renamed the |
| canonical_decl_die_vecs_ data member into this. |
| (read_context::{initialize, compute_canonical_die_offset, |
| compute_canonical_die, get_canonical_die, |
| get_or_compute_canonical_die, set_canonical_die_offset, |
| get_canonical_die_offset}): Adjust. |
| |
| 2017-09-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22190 - crash in read_context::get_or_compute_canonical_die |
| * src/abg-dwarf-reader.cc: |
| |
| 2017-09-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Remove redundant (useless) typedef declaration |
| * src/abg-dwarf-reader.cc (dwarf_offsets_type): There are two |
| instances of this typedef declaration, remove one. |
| |
| 2017-09-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Renamed offset_offset_map type name into offset_offset_map_type |
| * src/abg-dwarf-reader.cc (offset_offset_map_type): Renamed |
| offset_offset_map into this. |
| (read_context::{primary_die_parent_map_, |
| alternate_die_parent_map_, type_section_die_parent_map_}): Adjust |
| the type of these data members. |
| (read_context::{die_parent_map, type_section_die_parent_map}): |
| Adjust the type of these member functions. |
| (read_context::{build_die_parent_relations_under, |
| get_parent_die}): Adjust for the type name in these functions. |
| |
| 2017-09-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing newlines to kmidiff's usage strings |
| * tools/kmidiff.cc (display_usage): Add newlines after the lines |
| for --vmlinux1 and --vmlinux2. |
| |
| 2017-09-21 Dodji Seketeli <dodji@redhat.com> |
| |
| 22160 - Annotate state flag unitialized in abidw |
| * tools/abidw.cc (options::options): Initialize the annotate data |
| member. |
| |
| 2017-09-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't crash on classes that differ in their virtual member fn count |
| * src/abg-ir.cc (equals): In the overload for class_decl, when we |
| detect that the virtual member function counts are different, get |
| out, even when we are being asked about the kind of the change. |
| |
| 2017-09-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid adding the same data member twice in the DWARF reader |
| * src/abg-dwarf-reader.cc (add_or_update_class_type): After a we |
| try to create a data member type, look *again* if the data member |
| wasn't added recursively by the creation of the data member type. |
| |
| 2017-09-11 Mark Wielaard <mark@klomp.org> |
| |
| Bug 22075 - data_member_diff_comp forgets data members names |
| * src/abg-comparison.cc (data_member_diff_comp): Make the |
| comparison take the qualified name of the data member into |
| account. Also, if the initial offset and qualified names of the |
| data members of the diff nodes are equal, consider the offset and |
| qualified names of the new data members. |
| |
| 2017-09-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22122 - Fail to represent 'const array' |
| * src/abg-dwarf-reader.cc (die_is_array_type): Define new static |
| function. |
| (die_is_pointer_or_reference_type): Also test that the DIE can be |
| an array. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so: New binary test input. |
| * tests/data/test-read-dwarf/PR22122-libftdc.so.abi: New reference output. |
| * tests/data/Makefile.am: Add the two new test files above to |
| source distribution. |
| * tests/test-read-dwarf.cc (in_out_specs): Run this test harness |
| over the new test input. |
| |
| 2017-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Finer detection of local changes of var_decl type |
| * src/abg-ir.cc (equals): In the var_decl overload detect size |
| changes of type as being a local change. |
| |
| 2017-09-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style fixes |
| * include/abg-fwd.h (get_pretty_representation): Add missing white |
| space. |
| * src/abg-ir.cc (get_name): Fix typo in comment. |
| |
| 2017-09-02 Mark Wielaard <mark@klomp.org> |
| |
| readdir_r() is deprecated, use readdir(). |
| * src/abg-tools-utils.cc (dir_is_empty): Use readdir() instead |
| of readdir_r(). |
| |
| 2017-09-02 Mark Wielaard <mark@klomp.org> |
| |
| Declare eval_last_constant_dwarf_sub_expr with [u]int64_t not [s]size_t. |
| * src/abg-dwarf-reader.cc (eval_last_constant_dwarf_sub_expr): |
| Declare expr_len as uint64_t and value as int64_t. |
| |
| 2017-08-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 22015 - Failing to return global scope of a DIE in certain cases |
| * src/abg-dwarf-reader.cc (get_scope_for_die): If the translation |
| unit of the parent die hasn't yet been constructed, then return |
| the global scope of the current translation unit. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so: New |
| binary test input. |
| * tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi: |
| New reference test output. |
| * tests/data/Makefile.am: Add the new test materials above to |
| source distribution. |
| * tests/test-read-dwarf.cc (in_out_specs): Add the new test input |
| to the test suite. |
| |
| 2017-07-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix some make distcheck failures |
| * tests/data/Makefile.am: Add |
| test-diff-dwarf/test42-PR21296-libgcc.so, |
| test-diff-dwarf/test42-PR21296-libclang.so, |
| test-diff-dwarf/test42-PR21296-clanggcc-report0.txt to the source |
| distribution. Also look for test-diff-filter/test39* tests inputs |
| in the test-diff-filter/test39/ directory. |
| |
| 2017-07-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid crashing when the elf file could not be read |
| * src/abg-dwarf-reader.cc |
| (read_context::elf_architecture_is_ppc64): Do not crash if the elf |
| handle is nil. |
| |
| 2017-07-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21730 - Make abipkgdiff compare Linux Kernel packages as expected |
| * include/abg-tools-utils.h (get_vmlinux_path_from_kernel_dist): |
| Declare new function. |
| (get_binary_paths_from_kernel_dist): Re-organize order of |
| parameters. |
| (file_is_kernel_package, file_is_kernel_debuginfo_package): Make |
| the file_path parameter be const. |
| (build_corpus_group_from_kernel_dist_under): Take an additional |
| debug_info_root parameter. |
| * src/abg-tools-utils.cc (file_is_kernel_package) |
| (file_is_kernel_debuginfo_package): Const-ify the file_name |
| parameter. |
| (find_vmlinux_path): Define new static function. |
| (get_binary_paths_from_kernel_dist): Re-organize the order of |
| parameters. The debug_info_root_path parameter is now an input |
| parameter. |
| (get_vmlinux_path_from_kernel_dist): Define new function. |
| (get_binary_paths_from_kernel_dist): Adjust invocation of |
| get_binary_paths_from_kernel_dist. |
| (build_corpus_group_from_kernel_dist_under): Take an additional |
| debug_info_root parameter. |
| * tools/abidw.cc (load_kernel_corpus_group_and_write_abixml): |
| Adjust invocation to build_corpus_group_from_kernel_dist_under. |
| * tools/abipkgdiff.cc (create_maps_of_package_content): Don't map |
| the content of a Linux Kernel package. |
| (compare_prepared_userspace_packages) |
| (compare_prepared_linux_kernel_packages, compare_prepared): Define |
| new functions. |
| (compare): Use the new functions above here. |
| * tools/kmidiff.cc (print_kernel_dist_binary_paths_under): Adjust |
| the invocation of get_binary_paths_from_kernel_dist. |
| (main): Adjust the invocation of |
| build_corpus_group_from_kernel_dist_under. Make sure that a |
| kernel package is accompanied by a debug info package. |
| |
| 2017-07-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Support up to two --wp options for abipkgdiff |
| * doc/manuals/abipkgdiff.rst: Update the documentation to say that |
| --wp can be provided twice, but not more than that. |
| * tools/abipkgdiff.cc (options::kabi_whitelist_packages): Rename |
| kabi_whitelist_package to this, and make be of vector<string> |
| type. |
| (package::erase_extraction_directories): Erase the white list |
| package extracted data. |
| (maybe_handle_kabi_whitelist_pkg, parse_command_line): Adjust. |
| (main): Make sure there is no more than 2 --wp on the command |
| line. Associate a white list package to each kernel package on |
| the command line. |
| |
| 2017-07-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix support of the --wp option of abipkgdiff |
| * tools/abipkgdiff.cc (parse_command_line): Consider the absolute |
| path of the package given in argument to --wp. |
| |
| 2017-07-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Use shorter lines in abipkgdiff.cc |
| * tools/abipkgdiff.cc (parse_command_line): Use shorter lines |
| here. |
| |
| 2017-07-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing space in abipkgdiff error message |
| * tools/abipkgdiff.cc (extract_package): Add missing space here. |
| |
| 2017-07-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Replace --lkaw with -w and --lkaw-pkg with --wp |
| * doc/manuals/abipkgdiff.rst: Adjust the documentation. |
| * tools/abipkgdiff.cc (display_usage): Adjust the usage string. |
| (parse_command_line): Parse -w instead of --lkaw and --wp |
| insteadof --lkaw-pkg. |
| |
| 2017-07-11 Dodji Seketeli <dodji@redhat.com> |
| |
| speed up class type lookup in a corpus |
| * src/abg-ir.cc (lookup_class_type): In the overload that looks |
| for a class name denoted by an interned_string in the corpus, do |
| not look for the class in the translation units when the type |
| wasn't found in the type map of the corpus. |
| (maybe_update_types_lookup_map): Remove the |
| erase_if_exists_already parameter and the code that uses it. |
| (lookup_class_type_through_translation_units): Remove this |
| function that is now useless. |
| |
| 2017-07-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21644 - abipkgdiff does not emit diagnostics about comparison errors |
| * include/abg-dwarf-reader.h (status_to_diagnostic_string): |
| Declare new function. |
| * src/abg-dwarf-reader.cc (status_to_diagnostic_string): Define |
| new function. |
| * tools/abipkgdiff.cc (compare): Take a new detailed_error_status |
| parameter. |
| (compare_task::perform): Get the details of the error, in case the |
| status of the comparison is ABIDIFF_ERROR. |
| |
| 2017-07-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21153 - abipkgdiff reports undetermined interface subtype changes |
| * src/abg-ir.cc (get_name_of_qualified_type): A noop-qualified |
| type has an empty string as reprsentation for its qualifier. |
| * src/abg-dwarf-reader.cc (die_qualified_type_name): Adjust to |
| comply with what is done in get_name_of_qualified_type. Adjust |
| comment too. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64--libcdio-0.94-2.fc26.x86_64-report.1.txt: |
| New reference test output. |
| * tests/data/test-diff-pkg/libcdio-0.94-1.fc26.x86_64.rpm: New |
| test binary input. |
| * tests/data/test-diff-pkg/libcdio-0.94-2.fc26.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/libcdio-debuginfo-0.94-1.fc26.x86_64.rpm: Likewise. |
| * tests/data/test-diff-pkg/libcdio-debuginfo-0.94-2.fc26.x86_64.rpm Likewise. |
| * tests/data/Makefile.am: Add the new test inputs to source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Make this test harness run on |
| the new test inputs above. |
| |
| 2017-07-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typo in comments |
| * src/abg-ir.cc (type_base::get_canonical_type_for): Fix a typo in |
| a command. |
| |
| 2017-07-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a typo when reporting size change wrt a decl-only class |
| * src/abg-comparison.cc (report_size_and_alignment_changes): Fix |
| typo. |
| |
| 2017-07-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Better handle decl-only classes being different from their definition |
| * src/abg-comparison.cc (function_decl_diff::report): Don't report |
| possible vtable changes between a decl-only class and its |
| definition. |
| * src/abg-ir.cc (type_base::get_canonical_type_for): Consider that |
| a decl-only class is different from its definition when comparing |
| types for the purpose of type canonicalization. |
| (equals): In the class_or_union overload, only consider the global |
| decl_only_class_equals_definition() property to know when to |
| consider that a decl-only class is different from its definition |
| when comparing two classes. |
| * src/abg-reader.cc (build_class_decl): Read the size property of |
| a class, even if it's a decl-only class. |
| * src/abg-writer.cc (write_class_decl_opening_tag): Write size |
| property of types even if the types are decl-only classes. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2017-06-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't add empty translation unit to corpus |
| * src/abg-dwarf-reader.cc (build_translation_unit_and_add_to_ir): |
| A translation unit DIE that has no child DIE shall not be added to |
| the current ABI corpus. |
| |
| 2017-06-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21631 - Forgot a "break" statement in stv_to_elf_symbol_visibility |
| * src/abg-dwarf-reader.cc (stv_to_elf_symbol_visibility): Add a |
| missing break statement. |
| |
| 2017-06-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21630 - A this pointer DIE can be const |
| * src/abg-dwarf-reader.cc (die_this_pointer_is_const): If the DIE |
| is not a DW_TAG_pointer_type then don't crash. |
| |
| 2017-06-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21629 - equivalent DIEs must be of the same DIE source |
| * src/abg-dwarf-reader.cc (compare_dies): Don't propagate |
| a canonical DIE to a DIE that comes from a different source. |
| |
| 2017-06-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21627 - Libabigail doesn't consider translation unit compile dir |
| *if* that translation unit has already been seen in the current |
| binary, instead of creating a new one altogether. |
| This patch doesn't carry a regression test as the problem was found |
| while running the |
| https://pagure.io/libabigail-selfcheck/blob/master/f/selfcheck.py |
| script over the Fedora 25 critpath packages. |
| The patch does however update existing reference outputs of existings |
| tests where appropriate. |
| * include/abg-ir.h (translation_unit::{get_compilation_dir_path, |
| set_compilation_dir_path, get_absolute_path}): |
| * src/abg-corpus.cc (corpus::add): Use the new |
| translation_unit::get_absolute_path() as the key for the tu path |
| -> tu map. |
| * src/abg-dwarf-reader.cc |
| (read_context::resolve_declaration_only_classes): Use the new |
| translation_unit::get_absolute_path(). |
| (build_translation_unit_and_add_to_ir): Set the compilation |
| directory of the translation unit. |
| * src/abg-ir-priv.h (translation_unit::priv::{comp_dir_path_, |
| abs_path_}): |
| * src/abg-ir.cc (translation_unit::set_path): Update comment. |
| (translation_unit::{get_compilation_dir_path, |
| set_compilation_dir_path, get_absolute_path}): Define new member |
| functions. |
| * src/abg-reader.cc (read_translation_unit): Take the new |
| 'comp-dir-path' attribute into account. |
| * src/abg-writer.cc (write_translation_unit): Emit the new |
| 'comp-dir-path' attribute. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Adjust. |
| * tests/data/test-annotate/test0.abi: Adjust. |
| * tests/data/test-annotate/test1.abi: Adjust. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-annotate/test2.so.abi: Adjust. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-annotate/test3.so.abi: Adjust. |
| * tests/data/test-annotate/test4.so.abi: Adjust. |
| * tests/data/test-annotate/test5.o.abi: Adjust. |
| * tests/data/test-annotate/test6.so.abi: Adjust. |
| * tests/data/test-annotate/test7.so.abi: Adjust. |
| * tests/data/test-annotate/test8-qualified-this-pointer.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test0.abi: Adjust. |
| * tests/data/test-read-dwarf/test1.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test2.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test3.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test4.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test5.o.abi: Adjust. |
| * tests/data/test-read-dwarf/test6.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test7.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2017-05-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style fixes |
| * src/abg-dwarf-reader.cc (read_context::{die_wip_classes_map, |
| die_wip_function_types_map, types_to_canonicalize, |
| tu_die_imported_unit_points_map, die_parent_map, |
| load_kernel_symbol_table}): Add missing space to statement. |
| (get_parent_die): Likewise. |
| (build_enum_type): Fix typo in comment. |
| (e_machine_to_string, get_version_definition_for_versym) |
| (lookup_public_function_symbol_from_elf) |
| (lookup_public_variable_symbol_from_elf) |
| (lookup_data_tag_from_dynamic_segment, die_is_declaration_only) |
| (die_is_reference_type, die_function_type_is_method_type): Fix |
| indentation. |
| (read_context::{resolve_declaration_only_classes, |
| fixup_functions_with_no_symbols, |
| load_symbol_maps_from_symtab_section, load_dt_soname_and_needed, |
| load_elf_architecture, load_elf_properties, |
| maybe_adjust_address_for_exec_or_dyn, maybe_adjust_fn_sym_address, |
| address_is_in_opd_section, load_elf_architecture, |
| build_die_parent_maps}): Likewise. |
| (op_pushes_constant_value, op_manipulates_stack): Use the |
| dwarf_expr_eval_context::push method. |
| (op_is_control_flow, die_return_and_parm_names_from_fn_type_die) |
| (die_function_signature, die_pretty_print_type) |
| (get_default_array_lower_bound) |
| (build_translation_unit_and_add_to_ir, build_enum_type) |
| (add_or_update_class_type, build_function_type) |
| (build_function_decl, build_ir_node_from_die) |
| (lookup_public_function_symbol_from_elf): Fix indentation. |
| * src/abg-ir.cc (maybe_update_types_lookup_map): Remove useless space. |
| |
| 2017-05-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix doc glitch in abidiff.rst |
| * doc/manuals/abidiff.rst: Fix glitch. |
| |
| 2017-06-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Symbols with the same zero value are not aliases |
| * src/abg-dwarf-reader.cc (load_symbol_maps_from_symtab_section): |
| Do not consider symbols with zero value as being aliases. |
| * tests/data/test-diff-filter/test20-inline-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test20-inline-report-1.txt: |
| Likewise. |
| * test-diff-filter/test41-PR21486-abg-writer.gcc.o: New test |
| binary input. |
| * tests/data/test-diff-filter/test41-PR21486-abg-writer.llvm.o: |
| Likewise. |
| * tests/data/Makefile.am: Add the new test material to source |
| distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Run the test harness |
| on the new test input above. |
| * tests/data/test-diff-dwarf/test5-report.txt: Adjust. |
| * tests/data/test-diff-filter/test9-report.txt: Adjust. |
| * tests/data/test-diff-filter/test20-inline-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test20-inline-report-1.txt: Adjust. |
| |
| 2017-06-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Support ELF symbol visibility property |
| * include/abg-ir.h (enum elf_symbol::visibility): Define new enum. |
| (elf_symbol::{elf_symbol, create}): Take a visibility parameter. |
| (elf_symbol::{set, get}_visibility): Declare new accessors. |
| (string_to_elf_symbol_binding): Declare new function. |
| * src/abg-ir.cc (elf_symbol::priv::visibility_): New data member. |
| (elf_symbol::priv::priv): Adjust. |
| (elf_symbol::elf_symbol): Take a visibility parameter. |
| (elf_symbol::create): Likewise |
| (elf_symbol::{s,g}et_visibility): Define new accessors. |
| (elf_symbol::is_public): Adjust. |
| (operator<<(std::ostream&, elf_symbol::visibility)): Define new |
| operator. |
| (string_to_elf_symbol_visibility): Define new function. |
| * src/abg-dwarf-reader.cc (stv_to_elf_symbol_visibility): Define |
| new static function. |
| (lookup_symbol_from_sysv_hash_tab) |
| (lookup_symbol_from_gnu_hash_tab, lookup_symbol_from_symtab) |
| (create_default_var_sym, create_default_fn_sym): Adjust. |
| * src/abg-reader.cc (read_elf_symbol_binding): Define new |
| function. |
| (build_elf_symbol): Adjust. |
| * src/abg-writer.cc (write_elf_symbol_visibility): Define new |
| function. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Adjust. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Adjust. |
| * tests/data/test-annotate/test0.abi: Adjust. |
| * tests/data/test-annotate/test1.abi: Adjust. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-annotate/test2.so.abi: Adjust. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Adjust. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-annotate/test3.so.abi: Adjust. |
| * tests/data/test-annotate/test4.so.abi: Adjust. |
| * tests/data/test-annotate/test5.o.abi: Adjust. |
| * tests/data/test-annotate/test6.so.abi: Adjust. |
| * tests/data/test-annotate/test7.so.abi: Adjust. |
| * tests/data/test-annotate/test8-qualified-this-pointer.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test0.abi: Adjust. |
| * tests/data/test-read-dwarf/test1.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test2.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test3.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test4.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test5.o.abi: Adjust. |
| * tests/data/test-read-dwarf/test6.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test7.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| * tests/data/test-read-write/test26.xml: Adjust. |
| * tests/data/test-read-write/test27.xml: Adjust. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Adjust. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Adjust. |
| |
| 2017-06-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Filter top cv qualifier changes on function parameter types |
| * include/abg-comparison.h (enum diff_category): Add a new |
| FN_PARM_TYPE_TOP_CV_CHANGE_CATEGORY enumerator. "Or" the |
| enumerator to the EVERYTHING_CATEGORY enumerator. |
| * src/abg-comp-filter.cc (has_fn_parm_type_cv_qual_change): Define |
| new static function. |
| (categorize_harmless_diff_node): Categorize changes to top cv |
| qualifiers on function parameter types into the new |
| FN_PARM_TYPE_TOP_CV_CHANGE_CATEGORY. |
| * src/abg-comparison.cc (get_default_harmless_categories_bitmap): |
| Add the new FN_PARM_TYPE_TOP_CV_CHANGE_CATEGORY category to the |
| set of harmless categories. |
| (operator<<(ostream&, diff_category)): Adjust to serialize |
| the new FN_PARM_TYPE_TOP_CV_CHANGE_CATEGORY. |
| * tests/data/test-diff-filter/libtest40-v0.so: New test input binary. |
| * tests/data/test-diff-filter/libtest40-v1.so: Likewise. |
| * tests/data/test-diff-filter/test40-report-0.txt: New test |
| reference output. |
| * tests/data/test-diff-filter/test40-v0.cc: Source code of the |
| test binary above. |
| * tests/data/test-diff-filter/test40-v1.cc: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add new binaries to |
| compare. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt: |
| Likewise. |
| |
| 2017-05-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not report about voffset when it's not set in debug info |
| * include/abg-ir.h (mem_fn_context_rel::mem_fn_context_rel): |
| Initialize the virtual offset to -1. |
| * src/abg-comparison.cc (represent): In the overload to represent |
| a method_decl, do not represent the vofffset if it's not set. |
| * src/abg-writer.cc (write_voffset): The virtual offset is signed |
| because if it's -1, it means no offset is set. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Adjust. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Adjust. |
| * tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| |
| 2017-05-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Allow selective resolution of class declaration |
| * include/abg-fwd.h (type_base_wptrs_type) |
| (istring_type_base_wptrs_map_type): Define new typedefs. |
| (lookup_class_types): Declare new functions. |
| * include/abg-ir.h |
| (environment::decl_only_class_equals_definition): Declare new |
| accessor. |
| (type_maps::{*_types}): Make these accessors return |
| istring_type_base_wptrs_map_type& instead of |
| istring_type_base_wptr_map_type&. |
| * src/abg-dwarf-reader.cc |
| (read_context::resolve_declaration_only_classes): Implement the |
| new selective declaration resolution scheme. |
| * src/abg-ir.cc (type_maps::priv::{*_types_}): Change the type of |
| these data members from istring_type_base_wptr_map_type to |
| istring_type_base_wptrs_map_type. |
| (type_maps::{*_types}): Make these accessors definitions return |
| istring_type_base_wptrs_map_type& instead of |
| istring_type_base_wptr_map_type&. |
| (translation_unit::bind_function_type_life_time): Adjust. |
| (environment::priv::decl_only_class_equals_definition_): New data |
| member. |
| (environment::priv::priv): Initialize it. By default, a decl-only |
| class is now considered different from its definition. |
| (environment::decl_only_class_equals_definition): Define new |
| accessor. |
| (lookup_types_in_map, lookup_class_types): Define new functions. |
| (lookup_type_in_map, lookup_union_type_per_location) |
| (lookup_basic_type, lookup_basic_type_per_location) |
| (lookup_class_type, lookup_class_type_per_location) |
| (lookup_union_type, lookup_enum_type) |
| (lookup_enum_type_per_location, lookup_typedef_type) |
| (lookup_typedef_type_per_location, lookup_qualified_type) |
| (lookup_pointer_type, lookup_reference_type, lookup_array_type) |
| (lookup_function_type, maybe_update_types_lookup_map) |
| (maybe_update_types_lookup_map<class_decl>) |
| (maybe_update_types_lookup_map<function_type>): Adjust. |
| (type_base::get_canonical_type_for): When doing type comparison |
| here, we can now consider that an unresolved class declaration |
| compares different to an incompatible class definition of the same |
| name. So no need to look through decl-only classes in that case. |
| (equals): In the overload for class_or_union, if |
| environment::decl_only_class_equals_definition() is false, then an |
| unresolved class declaration of name "N" compares different to a |
| class definition named "N". |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: |
| Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Adjust. |
| * tests/data/test-diff-filter/test38/Makefile: New test material. |
| * tests/data/test-diff-filter/test38/test38-a.c: Likewise. |
| * tests/data/test-diff-filter/test38/test38-b.c: Likewise. |
| * tests/data/test-diff-filter/test38/test38-c.c: Likewise. |
| * tests/data/test-diff-filter/test38/test38-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test38/test38-v0: Likewise. |
| * tests/data/test-diff-filter/test38/test38-v1: Likewise. |
| * tests/data/test-diff-filter/test38/test38.h: Likewise. |
| * tests/data/test-diff-filter/test39/Makefile: Likewise. |
| * tests/data/test-diff-filter/test39/test39-a-v0.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-a-v1.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-b-v0.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-b-v1.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-c-v0.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-c-v1.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-main.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test39/test39-v0: Likewise. |
| * tests/data/test-diff-filter/test39/test39-v1: Likewise. |
| * tests/data/test-diff-filter/test39/test39.h: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to the |
| source distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the new test |
| inputs above to the test harness. |
| |
| 2017-05-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Add documentation for the kmidiff tool |
| * doc/manuals/kmidiff.rst: New doc file. |
| * doc/manuals/Makefile.am: Add the above file to source |
| distribution. |
| |
| 2017-05-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Allow re-using the ELF/DWARF read_context when loading a corpus group |
| * include/abg-dwarf-reader.h (reset_read_context): Declare new |
| function. |
| * src/abg-dwarf-reader.cc (read_context::elf_paths_): Make this to |
| be non const. |
| (read_context::initialize): New function to initialize all data |
| members. |
| (read_context::read_context): Use the new read_context::initialize |
| function, rather than initializing data members 'inline' here. |
| (reset_read_context): Define a new function to reset a |
| read_context so that it can be re-used to load a new corpus. |
| |
| 2017-05-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Add --vmlinux{1,2} option to abidw and kmidiff |
| * include/abg-tools-utils.h |
| (build_corpus_group_from_kernel_dist_under): Add a new |
| vmlinux_path parameter. |
| * src/abg-tools-utils.cc (find_vmlinux_and_module_paths): Do not |
| try to find a vmlinux binary if we already have the path to one. |
| (build_corpus_group_from_kernel_dist_under): Add a new |
| vmlinux_path parameter. |
| * tools/abidw.cc (options::vmlinux): New data member. |
| (display_usage): Add a usage string for --vmlinux |
| (parse_command_line): Parse the new --vmlinux option. |
| (load_kernel_corpus_group_and_write_abixml): Fix some return code |
| when the function fails. Verify the presence of the vmlinux |
| binary that was given. Adjust. |
| * tools/kmidiff.cc (options::{vmlinux1, vmlinux2}): New data |
| members. |
| (display_usage): Add a usage string for --vmlinux1 and --vmlinux2. |
| (parse_command_line): Parse the --vmlinux1 and --vmlinux2 |
| options. |
| (main): Adjust. |
| |
| 2017-05-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Cache function type name computation results |
| * src/abg-ir.cc (get_type_name): Cache function type names. |
| |
| 2017-05-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix innacurate test condition when reading an enum type from abixml |
| * src/abg-reader.cc (build_enum_type_decl): Do not check for |
| errno which might have been set earlier by something else. |
| Rather, check the returned value for overflow or underflow. |
| |
| 2017-05-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not report about voffset when it's not set in debug info |
| * include/abg-ir.h (mem_fn_context_rel::mem_fn_context_rel): |
| Initialize the virtual offset to -1. |
| * src/abg-comparison.cc (represent): In the overload to represent |
| a method_decl, do not represent the vofffset if it's not set. |
| * src/abg-writer.cc (write_voffset): The virtual offset is signed |
| because if it's -1, it means no offset is set. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Adjust. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Adjust. |
| * tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| |
| 2017-05-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Speedup DIE representation computing esp function signature in C |
| * src/abg-dwarf-reader.cc (die_function_signature): For C DIEs, |
| just return the (linkage) name of the function. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| |
| 2017-05-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Allow selective resolution of class declaration |
| * include/abg-fwd.h (type_base_wptrs_type) |
| (istring_type_base_wptrs_map_type): Define new typedefs. |
| (lookup_class_types): Declare new functions. |
| * include/abg-ir.h |
| (environment::decl_only_class_equals_definition): Declare new |
| accessor. |
| (type_maps::{*_types}): Make these accessors return |
| istring_type_base_wptrs_map_type& instead of |
| istring_type_base_wptr_map_type&. |
| * src/abg-dwarf-reader.cc |
| (read_context::resolve_declaration_only_classes): Implement the |
| new selective declaration resolution scheme. |
| * src/abg-ir.cc (type_maps::priv::{*_types_}): Change the type of |
| these data members from istring_type_base_wptr_map_type to |
| istring_type_base_wptrs_map_type. |
| (type_maps::{*_types}): Make these accessors definitions return |
| istring_type_base_wptrs_map_type& instead of |
| istring_type_base_wptr_map_type&. |
| (translation_unit::bind_function_type_life_time): Adjust. |
| (environment::priv::decl_only_class_equals_definition_): New data |
| member. |
| (environment::priv::priv): Initialize it. By default, a decl-only |
| class is now considered different from its definition. |
| (environment::decl_only_class_equals_definition): Define new |
| accessor. |
| (lookup_types_in_map, lookup_class_types): Define new functions. |
| (lookup_type_in_map, lookup_union_type_per_location) |
| (lookup_basic_type, lookup_basic_type_per_location) |
| (lookup_class_type, lookup_class_type_per_location) |
| (lookup_union_type, lookup_enum_type) |
| (lookup_enum_type_per_location, lookup_typedef_type) |
| (lookup_typedef_type_per_location, lookup_qualified_type) |
| (lookup_pointer_type, lookup_reference_type, lookup_array_type) |
| (lookup_function_type, maybe_update_types_lookup_map) |
| (maybe_update_types_lookup_map<class_decl>) |
| (maybe_update_types_lookup_map<function_type>): Adjust. |
| (type_base::get_canonical_type_for): When doing type comparison |
| here, we can now consider that an unresolved class declaration |
| compares different to an incompatible class definition of the same |
| name. So no need to look through decl-only classes in that case. |
| (equals): In the overload for class_or_union, if |
| environment::decl_only_class_equals_definition() is false, then an |
| unresolved class declaration of name "N" compares different to a |
| class definition named "N". |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: |
| Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: |
| Adjust. |
| * tests/data/test-diff-filter/test38/Makefile: New test material. |
| * tests/data/test-diff-filter/test38/test38-a.c: Likewise. |
| * tests/data/test-diff-filter/test38/test38-b.c: Likewise. |
| * tests/data/test-diff-filter/test38/test38-c.c: Likewise. |
| * tests/data/test-diff-filter/test38/test38-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test38/test38-v0: Likewise. |
| * tests/data/test-diff-filter/test38/test38-v1: Likewise. |
| * tests/data/test-diff-filter/test38/test38.h: Likewise. |
| * tests/data/test-diff-filter/test39/Makefile: Likewise. |
| * tests/data/test-diff-filter/test39/test39-a-v0.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-a-v1.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-b-v0.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-b-v1.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-c-v0.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-c-v1.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-main.c: Likewise. |
| * tests/data/test-diff-filter/test39/test39-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test39/test39-v0: Likewise. |
| * tests/data/test-diff-filter/test39/test39-v1: Likewise. |
| * tests/data/test-diff-filter/test39/test39.h: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to the |
| source distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Add the new test |
| inputs above to the test harness. |
| |
| 2017-05-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid de-duplicating different C types that have identical name |
| * src/abg-dwarf-reader.cc (die_decl_map_type, die_type_map_type): |
| Remove these typedefs. |
| (die_artefact_map_type, istring_dwarf_offsets_map_type): New |
| typedefs. |
| (die_is_at_class_scope, die_qualified_type_name) |
| (die_qualified_decl_name, die_qualified_type_name_empty) |
| (die_return_and_parm_names_from_fn_type_die) |
| (die_function_type_is_method_type): |
| Const-ify the read_context& parameter. |
| (read_context::die_source_dependant_container_set::get_container): |
| Likewise. |
| (read_context::{name_artefacts_map_, per_tu_name_artefacts_map_, |
| die_decl_map_, alternate_die_decl_map_, type_unit_die_decl_map_, |
| die_type_map_, alternate_die_type_map_, type_unit_die_type_map_}): |
| Remove data members. |
| (read_context::{die_decl_map, alternate_die_decl_map, |
| associate_die_to_decl_primary, associate_die_to_decl_alternate, |
| associate_die_to_decl_from_type_unit, |
| lookup_decl_from_die_offset_primary, |
| lookup_decl_from_die_offset_alternate, |
| lookup_decl_from_type_unit_die_offset, |
| lookup_type_artifact_from_die_per_tu, |
| lookup_artifact_from_per_tu_die_representation, |
| associate_die_to_artifact_by_repr, |
| associate_die_to_artifact_by_repr_internal, clear_die_type_maps}): |
| Remove member functions. |
| (read_context::{decl_die_repr_die_offsets_maps_, |
| type_die_repr_die_offsets_maps_, decl_die_artefact_maps_, |
| type_die_artefact_maps_, dwarf_expr_eval_context_}): Add new data |
| members. |
| (read_context::clear_per_translation_unit_data): Don't clear |
| read_context::per_tu_name_artefacts_map_ data member as it's |
| removed. |
| (read_context::clear_per_corpus_data): Don't clear |
| read_context::name_artefacts_map_ and all the other relevant data |
| members that got removed. |
| (read_context::{dwarf_per_die_source, |
| decl_die_repr_die_offsets_maps, type_die_repr_die_offsets_maps, |
| get_canonical_die, get_die_from_offset, decl_die_artefact_maps, |
| type_die_artefact_maps, dwarf_expr_eval_ctxt}): Add new member |
| functions. |
| (compare_dies, compare_as_decl_dies) |
| (compare_as_type_dies, maybe_finish_function_decl_reading) |
| (die_is_anonymous): Define new functions. |
| (read_context::associate_die_to_decl): Remove the |
| do_associate_by_repr_per_tu parameter. Use the new |
| read_context::{decl_die_artefact_maps_, get_canonical_die} member |
| functions. |
| (read_context::lookup_decl_from_die_offset): Use Dwarf_Off rather |
| than size_t for the type of the die_offset parameter. Use the |
| lookup_artifact_from_die_offset member function. |
| (read_context::lookup_type_artifact_from_die): Const-ify. In one |
| overload, take a new 'die_as_type' parameter. Use the new |
| get_canonical_die, type_die_artefact_maps and |
| decl_die_artefact_maps member functions. In the second overload, |
| use the first overload. |
| (read_context::odr_is_relevant): Add an overload that takes a DIE. |
| (read_context::associate_die_to_type): Remove the |
| do_associate_by_repr and do_associate_per_tu parameters. Use the |
| new get_canonical_die and type_die_artefact_maps member functions. |
| (read_context::lookup_type_from_die): Use the new |
| lookup_artifact_from_die member function. |
| (read_context::lookup_type_from_die_offset): Use the new |
| type_die_artefact_maps member function. When the found artifact |
| is a function_decl, return its type. |
| (read_context::schedule_type_for_late_canonicalization): Use the |
| new get_canonical_die and type_die_artefact_maps member functions. |
| (die_function_signature): Const-ify. Get the scope name right |
| even for scopes that are not types. |
| (die_member_offset): Make eval_last_constant_dwarf_sub_expr use |
| the new cached DWARF expression evalution context. |
| (get_parent_die): Support where_offset equals to zero. This means |
| we are looking at a C binary, basically. |
| (build_enum_type) : Use the new overload of |
| read_context::odr_is_relevant that takes a DIE. Adjust. |
| (add_or_update_union_type, add_or_update_class_type): Don't lookup |
| classes/unions per location anymore. Now that we can compare DIEs |
| in a fined grain manner, the approximation of the location is not |
| useful anymore. |
| (build_pointer_type) |
| (build_function_type): Associate DIE to type if we reuse an |
| existing type. |
| (build_or_get_fn_decl_if_not_suppressed): When re-using a |
| function decl internal representation from an equivalent DIE that |
| we've seen before, it can happen that we want to augment that |
| function decl internal representation with new properties coming |
| from the DIE we are currently looking at; do that here. |
| (is_function_for_die_a_member_of_class): Remove the "where_offset" |
| parameter. |
| (add_or_update_member_function): Adjust. |
| * tests/data/test-annotate/libtest23.so.abi: Adjust. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * 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: Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt: Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt: Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Adjust. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2017-04-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Speedup access to unreferenced symbols when loading corpus_group |
| * src/abg-corpus.cc (corpus_group::unrefed_{fun, var}_symbol_map): |
| New data members. |
| (corpus_group::priv::priv): Adjust. |
| (corpus_group::priv::add_unref_{fun,var}_symbols): Define new |
| member functions. |
| (corpus_group::add_corpus): Update the map of unreferenced |
| symbols. |
| (corpus_group::get_unreferenced_{function,variable}_symbols) |
| Adjust logic. |
| |
| 2017-04-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Initial support of de-serializing the KMI of a Linux Kernel Tree |
| * include/abg-libxml-utils.h (advance_to_next_sibling_element): |
| Declare new function. |
| * src/abg-libxml-utils.cc (go_to_next_sibling_element_or_stay) |
| (advance_to_next_sibling_element): Define new functions. |
| * include/abg-reader.h (read_corpus_group_from_input) |
| (read_corpus_group_from_native_xml) |
| (read_corpus_group_from_native_xml_file): Declare new functions. |
| * src/abg-reader.cc (read_context::m_corpus_group): New data |
| member. |
| (read_context::{get_corpus_group, set_corpus_group}): Define new |
| member functions. |
| (read_translation_unit_from_input): Cleanup logic. |
| (read_corpus_from_input): Don't assume that the document is |
| starting with an 'abi-corpus' element. Support the mode where a |
| caller called the xmlTextReaderExpand function (and so we are |
| given an expanded xmlNodePtr) and the mode where we need to use |
| the xmlTextReader API to walk through the 'abi-corpus' element. |
| Also, if we are building a corpus group, do not clear what used to |
| be 'per-corpus' data. That data must be shared by all the corpora |
| of a given abi-corpus-group. |
| (read_corpus_group_from_input, read_corpus_group_from_native_xml) |
| (read_corpus_group_from_native_xml_file): Define new functions. |
| * include/abg-tools-utils.h (FILE_TYPE_XML_CORPUS_GROUP): New |
| enumerator of the file_type enum. |
| * src/abg-tools-utils.cc (operator<<): In the overload for |
| file_type, add a case for the new FILE_TYPE_XML_CORPUS_GROUP. |
| (guess_file_type): Dectect abi-corpus-group xml element. |
| * tools/abidiff.cc (adjust_diff_context_for_kmidiff): Define new |
| static function. |
| (main): Adjust to handle the new FILE_TYPE_XML_CORPUS_GROUP. That |
| is, compare two FILE_TYPE_XML_CORPUS_GROUP if they are present. |
| * tools/abilint.cc (main): Likewise. |
| * tools/kmidiff.cc (main): Detect that one of two .kmi files are |
| passed. In that case, load the .kmi file(s), build a corpus_group |
| of it and use it in the comparison. |
| |
| 2017-04-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Initial support of the serialization of the KMI of a Linux Kernel Tree |
| * include/abg-tools-utils.h (check_dir) |
| (get_binary_paths_from_kernel_dist) |
| (build_corpus_group_from_kernel_dist_under): Declare new |
| functions. The last two functions are being moved from |
| tools/kmidiff.cc so that they can be re-used. |
| * include/abg-writer.h (write_corpus): Declare one overload that |
| takes a write_context parameter. |
| (write_corpus_group): Declare three overloads of this new function. |
| * src/abg-tools-utils.cc (check_dir): Define new function. |
| (load_generate_apply_suppressions, is_vmlinux, is_kernel_module) |
| (find_vmlinux_and_module_paths) |
| (get_binary_paths_from_kernel_dist) |
| (build_corpus_group_from_kernel_dist_under): Define new functions. |
| * src/abg-writer.cc (write_context::set_annotate): Define new |
| member function. |
| (write_corpus): Add an overload that takes a write_context. Adapt |
| the existing overload to make it use this new one. |
| (write_corpus_group): Define this new function and two additional |
| overloads for it. |
| * tools/kmidiff.cc (set_suppressions, is_vmlinux) |
| (is_kernel_module, find_vmlinux_and_module_paths) |
| (get_binary_paths_from_kernel_dist) |
| (build_corpus_group_from_kernel_dist_under): Remove. |
| (main): Adjust the call to |
| build_corpus_group_from_kernel_dist_under as its arguments are now |
| adapted since it's been factorized out into abg-tools-utils.h. |
| * tools/abidw.cc (options::corpus_group_for_linux): Define new |
| data member. |
| (options::options): Adjust. |
| (display_usage): Add help strings for the new --linux-tree option. |
| (load_corpus_and_write_abixml): Factorize this function out of the |
| main function. |
| (load_kernel_corpus_group_and_write_abixml): Define new function. |
| (main): Use the factorized load_corpus_and_write_abixml and the |
| new load_corpus_and_write_abixml functions. |
| * tests/test-read-write.cc: Adjust. |
| * doc/manuals/abidw.rst: Add documentation for the new |
| --linux-tree option. |
| |
| 2017-04-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Adjust test reference outputs after changes in abg-writer.cc |
| * tests/data/test-annotate/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| |
| 2017-04-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix indentation glitch before the </abi-corpus> tag in abixml |
| * src/abg-writer.cc (write_corpus): Indent before emitting the |
| closing </abi-corpus> tag. |
| |
| 2017-04-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid emitting some empty translation units to abixml |
| * src/abg-writer.cc (write_corpus): Do not emit a translation |
| unit that appears empty beforehand. |
| |
| 2017-04-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid emitting duplicated decls in abixml |
| * src/abg-writer.cc (write_context::m_emitted_decls_map): New data |
| member. |
| (write_context::{decl_name_is_emitted, record_decl_as_emitted}): |
| Define new memeber functions. |
| (write_translation_unit): Do not emit a decl that has already been |
| emitted. |
| (write_var_decl, write_function): Record the decl as emitted. |
| |
| 2017-04-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Rename write_corpus_to_native_xml into write_corpus |
| * include/abg-writer.h (write_corpus): Rename |
| write_corpus_to_native_xml to this. |
| * src/abg-writer.cc (write_corpus): Rename |
| write_corpus_to_native_xml to this. |
| * tests/test-read-dwarf.cc (test_task::perform): Adjust. |
| * tests/test-read-write.cc: Remove a useless "using |
| abigail::xml_writer::write_corpus_to_native_xml". |
| * tools/abidw.cc (main): Adjust. |
| * tools/abilint.cc (main): Adjust. |
| |
| 2017-04-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Update the reference output of regression tests after kabidiff work |
| * tests/data/test-annotate/test0.abi: Adjust. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt: Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt: Adjust. |
| * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Adjust. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: Adjust. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: Adjust. |
| * tests/data/test-read-dwarf/test0.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2017-06-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Introduce the --kmi-whitelist option to abidiff |
| * doc/manuals/abidiff.rst: Add documentation for the |
| --kmi-whitelist option. |
| * tools/abidiff.cc (display_usage): Emit help string for the |
| --kmi-whitelist option |
| (parse_command_line): Parse the new --kmi-whitelist option, of the |
| -w shortcut. |
| |
| 2017-04-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abidw support the --kmi-whitelist option |
| * tools/abidw.cc (options::{kabi_whitelist_paths, |
| kabi_whitelist_supprs}): New data members. |
| (display_usage): Add a help string for the new --kmi-whitelist |
| option. |
| (parse_command_line): Parse the new --kmi-whitelist option. |
| (maybe_check_suppression_files): Check the presence of the linux |
| kernel abi white list passed by the option --kmi-whitelist. |
| (main): Ignore loading the symbol table if the kernel abi white |
| list is provided. |
| * doc/manuals/abidw.rst: Add documentation for the new option. |
| |
| 2017-04-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abipkgdiff compare two kernel packages |
| * include/abg-suppression.h |
| (variable_suppression::variable_suppression): Add default arguments |
| to the parameters. |
| * include/abg-tools-utils.h (dir_exists, dir_is_empty) |
| (string_begins_with, get_rpm_name, get_rpm_arch, get_deb_name) |
| (file_is_kernel_package, file_is_kernel_debuginfo_package): |
| Declare new functions. |
| * src/abg-tools-utils.cc (dir_exists, dir_is_empty) |
| (string_begins_with, get_deb_name, get_rpm_name, get_rpm_arch) |
| (file_is_kernel_package, file_is_kernel_debuginfo_package): Define |
| new functions. |
| (gen_suppr_spec_from_kernel_abi_whitelist): The kernel ABI |
| whitelist is made of ELF symbols names that ought to match |
| functions *and* variables that have ELF symbols with those names. |
| So generate variable suppression specifications as well. Not just |
| function suppression specifications. |
| * tools/abipkgdiff.cc (options::{kabi_whitelist_package, |
| show_symbols_not_referenced_by_debug_info, kabi_whitelist_paths, |
| kabi_suppressions}): New data members. |
| (options::options): Adjust. |
| (package::KIND_KABI_WHITELISTS): New enumerator in the |
| package::kind enum. |
| (package::kabi_whitelist_package_): New data member. |
| (package::{base_name, kabi_whitelist_package, }): New member |
| functions. |
| (display_usage): Add a help string to the new |
| --linux-kernel-abi-whitelist and --no-unreferenced-symbols |
| options. |
| (parse_command_line): Parse the new --no-unreferenced-symbols, |
| --linux-kernel-abi-whitelist and --lkaw-pkg options. |
| (maybe_check_suppression_files): Check the presence of kabi |
| whitelist files. |
| (set_diff_context_from_opts): Consider (not) showing symbols not |
| referenced by debug info. |
| (compare): If we are looking at linux kernel packages, take the |
| kernel abi whitelist into account, apply the suppressions |
| resulting from the kabi whitelists to the ELF read context. |
| (maybe_collect_kabi_whitelists) |
| (get_kabi_whitelists_from_arch_under_dir) |
| (maybe_handle_kabi_whitelist_pkg, maybe_collect_kabi_whitelists) |
| (get_interesting_files_under_dir): Define new functions. |
| (maybe_update_vector_of_package_content): Take a new |
| file_name_to_look_for parameter. |
| (create_maps_of_package_content) |
| (extract_package_and_map_its_content): Consider the case of the |
| package being a linux kernel package. |
| (main): Take the potential --lkaw-pkg into account. |
| * doc/manuals/abipkgdiff.rst: Add documentation for options |
| --linux-kernel-abi-whitelist, --lkaw-pkg and |
| --no-unreferenced-symbols. |
| |
| 2017-04-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid loading a translation unit twice from abixml |
| * src/abg-reader.cc (read_translation_unit): Take (in parameter) a |
| reference as the resulting translation unit. |
| (get_or_read_and_add_translation_unit): Define new static |
| function. |
| (read_context::get_scope_for_node) |
| (read_translation_unit_from_input): Use the new |
| get_or_read_and_add_translation_unit. |
| |
| 2017-04-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Support loading and comparing two kernel trees |
| * include/abg-dwarf-reader.h (set_read_context_corpus_group) |
| (read_and_add_corpus_to_group_from_elf, set_ignore_symbol_table) |
| (get_ignore_symbol_table): Declare new functions. |
| * abg-dwarf-reader.cc (read_context::options_type): Define new |
| type. |
| (die_dependant_container_set::clear): Define new member function. |
| (read_context::{bss, tesxt, rodata, data, data1}_section_): Add |
| new data members. |
| (read_context::{symbol_versionning_sections_loaded_, |
| symbol_versionning_sections_found_}): Likewise. |
| (read_context::corpus_group_): Likewise. |
| (read_context::{load_in_linux_kernel_mode, load_all_types, |
| show_stats, do_log_}): Replace these options by .. |
| (read_context::options_): ... this instance of the new |
| read_context:options_type. |
| (read_context::read_context): Adjust. |
| (read_context::{clear_alt_debug_info_data, clear_per_corpus_data, |
| env, get_data_section_for_variable_address, load_all_types, |
| load_in_linux_kernel_mode, show_stats, do_log}): Adjust. |
| (create_read_context): Adjust. |
| (read_context::~read_context): Define destructor. |
| (read_context::{options, bss_section, text_section, |
| rodata_section, data_section, data1_section, current_corpus_group, |
| has_corpus_group, main_corpus_from_current_group, |
| main_corpus_from_current_group, |
| current_corpus_is_main_corpus_from_current_group, |
| should_reuse_type_from_corpus_group}): Define new member |
| functions. |
| (read_context::get_die_qualified_type_name): Handle the name of |
| the current translation unit. |
| (read_context::load_symbol_maps): Really don't load (linux kernel |
| specific) symbol maps if we were told to ignore the ELF symbol |
| table. |
| (set_ignore_symbol_table, get_ignore_symbol_table) |
| (create_default_var_sym, create_default_fn_sym, add_symbol_to_map) |
| (set_read_context_corpus_group) |
| (read_and_add_corpus_to_group_from_elf): Define new functions. |
| (build_type_decl, build_typedef_type, build_enum_type) |
| (add_or_update_class_type) |
| (add_or_update_union_type): Reuse the type being built, from the |
| main corpus of the corpus group. |
| (build_qualified_type): Cleanup logic. |
| (build_var_decl, build_function_decl): Create a default symbol for |
| the variable or function if we are supposed to ignore the symbol |
| table of the current binary. Add that symbol to the symbol table |
| that is created in the read context. |
| (read_debug_info_into_corpus): Don't load the ELF symbol table |
| information if we are asked to ignore the symbol table. But set |
| the symbol table that we built artificially while loading |
| functions and variables, into the ABI corpus being built. |
| (read_context::maybe_adjust_var_sym_address): Adjust. |
| (build_ir_node_from_die): Add ir node to its logical scope. For |
| the C language, the scope of a type is the global scope. |
| (read_corpus_from_elf): Don't load ELF properties if we were asked |
| to avoid the ELF symbol table. |
| * include/abg-comparison.h (compute_diff): Declare ... |
| * src/abg-comparison.cc (compute_diff): ... an overload to compare |
| corpus_group. |
| * tools/kmidiff.cc: New tool. |
| |
| 2017-03-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Initial support to lookup types per location |
| * include/abg-fwd.h (get_name_of_qualified_type) |
| (get_name_of_reference_to_type, lookup_basic_type_per_location) |
| (lookup_class_type_per_location, lookup_union_type_per_location) |
| (lookup_enum_type_per_location, lookup_typedef_type) |
| (lookup_typedef_type_per_location, lookup_pointer_type) |
| (lookup_reference_type, lookup_type_per_location) |
| (lookup_type_through_translation_units) |
| (lookup_type_from_translation_unit, odr_is_relevant): Declare new |
| functions or new function overloads. |
| * include/abg-ir.h (location::expand): Declare new member |
| function. |
| (type_maps::empty): Likewise. |
| (operator|=): Declare an overload for qualified_type_def::CV. |
| (get_string_representation_of_cv_quals) |
| (get_name_of_qualified_type, lookup_qualified_type): Declare new functions. |
| * src/abg-ir.cc (location::expand): Define new member function. |
| (type_maps::empty): Likewise. |
| (odr_is_relevant): Likewise. |
| (get_string_representation_of_cv_quals) |
| (get_name_of_reference_to_type, get_name_of_qualified_type) |
| (lookup_union_type_per_location): Define new functions or overloads. |
| (lookup_basic_type, lookup_enum_type, lookup_typedef_type) |
| (lookup_qualified_type, lookup_pointer_type) |
| (lookup_reference_type, lookup_type_from_translation_unit) |
| (lookup_basic_type_per_location, lookup_basic_type_per_location) |
| (lookup_class_type_per_location, lookup_class_type_per_location) |
| (lookup_enum_type_per_location, lookup_enum_type_per_location) |
| (lookup_typedef_type_per_location) |
| (lookup_typedef_type_per_location, lookup_type_per_location): |
| Define new overloads. |
| (maybe_update_types_lookup_map) |
| (maybe_update_types_lookup_map<class_decl>) |
| (maybe_update_types_lookup_map<function_type>): Add a new |
| use_type_name_as_key parameter. If it's false, then associates |
| the type to its location rather than to its name. |
| (maybe_update_types_lookup_map): In the overloads for type_decl, |
| class_decl, union_decl, enum_type, typedef_decl, array_type_def, |
| record the type in the lookup map per location, in addition to the |
| per-name recording. |
| (qualified_type_def::build_name): Use the new |
| get_name_of_qualified_type. |
| (qualified_type_def::get_cv_quals_string_prefix): Use the new |
| get_string_representation_of_cv_quals. |
| (operator|=): Define a new overload for qualified_type_def::CV. |
| (pointer_type_def::get_qualified_name): Use the new |
| get_name_of_pointer_to_type. |
| (reference_type_def::get_qualified_name): Use the new |
| get_name_of_reference_to_type. |
| |
| 2017-03-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Create a Corpus Group API extension |
| * include/abg-corpus.h (corpus::{find_translation_unit, |
| get_type_per_loc_map}): Declare new member functions. |
| (corpus::{get_architecture_name, is_empty}): Make these member functions |
| const. |
| (corpus::{get_sorted_fun_symbols, get_functions, get_variables, |
| get_unreferenced_function_symbols, |
| get_unreferenced_variable_symbols}): Make these member functions |
| virtual. |
| (class corpus_group): Declare a new type. |
| * include/abg-fwd.h (corpus_sptr, corpus_group_sptr) |
| (string_tu_map_type, istring_var_decl_ptr_map_type) |
| (istring_function_decl_ptr_map_type): Define new typedefs. |
| * src/abg-corpus-priv.h (corpus_priv::{path_tu_map, |
| type_per_loc_map_}): Add new data members. |
| * src/abg-corpus.cc (corpus_add): Complete the function comment. |
| Assert that at most one translation unit of a given path can be |
| added to the corpus. |
| (corpus::{find_translation_unit, get_type_per_loc_map}): Define |
| new member functions. |
| (corpus::{get_architecture_name}): Make this member function |
| const. |
| (struct corpus_group::priv): Define new type. |
| (corpus_group::{corpus_group, ~corpus_group, add_corpus, |
| get_corpora, is_empty, get_functions, get_variables, |
| get_var_symbol_map, get_fun_symbol_map, get_sorted_fun_symbols, |
| get_sorted_var_symbols, get_unreferenced_function_symbols, |
| get_unreferenced_variable_symbols}): Define member functions of |
| the new corpus_group type. |
| |
| 2017-07-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix some typos in abidiff.cc |
| * tools/abidiff.cc (main): Fix typos. |
| |
| 2017-07-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid comparing kernel.img file from the grub2 package |
| * default.abignore: Do not compare kernel.img files. |
| |
| 2017-06-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21567 - Fedabipkgdiff matches build distro names too tightly |
| * tools/fedabipkgdiff (get_distro_from_string): Define new function. |
| (Brew.get_package_latest_build): Also consider builds which distro |
| property is less than the expected distro string that we were |
| given. |
| |
| 2017-06-14 Sinny Kumari <sinny@redhat.com> |
| |
| Check if return_codes list is empty in fedabipkgdiff |
| * tools/fedabipkgdiff (run_abipkgdiff()): Check if |
| return_codes list is empty |
| |
| 2017-06-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not forget to erase temporary directories in abipkgdiff |
| * tools/abipkgdiff.cc (maybe_erase_temp_dirs): Define new static |
| function. |
| (compare): Call the new maybe_erase_temp_dirs on all return |
| points. |
| |
| 2017-05-11 Ben Woodard <woodard@redhat.com> |
| |
| Fix more clang build warnings |
| * include/abg-ini.h (config::section::priv): Make this be a class, |
| not a struct. |
| * src/abg-dwarf-reader.cc (build_translation_unit_and_add_to_ir) |
| (build_ir_node_from_die): Add parenthesis around assignment |
| expressions inside conditional expression. |
| * src/abg-suppression.cc (read_function_suppression): Likewise. |
| |
| 2017-05-11 Ben Woodard <woodard@redhat.com> |
| |
| Fix some clang compile problems |
| * include/abg-comp-filter.h (class filter_base): Declare this as a |
| struct. |
| * include/abg-comparison.h (class filtering::filter_base): |
| Likewise. |
| (struct diff_traversable_base): Declare this as a class. |
| * include/abg-ir.h (function_decl::parameter): Declare this before |
| using it. |
| * src/abg-corpus.cc |
| (corpus::priv::build_unreferenced_symbols_tables): Add missing |
| parenthesis around assignment expressions inside conditional |
| expressions. |
| |
| 2017-05-21 Sinny Kumari <sinny@redhat.com> |
| |
| Add --self-compare option in fedabipkgdiff |
| * bash-completion/fedabipkgdiff: Add new option --self-compare |
| * tests/data/Makefile.am: Add new test file |
| * tests/data/test-fedabipkgdiff/test7-self-compare-from-fc23-dbus-glib-report-0.txt: |
| New reference output for testing ABI comparison on same package |
| * tests/runtestfedabipkgdiff.py.in (FEDABIPKGDIFF_TEST_SPECS): |
| Add test case for --self-compare |
| * tools/fedabipkgdiff (build_commandline_args_parser()): Add |
| new option --self-compare |
| (generate_comparison_halves()): Find second comparision half in same |
| package list while doing self-compare |
| (self_compare_rpms_from_distro()): New function to perform ABI |
| comparision on same pacakge |
| (main()): Add if condition when --self-compare option is enabled |
| |
| 2017-03-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid building DIE -> parent DIE map when analyzing a C binary |
| * include/abg-ir.h (global_scope_sptr): Make this be a share_ptr |
| of scope_decl, not of global_scope. |
| (translation_unit::get_global_scope): Return a reference to |
| scope_decl_sptr. |
| * src/abg-ir.cc (translation_unit::get_global_scope): Return a |
| scope_decl not a global_scope. |
| * src/abg-dwarf-reader.cc (read_context::nil_scope_): Add new data |
| member. |
| (read_context::{global_scope, nil_scope}): Define new member functions. |
| (read_context::build_die_parent_maps): Do not build the map if we |
| are looking at a C (or asm) translation unit. |
| (get_scope_die, get_scope_for_die): If we are looking at a C |
| translation unit then do return the global scope. |
| |
| 2017-04-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Speed up access to the definition of a class declaration-only type |
| * include/abg-ir.h |
| (class_or_union::get_naked_definition_of_declaration): Declare a |
| new member function. |
| (class_decl::get_naked_definition_of_declaration): Likewise. |
| * src/abg-ir.cc ({type_decl, qualified_type_def, |
| array_type_def, enum_type_decl}::operator==): Use the |
| get_naked_canonical_type and get_naked. |
| (class_or_union::priv::naked_definition_of_declaration_): Define |
| new data member. |
| (class_or_union::priv::priv): Adjust to initialize the new data |
| member. |
| (class_or_union::get_naked_definition_of_declaration): Define new |
| member function. |
| ({class_or_union, class_decl}::operator==): Use the new |
| get_naked_definition_of_declaration instead of |
| get_definition_of_declaration. |
| (equals): In the overload for class_or_union, do the same. |
| (class_decl::get_naked_definition_of_declaration): Define new |
| member function. |
| (hash_type_or_decl): Likewise. |
| |
| 2017-04-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Speedup comparison of decl-only classes |
| * src/abg-ir.cc (equals): In the overload for class_decl, if we |
| are looking at a decl-only class, then directly call the equals |
| function for class_or_union. That one knows how to perform the |
| comparison without calling the |
| class_or_union::priv_->comparison_started function, in that case. |
| |
| 2017-04-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Update the description of what abipkgdiff does |
| * tools/abipkgdiff.cc: Update the description of the sequence of |
| actions performed. |
| |
| 2017-04-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc cleanups in abg-writer.cc |
| * src/abg-writer.cc (class write_context): Fix indentation. |
| (write_location, write_visibility, write_binding) |
| (write_array_size_and_alignment, write_size_and_alignment): Fix |
| these declarations to use the *_sptr typedefs rather than the |
| explicit shared_ptr<*> types. |
| (write_translation_unit): Fix comment. |
| |
| 2017-05-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't consider changes to basic types as being redundant |
| * include/abg-comparison.h (is_diff_of_basic_type) |
| (has_basic_type_change_only): Declare these functions ... |
| * src/abg-comparison.cc (is_diff_of_basic_type) |
| (has_basic_type_change_only): ... and define them. |
| (redundancy_marking_visitor::visit_begin): Use the new |
| has_basic_type_change_only. |
| * tests/data/test-diff-filter/libtest37-v0.so: New binary test input. |
| * tests/data/test-diff-filter/libtest37-v1.so: Likewise. |
| * tests/data/test-diff-filter/test37-report-0.txt: New test |
| reference output. |
| * tests/data/test-diff-filter/test37-v0.cc: Source code of the new |
| binary test input. |
| * tests/data/test-diff-filter/test37-v1.cc: Likewise. |
| * tests/data/Makefile.am: Update to add the new test material to |
| the source distribution. |
| * tests/test-diff-filter.cc (in_out_spec): Add the new test input |
| to this test harness. |
| |
| 2017-05-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Rename fn_parm_diff::get_type_diff into fn_parm_diff::type_diff |
| * include/abg-comparison.h (fn_parm_diff::type_diff): Renamed |
| fn_parm_diff::get_type_diff intot his. |
| * src/abg-comparison.cc (fn_parm_diff::type_diff): Likewise. |
| (fn_parm_diff::report): Adjust. |
| (redundancy_marking_visitor::visit_begin): Likewise. |
| (is_diff_of_variadic_parameter): Likewise. |
| |
| 2017-05-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Invalidate function and variable ID cache when invoking ::set_symbol |
| * src/abg-ir.cc ({function, var}_decl::set_symbol): Invalidate the |
| ID cache. |
| |
| 2017-05-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Remove useless overloads of is_type |
| * include/abg-fwd.h (is_type): Remove the overloads that take |
| decl_base and type_base types. |
| * src/abg-ir.cc (is_type): Likewise. |
| |
| 2017-05-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Ensure build_qualified_type can return non-qualified types |
| * src/abg-dwarf-reader.cc (build_qualified_type): Return a |
| type_base_sptr. |
| (build_ir_node_from_die): Adjust the call to build_qualified_type. |
| |
| 2017-05-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix array subranges (wrongly) having the same lower bound |
| * src/abg-dwarf-reader.cc (build_subranges_from_array_type_die): |
| Consider the 'lower_bound' parameter as the default lower bound |
| for each sub-ranges. |
| |
| 2017-03-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix buffer overrun in 'equals' function for arrays |
| * src/abg-ir.cc (equals): In the overload for arrays, check for |
| the end of the subranges of the two arrays, not just for the first |
| one. |
| |
| 2017-04-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a race condition in queue::priv::do_bring_workers_down |
| * src/abg-workers.cc (queue::priv::tasks_todo_mutex): Make this |
| data member mutable. |
| (more_tasks_to_execute): |
| (queue::priv::do_bring_workers_down): Update the |
| queue::priv::bring_workers_down only in the critical section |
| defined by queue::priv::queue_cond_mutex. |
| (worker::wait_to_execute_a_task): Testing for |
| queue::priv::bring_workers_down is done in the critical section |
| defined by queue::priv::queue_cond_mutex. The loop over waiting |
| ont the condition is also in the critical section, as it ought to |
| be. |
| * tests/test-read-write.cc (struct test_task): New type. |
| (main): Express in terms of the new test_task type. |
| |
| 2017-04-12 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| cppcheck: mitigate performance warnings |
| * include/abg-diff-utils.h (print_snake): pass argument of type |
| snake by const reference. |
| * include/abg-ir.h (location::operator{==,<}): Likewise. |
| * include/abg-viz-dot.h (node_base::{node_base,parent_node,child_node}): |
| Likewise. |
| * include/abg-viz-svg.h (svg::svg) Likewise. |
| * src/abg-config.cc (config::config): Member initialization in ctor body. |
| * src/abg-dwarf-reader.cc (class_decl_sptr::add_or_update_class_type): |
| Initial value never used. |
| * src/abg-ir.cc: (decl_base::priv::priv) Member initialization in ctor body, |
| pass argument of type location by const reference. |
| (equals): Variable initial value never used. |
| * src/abg-reader.cc (read_corpus_from_input): Initial variable |
| value never used. |
| (build_elf_symbol_db): Use pre-increment. |
| * src/abg-suppression-priv.h |
| (suppression_matches_type_location): Pass argument of type |
| location by const reference. |
| * src/abg-suppression.cc: Likewise. |
| |
| 2017-04-11 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| Fix cppcheck error: "Same iterator is used with different containers" |
| * src/abg-dwarf-reader.cc |
| (type_or_decl_base_sptr::lookup_artifact_from_per_tu_die_representation): |
| Fix an error found by cppcheck. |
| |
| 2017-04-11 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| Clean up scripts/* |
| * scripts/dot_to_png.sh: Clean up the script according to |
| shellcheck warnings and remarks. |
| * scripts/dot_to_svg.sh: Likewise. |
| * scripts/svg_to_plain_svg.sh: Likewise. |
| * scripts/svg_to_png_and_pdf.sh: Likewise. |
| |
| 2017-04-12 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| Fix comparison used instead of an assignment |
| * src/abg-ir.cc (parse_integral_type): An attempt at clang |
| compilation has discovered there to be a comparison with |
| unused result, that apparently should be an assignment. |
| |
| 2017-04-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix some random deadlock while running fedabipkgidiff in tests |
| * tools/fedabipkgdiff (abipkgidff): Do not use Popen.communicate() |
| as it might hang if the data is large. Rather, busy wait for the |
| abipkgdiff process to finish and then get its output. |
| |
| 2017-03-22 Slava Barinov <v.barinov@samsung.com> |
| |
| Fix types in header to meet sources |
| * include/abg-fwd.h: Include stdint.h for uint64_t. |
| (ir::set_data_member_offset): Take uint64_t rather than size_t. |
| (ir::get_data_member_offset): Return uint64_t rather than size_t. |
| |
| 2017-03-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Launch fedabipkgdiff tests first |
| * tests/Makefile.am: Run the fedabipkgdiff test first. |
| |
| 2017-03-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21296 - Reporting diff of const ref against non-const ref aborts |
| * include/abg-fwd.h (look_through_no_op_qualified_type): Declare |
| new function. |
| * src/abg-ir.cc (look_through_no_op_qualified_type): Define it. |
| (compute_diff_for_types): Use the new |
| look_through_no_op_qualified_type here rather than open-coding it. |
| (equals): In the overload for function_decl::parameter, use the |
| new look_through_no_op_qualified_type function. |
| * tests/data/test-diff-dwarf/test40-PR21296-clanggcc.cc: Source |
| code of the new test inputs. |
| * tests/data/test-diff-dwarf/test40-PR21296-clanggcc-report0.txt: |
| New test input. |
| * tests/data/test-diff-dwarf/test40-PR21296-libgcc.so: New binary |
| test input. |
| * tests/data/test-diff-dwarf/test40-PR21296-libclang.so: Likewise. |
| * tests/test-diff-dwarf.cc (in_out_specs): Add the new test inputs to |
| the test harness. |
| |
| 2017-03-05 Chenxiong Qi <cqi@redhat.com> |
| |
| Bug 20087 - Clean cache before or after ABI comparison |
| * configure.ac: Require shutil module. |
| * doc/manuals/fedabipkgdiff.rst: Add document for new option |
| clean-cache, clean-cache-before, and clean-cache-after. |
| * tools/fedabipkgdiff (build_commandline_args_parser): Add new |
| option --clean-cache, --clean-cache-before and |
| --clean-cache-after. |
| (diff_local_rpm_with_latest_rpm_from_koji): Delete download |
| cache directory before or after downloading RPMs. |
| (diff_latest_rpms_based_on_distros): Likewise. |
| (diff_two_nvras_from_koji): Likewise. |
| (diff_from_two_rpm_files): Likewise. |
| * bash-completion/fedabipkgdiff: Add new options. |
| * tests/mockfedabipkgdiff.in (get_download_dir): Rewrite to |
| behave just like the original get_download_dir. |
| (mock_get_download_dir): Removed. |
| (DOWNLOAD_CACHE_DIR): New global variable pointing directory |
| holding packages during tests. |
| (run_fedabipkgdiff): Mock original get_download_dir with the |
| rewrite get_download_dir. |
| * tests/runtestfedabipkgdiff.py.in (run_fedabipkgdiff_tests): |
| Add --clean-cache to run tests to ensure no regression. |
| |
| 2017-03-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Shut down a helgrind false positive in the "system" libc call |
| * tests/test-valgrind-suppressions.supp: Add a suppression that |
| occurs during an internal libc signal handling occasion. |
| |
| 2017-03-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix data race on worker::queue::priv::bring_workers_down |
| * src/abg-workers.cc (worker::wait_to_execute_a_task): Protect the |
| read of the queue::priv::bring_workers_down down variable with the |
| queue::priv::tasks_todo_mutex. |
| |
| 2017-03-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21228 - Handle cloning union member functions |
| * include/abg-ir.h (class_or_union::add_member_function): Move the |
| class_decl::add_member_function overload declaration into the |
| class class_or_union class. |
| (class class_decl): Make the class class_or_union be a friend of |
| class_decl. |
| * src/abg-ir.cc (class_decl::add_member_function): Transform the |
| definition of this overload into ... |
| (class_or_union::add_member_function): ... this one. Make sure |
| that when setting the virtual-ness attributes of the member |
| function, we are effectively looking at the a function that is a |
| member of a class. |
| (function_decl::clone): Do not assert that a member function is |
| necessarily a member of a class_decl. It can also a member of a |
| union_decl!. So, rather, assert that the scope of the member |
| function is of type class_or_union. |
| * tests/data/test-diff-pkg/tbb-2017-8.20161128.fc26.x86_64.rpm: |
| New test input RPM. |
| * tests/data/test-diff-pkg/tbb-2017-9.20170118.fc27.x86_64.rpm: |
| * tests/data/test-diff-pkg/tbb-debuginfo-2017-8.20161128.fc26.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/tbb-debuginfo-2017-9.20170118.fc27.x86_64.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/tbb-2017-8.20161128.fc26.x86_64--tbb-2017-9.20170118.fc27.x86_64.txt: |
| New reference test output. |
| * tests/data/Makefile.am: Add the new test input RPMs to the |
| source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Take the new input tests |
| above into account. |
| |
| 2017-03-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Consider file path when sorting virtual member functions |
| * src/abg-ir.cc (virtual_member_function_less_than::operator()): |
| Take the file path into account in the sorting. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| |
| 2017-03-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix virtual members sorting to unbreak the build on EL6 |
| * src/abg-ir.cc (virtual_member_function_less_than::operator()): |
| Update comment. When two virtual functions have the same virtual |
| index and one of them has no ELF symbol, then that function is |
| less than the one with an ELF symbol. |
| * tests/data/Makefile.am: Remove |
| test-annotate/{test9-pr18818-clang.so.abi, test11-pr18828.so.abi, |
| test12-pr18844.so.abi, test16-pr18904.so.abi, |
| test22-pr19097-libstdc++.so.6.0.17.so.abi}. |
| * tests/data/test-annotate/test10-pr18818-gcc.so.abi: Remove. |
| * tests/data/test-annotate/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-annotate/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-annotate/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-annotate/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/test-annotate.cc (in_out_specs): Remove those tests above |
| which input files have been removed. |
| |
| 2017-03-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Make Helgrind suppressions less specific to libgcc_s version |
| * tests/test-valgrind-suppressions.supp: Make Helgrind |
| suppressions less specific to libgcc_s version. |
| |
| 2017-03-02 Dodji Seketeli <dodji@redhat.com> |
| |
| More Helgrind suppressions |
| * tests/test-valgrind-suppressions.supp: More specific suppressions. |
| |
| 2017-03-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Silence Helgrind reports about exception stack unwinding |
| * tests/test-valgrind-suppressions.supp: Silence Helgrind reports |
| about exception stack unwinding. |
| |
| 2017-03-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Make the helgrind suppressions less specific |
| * tests/test-valgrind-suppressions.supp: Make the ostream writting |
| suppressions be less specific so that they can apply to all the |
| related false positives. |
| |
| 2017-03-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Move test-read-dwarf.cc to abigail::workers |
| * tests/test-read-dwarf.cc (iospec, spec_lock, write_lock) |
| (out_abi_base, in_elf_base, in_abi_base): Remove these global |
| variables. |
| (handle_in_out_spec): Remove this. |
| (struct test_task): Write this task that does what |
| handle_in_out_spec was doing. |
| (test_task_sptr): Define new typedef. |
| (main): Remove the pthreads artifacts. Use the new test_task type |
| along with the abigail::workers interface. |
| * tests/test-valgrind-suppressions.supp: Add more helgrind |
| suppressions for ostream writting false positives. |
| |
| 2017-02-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Display the command that failed the runtestfedabipkgdiff.py test |
| * tests/runtestfedabipkgdiff.py.in (run_fedabipkgdiff_tests): When |
| A test fails, display the fedabipkgdiff command that triggered the failure. |
| |
| 2017-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abipkgdiff.cc use the abigail::workers interface |
| * tools/abipkgdiff.cc: Remove ftw.h, pthread.h, unistd.h, add |
| fts.h and abg-workers.h. |
| (verbose, elf_file_paths_tls_key, reports_map, env_map, map_lock) |
| (arg_lock, prog_options): Remove all these global variables. |
| (struct package_descriptor): Remove this type. |
| (pthread_routine_extract_package) |
| (first_package_tree_walker_callback_fn) |
| (second_package_tree_walker_callback_fn, pthread_routine_compare) |
| (pthread_join, pthread_routine_extract_pkg_and_map_its_content): |
| Remove these functions. |
| (options::{num_workers, verbose}): Define new data members. |
| (options::options): Initialize the new verbose and num_workers data members. |
| (package::erase_extraction_directory) |
| (erase_created_temporary_directories_parent): Take the program |
| options in parameter. Don't use the global verbose variable |
| anymore. |
| (package::erase_extraction_directories) |
| (erase_created_temporary_directories, extract_package): Take the |
| program options in parameter. |
| (extract_rpm, extract_deb, extract_tar): Likewise. And don't use |
| the global verbose variable anymore. |
| (compare): Don't use the global verbose variable anymore. Use the |
| new compare_task type along with the abigail::workers::queue type. |
| (pkg_extraction_task, pkg_prepare_task, compare_task) |
| (comparison_done_notify): Define new classes. |
| (maybe_update_vector_of_package_content): Define new static |
| function. |
| (create_maps_of_package_content): Don't take the ftw_cp_type |
| anymore. Don't use the global verbose variable anymore. Use the |
| fts_{open,read,close} functions, rather than the ftw one. |
| (extract_package_and_map_its_content): Don't use pthreads anymore. |
| Use the new pkg_extraction_task type created along with the |
| abigail::workers::queue type. |
| (prepare_packages): Don't use pthreads anymore. Use the new |
| pkg_prepare_task type along with the abigail::workers::queue type. |
| (elf_size_is_greater): Adjust to use |
| abigail::workers::queue::tasks, rather than the previous |
| compaer_args_sptr type. |
| (parse_command_line): Adjust to stop using the global verbose |
| variable. |
| (main): Remove use of global variables prog_options and also the |
| packages variable. |
| * tests/data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64--dbus-glib-0.104-3.fc23.armv7hl-report-0.txt: |
| Adjust. |
| * tests/data/test-diff-pkg/dirpkg-0-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/test-rpm-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/test-rpm-report-1.txt: Likewise. |
| * tests/data/test-diff-pkg/test-rpm-report-2.txt: Likewise. |
| * tests/data/test-diff-pkg/test-rpm-report-3.txt: Likewise. |
| * tests/data/test-fedabipkgdiff/test0-from-fc20-to-fc23-dbus-glib-report-0.txt: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/test1-from-fc20-to-dbus-glib-0.106-1.fc23.x86_64-report-0.txt: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/test2-dbus-glib-0.100.2-2.fc20--dbus-glib-0.106-1.fc23-report-0.txt: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/test3-dbus-glib-0.100.2-2.fc20.i686--dbus-glib-0.106-1.fc23.i686-report-0.txt: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/test4-glib-0.100.2-2.fc20.x86_64.rpm-glib-0.106-1.fc23.x86_64.rpm-report-0.txt: |
| Likewise. |
| |
| 2017-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not ignore valgrind checks returning an error |
| * autoconf-archive/ax_valgrind_check.m4 (check-valgrind): Don't |
| ignore errors. |
| |
| 2017-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Add a "make check-valgrind-helgrind-recursive" target |
| * tests/Makefile.am (check-valgrind-helgrind-recursive): New |
| target to run the tests recursively under the control of |
| Valgrind's Helgrind tool. |
| * tests/test-valgrind-suppressions.supp: Update this suppression |
| file with suppressions for Helgrind. |
| |
| 2017-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Several fixes and enhancements to abigail::workers |
| * Don't try to schedule a task if the pointer to the task is nil |
| * Fix a data race when bringing workers (of a queue) down |
| * Always try to wake up all waiting threads when bringing down queue |
| workers. |
| * Fix a data race when accessing the queue condition variable |
| * Fix a data race when notifying listeners about the end of the job |
| performed by the task. |
| Enhancements |
| ============ |
| * Pass the "task done" notifier by reference, to the worker queue. |
| Without this, the worker queue needs to copy the "task done" notifier |
| by value. This implies that user code needs to provide task done |
| notifier instances that come with potentially complicated copy |
| constructors. By passing it by reference and by just re-using the |
| notifier from the user code, we do away with the need for copying |
| altogether. This also fixes some latent copying bugs. |
| * Add a workers::queue::schedule_tasks() method |
| This allows user code to schedule a vector of tasks at once. |
| * make workers::queue::get_completed_tasks() return a non-const vector |
| This enables user code to sort the completed tasks as they wish. |
| * include/abg-workers.h (queue::tasks_type): New typedef. |
| (queue::queue): Pass task_done_notify by reference. |
| (queue::schedule_tasks): Declare new member function. |
| (queue::get_completed_tasks): Return non-const vector. |
| * src/abg-workers.cc (queue::priv::default_notify): New data |
| member. |
| (queue::priv::notify): Make this data member be a reference. |
| (queue::priv::priv): Initialize the notify data member to either |
| the new default_notify (if no notifier is provided by the |
| constructor) or to the notifier provided by the constructor. |
| (queue::priv::schedule_task): Do not schedule a nil task. Update |
| comment. |
| (queue::priv::schedule_tasks): Add a new member function. |
| (queue::priv::do_bring_workers_down): Update comment. Protect |
| access to "bring_workers_down" with tasks_todo_mutex to prevent a |
| data race. Call pthread_cond_broadcast on the queue_cond |
| unconditionaly to prevent some worker threads to keep waiting for |
| ever. Also, protect the access to the queue_cond by the |
| queue_cond_mutex to precent a data race. |
| (queue::queue): Pass the notifier by reference. Update comment. |
| (queue::schedule_task): Update comment. |
| (queue::schedule_tasks): Define new member function. |
| (queue::wait_for_workers_to_complete): Update comment. |
| (queue::get_completed_tasks): Return a non-const vector. Update |
| comment. |
| (worker::wait_to_execute_a_task): Update several comments. Make |
| the execution of the notification code to be synchronized (on the |
| tasks_done_mutex). |
| |
| 2017-02-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typo in help string of abipkgdiff |
| * tools/abipkgdiff.cc (display_usage): Remove erroneous end line. |
| |
| 2017-01-23 Dodji Seketeli <dodji@redhat.com> |
| |
| fedabipkgdiff refuses to compare packages with the same release number |
| * tools/fedabipkgdiff (RPM.is_peer): Update comment. Fix logic. |
| * tests/data/test-fedabipkgdiff/packages/vte291/0.39.1/1.fc22/x86_64/vte291-0.39.1-1.fc22.x86_64.rpm: |
| New test input file. |
| * tests/data/test-fedabipkgdiff/packages/vte291/0.39.1/1.fc22/x86_64/vte291-debuginfo-0.39.1-1.fc22.x86_64.rpm: Likewise. |
| * tests/data/test-fedabipkgdiff/packages/vte291/0.39.1/1.fc22/x86_64/vte291-devel-0.39.1-1.fc22.x86_64.rpm: Likewise. |
| * tests/data/test-fedabipkgdiff/packages/vte291/0.39.90/1.fc22/x86_64/vte291-0.39.90-1.fc22.x86_64.rpm: Likewise. |
| * tests/data/test-fedabipkgdiff/packages/vte291/0.39.90/1.fc22/x86_64/vte291-debuginfo-0.39.90-1.fc22.x86_64.rpm: Likewise. |
| * tests/data/test-fedabipkgdiff/packages/vte291/0.39.90/1.fc22/x86_64/vte291-devel-0.39.90-1.fc22.x86_64.rpm: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/vte291-0.39.1-1.fc22.x86_64--vte291-0.39.90-1.fc22.x86_64-report-0.txt: Likewise. |
| * tests/data/Makefile.am: Add the new test input data to source |
| distribution. |
| * tests/mockfedabipkgdiff.in: Update the package and build |
| information to add the new vte291-0.39.1-1.fc22.x86_64.rpm and |
| vte291-0.39.90-1.fc22.x86_64.rpm packages (as well as their devel |
| and debuginfo packages) into the "mock" Koji build database. |
| * tests/runtestfedabipkgdiff.py.in: Make this test harness run |
| over the two aforementioned packages. |
| |
| 2017-01-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing tests input files to distribution files |
| * tests/data/Makefile.am: Add three missing test input files to |
| the source distribution tarball. Renamed |
| test-fedabipkgdiff/test6-missing-devel-debuginfo-nss-util-3.12.6-1.fc14.x86_64--nss-util-3.24.0-2.0.fc25.x86_64-report-0.txt |
| into |
| test-fedabipkgdiff/test6-nss-util-3.12.6-1.fc14.x86_64--nss-util-3.24.0-2.0.fc25.x86_64-report-0.txt. |
| * tests/runtestfedabipkgdiff.py.in (FEDABIPKGDIFF_TEST_SPECS): |
| Renamed |
| test6-missing-devel-debuginfo-nss-util-3.12.6-1.fc14.x86_64--nss-util-3.24.0-2.0.fc25.x86_64-report-0.txt |
| into |
| test6-nss-util-3.12.6-1.fc14.x86_64--nss-util-3.24.0-2.0.fc25.x86_64-report-0.txt. |
| |
| 2017-01-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing new line to an error message of runtestfedabipkgdiff.py |
| * tests/runtestfedabipkgdiff.py.in (run_fedabipkgdiff_tests): Add |
| missing new line to an error message. |
| |
| 2017-01-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix silent failure of tests/runtestfedabipkgdiff.py |
| * tests/mockfedabipkgdiff.in (run_fedabipkgdiff): Patch |
| fedabipkgdiff.DEFAULT_KOJI_TOPURL instead of |
| fedabipkgdiff.DEFAULT_KOJI_TOPDIR. |
| * tests/runtestfedabipkgdiff.py.in (main): Properly return 0 upon |
| success, 1 otherwise. |
| |
| 2017-01-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style fixes |
| * include/abg-ir.h (class_or_union): Fix indentation. |
| * src/abg-dwarf-reader.cc (get_die_pretty_representation): Add new |
| line. |
| * src/abg-ir.cc (struct class_decl::priv): Fix indentation. |
| (virtual_member_function_less_than::operator()): Fix a typo in a |
| comment. |
| |
| 2017-01-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20476 - Compare virtual member functions when comparing classes |
| * include/abg-ir.h (class_decl::get_biggest_vtable_offset): |
| Declare new member function. |
| * src/abg-ir.cc (virtual_member_function_less_than::operator()): |
| Either compare the symbol id strings if the functions have |
| symbols or just compare their pretty representations. |
| (class_decl::get_biggest_vtable_offset): Define new member |
| function. |
| (methods_equal_modulo_elf_symbol) |
| (method_matches_at_least_one_in_vector): New static methods. |
| (equals): In the overload for classes, compare the virtual member |
| functions while comparing classes. |
| * src/abg-comparison.cc (represent): In the overload for |
| method_decl_sptr, fix the way we compute the highest vtable offset |
| number for a give class_decl. |
| (class_decl::ensure_lookup_tables_populated): Don't forget added |
| and removed virtual member functions in the report for changed |
| classes. |
| * tests/data/test-diff-dwarf/libtest41-PR20476-hidden-old.so: New |
| test binary input file. |
| * tests/data/test-diff-dwarf/libtest41-PR20476-hidden-new.so: Likewise. |
| * tests/data/test-diff-dwarf/test41-PR20476-hidden-report-0.txt: |
| New reference output. |
| * tests/data/Makefile.am: Add the new test material above to the |
| source distribution. |
| * tests/test-diff-dwarf.cc (in_out_spec): Add the new tests |
| here. |
| * tests/data/test-annotate/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-annotate/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-annotate/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| |
| 2017-02-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix indentation in src/abg-writer.cc |
| * src/abg-writer.cc (annotate): Fix indentation. |
| |
| 2017-02-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Adjust reference output of test-annotate |
| * tests/data/test-annotate/test15-pr18892.so.abi: Adjust this |
| reference output. |
| |
| 2017-02-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix help string for --header-dirs |
| * tools/abidw.cc (display_usage): Fix patch -> path typo. |
| |
| 2017-02-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abidw --headers-dir work with the --out-file option |
| * tools/abidw.cc (parse_command_line): Don't require an empty |
| output file when parsing the --headers-dir option. This was a |
| thinko. |
| |
| 2017-01-17 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| Bug 20970 - Add a --annotate option to abidw |
| * doc/manuals/abidiff.rst: Document the '--no-corpus-path' |
| option. |
| * doc/manuals/abidw.rst: Document the '--no-corpus-path' |
| and '--annotate' options. |
| * include/abg-libxml-utils.h ({un,}escape_xml_comment): Add |
| new function declarations. |
| * include/abg-writer.h: Add new annotate functions |
| (write_{translation_unit,corpus_to_{archive,native_xml_file}}): |
| Add an optional "annotate" parameter defaulting to "false". |
| * src/abg-libxml-utils.cc ({un,}escape_xml_comment): Add |
| new function definitions. |
| * src/abg-writer.cc (annotate): Define new templatized function |
| and specialize it for necessary cases. |
| * tests/Makefile.am: Add runtestannotate as a new test. |
| * tests/data/Makefile.am: Add paths to below reference test |
| outputs. |
| * tests/data/test-annotate/libtest23.so.abi: New reference test |
| output. |
| * tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Likewise. |
| * tests/data/test-annotate/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-annotate/test0.abi: Likewise. |
| * tests/data/test-annotate/test1.abi: Likewise. |
| * tests/data/test-annotate/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-annotate/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-annotate/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-annotate/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-annotate/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-annotate/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-annotate/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-annotate/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-annotate/test2.so.abi: Likewise. |
| * tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-annotate/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-annotate/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-annotate/test3.so.abi: Likewise. |
| * tests/data/test-annotate/test4.so.abi: Likewise. |
| * tests/data/test-annotate/test5.o.abi: Likewise. |
| * tests/data/test-annotate/test6.so.abi: Likewise. |
| * tests/data/test-annotate/test7.so.abi: Likewise. |
| * tests/data/test-annotate/test8-qualified-this-pointer.so.abi: Likewise. |
| * tests/data/test-annotate/test9-pr18818-clang.so.abi: Likewise. |
| * tests/test-annotate.cc: New test for ABIXML annotations. |
| * tools/abidiff.cc: Add the new option '--no-corpus-path'. |
| * tools/abidw.cc: Likewise. Also add the '--annotate' option. |
| reviews round 1 |
| |
| 2017-01-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix test-diff-pkg after commit 2dcc606 |
| * tests/test-diff-pkg.cc (in_out_specs): Fix paths to spice-server |
| packages. |
| |
| 2017-01-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Add --harmless option to abipkgdiff |
| * doc/manuals/abidiff.rst: Fix a typo. |
| * doc/manuals/abipkgdiff.rst: Document the --harmless option. |
| * tools/abipkgdiff.cc: Update copyright year. |
| (options::show_harmless_changes): Add new data member. |
| (options::options): Initialize the new data member. |
| (display_usage): Add a help string for the new --harmless option. |
| (parse_command_line): Parse the new --harmless option. |
| (set_diff_context_from_opts): Configure the diff context |
| accordingly, if the user provided the --harmless option. |
| |
| 2017-01-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix suppression category propagation in diff node graph |
| * include/abg-comparison.h (diff::get_class_of_equiv_category): |
| Declare new member function. |
| * src/abg-comparison.cc: Update copyright year. |
| (diff::get_class_of_equiv_category): Define new member function. |
| (suppression_categorization_visitor::visit_end): When considering |
| children nodes category for propagation, consider the category of |
| the class of equivalence of children nodes. |
| * spice-debuginfo-0.12.4-19.el7.x86_64.rpm: New input test package. |
| * spice-debuginfo-0.12.8-1.el7.x86_64.rpm: Likewise. |
| * spice-server-0.12.4-19.el7.x86_64.rpm: Likewise. |
| * spice-server-0.12.8-1.el7.x86_64.rpm: Likewise. |
| * spice-server-devel-0.12.4-19.el7.x86_64.rpm: Likewise. |
| * spice-server-devel-0.12.8-1.el7.x86_64.rpm: Likewise. |
| * spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt: |
| New reference test output. |
| * spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt: Likewise. |
| * spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the new test inputs |
| to the list of packages to test. |
| |
| 2017-01-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 21058 - abipkgdiff wrongly drops non-public types |
| * doc/manuals/abidiff.rst (--dont-drop-private-types): Remove documentation. |
| (--drop-private-types): Document this new option. |
| * src/abg-tools-utils.cc: Update copyright notice |
| (handle_fts_entry): On the generated suppression specification, do |
| not set the flag to drop matched types. Also, don't match types |
| defined in files which patch start with "/usr/include/". |
| * tools/abidiff.cc (options::options): Initialize the |
| drop_private_types data member to false. |
| (display_usage): Remove usage string for |
| --dont-drop-private-types. Add a new one for |
| --drop-private-types. |
| (parse_command_line): Don't part --dont-drop-private-types, |
| rather, parse --drop-private-types. |
| (set_suppressions): When the suppression for private types is |
| generated, if --drop-private-types was provided, then instruct the |
| suppression to drop matched types. |
| * tools/abipkgdiff.cc (options::drop_private_types): New option. |
| (options::options): Initialize the new drop_private_types data |
| member to false. |
| (display_usage): Add a usage string for --drop-private-types. |
| (parse_command_line): Parse the new --drop-private-types option. |
| (maybe_create_private_types_suppressions): Don't take just a |
| package, but a package_descriptor because the latter carries the |
| options. So when the user used the --drop-private-types option, |
| make the generated private types suppression to drop matched |
| types. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: |
| Adjust. |
| * tests/test-diff-suppr.cc (in_out_specs): Likewise. |
| |
| 2017-01-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix some include logic in abg-suppression.cc |
| * src/abg-suppression.cc: Update copyright notice. Fix include |
| files logic. |
| |
| 2017-01-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Support virtual member functions with vtable offset not yet set |
| * include/abg-fwd.h (member_function_has_vtable_offset): Declare |
| new function. |
| (get_member_function_vtable_offset): Return a ssize_t, not a |
| size_t. |
| (set_member_function_vtable_offset): Take a ssize_t, not a size_t. |
| * include/abg-ir.h (class_decl::virtual_mem_fn_map_type): Adjust |
| the map typedef to make it take ssize_t as the type of the key. |
| (mem_fn_context_rel::vtable_offset_in_bits_): Make this data |
| member be of ssize_t type, not size_t. |
| (mem_fn_context_rel::mem_fn_context_rel): Initialize the |
| vtable_offset_in_bits_ data member to -1. |
| * src/abg-ir.cc (member_function_has_vtable_offset): Define new |
| function. |
| (get_member_function_vtable_offset): Return a ssize_t, not a |
| size_t. |
| (set_member_function_vtable_offset): Take a ssize_t, not a size_t. |
| * src/abg-dwarf-reader.cc (die_virtual_function_index): Take an |
| int64_t& rather than a uint64_t&. |
| (finish_member_function_reading): Don't set the vtable offset if |
| it's -1. |
| * src/abg-reader.cc (build_class_decl): Likewise. |
| |
| 2017-01-14 Dodji Seketeli <dodji@redhat.com> |
| |
| [comparison engine] Don't crash when the context is null |
| * src/abg-comparison.cc |
| (RETURN_IF_BEING_REPORTED_OR_WAS_REPORTED_EARLIER): Guard against |
| null context. |
| (diff::is_filtered_out): Likewise. |
| |
| 2017-01-14 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf reader] Don't abort when trying to canonicalize a non-type |
| * src/abg-dwarf-reader.cc (maybe_canonicalize_type): Don't abort |
| when trying to canonicalize a decl. |
| |
| 2017-01-14 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf reader] properly separate function decls and types in lookup |
| * src/abg-dwarf-reader.cc |
| (read_context::associate_die_to_artifact_by_repr_internal): |
| Choose the right type of representation depending on if we are |
| associating a type or a decl. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2017-01-14 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf reader] Allow updating and de-duplicating member functions |
| * src/abg-dwarf-reader.cc (add_or_update_class_type): Register |
| member functions for lookup by member function DIE representation. |
| |
| 2017-01-14 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf reader] Do not over de-duplicate function *definitions* |
| * src/abg-dwarf-reader.cc |
| (build_or_get_fn_decl_if_not_suppressed): Do try to de-duplicate a |
| function if it's to be completed. |
| |
| 2017-01-13 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf reader] Fix pretty printing static methods from DWARF |
| * src/abg-dwarf-reader.cc |
| (die_return_and_parm_names_from_fn_type_die): Take a new |
| 'is_static' parameter. |
| (die_qualified_type_name, die_pretty_print_type): Adjust calling |
| die_return_and_parm_names_from_fn_type_die. |
| (die_function_signature): Likewise. Also, do not forget to print |
| the first parameter for a static method. |
| |
| 2017-01-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Handle several virtual member functions having the same vtable offset |
| * include/abg-ir.h (class_or_union::virtual_mem_fn_map_type): |
| Define new typedef. |
| (class_decl::get_virtual_mem_fns_map): Declare new accessor. |
| * src/abg-ir.cc (class_decl::priv::virtual_mem_fns_map_): New data |
| member. |
| (class_decl::get_virtual_mem_fns_map): Define new accessor. |
| (fixup_virtual_member_function): Populate the new virtual member |
| functions map. |
| (class_decl::on_canonical_type_set): Sort the virtual member |
| function vectors stored in the new virtual member functions map. |
| (class_decl::add_member_function): Call |
| set_member_function_is_virtual *after* calling |
| set_member_function_vtable_offset because the former updates the |
| virtual function map, so it needs the vtable offset. |
| * src/abg-dwarf-reader.cc (finish_member_function_reading): |
| Likewise. |
| * src/abg-reader.cc (build_class_decl): Likewise. |
| |
| 2017-01-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Speed up pretty representing (function) types |
| * include/abg-ir.h (type_base::get_cached_pretty_representation): |
| Declare new function. |
| (function_type::get_cached_name): Likewise. |
| * src/abg-ir.cc (get_method_type_name): Use the new |
| type_base::get_cached_pretty_representation function. |
| (type_base::priv::{internal_cached_repr_, cached_repr_}): Add new |
| data members. |
| (function_type::priv::{internal_cached_name_, cached_name_}): |
| Likewise. |
| (type_base::get_cached_pretty_representation): Define new |
| function. |
| (function_type::get_cached_name): Likewise. |
| (type_base::get_canonical_type_for): Call |
| type_base::get_cached_pretty_representation here, so the internal |
| representation is cached right before canonicalization. |
| (function_type::{mark_as_being_compared, unmark_as_being_compared, |
| comparison_started}): Uset he new type_base::get_cached_name to |
| speed up function type name retrieval. |
| |
| 2017-01-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing deep comparison operators for {function, method}_decl_sptr |
| * include/abg-ir.h (operator==): Declare two new overloads for |
| function_decl_sptr an method_decl_sptr. |
| * src/abg-ir.cc (operator==): Define two new overloads for |
| function_decl_sptr an method_decl_sptr. |
| |
| 2017-01-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix performance regression while analyzing libjvm.so |
| * include/abg-ir.h ({type_base, |
| class_decl}::on_canonical_type_set): Declare new virtual member |
| function. |
| * src/abg-ir.cc (type_base::on_canonical_type_set): Define new |
| virtual member function that does nothing. |
| (class_decl::on_canonical_type_set): Define new virtual member |
| function that sorts the virtual member functions of class_decl. |
| (canonicalize): Invoke type_base::on_canonical_type_set when the |
| canonical type is set. |
| (fixup_virtual_member_function): Don't sort virtual member |
| functions here. |
| * src/abg-dwarf-reader.cc (finish_member_function_reading): Do not |
| sort virtual member functions here. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| |
| 2017-01-14 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright notice for abg-fwd.h, abg-ir.h and test-abidiff.cc |
| * include/abg-fwd.h: Adjust copyright. |
| * include/abg-ir.h: Likewise. |
| * tests/test-abidiff.cc: Likewise. |
| |
| 2017-01-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Remove unused functions from abg-ir.cc |
| * src/abg-ir.cc (convert_node_to_decl): Remove specializations for |
| class_decl_sptr, type_base_sptr and var_decl_sptr. |
| |
| 2016-11-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Support Linux Kernel ABI whitelist files |
| * include/abg-suppression.h |
| (function_suppression::function_suppression): Make the declaration |
| of the default constructor public. |
| * src/abg-suppression-priv.h (function_suppression::priv::priv): |
| Declare a default constructor. |
| * src/abg-suppression.cc |
| (function_suppression::function_suppression): Define default |
| constructor. |
| * include/abg-tools-utils.h |
| (gen_suppr_spec_from_kernel_abi_whitelist): Declare new function. |
| * src/abg-tools-utils.cc |
| (gen_suppr_spec_from_kernel_abi_whitelist): Define new function. |
| * tools/abidiff.cc (options::kernel_abi_whitelist_paths): |
| (display_usage): Display a help string for the new |
| --linux-kernel-abi-whitelist option. |
| (parse_command_line): Parse the --linux-kernel-abi-whitelist from |
| the command line. |
| (maybe_check_suppression_files): Check the presence of the kernel |
| abi whitelist files. |
| (set_suppressions): Generate suppression specifications from the |
| whitelist files. |
| |
| 2016-10-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Support Linux Kernel binaries |
| * include/abg-dwarf-reader.h (create_read_context): Take a new |
| flag to say if the context is to read an ELF binary in linux |
| kernel mode. |
| * src/abg-dwarf-reader.cc (typedef address_set_type) |
| (address_set_sptr): New typedefs. |
| (get_binary_load_address): The load address of the binary is |
| the load address specified by the program header that is at the |
| smallest offset; not by the program header that is at offset zero. |
| (read_context::{ksymtab_section_, ksymtab_gpl_section_, |
| linux_exported_fn_syms_, linux_exported_var_syms_, |
| linux_exported_gpl_fn_syms_, linux_exported_gpl_var_syms_, |
| load_in_linux_kernel_mode_}): New data members. |
| (read_context::read_context): Initialize ksymtab_section_, |
| ksymtab_gpl_section_ and load_in_linux_kernel_mode_. |
| (read_context::{find_symbol_table_section, find_opd_section, |
| lookup_elf_fn_symbol_from_address, |
| lookup_elf_var_symbol_from_address, get_function_address, |
| get_variable_address}): Make these const. |
| (read_context::{find_ksymtab_section, find_ksymtab_gpl_section, |
| lookup_elf_symbol_from_address, function_symbol_is_exported, |
| variable_symbol_is_exported, linux_exported_fn_syms, |
| create_or_get_linux_exported_fn_syms, linux_exported_var_syms, |
| create_or_get_linux_exported_var_syms, linux_exported_gpl_fn_syms, |
| linux_exported_gpl_var_syms, |
| create_or_get_linux_exported_gpl_fn_syms, |
| linux_exported_gpl_var_syms, |
| create_or_get_linux_exported_gpl_var_syms, architecture_word_size, |
| load_kernel_symbol_table, load_ksymtab_symbols, |
| load_ksymtab_gpl_symbols, |
| load_linux_specific_exported_symbol_maps, |
| load_in_linux_kernel_mode}): New member functions. |
| (read_context::read_int_from_array_of_bytes): Factorize this |
| new member function out of ... |
| (read_context::{lookup_ppc64_elf_fn_entry_point_address}): |
| ... this. Make this function const too. |
| (read_context::read_uint64_from_array_of_bytes): New function. |
| Uses read_int_from_array_of_bytes above. |
| (read_context::{fun_entry_addr_sym_map_sptr}): Try to load symbol |
| maps only when it's necessary. |
| (read_context::elf_architecture_is_big_endian): Fix logic. |
| (read_context::{var_addr_sym_map}): Express the const variant in |
| terms of the non-const one. In the non-const one, load the map |
| only when necessary. |
| (read_context::load_symbol_maps_from_symtab_section): Renamed |
| load_symbol_maps into this. |
| (read_context::is_linux_kernel_binary): Define new member |
| function. |
| (read_context::{function, variable}_symbol_is_exported): If we are |
| not prevented from considering loading in linux kernel mode, then |
| just looking at a linux kernel binary makes us consider the |
| special kernel sections. |
| (read_debug_info_into_corpus): Likewise. |
| (build_ir_node_from_die): Take a new flag that says if the ir node |
| is a declaration required by another concrete IR node. |
| (enum read_context::kernel_symbol_table_kind): New enum. |
| (read_context::load_symbol_maps): Support loading linux kernel |
| specific sections too. |
| (build_var_decl): Use the new |
| read_context::variable_symbol_is_exported. |
| (function_is_suppressed): Suppress non-member functions or |
| variables that are not declarations and that have no symbol. |
| (variable_is_suppressed, build_var_decl_if_not_suppressed): Take a |
| new flag that says if the variable is a declaration required by a |
| concrete variable. If non member variable that is a declaration |
| is not the specification of another concrete variable, then it's |
| suppressed. |
| (add_fn_symbols_to_map, add_var_symbols_to_map): New function |
| definitions. |
| (read_debug_info_into_corpus): If we are reading linux kernel or |
| linux kernel modules, only set explicitely exported symbols (in |
| the linux kernel binary sense) as exported function or variable |
| symbols. |
| (create_read_context): Take a new flag to say if the context is to |
| read an ELF binary in linux kernel mode. |
| * tools/abidiff.cc (options::options): Initialize |
| options::linux_kernel_mode to true. |
| (display_usage): Display usage of the --no-linux-kernel-mode option. |
| (parse_command_line): Parse the --no-linux-kernel-mode option. |
| * tools/abidw.cc (options::options): Initialize |
| options::linux_kernel_mode to true. |
| (display_usage): Display usage of --no-linux-kernel-mode option. |
| (parse_command_line): Parse the --no-linux-kernel-mode option. |
| * doc/manuals/abidiff.rst: Document the new --no-linux-kernel-mode |
| options. |
| * doc/manuals/abidw.rst: Likewise. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Adjust. |
| |
| 2017-01-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Add debug routines to dump locations to a stream |
| * src/abg-writer.cc (dump_location): Define new function and one |
| overload. |
| (dump_decl_location): Re-write in terms of the new dump_location. |
| |
| 2017-01-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Better de-duplicate classes, unions, enums in non-odr contexts |
| * src/abg-dwarf-reader.cc (build_enum_type) |
| (add_or_update_class_type, add_or_update_union_type): When the ODR |
| is not relevant, use the location of the type to detect if two |
| enum, class or union types of the same name actually represent the |
| same type. |
| |
| 2017-01-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Adjust some reference outputs of the test-read-dwarf test harness |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2017-01-04 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| Bug 18754 - Add the "--no-added-syms" option to abidiff |
| * doc/manuals/abidiff.rst: Document the new --no-added-syms |
| option. |
| * tools/abidiff.cc (struct options): Add show_added_syms and |
| set it to true by default. |
| (display_usage): Document the new options --no-added-syms. If |
| this is the only suppression option specified, it is equivalent |
| to specifying --show_{changed,deleted}_{fns,vars} as arguments |
| to abidiff. If any of those options are specified before |
| --no-added-syms, then it has no effect. |
| (parse_command_line): Parse the new option and set |
| show_added_{fns,vars,syms} and show_all_{fns,vars} to false if |
| --no-added-syms is specified. |
| * tests/test-diff-filter.cc: Add a test for the new option. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt: |
| Reference results for the new test. |
| * tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-1.txt: |
| Likewise. |
| * tests/data/Makefile.am: Add the above test files to the list of |
| test data. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright year on a bunch of files |
| * include/abg-corpus.h: Update copyright year to 2017. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * src/abg-ir.cc: Likewise. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| * tools/abicompat.cc: Likewise. |
| * tools/abidw.cc: Likewise. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| [apidoc] Allow brief description at the top of class description pages |
| * doc/api/libabigail.doxy: Don't disable "brief member desc". |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style fixes |
| * include/abg-corpus.h: Remove corpus_sptr typedef. It's in |
| abg-fwd.h now. |
| * src/abg-ir.cc: Remove some unnecessary vertical space. |
| * src/abg-reader.cc (build_function_decl): Cleanup some asserts. |
| * src/abg-writer.cc (write_function_type): Each the inspection of |
| the type id from within the debugger. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc comments and apidoc fixes |
| * src/abg-dwarf-reader.cc (lookup_symbol_from_gnu_hash_tab): Fix |
| typo in comment. |
| * tools/abicompat.cc (perform_compat_check_in_weak_mode): Better |
| comments. |
| * tools/abidw.cc (dislay_usage): Fix white spaces. |
| Conflicts: |
| tools/abidw.cc |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Speedup set_member_is_static |
| * src/abg-ir.cc (set_member_is_static): When comparing data |
| members, consider only their names. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid unnecessary updates to type lookup maps |
| * src/abg-ir.cc (class_or_union::get_is_declaration_only): Try |
| to update the type maps only when a declaration-only class |
| type is now defined. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Update tests/data/test-read-dwarf/*.abi files |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Update tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Update. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| [abixml writer] Make sure all function types are emitted |
| * src/abg-writer.cc (write_translation_unit): Fix logic to avoid |
| forgetting referenced function types. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| [abixml writer] Fix comparison of pointer to types |
| * src/abg-writer.cc (type_ptr_comp::operator()): Do not add an |
| empty type id string to the type -> type id map when the entry for |
| a given type is empty. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf-reader] Don't early canonicalize function types |
| * src/abg-dwarf-reader.cc (maybe_canonicalize_type): |
| Late-canonicalize function types. |
| signed-off-by: Dodji Seketeli <dodji@redhat.com> |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix qualified name caching for some types |
| * src/abg-ir.cc ({qualified, pointer, |
| array}_type_def::get_qualified_name): Don't cache internal and |
| non-internal qualified name when the type is not canonicalized. |
| |
| 2017-01-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Cleanup ODR-based type canonicalization optimization gating logic |
| * src/abg-ir.cc (type_base::get_canonical_type_for): Make it clear |
| that the ODR-based optimization is allowed only on C++ ABI |
| corpora. |
| |
| 2017-01-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a typo in method name computation |
| * src/abg-ir.cc (get_method_type_name): Really return the method |
| name. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Update 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 |
| * 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: Adjust. |
| |
| 2017-01-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Update tests/data/test-read-write/test27.xml |
| * tests/data/test-read-write/test27.xml: Adjust. |
| |
| 2017-01-04 Dodji Seketeli <dodji@redhat.com> |
| |
| [dwarf-reader] Handle per translation-unit type de-duplication |
| * src/abg-dwarf-reader.cc |
| (read_context::per_tu_name_artefacts_map_): New data member. |
| (read_context::clear_per_translation_unit_data): Clear the new |
| read_context::per_tu_name_artefacts_map_. |
| (read_context::associate_die_to_decl): Take a flag to say if we |
| should associate a DIE to its representation and another one to |
| say if the association should be done per-tu or per-corpus. |
| (read_context::lookup_{type_artifact, artifact}_from_die): Update |
| apidoc. |
| (read_context::lookup_artifact_from_die_representation): Likewise. |
| (read_context::{associate_die_to_artifact_by_repr, |
| associate_die_to_artifact_by_repr_internal, |
| associate_die_to_type}): Take a flag to say if the associating |
| should be done on a per-tu basis. |
| (read_context::lookup_{type_artifact, artifact}_from_die_per_tu): |
| New member functions. |
| (read_context::{lookup_artifact_from_per_tu_die_representation, |
| odr_is_relevant}): Likewise. |
| (build_enum_type, add_or_update_class_type) |
| (add_or_update_union_type): If ODR is not relevant, do not perform |
| per-corpus de-duplication. |
| (build_pointer_type_def, build_typedef_type): Do not associate the |
| type to its representation as these kinds of typs are not |
| de-duplicated. |
| (build_function_type): If ODR is not relevant, perform per-tu |
| de-duplication. When ODR is relevant, per-corpus de-duplication |
| is performed. |
| (build_or_get_fn_decl_if_not_suppressed): Function decls are |
| always de-duplicated per-corpus. |
| (build_ir_node_from_die): For data members, do not update the die |
| representation map as data members are not de-duplicated. Do not |
| do it for function decls either. |
| [1]: https://en.wikipedia.org/wiki/One_Definition_Rule |
| |
| 2017-01-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Handle per translation unit and per corpus types maps |
| * include/abg-fwd.h (lookup_type_in_corpus): Remove. This is to |
| be replaced by the new lookup_type below. |
| (lookup_{basic, class, union, enum, typedef, qualified, pointer, |
| reference, array, function, class_or_typedef, |
| class_typedef_or_enum}_type): |
| (lookup_class_type_through_scopes, lookup_type) |
| (lookup_type_through_scopes, lookup_or_synthesize_fn_type) |
| * src/abg-ir-priv.h (struct translation_unit::priv): Move this |
| private type here, from abg-ir.h. |
| (synthesize_type_from_translation_unit): Declare new functions. |
| * include/abg-ir.h (class type_maps): Define new type. |
| (translation_unit::get_function_types): Remove. |
| (translation_unit::get_types): Now return a type_maps. |
| (translation_unit::get_live_fn_types): Declare new type. |
| (class decl_base): Make canonicalize be a friend of this class. |
| * src/abg-ir.cc (struct translation_unit::priv): Move this to |
| abg-ir-priv.h |
| (struct type_maps::priv): Define new type. |
| (type_maps::{basic, class, union, enum, typedef, qualified, |
| pointer, reference, array, function}_types): Define new accessors. |
| (translation_unit::bind_function_type_life_time): Adjust. |
| (translation_unit::get_function_types): Remove accessor. |
| (translation_unit::get_types, get_live_fn_types): Define new |
| accessors. |
| (lookup_type_in_translation_unit) |
| (lookup_class_type_in_translation_unit) |
| (lookup_function_type_in_translation_unit) |
| (synthesize_type_from_translation_unit) |
| (synthesize_function_type_from_translation_unit) |
| (lookup_class_type_in_translation_unit) Remove function |
| definitions. |
| (lookup_type_in_map): Define function template. |
| (lookup_{basic, class, union, typedef, class_or_typedef, |
| class_typedef_or_enum, qualified, pointer, reference, array, |
| function}_type): Define functions. |
| (lookup_function_type, lookup_type_through_scopes) |
| (lookup_class_type_through_scopes) |
| (lookup_basic_type_through_translation_units) |
| (lookup_union_type_through_translation_units) |
| (lookup_enum_type_through_translation_units) |
| (lookup_class_type_through_translation_units) |
| (lookup_typedef_type_through_translation_units) |
| (lookup_qualified_type_through_translation_units) |
| (lookup_pointer_type_through_translation_units) |
| (lookup_reference_type_through_translation_units) |
| (lookup_array_type_through_translation_units) |
| (lookup_function_type_through_translation_units) |
| (lookup_type_through_translation_units) |
| (lookup_or_synthesize_fn_type, lookup_type): Likewise. |
| (maybe_update_types_lookup_map) |
| (maybe_update_types_lookup_map<class_decl>) |
| (maybe_update_types_lookup_map<function_type>): Define function |
| template, specilizations and functions. |
| (synthesize_type_from_translation_unit) |
| (synthesize_function_type_from_translation_unit): Define |
| functions. |
| * include/abg-corpus.h (corpus::get_types): Declare new accessor. |
| * src/abg-corpus.cc (corpus::priv::get_types): Define new |
| accessor. |
| (corpus::get_types): Likewise. |
| (lookup_type_in_corpus, lookup_class_type_in_corpus) |
| (lookup_type_in_corpus, lookup_function_type_in_corpus) |
| (maybe_update_types_lookup_map) |
| (maybe_update_types_lookup_map<class_decl>) |
| (maybe_update_types_lookup_map<function_type>): Remove. |
| (lookup_{basic, class, union, enum, typedef, qualified, pointer, |
| reference, array, function, class_or_typedef, |
| class_typedef_or_enum}_type): Likewise. |
| * src/abg-corpus-priv.h (corpus::priv::{basic, class, union, |
| typedef, qualified, pointer, reference, array, function}_types): |
| Remove these data members. |
| (corpus::priv::get_scopes): Remove member function. |
| (corpus::priv::get_{basic, class, union, enum, typedef, qualified, |
| pointer, reference, array, function}_types): Remove member |
| function declarations. |
| (corpus::priv::types_): New data member. |
| (corpus::priv::get_types): Declare new member function. |
| (lookup_{basic, class, enum, typedef, class_or_typedef, qualified, |
| pointer, reference, array, function}_type): Declare new functions. |
| * src/abg-dwarf-reader.cc |
| (read_context::resolve_declaration_only_classes) |
| (build_translation_unit_and_add_to_ir): Adjust use of |
| lookup_class_type. |
| * src/abg-reader.cc (read_context::type_is_from_translation_unit): |
| Adjust to the use of lookup_function_type_in_translation_unit that |
| got renamed into lookup_function_type. |
| * src/abg-writer.cc (type_ptr_cmp::operator()): New operator |
| implementation. |
| (read_context::sort_type): Add new overloads. |
| (write_translation_unit): Adjust to get the function types from |
| the new translation_unit::get_live_fn_types and sort them. |
| * tools/abicompat.cc (perform_compat_check_in_weak_mode): Adjust |
| to use the new lookup_or_synthesize_fn_type, in lieu of |
| lookup_function_type_in_corpus. Adjust to use lookup_type in lieu |
| of lookup_type_in_corpus. |
| |
| 2016-12-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abg-fwd.h use *_sptr typedefs |
| * include/abg-ir.h: Move convience typedef declarations and some |
| necessary forward declarations to ... |
| * include/abg-fwd.h: ... here. |
| (is_enum_type, is_var_decl): Take a pointer to type_or_decl_base. |
| (lookup_type_in_scope): Return a type_base_sptr. |
| (lookup_type_through_scopes): Introduce this to later replace the |
| overload of lookup_type_in_translation_unit that takes a list of |
| strings. |
| (lookup_type_in_scope): Return a type_base_sptr, not a |
| decl_base_sptr. |
| * src/abg-ir.cc (lookup_type_in_scope, lookup_node_in_scope) |
| (lookup_var_decl_in_scope): Adjust. |
| (is_enum_type, is_var_decl): Take a pointer to type_or_decl_base. |
| (lookup_node_in_scope): Return a type_or_decl_base_sptr. |
| (lookup_type_in_scope): Return a type_base_sptr. |
| (lookup_node_in_translation_unit): Return a |
| type_or_decl_base_sptr. |
| (lookup_type_through_scopes): Replace |
| lookup_type_in_translation_unit. |
| |
| 2016-12-18 Chenxiong Qi <cqi@redhat.com> |
| |
| Fix wrong variable name |
| * tools/fedabipkgdiff: (diff_latest_rpms_based_on_distros): Fix |
| wrong variable name distro. |
| |
| 2016-12-18 Chenxiong Qi <cqi@redhat.com> |
| |
| Warn properly when cannot find peer RPM |
| * tools/fedabipkgdiff: (RPMCollection.get_peer_rpm): Return None |
| when cannot find peer RPM due to nonexistent arch. |
| |
| 2016-12-19 Chenxiong Qi <cqi@redhat.com> |
| |
| Read Koji config via Koji API |
| * tools/fedabipkgdiff: Read DEFAULT_KOJI_TOPURL and |
| DEFAULT_KOJI_SERVER from Koji config via Koji API read_config. |
| (build_commandline_args_parser): --topdir is renamed to |
| --topurl. |
| * doc/manuals/fedabipkgdiff.rst: Rename --topdir to --topurl. |
| |
| 2016-12-19 Chenxiong Qi <cqi@redhat.com> |
| |
| Follow moved packages when download |
| * tools/fedabipkgdiff: (download_rpm) Add --location to curl |
| CLI. |
| |
| 2016-12-13 Chenxiong Qi <cqi@redhat.com> |
| |
| More document for local RPMs comparison |
| * doc/manuals/fedabipkgdiff.rst: Add more document for local RPMs |
| comparison. Also fixed a typo. |
| |
| 2016-12-15 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| Properly report missing files for abipkgdiff |
| * tools/abipkgdiff.cc: (class options): Add the "nonexistent_file" flag |
| (parse_command_line): Check if the files given exist. |
| (main): Check the nonexistent_file flag. If any of the input |
| files don't exist, report it and exit. Also, for present and future test |
| uniformity, only show the base names of the packages when using their |
| names in error output. |
| * tests/test-diff-pkg.cc: Add a new regression test. |
| * tests/data/test-diff-pkg/test-nonexistent-report-0.txt: The |
| expected output of the above regression test. |
| * tests/data/Makefile.am: Add the above file to the list. |
| |
| 2016-12-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style cleanup |
| * src/abg-dwarf-reader.cc (build_function_type): Remove |
| unnecessary new line. |
| |
| 2016-12-15 Dodji Seketeli <dodji@redhat.com> |
| |
| make is_anonymous_type work for unions and classes |
| * src/abg-ir.cc (is_anonymous_type): Make this work for class or |
| union types, no only classes. |
| |
| 2016-12-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Naming typedefs of classes are not read properly from abixml |
| * src/abg-reader.cc (build_class_decl): Use |
| read_context::build_or_get_type_decl rather than |
| read_context::get_type_decl to build the naming typedef referred |
| to by the class being built. Move the handling of naming typedefs |
| after the class is marked as WIP and keyed. |
| |
| 2016-12-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't early-canonicalize function types when reading abixml |
| * src/abg-reader.cc (read_context::maybe_canonicalize_type): |
| late-canonicalize function types too. |
| |
| 2016-12-12 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| Check --enable-rpm dependencies more rigorously |
| * configure.ac: Check if both rpm2cpio and cpio |
| exist on the system. If not, disable the option and fail the |
| configuration if --enable-rpm was specified explicitly. |
| |
| 2016-12-12 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| abipkgdiff doesn't mention --no-default-suppression in help |
| * tools/abipkgdiff.cc (display_usage): Mention |
| --no-default-suppression as one of the options. |
| |
| 2016-12-12 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| Fix a few remarks made by cppcheck |
| * src/abg-comparison.cc (types_or_decls_equal::operator()): Pass |
| arguments by reference. |
| (class_diff::ensure_lookup_tables_populated): Expression |
| !A || (A && B) can be reduced to !A || B. |
| * src/abg-suppression.cc (suppression_matches_type_no_name): |
| Likewise. |
| |
| 2016-12-09 Ondrej Oprala <ondrej.oprala@gmail.com> |
| |
| Bug 19272 - abipkgdiff doesn't report arch change |
| * src/abg-comparison.cc (corpus_diff::has_incompatible_changes): |
| The architecture change into account. |
| (corpus_diff::has_net_changes): Take architecture and soname |
| changes into account. |
| * tools/abicompat.cc (perform_compat_check_in_normal_mode): Use |
| corpus_diff::{has_net_changes, has_incompatible_changes}. |
| * tests/data/test-diff-pkg/dbus-glib-0.104-3.fc23.armv7hl.rpm: New |
| test input. |
| * tests/data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64--dbus-glib-0.104-3.fc23.armv7hl-report-0.txt: |
| New test reference output. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-pkg.cc (in_out_spec): Compare the new package |
| above against an x86_64 one. |
| |
| 2016-08-11 Chenxiong Qi <cqi@redhat.com> |
| |
| Bug 20380 - Compare two local RPMs |
| * configure.ac: add dependent mimetype module. |
| * doc/manuals/fedabipkgdiff.rst: Update to add document for the |
| new use case of comparing two local RPMs. |
| * tests/data/Makefile.am: Include new RPMs for tests. |
| * tests/data/test-fedabipkgdiff/dbus-glib/dbus-glib-0.100.2-2.fc20.x86_64.rpm: |
| New RPM for running test. |
| * tests/data/test-fedabipkgdiff/dbus-glib/dbus-glib-0.106-1.fc23.x86_64.rpm: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/nss-util/nss-util-3.12.6-1.fc14.x86_64.rpm: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/nss-util/nss-util-3.24.0-2.0.fc25.x86_64.rpm: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/nss-util/nss-util-devel-3.24.0-2.0.fc25.x86_64.rpm: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/test4-glib-0.100.2-2.fc20.x86_64.rpm-glib-0.106-1.fc23.x86_64.rpm-report-0.txt: |
| Rename filename by adding .rpm extension. |
| * tests/data/test-fedabipkgdiff/test5-same-dir-dbus-glib-0.100.2-2.fc20.x86_64--dbus-glib-0.106-1.fc23.x86_64-report-0.txt: |
| New reference output for testing comparing local RPMs. |
| * tests/data/test-fedabipkgdiff/test6-missing-devel-debuginfo-nss-util-3.12.6-1.fc14.x86_64--nss-util-3.24.0-2.0.fc25.x86_64-report-0.txt: |
| New reference output for testing comparison without non-existent |
| debuginfo or development package. |
| * tests/runtestfedabipkgdiff.py.in (FEDABIPKGDIFF_TEST_SPECS): |
| Rename filename for test4. Add two new test cases. |
| (run_fedabipkgdiff_tests): Remove semicolon and trailing |
| whitespaces. |
| (main): Likewise. |
| (ensure_output_dir_created): Likewise. |
| * tools/fedabipkgdiff: Require some new modules. |
| Fix of return code. |
| (PkgInfo): Renamed to ComparisonHalf. |
| (match_nvr): New method to determine if a string matches format |
| of N-V-R. |
| (match_nvra): New method to determine if a string matches format |
| of N-V-R.A. |
| (is_rpm_file): New method to guess if a file is a RPM file. |
| (RPM.is_peer): New method to determine if current RPM is a peer |
| of another. |
| (RPM.filename): Use Koji module API to construct the filename. |
| (RPM.nvra): Get nvra from filename instead of constructing |
| manually that is duplicated with Koji module API. |
| (RPMCollection): New class to represent a set of RPMs. |
| (generate_pkg_info_pair_for_abipkgdiff): New method working as a |
| generator to yeild comparison halves for running abipkgdiff. |
| (Brew.getRPM): Fix string format with incorrect argument. |
| (Brew.select_rpms_from_a_build): Return instance of |
| RPMCollection. |
| (abipkgdiff): If there is no debuginfo or development package, |
| just ignore it and leave a warning. If --error-on-warning is |
| specified, raise an exception instead. Arguments are modified |
| to represent the new name ComparisonHalf, and relative docstring |
| is also updated. |
| (magic_construct): Removed. |
| (run_abipkgdiff): Rewrite. |
| (make_rpms_usable_for_abipkgdiff): Removed. |
| (diff_local_rpm_with_latest_rpm_from_koji): Rewrite by using |
| RPMCollection. |
| (diff_latest_rpms_based_on_distros): Likewise. |
| (diff_two_nvras_from_koji): Likewise. |
| (diff_from_two_rpm_files): New method to compare two local RPMs. |
| (build_commandline_args_parser): Add new option |
| --error-on-warning. |
| (main): Add support to compare local RPMs. |
| |
| 2016-12-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix template_decl::hash::operator() |
| * src/abg-hash.cc (template_decl::hash::operator()): Combine the |
| contribution of the qualified name to the contribution of the type |
| name to the hash. |
| |
| 2016-12-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix aborting when reading .foo symbols from a ppc64 binary |
| * abg-dwarf-reader.cc (read_context::find_opd_section): Fix |
| comment. |
| (read_context::load_symbol_maps): If for a given function entry |
| point (that we got by looking at the ".opd" section for a given |
| function pointer value) we already had an entry in the |
| function_entry_address -> symbol, maybe it means that the previous |
| entry that we had was from an entry in the symbol table which |
| value was directly the entry point address of a function. In that |
| case, if the name of the symbol is "foo", the name of the symbol |
| which value is directly the entry point address is ".foo". What |
| we do in this case is that we just keep the reference to the "foo" |
| symbol in the function_entry_address -> symbol map. |
| (read_context::address_is_in_opd_section): Define new member |
| function. |
| * tests/data/test-diff-pkg/gmp-4.3.1-10.el6.ppc64.rpm: New test input. |
| * tests/data/test-diff-pkg/gmp-4.3.1-7.el6_2.2.ppc64.rpm: Likewise. |
| * tests/data/test-diff-pkg/gmp-debuginfo-4.3.1-10.el6.ppc64.rpm: Likewise. |
| * tests/data/test-diff-pkg/gmp-debuginfo-4.3.1-7.el6_2.2.ppc64.rpm: Likewise. |
| * tests/data/test-diff-pkg/gmp-4.3.1-7.el6_2.2.ppc64--gmp-4.3.1-10.el6.ppc64-report-0.txt: |
| New test reference output. |
| * tests/data/Makefile.am: Add the new test input and reference |
| output to source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Add the new test inputs |
| and reference output to the set of inputs that are compared. |
| |
| 2016-12-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20927 - Segfault when $HOME is not set |
| * src/abg-tools-utils.cc |
| (get_default_user_suppression_file_path): Handle the case where |
| the HOME environment variable is not set. |
| * tools/abipkgdiff.cc (package::extracted_packages_parent_dir): |
| Likewise. When $HOME is empty set then use $TMPDIR. If it's |
| empty too then use "/tmp". |
| |
| 2016-12-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20887 - Show relative change of offsets |
| * doc/manuals/abidiff.rst: Document the new |
| --no-show-relative-offset-changes. |
| * doc/manuals/abipkgdiff.rst: Likewise. |
| * include/abg-comparison.h |
| (diff_context::show_relative_offset_changes): New accessors. |
| * include/abg-ir.h ({set,get}_data_member_offset): Return uint64_t |
| instead of the less portable size_t. |
| * src/abg-comparison.cc |
| (diff_context::priv::show_relative_offset_changes_): New data |
| member. |
| (dif_context::show_relative_offset_changes): Define accessor. |
| (maybe_show_relative_offset_change): Define new function. |
| (represent): In the overload for var_diff, call the new |
| maybe_show_relative_offset_change. |
| (report_size_and_alignment_changes): If the size of the type |
| didn't change then say it now. |
| * src/abg-ir.cc (set_data_member_offset, get_data_member_offset): |
| Take or return a uint64_t instead of a size_t. |
| * tools/abidiff.cc (options::show_relative_offset_changes): New |
| data member. |
| (options::options): Initialize it. |
| (display_usage): Display help string for the new |
| --no-show-relative-offset-changes. |
| (parse_command_line): Parse the new |
| --no-show-relative-offset-changes options. |
| (set_diff_context_from_opts): Set the |
| "show-relative-offset-changes" flag according to the new option.n |
| * tools/abipkgdiff.cc (options::show_relative_offset_changes): New |
| data member. |
| (options::options): Initialize it. |
| (display_usage): Add help string for the new |
| --no-show-relative-offset-changes option. |
| (set_diff_context_from_opts): Set the |
| "show-relative-offset-changes" flag according to the new option. |
| (parse_command_line): Parse the new command line option. |
| * tests/data/test-diff-dwarf/test40-report-0.txt: Add new |
| reference output. |
| * tests/data/test-diff-dwarf/test40-v0.c: Source code of the first |
| test binary. |
| * tests/data/test-diff-dwarf/test40-v1.c: Source code of the |
| second test binay. |
| * tests/data/test-diff-dwarf/libtest40-v0.so: New first test binary. |
| * tests/data/test-diff-dwarf/libtest40-v1.so: New second test binary. |
| * tests/test-diff-dwarf.cc (in_out_spec): Add the new test |
| binaries above to the set of binaries that are compared. |
| * tests/data/Makefile.am: Add the new test material to source |
| distribution. |
| * tests/data/test-abicompat/test7-fn-changed-report-0.txt: Adjust. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Likewise. |
| * tests/data/test-abidiff/test-enum0-report.txt: Likewise. |
| * tests/data/test-abidiff/test-enum1-report.txt: Likewise. |
| * tests/data/test-abidiff/test-struct1-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test0-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test1-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test10-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test11-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test13-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test15-enum-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test27-local-base-diff-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test32-fnptr-changes-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test33-fnref-changes-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test38-union-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test4-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test5-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test6-report.txt: Likewise. |
| * tests/data/test-diff-dwarf/test8-report.txt: Likewise. |
| * tests/data/test-diff-filter/test0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test01-report.txt: Likewise. |
| * tests/data/test-diff-filter/test1-report.txt: Likewise. |
| * tests/data/test-diff-filter/test13-report.txt: Likewise. |
| * tests/data/test-diff-filter/test16-report-2.txt: Likewise. |
| * tests/data/test-diff-filter/test16-report.txt: Likewise. |
| * tests/data/test-diff-filter/test17-0-report.txt: Likewise. |
| * tests/data/test-diff-filter/test17-1-report.txt: Likewise. |
| * tests/data/test-diff-filter/test18-report.txt: Likewise. |
| * tests/data/test-diff-filter/test19-enum-report-1.txt: Likewise. |
| * tests/data/test-diff-filter/test2-report.txt: Likewise. |
| * tests/data/test-diff-filter/test23-redundant-fn-parm-change-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test24-compatible-vars-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test25-cyclic-type-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test25-cyclic-type-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test26-qualified-redundant-node-report-0.t: |
| Likewise.xt |
| * tests/data/test-diff-filter/test26-qualified-redundant-node-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test27-redundant-and-filtered-children-nodes-report-2.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test29-finer-redundancy-marking-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test3-report.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: |
| Likewise. |
| * tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt: Likewise. |
| * 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. |
| * 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. |
| * 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. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test1-typedef-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test1-typedef-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test10-changed-parm-c-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test2-struct-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test23-alias-filter-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test23-alias-filter-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test3-struct-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test3-struct-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test3-struct-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test30-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test4-local-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test4-local-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test5-fn-suppr-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-0-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test6-fn-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-8.txt: Likewise. |
| |
| 2016-12-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Rename tests/update-test-read-dwarf-output.py |
| * tests/update-test-output.py: renamed |
| tests/update-test-read-dwarf-output.py into this. Update its |
| comments. Make this script executable. |
| |
| 2016-11-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Add tests/data/test-diff-suppr/test33-report-0.txt to tarball |
| * tests/data/Makefile.am: Add test-diff-suppr/test33-report-0.txt. |
| |
| 2016-11-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20670 - abipkgdiff aborts if $XDG_CACHE_HOME does not exist |
| * tools/abipkgdiff.cc (package::extracted_packages_parent_dir): |
| Ensure that the cache directory is created, even when |
| XDG_CACHE_HOME is set. Also, remove the now useless "using |
| abigail::tools_utils::get_random_number_as_string" statement. |
| |
| 2016-11-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Very light speed improvements |
| * include/abg-comp-filter.h (has_harmless_name_change): Pass smart |
| pointers by reference. |
| * src/abg-comp-filter.cc (access_changed) |
| (function_name_changed_but_not_symbol) |
| (non_static_data_member_type_size_changed) |
| (static_data_member_type_size_changed, is_compatible_change) |
| (decl_name_changed, has_harmless_name_change): Pass smart |
| pointers by reference. |
| * include/abg-ir.h (decl_base::set_context_rel): Take a bare |
| pointer, not a smart pointer. |
| * src/abg-ir.cc (decl_base::priv::context_): Make this data member |
| be a naked pointer, not a smart pointer. |
| (decl_base::priv::priv): Initialize it. |
| (decl_base::priv::~priv): New constructor. |
| (decl_base::{get_context_rel, set_scope}): Adjust. |
| (class_decl::method_decl::{method_decl, set_scope}): Likewise. |
| (equals): In the overload for var_decl, compare the type of the |
| var first as that might be faster (to detect var_decls with |
| different types) in the general case where types are |
| canonicalized. |
| |
| 2016-11-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Introduce on-the-fly type canonicalization |
| * include/abg-ir.h (environment::do_on_the_fly_canonicalization): |
| Declare new member functions. |
| ({type_base, function_type}::priv_): Make this public so that |
| static non-member functions defined in abg-ir.cc can access it. |
| * src/abg-ir.cc |
| (environment::priv::do_on_the_fly_canonicalization_): New data |
| member. |
| (environment::priv::priv): Initialize it. |
| (environment::do_on_the_fly_canonicalization): Define new member |
| functions. |
| (type_base::get_canonical_type_for): Trigger on-the-fly |
| canonicalization during comparison of the type being canonicalized |
| and an already canonicalized type. |
| (types_are_being_compared, maybe_propagate_canonical_type): Define |
| new static functions. |
| (equals): In overloads for class_decl and function_type, call |
| maybe_propagate_canonical_type when the two types compare equal. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: |
| Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2016-11-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix pretty representation of array types |
| * include/abg-ir.h (array_type_def::is_infinite): Fix indentation. |
| * src/abg-ir.cc (qualified_type_def::build_name): An empty set of |
| sub-ranges for a vector is represented by "[]". |
| (array_type_def::is_infinite): If a vector has no sub-range, that |
| means it has an infinite size. Adjust comment. |
| * tests/data/test-diff-filter/test33-report-0.txt: Adjust. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2016-10-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Support naming typedef and use them to speed up type canonicalization |
| * include/abg-ir.h (typedef_decl_wptr): New typedef. |
| (class_decl::{g,s}et_naming_typedef): Declare new member |
| functions. |
| * src/abg-dwarf-reader.cc (build_typedef_type): When the |
| underlying type of a typedef is an anonymous class, the class type |
| is said to have a naming typedef. |
| * src/abg-ir.cc (is_anonymous_type): An anonymous class that has |
| a naming typedef is said to not be anonymous anymore. |
| (class_decl::priv::naming_typedef): New data member. |
| (class_decl::{g,s}et_naming_typedef): Define new member functions. |
| (class_decl::get_pretty_representation): When called for internal |
| purposes (e.g, for type canonicalization) compute the pretty |
| representation of the class by using its typedef name, when class |
| is anonymous and has a naming typedef. |
| * src/abg-reader.cc (build_class_decl): Read the new |
| "naming-typedef-id" attribute. |
| * src/abg-writer.cc (write_naming_typedef): New function. |
| (write_class_decl_opening_tag): Use the new write_naming_typedef |
| function. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2016-11-02 Dodji Seketeli <dodji@redhat.com> |
| |
| Implement de-duplication for types and decls at DWARF loading time |
| * include/abg-ir.h (method_type::priv_): Introduce new pimpl |
| pointer here. |
| (method_type::class_type_): Move this into the pimpl idiom. |
| (method_type::method_type): Take a new is_const flag. |
| (method_type::get_class_type): Make this method out-of-line. |
| (method_type::{s,g}et_is_const): Declare new member functions. |
| (get_method_type_name): Declare this function as a friend of |
| the method_type type. |
| * src/abg-dwarf-reader.cc: Include the new abg-ir-priv.h and |
| abg-corpus-priv.h. |
| (typedef die_tu_map_type): Fix comment. |
| (typedef die_istring_map_type): New typedef. |
| (class read_context::die_source_dependant_container_set): New |
| class template. |
| (read_context::{die_qualified_name_maps_, die_pretty_repr_maps_, |
| die_pretty_type_repr_maps_}): Define new data members. |
| (read_context::{get_die_qualified_name, get_die_qualified_name, |
| get_die_qualified_type_name, get_die_pretty_type_representation, |
| get_die_pretty_representation, lookup_type_artifact_from_die, |
| lookup_artifact_from_die, lookup_artifact_from_die_representation, |
| associate_die_to_artifact_by_repr, |
| associate_die_to_artifact_by_repr_internal, |
| lookup_type_from_die}): Define new member functions. |
| (read_context::lookup_type_from_die_offset): Fix comment. |
| (get_parent_die, get_scope_die, die_is_decl) |
| (die_is_namespace, die_is_unspecified, die_is_void_type) |
| (die_is_pointer_type, die_is_reference_type) |
| (die_is_pointer_or_reference_type, die_is_class_type) |
| (die_has_object_pointer, die_this_pointer_from_object_pointer) |
| (die_this_pointer_is_const, is_decl_tag) |
| (die_object_pointer_is_for_const_method, die_is_at_class_scope) |
| (die_name, die_qualified_type_name, die_qualified_decl_name) |
| (die_qualified_name, die_qualified_type_name_empty) |
| (die_return_and_parm_names_from_fn_type_die) |
| (die_function_signature, die_peel_qual_ptr) |
| (die_function_type_is_method_type, die_pretty_print_type) |
| (die_pretty_print_decl, die_pretty_print) |
| (build_subranges_from_array_type_die) |
| (build_or_get_fn_decl_if_not_suppressed) |
| (lookup_class_or_typedef_type) |
| (lookup_class_typedef_or_enum_type_from_corpus) |
| (is_function_for_die_a_member_of_class) |
| (add_or_update_member_function): Define new static functions. |
| (read_context::associate_die_to_decl): Call |
| associate_die_to_artifact_by_repr. |
| (read_context::{associate_die_to_type, |
| schedule_type_for_late_canonicalization}): Take just one "die" |
| parameter rather than taking a die offset and a die source; adjust |
| accordingly. |
| (maybe_canonicalize_type): Likewise. |
| (finish_member_function_reading): Take a const reference to |
| function_decl_sptr. |
| (die_loc_and_name): Use the new die_name function. |
| (die_is_type): Rename is_type_die into this. |
| (build_type_decl): Take a new "where_offset" parameter. Adjust. |
| If a type of the same name as the one for the current DIE is is |
| already present, do not create a new type; just return the |
| already-existing one. |
| (build_enum_type): Take a new "where_offset" parameter. Adjust. |
| (finish_member_function_reading): Pass two smart pointers by const |
| reference. Assert that the type of the member function is a |
| method_type. Some light cleanups. |
| (add_or_update_class_type): Rename build_class_type_and_add_to_ir. |
| If a DIE defining the same class has already been seen, then |
| return that class; don't construct any other internal |
| representation for the same class. Better handle the updating of |
| member data and functions. Do not duplicate member types. |
| (build_qualified_type, build_pointer_type_def) |
| (build_reference_type): Support de-duplication here. |
| (build_function_type): Likewise. Support detection and building |
| of method type. This also supports *const* method type building. |
| (build_array_type): Use the new |
| build_subranges_from_array_type_die. |
| (build_type_decl): Cleanup logic. |
| (build_or_get_var_decl_if_not_suppressed): Renamed |
| build_var_decl_if_not_suppressed into this. Perform |
| de-duplication for data members. |
| (build_function_decl): Don't set an empty source location. If the |
| function type cannot be constructed, do not construct the function |
| decl either. Adjust. |
| (build_ir_node_from_die): Adjust. When building a function for a |
| DW_TAG_subroutine_type DIE, use the new |
| build_or_get_fn_decl_if_not_suppressed. |
| * src/abg-ir.cc (translation_unit::bind_function_type_life_time): |
| Fix comment. |
| (strip_typedef): Adjust. |
| (qualified_type_def::build_name): Set the prefix name of a the |
| name of a noop qualifier to "noop-qual", just like what is done in |
| the new die_qualified_name function. |
| (struct method_type::priv): New priv type for the method_type |
| class. |
| (method_type::method_type): Take a new 'is_const' parameter. |
| Adjust as the method_type is now pimpl'ed. |
| (method_type::{get_class_type, set_is_const, get_is_const}): |
| Define new member functions. |
| (function_decl::get_pretty_representation_of_declarator): Better |
| detecter of const-ness. |
| (class_decl::insert_member_decl): Better setting of the |
| const-ness. |
| (class_decl::method_decl::method_decl): Adjust. Deduce the |
| const-ness of the method_decl from the const-ness of its |
| method_type. |
| (copy_member_function): Adjust. |
| (set_member_is_static): Do not assume a non-nil scope anymore |
| because member_decl can now be scope-less, at least for a little |
| while. |
| * src/abg-reader.cc (push_decl_to_current_scope): Adjust. |
| (build_function_decl): Style adjustment. Adjust for method_type |
| const-ness changes. |
| (build_function_type): Likewise. Also, support the new |
| "method-class-id" property that flags a function type as being a |
| method type. |
| * src/abg-writer.cc (write_function_decl): Style fixes. |
| (write_function_type): Likewise. Emit a new "method-class-id" |
| property for function type that is actually a method type. That |
| property's value is the id of the class of the method type. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: Adjust. |
| * tests/data/test-diff-dwarf/test0-report.txt: Adjust. |
| * tests/data/test-diff-filter/test0-report.txt: Adjust. |
| * tests/data/test-diff-filter/test01-report.txt: Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Adjust. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt: Adjust. |
| * tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt: Adjust. |
| * 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: Adjust. |
| * 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: Adjust. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: Adjust. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: Adjust. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2016-11-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Setup per-corpus type maps indexed by type names |
| * include/abg-corpus.h (corpus::priv_): Make this public so that |
| functions from outside of the class can access it. These |
| functions are meant to be used only by code that is *inside* |
| libabigail.so, though. |
| * src/abg-corpus-priv.h: New file. |
| * src/abg-corpus.cc: Include the new abg-corpus-priv.h file. |
| (struct regex_t_deleter): Move this to abg-sptr-utils.h. |
| (build_sptr<regex_t>): Move the declaration of this function |
| template specialization to abg-sptr-utils.h and its definition to |
| abg-sptr-utils.cc. |
| (typedef regex_t_sptrs_type, typedef str_var_ptr_map_type) |
| (struct corpus::exported_decls_builder::priv, struct |
| corpus::priv): Move these declarations to the new |
| abg-corpus-priv.h. |
| (maybe_update_types_lookup_map): Define overloads of this (one per |
| kind of type). |
| (lookup_{basic, class, enum, typedef, class_or_typedef, |
| class_typedef_or_enum, qualified, pointer, reference, array, |
| function}_type): Define new functions. |
| * include/abg-ir.h (typedef istring_type_base_wptr_map_type) |
| (typedef istring_type_or_decl_base_sptr_map_type): Declare new |
| typedefs. |
| (class_decl::find_member_function_from_signature): Declare new |
| member function. |
| * src/abg-ir.cc: Include the new abg-corpus-priv.h file. |
| (maybe_update_types_lookup_map): Remove this initial function. |
| There are now new overloads in abg-corpus.cc for it. |
| (scope_decl::{add_member_decl, insert_member_decl}): Adjust. |
| (class_decl::{set_is_declaration_only, find_member_function, |
| add_member_function}): Adjust. |
| (class_decl::find_member_function_from_signature): Define new |
| member function. |
| * include/abg-sptr-utils.h (struct regex_t_deleter): Declare new |
| type. |
| (build_sptr<regex_t>): New build function template |
| specializations. |
| * src/abg-sptr-utils.cc: New file. |
| * src/Makefile.am: Add src/abg-sptr-utils.cc and |
| src/abg-corpus-priv.h to the build system. |
| |
| 2016-11-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Allow pretty printing function decls for internal purposes |
| * include/abg-ir.h |
| (function_decl::get_pretty_representation_of_declarator): Take an |
| "internal" flag. |
| * src/abg-ir.cc |
| (function_decl::get_pretty_representation_of_declarator): Take an |
| "internal" flag. |
| (function_decl::get_pretty_representation): Pass the "internal" |
| flag to the function |
| function_decl::get_pretty_representation_of_declarator. |
| (function_decl::parameter::get_type_name): Better handle variadic |
| parameter type. |
| (function_decl::parameter::get_type_pretty_representation): |
| Likewise. |
| |
| 2016-11-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Make bash completion files non-executable |
| * bash-completion/abicompat: Make this be non-executable. |
| * bash-completion/abidiff: Likewise. |
| * bash-completion/abidw: Likewise. |
| * bash-completion/abilint: Likewise. |
| * bash-completion/abinilint: Likewise. |
| * bash-completion/abipkgdiff: Likewise. |
| * bash-completion/abisym: Likewise. |
| * bash-completion/fedabipkgdiff: Likewise. |
| |
| 2016-11-26 Dodji Seketeli <dodji@redhat.com> |
| |
| A suppressed diff node implies suppressing all equivalent nodes too |
| *class of equivalence* is visited once. This is not only a way to |
| prevent infinite loops while visiting the graph, but also an |
| optimization as it avoids walking two equivalent diff nodes. |
| But then it can happen that we forget to categorize some diff nodes |
| inside a given class of equivalence, even though we categorized some |
| others. |
| This patch makes it so that when a diff node inside a class of |
| equivalence is categorized as SUPPRESSED, the canonical diff node of |
| that class of equivalence is categorized as SUPPRESSED too. That way, |
| to know if a diff node is suppressed, we just need to look at its |
| canonical diff node. |
| While doing this, I noticed that abidiff and abipkgdiff are not |
| dropping private types from libabigail's internal representation, even |
| though the Library now has that capability. The patch fixes that. |
| But then the patch adds a --dont-drop-private-types option to abidiff |
| to avoid dropping those private types from the IR, so that regression |
| tests can make sure that a suppressed diff node implies suppression |
| all equivalent nodes too. |
| * doc/manuals/abidiff.rst b/doc/manuals/abidiff.rst: Document the |
| new --dont-drop-private-types option. |
| * src/abg-comparison.cc (diff::is_filtered_out): If the canonical |
| type was suppressed then the current diff node is filtered out. |
| (suppression_categorization_visitor::visit_{begin,end}): |
| Categorized the canonical node as SUPPRESSED if the current node |
| is suppressed. |
| * tools/abidiff.cc (options::drop_private_types): New data member. |
| (options::options): Initialize it. |
| (display_usage): Add new help string for the new |
| --dont-drop-private-types option. |
| (parse_command_line): Parse the new --dont-drop-private-types |
| option. |
| (set_suppressions): Generate suppression specification from header |
| directories given in parameter and stick them to the read context. |
| * tools/abipkgdiff.cc (compare): Likewise. |
| * tests/data/test-diff-suppr/libtest34-v0.so: New test input. |
| * tests/data/test-diff-suppr/libtest34-v1.so: Likewise. |
| * tests/data/test-diff-suppr/test34-report-0.txt: New reference |
| report. |
| * tests/data/test-diff-suppr/test34-v0.c: Source code for the new |
| test input. |
| * tests/data/test-diff-suppr/test34-v1.c: Likewise. |
| * tests/data/test-diff-suppr/test34-priv-include-dir-v0/test34-priv-include-v0.h: |
| Likewise. |
| * tests/data/test-diff-suppr/test34-priv-include-dir-v1/test34-priv-include-v1.h: |
| Likewise. |
| * tests/data/test-diff-suppr/test34-pub-include-dir-v0/test34-pub-include-v0.h: |
| Likewise. |
| * tests/data/test-diff-suppr/test34-pub-include-dir-v1/test34-pub-include-v1.h: |
| Likewise. |
| * tests/data/Makefile.am: Add new test input material above to |
| source distribution. |
| * tests/test-diff-suppr.cc (in_out_spec): Compare the two new test |
| library provided. Add --dont-drop-private-types to test30*. |
| signed-off-by: Dodji Seketeli <dodji@redhat.com> |
| |
| 2016-11-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Forgot to consider libtest33-v{0,1}.so in test-diff-suppr.cc |
| * tests/data/test-diff-suppr/test33-report-0.txt: New refernce report. |
| * tests/test-diff-suppr.cc (in_out_specs): Compare libtest33-v0.so |
| and libtest33-v1.so. |
| |
| 2016-11-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.0.rc7 |
| * configure.ac: |
| |
| 2016-11-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Update website for 1.0.rc6 |
| * doc/website/mainpage.txt: Update for 1.0.rc6 release |
| |
| 2016-11-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS and ChangeLog for 1.0.rc6 |
| * ChangeLog: Update this automatically using "make |
| update-changelog". |
| * NEWS: update this by editing the output of 'git shortlog |
| libabigail-1.0.rc5..HEAD'. |
| |
| 2016-11-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid using size_t to get DWARF data |
| * src/abg-dwarf-reader.cc (die_size_in_bits, die_location_expr): |
| Take uint64_t rather than size_t and adjust. |
| (expr_result::const_value_): Make this be int64_t rather than |
| ssize_t. |
| (expr_result::expr_result): Take int64_t rather than ssize_t. |
| (expr_result::const_value): Return int64_t rather than ssize_t. |
| (expr_result::{operator(), operator=, operator+=}): Make these |
| operators return or take int64_t. |
| too. |
| (op_pushes_constant_value, op_manipulates_stack) |
| (op_is_arith_logic, op_is_control_flow) |
| (eval_last_constant_dwarf_sub_expr, die_member_offset) |
| (die_virtual_function_index): Take |
| uint64_t rather than size_t, or int64_t rather than ssize_t. |
| (finish_member_function_reading, build_class_type_and_add_to_ir) |
| (build_union_type_and_add_to_ir): Adjust. |
| |
| 2016-11-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a compiler warning issued by GCC 6.2.1 |
| * src/abg-dwarf-reader.cc (find_import_unit_point_between_dies): |
| Parameter 5 of find_import_unit_point_between_dies is not of type |
| Dwarf_Off. |
| |
| 2016-11-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix offset type mismatch |
| * src/abg-dwarf-reader.cc (die_member_offset): The last two |
| parameters of die_unsigned_constant_attribute must be of type |
| uint64_t. |
| |
| 2016-11-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix indentation in abg-writer.cc |
| * src/abg-writer.cc (write_union_decl_opening_tag): Fix |
| indentation. |
| |
| 2016-11-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Support reading data member offset from DW_AT_bit_offset |
| * src/abg-dwarf-reader.cc (die_member_offset): Better comments. |
| Support reading the bit offset also from the DW_AT_bit_offset |
| attribute when it's present. Make sure this always returns a |
| value in bits. |
| (build_class_type_and_add_to_ir): No need to multiply (by 8) the |
| value returned by die_member_offset anymore because it's now in |
| bits directly. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Adjust. |
| * tests/data/test-read-dwarf/test1.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Adjust. |
| |
| 2016-11-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Lexicographically sort union data members in change reports |
| * src/abg-comparison.cc (data_member_comp::operator()): Data |
| members with the same offset are sorted lexicographically, by |
| taking their name into account. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Likewise. |
| |
| 2016-11-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Better diagnostics when wget is missing |
| * configure.ac: When wget is missing then make the disabling of |
| the building of the fedabipkgdiff tool show up in the |
| configuration summary and emit a notice. |
| |
| 2016-11-15 Dodji Seketeli <dodji@redhat.com> |
| |
| Support union types |
| * include/abg-fwd.h (class_or_union, union_decl): Forward-declare |
| new types. |
| (is_class_or_union_type, is_union_type): Declare new functions. |
| * include/abg-ir.h (method_type::class_type_): Make this be of |
| class_or_union_wptr type. |
| (method_type::method_type): Make the class_type parameter be of |
| class_or_union_wptr type. |
| (method_type::{g,s}et_class_type): Take or return a |
| class_or_union_sptr. |
| (member_base, method_decl, member_function_template) |
| (member_class_template, member_base::hash) |
| (member_function_template::hash, member_class_template::hash): |
| Take these class types out of the class_decl scope. |
| (is_method_decl): Adjust. |
| (operator==, opertor!=): Adjust overloads for |
| member_function_template_sptr and member_class_template_sptr. |
| (class class_or_union): Declare new type. |
| (class class_decl): Make this class inherit class_or_union class. |
| (class_decl::{add_member_decl, insert_member_decl, |
| remove_member_decl, set_size_in_bits, get_size_in_bits, |
| get_alignment_in_bits, set_alignment_in_bits, |
| get_is_declaration_only, set_is_declaration_only, |
| set_definition_of_declaration, get_definition_of_declaration, |
| get_earlier_declaration, set_earlier_declaration, |
| insert_member_type, add_member_type, remove_member_type, |
| get_member_type, find_member_type, add_data_member, |
| get_data_members, find_data_member, get_non_static_data_members, |
| add_member_function, get_member_functions, find_member_function, |
| add_member_function_template, get_member_function_templates, |
| add_member_class_template, get_member_class_templates): Move these |
| to the parent class class_or_union. |
| (copy_member_function, equals): Add overloads for class_or_union. |
| (struct class_or_union::hash): Declare new type. |
| (class union_decl): Declare new type. |
| (equals, copy_member_function): New overloads for class union_decl |
| type. |
| (ir_node_visitor::visit): Add new overloads for union_decl* and |
| class_or_union*. |
| * src/abg-ir.cc (get_member_function_is_ctor) |
| (set_member_function_is_ctor, get_member_function_is_dtor) |
| (set_member_function_is_dtor, get_member_function_is_const) |
| (set_member_function_is_const, get_member_function_vtable_offset) |
| (set_member_function_vtable_offset) |
| (get_member_function_is_virtual, set_member_function_is_virtual) |
| (maybe_update_types_lookup_map, get_location) |
| (get_method_type_name, is_at_global_scope, is_at_class_scope): |
| Adjust. |
| (is_class_or_union_type, is_union_type): Define new functions. |
| (type_base::get_canonical_type_for, maybe_adjust_canonical_type) |
| (method_type::method_type, method_type::set_class_type) |
| (function_decl::get_pretty_representation) |
| (function_decl::get_first_non_implicit_parm) |
| (function_decl::clone): Adjust. |
| (equals): Adjust the overload for function_type. |
| (struct class_or_union::priv): Define new type. |
| (class::priv::{declaration_, definition_of_declaration_, |
| member_types_, data_members_, non_static_data_members_, |
| member_functions_, mem_fns_map_, member_function_templates_, |
| member_class_templates_, is_declaration_only_}): Move these data |
| member into class_or_union::priv. |
| (class_priv::{mark_as_being_compared, unmark_as_being_compared, |
| comparison_started}): Moved these member functions to |
| class_or_union::priv. |
| (class_or_union::{class_or_union, traverse, ~class_or_union, |
| add_member_decl, remove_member_decl, insert_member_type, |
| add_member_type, get_size_in_bits, remove_member_type, |
| get_alignment_in_bits, set_alignment_in_bits, set_size_in_bits, |
| get_is_declaration_only, set_is_declaration_only, |
| set_definition_of_declaration, get_definition_of_declaration, |
| get_earlier_declaration, set_earlier_declaration, |
| get_member_types, find_member_type, add_data_member, |
| get_data_member, find_data_member, add_member_function, |
| get_member_functions, find_member_function, |
| add_member_function_template, get_member_function_templates, |
| add_member_class_template, get_member_class_templates, |
| has_no_member, insert_member_decl, operator==}): Define new member |
| functions. |
| (class_decl::{add_member_decl, remove_member_decl, |
| insert_member_type, add_member_type, get_size_in_bits, |
| remove_member_type, get_alignment_in_bits, set_alignment_in_bits, |
| set_size_in_bits, get_is_declaration_only, |
| set_is_declaration_only, set_definition_of_declaration, |
| get_earlier_declaration, set_earlier_declaration, |
| get_member_types, find_member_type, add_data_member, |
| get_data_member, find_data_member, add_member_function, |
| get_member_functions, find_member_function, |
| add_member_function_template, get_member_function_templates, |
| add_member_class_template, get_member_class_templates): Move these |
| member functions into class_or_union. |
| (class_decl::{class_decl, get_definition_of_declaration, |
| insert_member_decl, add_member_function, has_no_base_nor_member}): |
| Adjust. |
| (equals, copy_member_function): Define new overloads for |
| class_or_union. |
| (equals): Adjust the overload for class_decl. |
| (method_decl::{method_decl, set_linkage_name, ~method_decl, |
| get_type, set_scope}): Remove from the class_decl scope. |
| (member_base::operator==, member_function_template::operator==): |
| Likewise. |
| (member_function_template::traverse) |
| (member_class_template::operator==) |
| (member_class_template::traverse): Likewise. |
| (operator==, operator!=): Adjust the overlod for |
| member_function_template_sptr. |
| (is_method_decl, fixup_virtual_member_function) |
| (set_member_is_static): Adjust. |
| (virtual_member_function_less_than::operator()): Likewise. |
| (union_decl::{union_decl, get_pretty_representation, operator==, |
| traverse}): Define new member functions. |
| (equals, copy_member_function): Define new overloads for |
| union_decl. |
| (hash_type_or_decl): Adjust. |
| (ir_node_visitor::visit_{begin, end}): Adjust. Add new overloads |
| for class_or_union* and union_decl*. |
| * include/abg-comparison.h (changed_member_function_sptr) |
| (string_member_function_sptr_map): Adjust these typedefs. |
| (class class_or_union_diff): Declare new type. |
| (class_diff): Adjust to make this inherit the new |
| class_or_union_diff type. |
| (class_diff::{get_priv, member_types_changes, |
| data_members_changes, inserted_data_members, deleted_data_members, |
| member_fn_tmpls_changes, member_fn_tmpls_changes, |
| member_class_tmpls_changes}): These member functions got moved |
| into -- and shared with -- class_or_union_diff class. |
| (class union_diff): Declare new type. |
| (typedef union_diff_sptr): New typedef. |
| (compute_diff): New overload for union_diff |
| (is_class_diff, is_union_diff): Declare new functions. |
| * src/abg-comparison.cc (is_class_diff, is_union_diff): Define new |
| functions. |
| (compute_diff_for_types): Support union_decl. |
| (represent): Adjust. |
| (represent_data_member): Do not show offset information for data |
| members of unions as all union data members are at offset 0. |
| (struct class_or_union_diff::priv): New type. |
| (class_or_union_diff::priv::{member_type_has_changed, |
| subtype_changed_dm, member_class_tmpl_has_changed, |
| get_deleted_non_static_data_members_number, |
| get_inserted_non_static_data_members_number, |
| count_filtered_subtype_changed_dm, count_filtered_changed_dm, |
| count_filtered_changed_mem_fns, count_filtered_inserted_mem_fns, |
| count_filtered_deleted_mem_fns}): Define new member functions. |
| (class_or_union_diff::{class_or_union_diff, finish_diff_type, |
| lookup_tables_empty, lookup_tables_empty, |
| ensure_lookup_tables_populated, allocate_priv_data, get_priv, |
| ~class_or_union_diff, first_class_or_union, second_class_or_union, |
| member_types_changes, member_types_changes, data_members_changes, |
| inserted_data_members, deleted_data_members, member_fns_changes, |
| changed_member_fns, member_fns_changes, inserted_member_fns, |
| member_fn_tmpls_changes, member_fn_tmpls_changes, |
| member_class_tmpls_changes, member_class_tmpls_changes, |
| has_changes, has_local_changes, report, chain_into_hierarchy}): |
| Define new member functions. |
| (class_diff::priv::{member_types_changes_, data_members_changes, |
| member_fn_tmpls_changes_, member_class_tmpls_changes_, |
| deleted_member_types_, inserted_member_types_, |
| changed_member_types_, sorted_changed_member_types_, |
| deleted_data_members_, deleted_dm_by_offset_, |
| inserted_data_members_, inserted_dm_by_offset_, |
| subtype_changed_dm_, sorted_subtype_changed_dm_, changed_dm_, |
| sorted_changed_dm_, deleted_member_functions_, |
| inserted_member_functions_, changed_member_functions_, |
| sorted_changed_member_functions_, deleted_member_class_tmpls_, |
| inserted_member_class_tmpls_, changed_member_class_tmpls_, |
| sorted_changed_member_class_tmpls_}): Move these data members into |
| class_or_union_diff::priv. |
| (class_diff::{clear_lookup_tables, lookup_tables_empty, |
| ensure_lookup_tables_populate}): Adjust. |
| (class_diff::allocate_priv_data): Define new function. |
| (class_diff::priv::{count_filtered_changed_mem_fns, |
| count_filtered_inserted_mem_fns, count_filtered_deleted_mem_fns, |
| chain_into_hierarchy, class_diff}): Likewise. |
| (class_diff::{member_types_changes, data_members_changes, |
| inserted_data_members, deleted_data_members, |
| member_fn_tmpls_changes, member_fn_tmpls_changes, |
| member_class_tmpls_changes}): These are deleted as they got moved |
| to class_or_union_diff. |
| (class_diff::report): Adjust. |
| (union_diff::{clear_lookup_tables, lookup_tables_empty, |
| ensure_lookup_tables_populated, allocate_priv_data, union_diff, |
| finish_diff_type, first_union_decl, second_union_decl, |
| get_pretty_representation, report}): Define new functions. |
| (compute_diff): Define an overload for union_decl_sptr. |
| (function_decl_diff::report): Adjust. |
| (corpus_diff::priv::apply_suppressions_to_added_removed_fns_vars): |
| Adjust. |
| (corpus_diff::report): Adjust. |
| * src/abg-hash.cc (member_base::hash::operator) |
| (member_function_template::hash::operator) |
| (member_class_template::hash::operator): Move these out of the |
| class_decl scope. |
| (class_or_union::hash::operator): Define new member function. |
| (class_decl::hash::operator): Adjust. |
| (type_base::dynamic_hash::operator): Support hashing of |
| union_decl. Adjust. |
| * src/abg-suppression.cc (type_suppression::suppresses_diff): |
| Adjust. |
| * src/abg-dwarf-reader.cc (typedef die_class_or_union_map_type): |
| Define new typedef. |
| (read_context::{die_wip_classes_map_, |
| alternate_die_wip_classes_map_, type_unit_die_wip_classes_map_): |
| Make these data member have type die_class_or_union_map_type. |
| (read_context::{lookup_type_from_die_offset, die_wip_classes_map, |
| is_wip_class_die_offset, resolve_declaration_only_classes}): |
| Adjust. |
| (finish_member_function_reading, build_class_type_and_add_to_ir) |
| (build_function_type, build_function_decl, build_reference_type) |
| (type_is_suppressed, build_function_decl) |
| (maybe_canonicalize_type, maybe_set_member_type_access_specifier): |
| Adjust. |
| (build_union_type_and_add_to_ir): Define new static function. |
| (build_ir_node_from_die): Support DW_TAG_union_type DIE tag. |
| * src/abg-reader.cc (handle_element_node): Handle union_decl. |
| (build_function_decl, build_function_decl_if_not_suppressed): |
| Adjust. |
| (build_union_decl_if_not_suppressed, build_union_decl) |
| (handle_union_decl): Define new functions. |
| (build_class_decl): Adjust. |
| * src/abg-writer.cc (record_decl_only_type_as_emitted): Adjust. |
| (write_decl): Adjust. Support writting union_decl type. |
| p (write_class_decl_opening_tag, write_class_decl): Adjust. Call |
| the new write_class_or_union_is_declaration_only. |
| (write_union_decl_opening_tag, write_union_decl): Define new |
| static functions. |
| (write_member_tpe): Support writting union decl. |
| * tests/test-diff-dwarf.cc (in_out_specs): Add new tests for this |
| union type support. |
| * tests/data/test-diff-dwarf/libtest37-union-v0.so: New test input. |
| * tests/data/test-diff-dwarf/libtest37-union-v1.so: Likewise. |
| * tests/data/test-diff-dwarf/libtest38-union-v0.so: Likewise. |
| * tests/data/test-diff-dwarf/libtest38-union-v1.so: Likewise. |
| * tests/data/test-diff-dwarf/libtest39-union-v0.so: Likewise. |
| * tests/data/test-diff-dwarf/libtest39-union-v1.so: Likewise. |
| * tests/data/test-diff-dwarf/test37-union-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test38-union-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test39-union-report-0.txt: Likewise. |
| * tests/data/test-diff-dwarf/test37-union-v0.cc: Source code for |
| new test input. |
| * tests/data/test-diff-dwarf/test37-union-v1.cc: Likewise. |
| * tests/data/test-diff-dwarf/test38-union-v0.cc: Likewise. |
| * tests/data/test-diff-dwarf/test38-union-v1.cc: Likewise. |
| * tests/data/test-diff-dwarf/test39-union-v0.cc: Likewise. |
| * tests/data/test-diff-dwarf/test39-union-v1.cc: Likewise. |
| * tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi: |
| Update test reference. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: |
| Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: |
| Likewise. |
| |
| 2016-11-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Support empty properties in INI files |
| * include/abg-ini.h (simple_property::simple_property): Add a new |
| constructor for empty values. |
| (simple_property::has_empty_value): Declare new member function. |
| * src/abg-ini.cc (simple_property::{simple_property, |
| has_empty_value}): Define new member functions. |
| (read_context::read_property): Support reading a property with no |
| value. |
| (write_property_value, write_property): Support writting a |
| property with empty value. |
| |
| 2016-11-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Rename config::property_vector into config::properties_type |
| * include/abg-ini.h (config::properties_type): Rename the typedef |
| config::property_vector into this. |
| (config::section::{section, get_properties, set_properties}): |
| Adjust. |
| * src/abg-ini.cc (config::section::priv::properties_): Adjust the |
| name of its type. |
| (config::section::{section, get_properties, set_properties, |
| find_property}): Adjust. |
| (write_section): Adjust. |
| * src/abg-suppression.cc (read_function_suppression): Adjust. |
| |
| 2016-11-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Apply harmless and harmful filters in one pass |
| * include/abg-comp-filter.h (class harmless_harmful_filter): |
| Decalre new class. |
| (typedef harmless_harmful_filter_sptr): Declare new typedef. |
| (class harmless_filter, class harmful_filter): Remove these class |
| declarations. |
| (typedef harmful_filter_sptr, harmless_filter_sptr): Remove these |
| typedefs. |
| * src/abg-comp-filter.cc (categorize_harmless_diff_node) |
| (categorize_harmful_diff_node): Define new static functions. |
| ({harmless, harmful}_filter::{visit, visit_end}): Remove these |
| member functions. |
| (harmless_harmful_filter::{visit, visit_end}): Define new member |
| functions. |
| * src/abg-comparison.cc (diff_context::diff_context): Register the |
| new harmless_harmful_filter, and remove the premier |
| harmless_filter and harmful_filter. |
| # Please enter the commit message for your changes. Lines starting |
| # with '#' will be ignored, and an empty message aborts the |
| commit. # On branch kabidiff-dedup # Changes to be committed: # |
| (use "git reset HEAD <file>..." to unstage) # # modified: |
| include/abg-comp-filter.h # modified: src/abg-comp-filter.cc # |
| modified: src/abg-comparison.cc # # Untracked files: # (use "git |
| add <file>..." to include in what will be committed) # # diff.txt |
| # prtests/ # tests/data/test-read-dwarf/libtest23.so.abi.conflict |
| |
| 2016-11-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid stripping typedefs too much |
| * src/abg-ir.cc (types_are_compatible) |
| (is_compatible_with_class_type): Do not strip typedefs. Just get |
| their leaf types. |
| |
| 2016-11-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style cleanups in abg-ir.cc |
| * src/abg-ir.cc (equals): In overloads for function_type and |
| class_decl, avoid returning a constant when we can return a |
| variable like in the rest of the code. |
| |
| 2016-11-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Factorize out string representation of array_type_def::subrange_type |
| * src/abg-ir.cc (array_type_def::subrange_type::{as_string, |
| vector_as_string}): Define methods. |
| (array_type_def::get_subrange_representation): Use the new |
| vector_as_string method. |
| |
| 2016-11-01 Dodji Seketeli <dodji@redhat.com> |
| |
| Factorize out parsing of integral types |
| * src/abg-ir-priv.h: New file. |
| * src/Makefile.am: Add abg-ir-priv.h to the build system. |
| * src/abg-ir.cc: Include the new abg-ir-priv.h header file. |
| (class_integral_type): Move this type |
| declaration to the new abg-ir-priv.h header. |
| (integral_type::modifiers_type): Make this non-static. |
| (parse_integral_type): This new overload is a factorized out of |
| ... |
| (integral_type::integral_type): ... here. |
| |
| 2016-10-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc style fixes in abg-ir.cc |
| * src/abg-ir.cc (get_function_type_name, |
| get_pretty_representation): Misc style fixes. |
| |
| 2016-10-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Consider a method_decl as always being a member decl |
| * src/abg-ir.cc (is_member_decl): Consider a method decl as always |
| being a member decl. |
| (is_member_function): Use is_member_decl. |
| |
| 2016-10-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Cleanup void and variadic parameter type interfaces |
| * include/abg-ir.h (environment::{get_void_type, |
| get_variadic_parameter_type}): Renamed get_void_type_decl and |
| get_variadic_parameter_type_decl to these. |
| (environment::is_void_type): Remove the overload that takes a bare |
| pointer. |
| (environment::is_variadic_parameter_type): Declare new member |
| function. |
| * src/abg-ir.cc (environment::void_type_): Renamed the data member |
| void_type_decl_ into this. |
| (environment::variadic_marker_type_): Renamed the data member |
| variadic_marker_type_decl_ into this. |
| (environment::{get_void_type, get_variadic_parameter_type}): |
| Renamed get_void_type_decl and get_variadic_parameter_type_decl to |
| these. |
| (environment::is_void_type): Take a smart pointer now. |
| (environment::is_variadic_parameter_type): Define new member |
| function. |
| (synthesize_function_type_from_translation_unit): Adjust. |
| (function_decl::parameter::get_pretty_representation): Likewise. |
| * src/abg-comparison.cc (is_diff_of_variadic_parameter_type): |
| Adjust. |
| * src/abg-dwarf-reader.cc (build_function_type) |
| (build_ir_node_for_void_type): Likewise. |
| * src/abg-reader.cc (build_function_parameter) |
| (build_function_decl, build_function_type): Likewise. |
| |
| 2016-10-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Cleanup some entry points in abg-fwd.h |
| * include/abg-fwd.h (add_decl_to_scope): Pass the scope smart |
| pointer by reference. |
| (is_member_type): pass the type smart pointer by reference. |
| (is_function_decl, is_pointer_type, is_reference_type) |
| (is_qualified_type, is_function_type, is_method_type) |
| (is_array_type): Take a type_or_decl base pointer, rather than |
| either a decl_base or type_base pointer. |
| * include/abg-ir.h (translation_unit::set_corpus): Take a pointer |
| to non-const corpus. |
| (translation_unit::get_corpus): Add a non-const overload. |
| (type_or_decl_base::get_corpus): Likewise. |
| (type_or_decl_base::set_translation_unit): Take a pointer to |
| non-corpus translation_unit. |
| (type_or_decl_base::get_translation_unit): Add a non-const |
| overload. |
| (scope_decl::{add_member_decl, insert_member_decl}): Pass the |
| member smart pointer by reference. |
| (scope_decl::remove_member_decl): Take a non-const smart pointer. |
| (class_decl::add_member_decl): Pass the decl smart pointer by |
| reference. |
| (is_method_decl): Take pointer or reference to type_or_decl_base |
| rather than function_decl. |
| * src/abg-ir.cc (translation_unit::priv::corpus): Make this a |
| pointer to non-const corpus. |
| (translation_unit::set_corpus): Take a pointer to non-const |
| corpus. |
| (translation_unit::get_corpus): Add a non-const overload. |
| (translation_unit::get_global_scope): Adjust. |
| (translation_unit::bind_function_type_life_time): Adjust. |
| (type_or_decl_base::translation_unit): Make this a pointer to |
| non-const translation_unit. |
| (type_or_decl_base::get_corpus): Likewise. |
| (type_or_decl_base::set_translation_unit): Take a pointer to |
| non-corpus translation_unit. |
| (type_or_decl_base::get_translation_unit): Add a non-const |
| overload. |
| (is_member_type): pass the type smart pointer by reference. |
| (scope_decl::{add_member_decl, insert_member_decl}): Take a |
| reference to the member decl smart pointer. Adjust. |
| (class_decl::add_member_decl): Likewise. |
| (scope_decl::remove_member_decl): Take a non-const smart pointer. |
| (add_decl_to_scope): Pass the scope smart pointer by reference. |
| (is_decl, is_function_decl, is_pointer_type, is_reference_type) |
| (is_qualified_type, is_function_type, is_method_type) |
| (is_method_decl, is_array_type): Take a type_or_decl base pointer, |
| rather than either a decl_base or type_base pointer. |
| |
| 2016-10-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix abigail::ir::get_type_scope() |
| * src/abg-ir.cc (get_type_scope): Do not always return nil. |
| |
| 2016-10-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20740 Broken check for dwarf_getalt in configure.ac |
| * configure.ac: Add missing spaces around the "=" of a conditional |
| expression. |
| |
| 2016-10-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Canonicalize function types when reading from DWARF |
| * src/abg-dwarf-reader.cc (build_function_decl): Canonicalize |
| function types. |
| |
| 2016-10-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc cleanups here and there |
| * src/abg-dwarf-reader.cc (canonicalize_types_scheduled): Fix |
| identation. |
| * src/abg-reader.cc (build_class_decl): Use class_decl_sptr rather |
| than shared_ptr<class_decl>. |
| * src/abg-writer.cc (write_class_is_declaration_only) |
| (write_is_struct, write_decl, write_decl_in_scope) |
| (write_type_decl, write_qualified_type_def) |
| (write_pointer_type_def, write_reference_type_def) |
| (write_array_type_def, write_enum_type_decl, write_typedef_decl) |
| (write_elf_symbol, write_var_decl, write_function_decl) |
| (write_member_type_opening_tag, write_member_type) |
| (write_class_decl_opening_tag, write_class_decl): Cleanup |
| parameters to use the right typedef, rather than the long |
| shared_ptr<*> form. Pass the shared pointers by reference as |
| well. |
| |
| 2016-10-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Cleanup namespace importing in abg-interned-str.h |
| * include/abg-interned-str.h: Inject std::tr1::shared_ptr, |
| std::string and std::ostream inside the abigail namespace. |
| (interned_string::{interned_string, raw, operator==, operator!=, |
| operator<): Adjust. |
| (operator==, operator!=, operator<<, operator+): Adjust. |
| |
| 2016-10-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Cleanup functions to detect infinite comparison of class_decl |
| * src/abg-ir.cc (class_decl::priv::unmark_as_being_compared): In |
| the overload that takes a pointer to class_decl, re-use the |
| overload that takes a reference. |
| (class_decl::priv::comparison_started): Do not crash if the klass |
| pointer is nil. |
| (equals): In the overload for class_decl&, undef the RESULT macro |
| when it's not used anymore. |
| |
| 2016-10-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Cleanup class_decl inifite comparison detection |
| * src/abg-ir.cc (environment::priv::classes_being_compared_): Make |
| this use the new interned_string_set_type type. |
| (class_decl::priv::{mark_as_being_compared, comparison_started}): |
| Adjust. |
| |
| 2016-10-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Apply ODR-based type comparison optimization to function types |
| * src/abg-ir.cc (type_eligible_for_odr_based_comparison): |
| Factorize this out of type_base::get_canonical_type_for. Also, |
| add function types to the set of types to use the ODR-based |
| comparison optimization on. |
| (type_base::get_canonical_type_for): Use the new |
| type_eligible_for_odr_based_comparison function. |
| |
| 2016-10-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Prevent infinite loops while comparing two function_type |
| * include/abg-ir.h (class environment): Make class function_type |
| be a friend of this class. |
| (class function_type): Make the equality function for |
| function_types be a friend of this class. |
| * src/abg-ir.cc (environment::priv::fn_types_being_compared_): New |
| data member. |
| (function_type::priv::{mark_as_being_compared, |
| unmark_as_being_compared, comparison_started}): Define new member |
| functions. |
| (equals): In the overload for function_types, if any of the the |
| function_type being compared is already being compared, return |
| early saying that the two function_types are equal. This avoids |
| |
| 2016-10-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Define a new interned_string_set_type typedef |
| * include/abg-interned-str.h (interned_string_set_type): Define a new |
| typedef for unordered_set<interned_string>. |
| |
| 2016-09-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Update reference output of runtestreaddwarf |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2016-09-21 Matthias Klose <doko@debian.org> |
| |
| Fix typo in abipkgdiff |
| * tools/abipkgdiff.cc (extract_deb): Fix typo. |
| |
| 2016-09-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Better handle fedabipkgdiff dependencies detection |
| * configure.ac: It's only when --enable-fedabipkgdiff is provided |
| that a missing dependency of the fedabipkgdiff program results in |
| a fatal error. Otherwise, building fedabipkgdiff is just |
| disabled. |
| |
| 2016-09-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Add default suppression specifications for C++ binaries |
| * default.abignore: Add suppressions for non-libstdc++ and |
| non-boost C++ libraries. |
| |
| 2016-09-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Add default suppression specification for webkitgtk |
| * default.abignore: New suppression specifications for webkitgtk. |
| |
| 2016-09-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Drop suppressed ABI artifacts from the IR |
| * doc/manuals/abidw.rst: Document the new --suppressions and |
| --headers-dir options off the abidw tool. |
| * doc/manuals/abilint.rst: Document the new --suppressions and |
| --headers-dir options on the abilint tool. |
| * doc/manuals/libabigail-concepts.rst: Document the new "drop" and |
| "name_not_regexp" properties on suppression directives. |
| * include/abg-corpus.h (corpus::corpus): Add a default argument to |
| the path parameter. |
| * src/abg-suppression-priv.h: New private header file. |
| * src/Makefile.am: Add the new abg-suppression-priv.h file to |
| source distribution. |
| * include/abg-suppression.h ({suppression_base, type_suppression, |
| function_suppression, variable_suppression}::priv): Make these |
| public. |
| (suppression_base::{g,s}et_drops_artifact_from_ir): Declare new |
| member functions. |
| (type_suppression::{suppressed_type}): Likewise. |
| (suppression_base::{names,sonames}_of_binaries_match): Remove |
| member functions. |
| (function_suppression::{get_name, set_name, get_name_regex_str, |
| set_name_regex_str}): Renamed get_function_name, |
| set_function_name, get_function_name_regex_str, |
| set_function_name_regex_str into these. |
| ({variable,function}_suppression::{g,s}et_name_not_regex_str): |
| Declare new member functions. |
| * src/abg-suppression.cc: Include the new abg-suppression-priv.h |
| private header. |
| (class suppression_base::priv, class type_suppression::priv, class |
| function_suppression::parameter_spec::priv, class |
| function_suppression::priv, class variable_suppression::priv): |
| Move these types to that new private header. |
| (suppression_base::{g,s}et_drops_artifact_from_ir) |
| (function_suppression::{g,s}et_name_not_regex_str) |
| (variable_suppression::{g,s}et_name_not_regex_str): New member |
| functions. |
| (sonames_of_binaries_match): New static function, taken from |
| suppression_base::sonames_of_binaries_match. |
| (names_of_binaries_match): New static function, taken from |
| suppression_base::names_of_binaries_match. |
| (suppression_matches_type_no_name): New static function. |
| (type_suppression::suppresses_type): Adjust |
| (function_suppression::suppresses_function) |
| (variable_suppression::suppresses_variable): Adjust. Evaluate the |
| new "name_not_regexp" property. |
| (suppression_matches_type_name) |
| (suppression_matches_type_location) |
| (suppression_matches_type_name_or_location) |
| (suppression_matches_function_name) |
| (suppression_matches_function_sym_name) |
| (suppression_matches_variable_name) |
| (suppression_matches_variable_sym_name, suppression_matches_type): |
| New functions. |
| (read_type_suppression): Support the new "drop_artifacts" and |
| "drop" properties. |
| (read_function_suppression, read_variable_suppression): Support |
| the new "drop_artifacts", "drop", and "name_not_regexp" |
| properties. |
| (function_suppression::{g,s}et_name): Renamed |
| {g,s}et_function_name into these. |
| (function_suppression::set_name_not_regex_str): Renamed |
| {g,s}et_name_regex_str into this. |
| (function_suppression::suppresses_function_symbol): Adjust. |
| * include/abg-dwarf-reader.h (add_read_context_suppressions): |
| Declare new function. |
| * src/abg-dwarf-reader.cc: Use the new private |
| abg-suppression-priv.h header file. |
| (read_context::supprs_): New data member. |
| (read_context::get_suppressions): New member function. |
| (read_context::get_die_source): Make this const. |
| (read_context::tu_die_imported_unit_points_map): Add a const |
| overload. |
| (read_context::cur_transl_unit): Renamed current_translation_unit |
| unit into this; |
| (read_context::cur_tu): Remove or rename into cur_transl_unit. |
| (get_scope_for_die, build_translation_unit_and_add_to_ir) |
| (build_enum_type, build_pointer_type_def, build_reference_type) |
| (build_function_type, build_array_type, build_function_decl): |
| Adjust. |
| (read_context::{suppression_can_match, |
| suppression_matches_function_sym_name, |
| suppression_matches_function_name, |
| suppression_matches_variable_sym_name, |
| suppression_matches_variable_name, |
| suppression_matches_type_name_or_location, |
| suppression_matches_type_name}): Add member functions. |
| (die_signed_constant_attribute): Remove this as dead code. |
| (die_location, die_loc_and_name) |
| (find_import_unit_point_between_dies) |
| (find_import_unit_point_before_die, get_parent_die): Make the |
| read_context& parameter be const and adjust as required. |
| (build_var_decl_if_not_suppressed, function_is_suppressed) |
| (variable_is_suppressed, type_is_suppressed): Define new static |
| functions. |
| (add_read_context_suppressions): Define new function. |
| (build_class_type_and_add_to_ir): Do not add suppressed static |
| data members to the IR. |
| (build_ir_node_from_die): Do not add suppressed enum types, class |
| types, variables or functions to the IR. Adjust for the |
| read_context::cur_tu -> read_context::cur_transl_unit rename. |
| * include/abg-reader.h (read_context_sptr): Declare new type. |
| (create_native_xml_read_context, read_corpus_from_input) |
| (add_read_context_suppressions): Declare new functions. |
| * src/abg-reader.cc: Include the new private |
| abg-suppression-priv.h header file. |
| (read_context::m_exported_decls_builder): Renamed |
| m_exported_decls_builder_ into this. |
| (read_context::get_exported_decls_builder): Adjust. |
| (read_context::get_cur_scope): Make this const. |
| (read_location): Take a const read_context and adjust. |
| (read_corpus_from_input): Make this non-static. |
| (build_namespace_decl): Don't abort if trying to add an artifact |
| to the IR doesn't succeed. It might be suppressed now. |
| (read_context::{m_path, m_supprs}): New data members. |
| (read_context::{g,s}et_path): New member functions. |
| (read_context::{get_suppressions, |
| suppression_matches_function_name, suppression_can_match, |
| suppression_matches_function_name, |
| suppression_matches_function_sym_name, |
| suppression_matches_variable_name, |
| suppression_matches_variable_sym_name, |
| suppression_matches_type_name_or_location}): Likewise. |
| (add_read_context_suppressions, create_native_xml_read_context) |
| (read_corpus_from_native_xml): New functions. |
| (build_function_decl_if_not_suppressed, function_is_suppressed) |
| (type_is_suppressed, build_var_decl_if_not_suppressed) |
| (variable_is_suppressed, build_enum_type_decl_if_not_suppressed) |
| (build_class_decl_if_not_suppressed): New static functions. |
| (build_class_decl): Add member types that are being built early, |
| so that their sub-types can be evaluated for suppression. Do not |
| add suppressed static data members or suppressed member functions |
| to the IR. |
| (build_type): Do not add an enum type or a class type to the IR if |
| they are suppressed. |
| (handle_enum_type_decl): Do not add an enum type to the IR if its |
| suppressed. |
| (handle_var_decl): Likewise for a variable decl. |
| (handle_function_decl): Likewise for a function decl. |
| (handle_class_decl): Likewise for a class decl. |
| * src/abg-tools-utils.cc (handle_fts_entry): Drop suppressed ABI |
| from the IR. |
| * tools/abidiff.cc (display_usage): Fix help strings for |
| --headers-dirs{1,2}. |
| (set_suppressions): New static function. |
| (main): Adjust. Release the memory used by read_context early. |
| * tools/abidw.cc (options::{headers_dir, suppression_paths}): |
| (display_usage): New help strings for the new --header-dir and |
| --suppressions options. |
| (parse_command_line): Parse the new --header-dir and |
| --suppressions options. |
| (maybe_check_suppression_files, set_suppressions): New static |
| functions. |
| (main): Use the two new functions above. Free the memory used by |
| the read context before working with the corpus. |
| * tools/abilint.cc (options::suppression_paths): |
| (display_usage): New help strings for the new --header-dir and |
| --suppressions options. |
| (parse_command_line): Parse the new --header-dir and |
| --suppressions options. |
| (maybe_check_suppression_files, set_suppressions): New static |
| functions. |
| (main): Use the two new functions above. Free the memory used by |
| the read context before working with the corpus. |
| * tests/data/test-diff-suppr/test24-soname-suppr-{2,3].txt: |
| Adjust. |
| * tests/data/test-diff-suppr/test29-suppr-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-suppr-8.txt: Likewise. |
| * tests/data/test-diff-suppr/libtest31-v{0,1}.so: New test input. |
| * tests/data/test-diff-suppr/libtest31.suppr: Likewise |
| * tests/data/test-diff-suppr/libtest32-v{0,1}.so: Likewise. |
| * tests/data/test-diff-suppr/libtest32-0.suppr: Likewise. |
| * tests/data/test-diff-suppr/libtest33-v{0,1}.so: Likewise. |
| * tests/data/test-diff-suppr/test31-report-{0,1}.txt: Likewise. |
| * tests/data/test-diff-suppr/test31-v{0,1}.cc: Likewise. |
| * tests/data/test-diff-suppr/test32-report-{0,1}.txt: Likewise. |
| * tests/data/test-diff-suppr/test32-v{0,1}.c: Likewise. |
| * tests/data/test-diff-suppr/test33-suppr-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test33-v{0,1}.cc: Likewise. |
| * tests/data/test-diff-suppr/test33-v{0,1}.h: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi: |
| Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so: Likewise. |
| * tests/data/test-read-dwarf/libtest24-drop-fns.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test24-drop-fns-0.suppr: Likewise. |
| * tests/data/test-read-dwarf/test24-drop-fns.cc: Likewise. |
| * tests/data/test-read-write/test28-drop-std-fns.abignore: |
| Likewise. |
| * tests/data/test-read-write/test28-drop-std-vars.abignore: |
| Likewise. |
| * tests/data/test-read-write/test28-without-std-fns-ref.xml: |
| Likewise. |
| * tests/data/test-read-write/test28-without-std-fns.xml: Likewise. |
| * tests/data/test-read-write/test28-without-std-vars-ref.xml: |
| Likewise. |
| * tests/data/test-read-write/test28-without-std-vars.xml: |
| Likewise. |
| * tests/data/test-read-write/test28.xml: Likewise. |
| * tests/data/Makefile.am: Add the new test artifacts to source |
| distribution. |
| * tests/test-diff-suppr.cc (in_out_spec): Take the new test inputs |
| into account. |
| * tests/test-read-dwarf.cc (Inoutspec::in_suppr_spec_path): New |
| data member. |
| (in_out_spec): Adjust. The new test inputs into account. |
| (set_suppressions): New static function. |
| (handle_in_out_spec): Adjust. |
| * tests/test-read-write.cc (Inoutspec::{in_suppr_spec_path, |
| ref_out_path}): New data members. |
| (in_out_spec): Adjust. Take new test inputs into account. |
| (main): Adjust. |
| |
| 2016-09-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Pimplify the abigail::ir::scope_decl type |
| * include/abg-ir.h (scope_decl::{priv, priv_sptr}) Declare new types. |
| (scope_decl::priv_): New pimpl data member. |
| (scope_decl::{member_, member_scopes}): Move this as data member |
| of the new scope_decl::priv type in the abg-ir.cc file. |
| (scope_decl::{scope_decl, get_member_decls, get_member_scopes, |
| is_empty}): Make these inline member functions be out-of-line. |
| * src/abg-ir.cc (struct scope_decl::priv): Define new type. |
| (scope_decl::{scope_decl, get_member_decls, get_member_scopes, |
| is_empty}): Define these new member functions here. They were |
| inline in the include/abg-ir.h header files before. |
| (scope_decl::{add_member_decl, insert_member_decl, |
| remove_member_decl}): Adjust. |
| |
| 2016-09-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Add new helper functions |
| * include/abg-fwd.h (get_location, build_qualified_name): Declare |
| new functions. |
| * include/abg-ir.h (is_method_decl): Declare two new overloads of |
| this function. |
| * src/abg-ir.cc (get_location, build_qualified_name) |
| (is_method_decl): Define these functions declared above. |
| |
| 2016-09-19 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not emit empty namespaces in abixml |
| * include/abg-ir.h |
| (namespace_decl::is_empty_or_has_empty_sub_namespaces): Declare |
| new function ... |
| * src/abg-ir.cc |
| (namespace_decl::is_empty_or_has_empty_sub_namespaces): ... and |
| define it. |
| * src/abg-writer.cc (write_namespace_decl): Do not write empty |
| namespaces or namespaces containing empty namespaces. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/libtest23.so.abi: Adjust. |
| |
| 2016-09-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix misleading indentation issues |
| * tools/abipkgdiff.cc (compare): Likewise. |
| * tools/abisym.cc (main): Fix misleading indentation. |
| |
| 2016-08-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20534 - abipkgdiff wrongly displays the name of added binary files |
| * tools/abipkgdiff.cc (compare): Show the name of the added |
| binary, rather than its address. |
| |
| 2016-08-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20420 - Wrong ODR-based type comparison optimization on qualified type |
| * src/abg-ir.cc: |
| |
| 2016-08-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't walk diff trees indefinitely when applying suppressions |
| * src/abg-comparison.cc: |
| |
| 2016-07-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Control symbols exported from libabigail.so |
| * VISIBILITY: New documentation about this visiblity business. |
| * CONTRIBUTING: Update the "contributing guide" to refer to symbol |
| visibility issues. |
| * configure.ac: Define a variable VISIBILITY_FLAGS that is set to |
| the -fvisibility=hidden flag to pass to GCC, when its available. |
| * src/Makefile.am: Add VISIBILITY to source distribution. Also |
| add COMPILING and COMMIT-LOG-GUIDELINES that were missing. |
| * src/Makefile.am: Use the new $(VISIBILITY_FLAGS) when buiding |
| the library. |
| * tests/Makefile.am: Use the new $(VISIBILITY_FLAGS) when buiding |
| tests. |
| * tools/Makefile.am: Use the new $(VISIBILITY_FLAGS) when buiding |
| tools. |
| * src/abg-comp-filter.cc: Enclose inclusion of public headers in |
| ABG_BEGIN_EXPORT_DECLARATIONS and ABG_END_EXPORT_DECLARATIONS to |
| export the symbols of entities declared in there. |
| * src/abg-comparison.cc: Likewise. |
| * src/abg-config.cc: Likewise. |
| * src/abg-corpus.cc: Likewise. |
| * src/abg-diff-utils.cc: Likewise. |
| * src/abg-dwarf-reader.cc: Likewise. |
| * src/abg-hash.cc: Likewise. |
| * src/abg-ini.cc: Likewise. |
| * src/abg-ir.cc: Likewise. |
| * src/abg-libxml-utils.cc: Likewise. |
| * src/abg-libzip-utils.cc: Likewise. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-suppression.cc: Likewise. |
| * src/abg-tools-utils.cc: Likewise. |
| * src/abg-traverse.cc: Likewise. |
| * src/abg-viz-common.cc: Likewise. |
| * src/abg-viz-dot.cc: Likewise. |
| * src/abg-viz-svg.cc: Likewise. |
| * src/abg-workers.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| |
| 2016-07-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Support DW_TAG_type_unit |
| * src/abg-dwarf-reader.cc (TYPE_UNIT_DIE_SOURCE): New enumerator |
| in enum die_source. |
| (read_context::{type_unit_die_decl_map_, type_unit_die_type_map_, |
| type_unit_die_wip_classes_map_, |
| type_unit_die_wip_function_types_map_, |
| type_unit_types_to_canonicalize_, |
| type_units_tu_die_imported_unit_points_map_, |
| type_section_die_parent_map_}): New data members. |
| (read_context::{get_die_source, associate_die_to_decl, |
| lookup_decl_from_die_offset, die_type_map, clear_die_type_maps, |
| die_wip_classes_map, die_wip_function_types_map, |
| types_to_canonicalize, clear_types_to_canonicalize, |
| tu_die_imported_unit_points_map, die_parent_map}): Support |
| TYPE_UNIT_DIE_SOURCE. |
| (get_parent_die, get_scope_for_die): Likewise. |
| (read_context::{lookup_decl_from_type_unit_die_offset, |
| type_section_die_parent_map}): Define new member functions. |
| (read_context::build_die_parent_maps): Build a DIE -> parent map |
| for DIEs coming from the .debug_types section. |
| * tests/data/test-read-dwarf/libtest23.so: New test input. |
| * tests/data/test-read-dwarf/libtest23.so.abi: New reference output. |
| * tests/data/test-read-dwarf/test23-first-tu.cc: Source code of |
| the new binary above. |
| * tests/data/test-read-dwarf/test23-second-tu.cc: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-read-dwarf.cc (in_out_specs): Make this test harness |
| execute over the new test input and reference output. |
| |
| 2016-07-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc code cleanup |
| * src/abg-dwarf-reader.cc (build_function_decl): Use the more |
| readable is_class_type rather than a dynamic_cast. |
| |
| 2016-07-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Generalize DIE source concept in DWARF reader |
| * src/abg-dwarf-reader.cc (enum die_source): Define new enum. |
| (operator++): Define new prefix increment operator for the |
| die_source enum. |
| (imported_unit_point::imported_unit_from_alt_di): Remove this |
| data member. |
| (imported_unit_point::imported_unit_die_source): |
| New data member of type die_source. |
| (read_context::primary_die_parent_map_): Renamed |
| die_parent_map_ data member into this. |
| (read_context::clear_per_corpus_data): Use the new |
| clear_die_type_maps function, not die_type_map. Also use the |
| new clear_types_to_canonicalize overload that takes no |
| parameter. |
| (read_context::{get_die_source, clear_die_type_maps, |
| clear_types_to_canonicalize}): New member functions. |
| (build_ir_node_from_die, die_die_attribute, get_parent_die) |
| (get_scope_for_die, build_namespace_decl_and_add_to_ir) |
| (build_type_decl, build_enum_type) |
| (build_class_type_and_add_to_ir, build_qualified_type) |
| (build_pointer_type_def, build_reference_type) |
| (build_function_type, build_array_type, build_typedef_type) |
| (build_var_decl, build_function_decl): Remove the boolean |
| parameter that was designating the source of the DIE. If |
| necessary, get the source of the DIE from inside the function |
| using the new read_context::get_die_source. |
| (read_debug_info_into_corpus): Adjust. |
| (maybe_canonicalize_type, find_import_unit_point_between_dies) |
| (maybe_canonicalize_type, read_context::{associate_die_to_decl, |
| lookup_decl_from_die_offset, die_type_map, associate_die_to_type, |
| lookup_type_from_die_offset, die_wip_classes_map, |
| die_wip_function_types_map, is_wip_class_die_offset, |
| is_wip_function_type_die_offset, types_to_canonicalize, |
| schedule_type_for_late_canonicalization, |
| canonicalize_types_scheduled, add_late_canonicalized_types_stats, |
| perform_late_type_canonicalizing}): Take a die_source as the |
| source of the DIE, not a boolean. Adjust the code of the function |
| accordingly. |
| (read_context::{tu_die_imported_unit_points_map}): Modified |
| this to make it take a die_source and return the appropriate |
| map depending on the source. |
| (read_context::build_die_parent_relations_under): Turn the |
| non-member static function build_die_parent_relations_under |
| into a member function. |
| (read_context::build_die_parent_maps): Turn the non-member |
| static function build_die_parent_maps into a member function. |
| Make this function build a DIE -> parent map also for type |
| DIEs that are in the .type_units section. |
| |
| 2016-07-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Cleanup is_class and is_compatible_with_class_type |
| * include/abg-fwd.h (is_class): Remove the overloads that take a |
| decl_base or a type_base. Add one that takes a type_or_decl_base. |
| (is_compatible_with_class_type): Make this take a reference to |
| smart pointer, not just the smart pointer. |
| * src/abg-ir.cc (is_class): Do the same as in the header file. |
| (is_compatible_with_class_type): Likewise. |
| |
| 2016-07-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Add ABG_ASSERT_NOT_REACHED macro |
| * include/abg-tools-utils.h (ABG_ASSERT_NOT_REACHED): New macro. |
| * src/abg-dwarf-reader.cc (stt_to_elf_symbol_type) |
| (stb_to_elf_symbol_binding, get_elf_class_size_in_bytes) |
| (build_ir_node_from_die): Use the new ABG_ASSERT_NOT_REACHED macro |
| in lieu of just calling abort(). |
| |
| 2016-07-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Prepare support for symbol visibility control |
| * configure.ac: Detect compiler support for |
| __attribute__((visibility("hidden")) and define the |
| HAS_GCC_VISIBILITY_ATTRIBUTE macro accordingly. Update the |
| configuration report. |
| * src/abg-internal.h: New internal header file that defines macros |
| to be used in the source code to control declaration visibility. |
| * src/Makefile.am: Add abg-internal.h to source distribution. Add |
| src/ to the include search path. |
| |
| 2016-07-06 Chenxiong Qi <cqi@redhat.com> |
| |
| Make fedabipkgdiff consistent with Libabigail's other tests |
| * configure.ac: Do not require Python dependencies itertools, |
| unittest and StringIO anymore as they are not used anymore. |
| Require new module tempfile now. Generate new executable script |
| tests/mockfedabipkgdiff from tests/mockfedabipkgdiff.in. |
| * doc/manuals/abipkgdiff.rst: Add doc for new option |
| --show-identical-binaries to abipkgdiff |
| * doc/manuals/fedabipkgdiff.rst: Add doc for new options |
| --show-identical-binaries to fedabipkgdiff. |
| * tools/abipkgdiff.cc (options::show_identical_binaries): New data |
| member. |
| (options::options): Initialize new data member. |
| (display_usage): Add a new help string for the new |
| --show-identical-binaries option. |
| (parse_command_line): Parse the newq --show-identical-binaries |
| command line switch. |
| (pthread_routine_compare): When the comparison of two binaries is |
| empty, if --show-identical-binaries was provided, then emit some |
| output saying the comparison did yield the empty set. |
| * tools/fedabipkgdiff (DEFAULT_ABIPKGDIFF): Store the default path |
| to abipkgdiff in this new global variable. Naming this default |
| path is useful because it can then be cleanly overloaded when |
| using mock.patch. |
| (build_path_to_abipkgdiff): Return the new DEFAULT_ABIPKGDIFF |
| global variable. |
| (cmd): Parse the new --show-identical-binaries command line |
| switch. |
| * tests/data/test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt: |
| New reference output. |
| * tests/data/test-fedabipkgdiff/test0-from-fc20-to-fc23-dbus-glib-report-0.txt: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/test1-from-fc20-to-dbus-glib-0.106-1.fc23.x86_64-report-0.txt: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/test2-dbus-glib-0.100.2-2.fc20--dbus-glib-0.106-1.fc23-report-0.txt: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/test3-dbus-glib-0.100.2-2.fc20.i686--dbus-glib-0.106-1.fc23.i686-report-0.txt: |
| Likewise. |
| * tests/mockfedabipkgdiff.in: New uninstalled script template. |
| * tests/runtestfedabipkgdiff.py.in (counter) |
| (temp_file_or_dir_prefix, UtilsTest, RPMTest, LocalRPMTest) |
| (RunAbipkgdiffTest, GetPackageLatestBuildTest, DownloadRPMTest) |
| (BrewListRPMsTest, AssertionHelper, MockGlobalConfig) |
| (BUILT_ABIPKGDIFF, CompareABIFromCommandLineTest): Remove these |
| classes, global variables and functions. |
| (FEDABIPKGDIFF, TEST_SRC_DIR, TEST_BUILD_DIR, INPUT_DIR) |
| (OUTPUT_DIR, FEDABIPKGDIFF_TEST_SPECS): New global variables. |
| (ensure_output_dir_created, run_fedabipkgdiff_tests, main): New |
| functions. |
| * tests/test-diff-pkg.cc (in_out_specs): Add |
| tests/data/test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt |
| to the set of reference outputs to consider. |
| * tests/Makefile.am: Add non-installed script mockfedabipkgdiff to |
| source distribution. Also added |
| tests/data/test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt, |
| tests/data/test-fedabipkgdiff/test0-from-fc20-to-fc23-dbus-glib-report-0.txt, |
| tests/data/test-fedabipkgdiff/test1-from-fc20-to-dbus-glib-0.106-1.fc23.x86_64-report-0.txt, |
| tests/data/test-fedabipkgdiff/test2-dbus-glib-0.100.2-2.fc20--dbus-glib-0.106-1.fc23-report-0.txt |
| and |
| tests/data/test-fedabipkgdiff/test3-dbus-glib-0.100.2-2.fc20.i686--dbus-glib-0.106-1.fc23.i686-report-0.txt |
| to source distribution. |
| |
| 2016-07-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix spurious type size change report for distinct_diff |
| * src/abg-comparison.cc (report_size_and_alignment_changes): |
| Report size change only when the sizes are different. |
| * tests/data/test-diff-filter/test33-report-0.txt: Adjust. |
| |
| 2016-07-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20199 - Consider integral type synonyms as being equal |
| * src/abg-ir.cc (class integral_type): New class declaration and |
| definition. |
| (operator|, operator&, operator&=): New non-member bitwise |
| operators for integral_type. |
| (parse_integral_type_modifier, parse_base_integral_type) |
| (parse_integral_type_modifier): New static function definitions. |
| (type_decl::type_decl): Use the parse_integral_type to parse an |
| integral type out of the current type_decl being built and |
| transform the current type name into a canonical form. |
| * tests/data/test-abidiff/test-PR18791-v0.so.abi: Adjust. |
| * tests/data/test-abidiff/test-PR18791-v1.so.abi: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Likewise. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Likewise. |
| * tests/data/test-diff-filter/test33-report-0.txt: Likewise. |
| * tests/data/test-diff-filter/test34-report-0.txt: Likewise. |
| * tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt: Likewise. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Likewise. |
| |
| 2016-07-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20332 - too many ...'s counted as parameters |
| * src/abg-dwarf-reader.cc (build_function_type): Create a variadic |
| parameter just for the first DW_TAG_unspecified_parameters seen. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| |
| 2016-07-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Better recognize qualified void type |
| * include/abg-ir.h (environment::is_void_type): Declare new member |
| function. |
| * src/abg-ir.cc (environment::is_void_type): Define new member |
| function. |
| * src/abg-dwarf-reader.cc (maybe_strip_qualification): Strip const |
| qualifier from const void. |
| * tests/data/test-diff-filter/test34-libjemalloc.so.2-gcc-6.1.0: |
| New test input. |
| * tests/data/test-diff-filter/test34-libjemalloc.so.2-intel-16.0.3: Likewise. |
| * tests/data/test-diff-filter/test34-report-0.txt: New reference output. |
| * tests/data/Makefile.am: Add the new files above to the source |
| distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Compare the two new |
| binaries above. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt: Adjust. |
| * tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt: Adjust. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: Adjust. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: Adjust. |
| * tests/data/test-read-dwarf/test1.abi: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test13-pr18894.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test15-pr18892.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test17-pr19027.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test21-pr19092.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2016-07-05 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20194 - Fail to recognize void type represented by DW_TAG_base_type |
| * src/abg-dwarf-reader.cc (build_type_decl): Recognize a |
| DW_TAG_base_type of size zero and of name "void" as a void |
| type. |
| * tests/data/test-diff-filter/test33-libelf.so.0.8.13-gcc: New |
| binary test input. |
| * tests/data/test-diff-filter/test33-libelf.so.0.8.13-intel16.0.3: Likewise. |
| * tests/data/test-diff-filter/test33-report-0.txt: New reference output. |
| * tests/data/Makefile.am: Add the new files above to source |
| distribution. |
| * tests/test-diff-filter.cc (in_out_specs): Make this test harness |
| run over the new test inputs above. |
| |
| 2016-07-04 Dodji Seketeli <dodji@redhat.com> |
| |
| Add a new overload for is_type_decl |
| * include/abg-fwd.h (is_type_decl): Declare a new overload |
| * src/abg-ir.cc (is_type_decl): Define a new overload. |
| (function_decl::parameter::get_pretty_representation): Adjust. |
| |
| 2016-06-29 Chenxiong Qi <cqi@redhat.com> |
| |
| Add --abipkgdiff option in manual and bash completion |
| * doc/manuals/fedabipkgdiff.rst: Add description of --abipkgdiff |
| option. Reformat paragraph. |
| * bash-completion/fedabipkgdiff: Add --abipkgdiff |
| |
| 2016-06-29 Chenxiong Qi <cqi@redhat.com> |
| |
| Add fedabipkgdiff bash completion to dist |
| * bash-completion/Makefile.am: Add fedabipkgdiff |
| * bash-completion/fedabipkgdiff: Change mode to 775 |
| |
| 2016-06-29 Chenxiong Qi <cqi@redhat.com> |
| |
| Update bash completion for fedabipkgdiff |
| * bash-completion/fedabipkgdiff: New bash completion file. |
| |
| 2016-06-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.0.rc6 |
| * configure.ac: Bump version number to 1.0.rc6 |
| |
| 2016-06-29 Dodji Seketeli <dodji@redhat.com> |
| |
| Update web page for 1.0.rc5 |
| * doc/website/mainpage.txt: Update web page. |
| |
| 2016-06-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog for 1.0.rc5 |
| * ChangeLog: Update by doing "make update-changelog" in the build |
| directory. |
| |
| 2016-06-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file in preparation for 1.0.rc5 |
| * NEWS: update with the edited content of the command: |
| git shortlog libabigail-1.0.rc4..HEAD |
| |
| 2016-06-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix python interpreter path for el6 |
| * tests/runtestdefaultsupprs.py.in: Use the python interpreter at |
| /usr/bin/python, not the one at /bin/python. |
| |
| 2016-06-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc cleanup in abg-reader.cc |
| * src/abg-reader.cc (read_context::push_decl_to_current_scope): |
| Pass the decl smart pointer by value. |
| |
| 2016-06-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Use ODR-based optimization on C/C++ translation unit only |
| * src/abg-ir.cc (strip_typedef): Set the translation unit of the |
| new ABI artifact. |
| (type_base::get_canonical_type_for): Perform the ODR-based |
| optimization only for ABI artifact in C and C++ language |
| translation units. |
| * src/abg-dwarf-reader.cc (build_ir_node_from_die): Assert that |
| the new ABI artifact has its translation unit set. |
| * src/abg-reader.cc (read_context::{push_decl_to_current_scope, |
| push_and_key_type_decl}): Set the translation unit of the current |
| decl, irrespective of if it was added to the current scope or not. |
| Assert that the decl that was newly pushed to the current scope is |
| added to the current translation unit. |
| |
| 2016-06-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Misc white space and comment cleanups |
| * include/abg-ir.h (typedef type_or_decl_base): Cleanup comment. |
| * src/abg-ir.cc (struct type_or_decl_base::priv): Fix comment. |
| |
| 2016-06-10 Dodji Seketeli <dodji@redhat.com> |
| |
| Cleanup function_decl::parameter::get_pretty_representation |
| * src/abg-ir.cc |
| (function_decl::parameter::get_pretty_representation): Assert that |
| the environment is always non-nil. Then no needs to check for it |
| being non-nil anymore. Use is_type_decl instead of |
| dynamic_pointer_cast. |
| |
| 2016-06-07 Chenxiong Qi <cqi@redhat.com> |
| |
| Fix package NVR comparison in fedabipkgdiff |
| * configure.ac: Add new dependency. |
| * tests/runtestfedabipkgdiff.py.in (builds): Add new builds for |
| running tests to test selecting latest build from a package. |
| (packages): Add new package gnutls. |
| (GetPackageLatestBuildTest.{test_get_latest_one, |
| test_cannot_find_a_latest_build_with_invalid_distro}): Use new |
| builds of package gnutls to run tests. |
| * tools/fedabipkgdiff (cmp_nvr): New function used to compare nvrs |
| by Python built-in function sorted. |
| (Brew.listBuilds): Use the new cmp_nvr function. |
| |
| 2016-06-06 Chenxiong Qi <cqi@redhat.com> |
| |
| Bug 20135 - Make fedabipkgdiff compare ABIs using devel packages |
| * doc/manuals/fedabipkgdiff.rst: Add documentation for the new |
| --no-devel-pkg command line option, as well as for the new default |
| behaviour of taking devel packages into account during ABI |
| comparison. |
| * tools/fedabipkgdiff (PkgInfo): Add new attribute |
| devel_package. |
| (RPM.is_devel): New property to determine if rpm is a |
| development package. |
| (LocalRPM._find_rpm): New method to find a specific rpm. |
| (LocalRPM.find_debuginfo): Use new method _find_rpm to find |
| debuginfo package. |
| (LocalRPM.find_devel): New method to find an associated |
| development package. |
| (Brew.select_rpms_from_a_build): RPMs selector method is |
| changed to select development package also. |
| (abipkgdiff): Construct and run abipkgdiff with and without |
| --devel-pkg[12] options. |
| (magic_construct): Construct PkgInfo with development package. |
| (run_abipkgdiff): Run abipkgdiff against rpms with development |
| packages. |
| (diff_local_rpm_with_latest_rpm_from_koji): Find development |
| package, and call method abipkgdiff with development package. |
| (build_commandline_args_parser): add new option --no-devel-pkg. |
| * tests/runtestfedabipkgdiff.py.in (packages): Add new package |
| nss-util. |
| (builds): Add new builds of nss-utils, nss-util-3.12.6-1.fc14 |
| and nss-util-3.24.0-2.0.fc25. |
| (rpms): Add new associated rpms of the two new builds. |
| (AssertionHelper.assert_functions_changes_summary): New method |
| to match and assert functions changes summary. |
| (AssertionHelper.assert_abi_comparison_result): Changed to |
| support to help assert functions changes summary. |
| (MockGlobalConfig.{no_devel_pkg, check_all_subpackages}): New |
| fake options with default value for running tests. |
| (RPMTest.setUp): add new development package for running test |
| case. |
| (RPMTest.test_is_devel): New test to test is_devel property. |
| (RunAbipkgdiffTest.setUp): Add new development packages for |
| running test case. |
| (RunAbipkgdiffTest.{test_all_success, test_all_failure, |
| test_partial_failure}): Mock global config. |
| (RunAbipkgdiffWithDSOOnlyOptionTest): Removed. |
| (CompareABIFromCommandLineTest.test_compare_with_no_devel_pkg): |
| New test to test fedabipkgdiff with or without --no-devel-pkg |
| option. |
| * tests/data/Makefile.am: Add new rpms. |
| * tests/data/test-fedabipkgdiff/packages/nss-util/3.12.6/1.fc14/ |
| x86_64/nss-util-3.12.6-1.fc14.x86_64.rpm: New rpm for running |
| tests. |
| * tests/data/test-fedabipkgdiff/packages/nss-util/3.12.6/1.fc14/ |
| x86_64/nss-util-debuginfo-3.12.6-1.fc14.x86_64.rpm: New rpm for |
| running tests. |
| * tests/data/test-fedabipkgdiff/packages/nss-util/3.12.6/1.fc14/ |
| x86_64/nss-util-devel-3.12.6-1.fc14.x86_64.rpm: New rpm for |
| running tests. |
| * tests/data/test-fedabipkgdiff/packages/nss-util/3.24.0/2.0.fc25/ |
| x86_64/nss-util-3.24.0-2.0.fc25.x86_64.rpm: New rpm for running |
| tests. |
| * tests/data/test-fedabipkgdiff/packages/nss-util/3.24.0/2.0.fc25/ |
| x86_64/nss-util-debuginfo-3.24.0-2.0.fc25.x86_64.rpm: New rpm |
| for running tests. |
| * tests/data/test-fedabipkgdiff/packages/nss-util/3.24.0/2.0.fc25/ |
| x86_64/nss-util-devel-3.24.0-2.0.fc25.x86_64.rpm: New rpm for |
| running tests. |
| |
| 2016-06-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Improve python modules detection |
| * configure.ac: Include |
| autoconf-archive/ax_check_python_modules.m4 rather than |
| autoconf-archive/ax_python_module.m4. Use AX_CHECK_PYTHON_MODULES |
| rather than AX_PYTHON_MODULE. |
| * Makefile.am: Add the new file |
| autoconf-archive/ax_check_python_modules.m4 to source distribution |
| and remove the older autoconf-archive/ax_python_module.m4 one. |
| * autoconf-archive/ax_check_python_modules.m4: New file. |
| * autoconf-archive/ax_python_module.m4: Remove. |
| |
| 2016-05-30 Chenxiong Qi <cqi@redhat.com> |
| |
| Add integration tests for fedabipkgdiff |
| * configure.ac: do not detect shutil module. |
| * tests/runtestfedabipkgdiff.py.in: do not import shutil |
| anymore. |
| (BUILT_ABIPKGDIFF): new global variable to reference the |
| abipkgdiff built from source code, as the new test case' tests |
| require this command directly rather than mocking the |
| global_config. |
| (test_data_dir): convert variable name to uppercase, |
| reference to the test data directory by absolute path instead of |
| relative path. |
| (TEST_TOPDIR): new global variable to use data directory as the |
| topdir passed to fedabpkgdiff to download rpms. |
| (TEST_DOWNLOAD_CACHE_DIR): new global variable referencing a |
| fake download cache directory for tests only. |
| (packages, builds, rpms): new global variables as a fake |
| storage holding packages, builds and rpms. |
| (AssertionHelper): new class helping to assert abipkgdiff |
| result easily. |
| (MockClientSession): new class to mock koji.ClientSession. |
| (MockGlobalConfig.abipkgdiff): set this option to global |
| variable BUILT_ABIPKGDIFF. |
| (MockKojiClientSessin): removed. |
| (mock_get_session): removed. |
| (GetPackageLatestBuildTest.{test_get_latest_one, |
| test_cannot_find_a_latest_build_with_invalid_distro, |
| test_cannot_find_a_latest_build_with_invalid_distro}): mock |
| koji.ClientSession with new class MockClientSession. Remove |
| invalid documentation from docstring. Use new package rather |
| than httpd. |
| (DownloadRPMTest.setUp): remove self.download_dir and use global |
| TEST_DOWNLOAD_CACHE_DIR. |
| (DownloadRPMTest.tearDown): do not remove download cache |
| directory. |
| (DownloadRPMTest.make_remote_file_url): do not omit positional |
| argument specifiers in string format. |
| (DownloadRPMTest.{test_succeed_to_download_a_rpm, |
| test_failed_to_download_a_rpm}): set fake download cache |
| directory to mocked get_download_dir in mock.patch decorator. |
| (BrewListRPMsTest.test_select_specific_rpms): use new |
| MockClientSession to mock koji.ClientSession. Rewrite test by |
| using the new package listed in global variable packages. |
| (RunAbipkgdiffWithDSOOnlyOptionTest.{test_abipkgdiff_with_dso_only, |
| test_abipkgdiff_without_dso_only}): set fake download cache |
| directory to mocked get_download_dir in mock.patch decorator. |
| (CompareABIFromCommandLineTest): new integration test case. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ |
| i686/dbus-glib-0.100.2-2.fc20.i686.rpm: new rpm for running tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ |
| i686/dbus-glib-debuginfo-0.100.2-2.fc20.i686.rpm: new rpm for |
| running tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ |
| i686/dbus-glib-devel-0.100.2-2.fc20.i686.rpm: new rpm for |
| running tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ |
| x86_64/dbus-glib-0.100.2-2.fc20.x86_64.rpm: new rpm for running |
| tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ |
| x86_64/dbus-glib-debuginfo-0.100.2-2.fc20.x86_64.rpm: new rpm |
| for running tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.100.2/2.fc20/ |
| x86_64/dbus-glib-devel-0.100.2-2.fc20.x86_64.rpm: new rpm for |
| running tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ |
| i686/dbus-glib-0.106-1.fc23.i686.rpm: new rpm for running tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ |
| i686/dbus-glib-debuginfo-0.106-1.fc23.i686.rpm: new rpm for |
| running tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ |
| i686/dbus-glib-devel-0.106-1.fc23.i686.rpm: new rpm for running |
| tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ |
| x86_64/dbus-glib-0.106-1.fc23.x86_64.rpm: new rpm for running |
| tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ |
| x86_64/dbus-glib-debuginfo-0.106-1.fc23.x86_64.rpm: new rpm for |
| running tests. |
| * tests/data/test-fedabipkgdiff/packages/dbus-glib/0.106/1.fc23/ |
| x86_64/dbus-glib-devel-0.106-1.fc23.x86_64.rpm: new rpm for |
| running tests. |
| * tests/data/Makefile.am: add new rpms. |
| |
| 2016-05-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19967 - System-level suppressions for glibc |
| * default.abignore: Add initial suppression specifications for |
| glibc. |
| |
| 2016-05-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Escape all characters when reading a string in ini files |
| * src/abg-ini.cc (read_context::peek): Take an output parameter to |
| tell the caller when this function escaped the returned |
| character. Added an overload without this new parameter. |
| (read_context::read_string): Accept all characters as part of the |
| string. |
| * tests/data/test-diff-suppr/test7-var-suppr-9.suppr: New test |
| input. |
| * tests/data/test-diff-suppr/test7-var-suppr-report-9.txt: New |
| test reference output. |
| * tests/data/Makefile.am: Add the files above to source |
| distribution. |
| * tests/test-diff-suppr.cc (in_out_spec): Run a new comparison of |
| libtest7-var-suppr-v{0,1}.so this time using the new |
| test7-var-suppr-9.suppr specification that exercices a string with |
| the escaped characters that we were having difficulty with. |
| |
| 2016-05-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Don't require all version symbol sections to present |
| * src/abg-dwarf-reader.cc (get_symbol_versionning_sections): Allow |
| returning just some of the three version-related section, not |
| necessarily all of them. Adjust comment. |
| (get_version_for_symbol): Be ready to not necessarily having the |
| three version-related sections available. |
| |
| 2016-05-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20180 - Support system-wide suppression specifications |
| * doc/manuals/abidiff.rst: Document the default suppression |
| scheme, its interaction with the --supprs option and the new |
| --no-default option. |
| * doc/manuals/abipkgdiff.rst: Likewise. |
| * doc/manuals/fedabipkgdiff.rst: Likewise. |
| * configure.ac: Generate the tests/runtestdefaultsupprs.py file |
| from the new tests/runtestdefaultsupprs.py.in template. |
| * default.abignore: New file. |
| * Makefile.am: Add it to source distribution. |
| * src/Makefile.am: Define the ABIGAIL_ROOT_SYSTEM_LIBDIR |
| preprocessor macro that is set the value of the $libdir autotools |
| macro. |
| * include/abg-tools-utils.h: Update copyright years. |
| (get_system_libdir, get_default_system_suppression_file_path) |
| (get_default_user_suppression_file_path) |
| (load_default_system_suppressions) |
| (load_default_user_suppressions): Declare new functions |
| * src/abg-tools-utils.cc (get_system_libdir) |
| (get_default_system_suppression_file_path) |
| (get_default_user_suppression_file_path) |
| (load_default_system_suppressions) |
| (load_default_user_suppressions): Define new functions. |
| (is_regular_file): Amend this so that it return true for symlinks |
| to regular files too. |
| (is_dir): Amend this so that it returns true for symlinks to |
| directories too. |
| * tools/abidiff.cc (options::no_default_supprs): New data member. |
| (options::options): Initialize the new data member. |
| (display_usage): Display a new help string for the new |
| --no-default-suppression command line option. |
| (parse_command_line): Parse this new command line option. |
| (set_diff_context_from_opts): Load the default suppression |
| specifications, unless --no-default-suppression or --supprs was |
| provided. |
| * tools/abipkgdiff.cc (options::no_default_supprs): New data |
| member. |
| (options::options): Initialize the new data member. |
| (parse_command_line): Parse the new --no-default-suppression |
| command line option. |
| (main): Load the default suppression specifications, unless |
| --no-default-suppression or --supprs was provided. |
| * tools/fedabipkgdiff (abipkgdiff): Add --no-default-suppression |
| to the invocation of abipkgdiff if it was provided on the command |
| line. |
| (build_commandline_args_parser): Parse the new |
| --no-default-suppression command line option. |
| * tests/runtestdefaultsupprs.py.in: New test harness template. |
| * tests/Makefile.am: Add the new runtestdefaultsupprs.py to the |
| set of tests. |
| * tests/data/test-default-supprs/test0-type-suppr-0.suppr: New |
| test input. |
| * tests/data/test-default-supprs/test0-type-suppr-report-0.txt: Likewise. |
| * tests/data/test-default-supprs/test0-type-suppr-v0.o: Likewise. |
| * tests/data/test-default-supprs/test0-type-suppr-v1.o: Likewise. |
| * tests/data/test-default-supprs/dirpkg-1-dir-report-0.txt: |
| Likewise. |
| * tests/data/test-default-supprs/dirpkg-1-dir1: Likewise. |
| * tests/data/test-default-supprs/dirpkg-1-dir2: Likewise. |
| * tests/data/Makefile.am: Add new the new tests input above to |
| Makefile.am. |
| * tests/runtestcanonicalizetypes.sh.in: Pass |
| --no-default-suppression to abidiff invocations. |
| * tests/runtestdefaultsupprs.py.in: Likewise. |
| * tests/test-abidiff-exit.cc: Likewise. |
| * tests/test-diff-dwarf-abixml.cc: Likewise. |
| * tests/test-diff-filter.cc: Likewise. |
| * tests/test-diff-suppr.cc: Likewise. |
| * tools/abidiff.cc: Likewise. |
| |
| 2016-05-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Add --abipkgdiff option to fedabipkgdiff |
| * tools/fedabipkgdiff (build_path_to_abipkgdiff): Define new |
| function. |
| (abipkgdiff): Invoke the new build_path_to_abipkgdiff() here. |
| (build_commandline_args_parser): Parse the new --abipkgdiff |
| option. |
| |
| 2016-05-28 Dodji Seketeli <dodji@redhat.com> |
| |
| Better diagnostics when abipkgdiff has an extra argument |
| * tools/abipkgdiff.cc (options::wrong_arg): New data member. |
| (parse_command_line): Set options::wrong_arg |
| to the wrong argument passed. |
| (main): Tell wrong argument case apart, and report it. |
| |
| 2016-05-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix suppr spec wording in abipkgdiff manual |
| * doc/manuals/abipkgdiff.rst: Fix the wording for the --suppr |
| option. |
| |
| 2016-05-26 Dodji Seketeli <dodji@redhat.com> |
| |
| Update reference to tools in libabigail-concepts manual |
| * doc/manuals/libabigail-concepts.rst: Do not refer just to |
| abidiff when talking about suppression specification. Also |
| refer to abipkgdiff and other tools. |
| |
| 2016-05-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix some wording in the Libabigail overview manual page |
| * doc/manuals/libabigail-overview.rst: Cleanup some confusion |
| about Abigail-the-framework and libabigail-the-library. |
| |
| 2016-05-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Add test data for tests/runtestfedabipkgdiff.py |
| * tests/data/test-fedabipkgdiff/dbus-glib-0.104-3.fc23.x86_64.rpm: |
| New file. |
| * tests/data/test-fedabipkgdiff/dbus-glib-0.80-3.fc12.x86_64.rpm: Likewise. |
| * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm: |
| Likewise. |
| * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm: |
| Likewise. |
| |
| 2016-05-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Add a 'check-valgrind' target to the top-most Makefile.am |
| * Makefile.am (check-valgrind): Add this new target here. |
| |
| 2016-05-21 Chenxiong Qi <cqi@redhat.com> |
| |
| Bug 20085 - Add --dso-only option to fedabipkgdiff |
| * tools/fedabipkgdiff: Do not import shlex anymore. |
| (ABIDIFF_OK, ABIDIFF_ERROR, ABIDIFF_USAGE_ERROR) |
| (ABIDIFF_ABI_CHANGE): New global constant variables. |
| (abipkgdiff): Pass the --dso-only option to the abipkgdiff command |
| line tool, if that option was passed to fedabipkgdiff. Build this |
| abipkgdiff command invocation from an array of strings, rather |
| than from formatting a string. This makes us get rid of the shlex |
| module. Fix typo in dry-run logged string. If there was an |
| internal error reported by abipkgdiff, report it to stderr. |
| (build_commandline_args_parser): Parse the --dso-only command line |
| option. |
| * tests/runtestfedabipkgdiff.py.in (fedabipkgdiff_mod): Fix a typo |
| in initializing this global variable. |
| (test_data_dir): New global variable, that is used to reference |
| tests/data/test-fedabipkgdiff/. |
| (RunAbipkgdiffTest.{test_all_success, test_partial_failure}): Fix |
| typo. |
| (Mockglobalconfig.{koji_topdir, dso_only}): New data members. |
| (GetPackageLatestBuildTest.{test_get_latest_one, |
| test_cannot_find_a_latest_build_with_invalid_distro, |
| test_succeed_to_download_a_rpm, test_failed_to_download_a_rpm}): |
| Fix typo. |
| (BrewListRPMsTest.test_select_specific_rpms): Fix typo. |
| (RunAbipkgdiffWithDSOOnlyOptionTest): New test case class. |
| * doc/manuals/fedabipkgdiff.rst: update document for this new |
| --dso-only option. |
| * tests/data/test-fedabipkgdiff/dbus-glib-0.104-3.fc23.x86_64.rpm: |
| New symbolic link to |
| test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64.rpm. |
| * tests/data/test-fedabipkgdiff/dbus-glib-0.80-3.fc12.x86_64.rpm: |
| New symbolic link to |
| test-diff-pkg/dbus-glib-0.80-3.fc12.x86_64.rpm. |
| * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm: |
| New symbolic link to |
| test-diff-pkg/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm. |
| * tests/data/test-fedabipkgdiff/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm: |
| New symbolic link to |
| test-diff-pkg/dbus-glib-debuginfo-0.80-3.fc12.x86_64.rpm. |
| * tests/data/Makefile.am: add tests/data/test-fedabipkgdiff so |
| that this data directory and all things within it can be included |
| in tarball. |
| |
| 2016-05-24 Sinny Kumari <sinny@redhat.com> |
| |
| Change parent directory for keeping extracted packages in abipkgdiff |
| * tools/abipkgdiff.cc (extracted_packages_parent_dir): Change |
| TMPDIR environment variable to XDG_CACHE_HOME and default |
| temporary parent directory to $HOME/.cache/libabigail/ |
| |
| 2016-05-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abi{pkg}diff filter out changes about private types |
| * include/abg-comp-filter.h: Update copyright year. |
| * src/abg-comp-filter.cc (has_virtual_mem_fn_change): Make this |
| static function become exported. |
| (has_virtual_mem_fn_change): Declare new function. |
| * include/abg-suppression.h |
| (suppression_base::{get,set}_is_artificial): Declare new |
| accessors. |
| (type_suppression::get_source_locations_to_keep): Return an |
| unordered set of strings, not a vector. Add a non-const overload. |
| (type_suppression::set_source_locations_to_keep): Set an unordered |
| set of strings, not a vector. |
| * src/abg-suppression.cc (suppression_base::priv::is_artificial_): |
| New data member. |
| (suppression_base::priv::priv): Initialize the new data member. |
| (suppression_base::{get,set}_is_artificial): Define new accessors. |
| (type_suppression::priv::source_locations_to_keep_): Change the |
| vector of strings representing source file names into unordered |
| set of string. |
| (type_suppression::get_source_locations_to_keep): Return an |
| unordered set of strings, not a vector. Define a non-const |
| overload. |
| (type_suppression::set_source_locations_to_keep): Set an unordered |
| set of strings, not a vector. |
| (type_suppression::suppresses_diff): Make this suppress virtual |
| member function diffs if the enclosing type of the changed virtual |
| member is suppressed by the current type_suppression. |
| (read_type_suppression): Adjust to use the fact that the source |
| locations are not stored in an unordered set, not in a vector |
| anymore. Otherwise, using a vector here make things too slow. |
| (type_suppression::suppresses_type): Likewise. Also, If the type |
| we are looking at has no location because it's a true opaque type |
| and if the current suppression is an artificial suppression that |
| is meant to suppress change reports about non-public types, then |
| suppress the type. |
| * include/abg-tools-utils.h (gen_suppr_spec_from_headers): Declare |
| new public function. |
| * src/abg-tools-utils.cc (PRIVATE_TYPES_SUPPR_SPEC_NAME): Define a |
| new constant variable. |
| (handle_fts_entry): Define new static function. |
| (gen_suppr_spec_from_headers): Define new public function. |
| * src/abg-comparison.cc |
| (corpus_diff::priv::apply_suppressions_to_added_removed_fns_vars): |
| If a type suppression suppresses a given class C, make it change |
| added/removed virtual functions whose enclosing type is C. |
| * tools/abidiff.cc (options::{headers_dir1, headers_dir2}): New |
| data members. |
| (display_usage): Add help strings for --headers-dir1 and |
| --headers-dir2. |
| (parse_command_line): Parse the new --headers-dir1 and |
| --headers-dir2 options. |
| (set_diff_context_from_opts): Generate suppression specifications |
| to filter out changes on private types, if --headers-dir1 or |
| --headers-dir2 is given. |
| * tools/abipkgdiff.cc (options::{devel_package1, devel_package2}): |
| New data members. |
| (typedef package_sptr): New typedef. |
| (enum package::kind): New enum. |
| (package::kind_): New data member. This replaces ... |
| (package::is_debug_info_): ... this data member. |
| (package::{devel_package_, private_types_suppressions_}): New data |
| members. |
| (package::package): Adjust. |
| (package::get_kind): Define new member function. This replaces |
| ... |
| (package::is_debug_info): ... this member function overload. |
| (package::set_kind): Define new member functin. It replaces ... |
| (package::is_debug_info): ... this member function overload. |
| (package::{devel_package, private_types_suppressions}): Define new |
| accessors. |
| (package::erase_extraction_directies): Erase the sub-directory |
| where development packages are extracted to. |
| (compare_args::private_types_suppr{1,2}): New data members. |
| (compare_args::compare_args): Adjust. |
| (display_usage): Add help strings for --devel-pkg1/--devel-pkg2. |
| (compare): Make the overload that compares elf files take private |
| types suppressions. Add the private types suppressions to the |
| diff context. |
| (pthread_routine_compare): Adjust the call to compare. |
| (maybe_create_private_types_suppressions): Define new static |
| function. |
| (pthread_routine_extract_pkg_and_map_its_content): If a devel |
| package was specified for the main package then extract it in |
| parallel with the other package extraction. When the extraction |
| is done, create private types suppressions by visiting the |
| directories that contain the header files. |
| (compare): In the overload that compares packages by scheduling |
| comparison of individual elf files that are in the packages, pass |
| in the private type suppressions too. |
| (parse_command_line): Parse the new --devel-pkg{1,2} command line |
| options. |
| (main): Associate the devel package to the main package, if the |
| --devel-pkg{1,2}. |
| * doc/manuals/abidiff.rst: Add documentation about the new |
| --headers-dir1 and --headers-dir2 options. |
| * doc/manuals/abipkgdiff.rst: Likewise, add documentation about |
| the new --devel-pkg1 and --devel-pkg2 libraries. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt: |
| New test reference output. |
| * tests/data/test-diff-pkg/tbb-devel-4.1-9.20130314.fc22.x86_64.rpm: |
| New test input package. |
| * tests/data/test-diff-pkg/tbb-devel-4.3-3.20141204.fc23.x86_64.rpm: Likewise. |
| * tests/test-diff-pkg.cc b/tests/test-diff-pkg.cc |
| (InOutSpec::{first,second}_in_devel_package_path): New data |
| members. |
| (in_out_specs): Adjust. Also, add a new entry describing the new |
| test inputs above. |
| (test_task::perform): When the new test entry contains devel |
| packages, pass them to abipkgdiff using the --devel1 and --devel2 |
| options. |
| * tests/data/test-diff-suppr/test30-include-dir-v0/test30-pub-lib-v0.h: |
| A new test input source code. |
| * tests/data/test-diff-suppr/test30-include-dir-v1/test30-pub-lib-v1.h: Likewise. |
| * tests/data/test-diff-suppr/test30-priv-lib-v0.cc: Likewise. |
| * tests/data/test-diff-suppr/test30-priv-lib-v0.h: Likewise. |
| * tests/data/test-diff-suppr/test30-priv-lib-v1.cc: Likewise. |
| * tests/data/test-diff-suppr/test30-priv-lib-v1.h: Likewise. |
| * tests/data/test-diff-suppr/test30-pub-lib-v0.cc: Likewise. |
| * tests/data/test-diff-suppr/test30-pub-lib-v0.so: Add new test |
| binary input. |
| * tests/data/test-diff-suppr/test30-pub-lib-v1.cc: Add new test |
| input source code. |
| * tests/data/test-diff-suppr/test30-pub-lib-v1.so: Add new test |
| binary input. |
| * tests/data/test-diff-suppr/test30-report-0.txt: Add new test |
| reference output. |
| * tests/data/test-diff-suppr/test30-report-1.txt: Add new test |
| reference output. |
| * tests/test-diff-suppr.cc (InOutSpec::headers_dir{1,2}): New data |
| members. |
| (InOutSpec::abidiff_options): Renamed the bidiff_options data |
| member into this. |
| (in_out_specs): Adjust. Also, added the new test input above to |
| this. |
| (main): Adjust to invoke abidiff with the new --hd1 and --hd2 |
| options if the input specs for the tests has the new |
| InOutSpec::headers_dir{1,2} data member set. Renamed bidiff into |
| abidiff. |
| * tests/data/Makefile.am: Add the new test inputs to the source |
| distribution. |
| |
| 2016-05-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix the number of removed functions in change report |
| * src/abg-suppression.cc (corpus_diff::report): Show the net |
| number of removed functions, not the total number of the removed |
| functions. |
| |
| 2016-05-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Document how to handle regression tests in CONTRIBUTING |
| * CONTRIBUTING: Add a section about regression tests. |
| * Makefile.am: Add a check-valgrind-recursive target. |
| |
| 2016-05-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix whitespaces in autotools files |
| * configure.ac: Fix some white spaces. |
| * tests/Makefile.am: Likewise. |
| |
| 2016-05-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix white space in abg-comparison.cc |
| * src/abg-comparison.cc (struct diff_context::priv): Fix indentation. |
| |
| 2016-05-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix bash completion configure status |
| * configure.ac: If bash completion is disabled, say so. |
| |
| 2016-05-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Enhance API doc for diff_context::add_diff |
| * src/abg-comparison.cc (diff_context::add_diff): Enhance the API |
| doc string. |
| |
| 2016-05-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing API doc strings |
| * src/abg-comparison.cc (diff::diff) |
| (decl_diff_base::decl_diff_base, distinct_diff::distinct_diff) |
| (base_diff::base_diff, scope_diff::scope_diff) |
| (fn_parm_diff::fn_parm_diff) |
| (function_type_diff::function_type_diff) |
| (type_decl_diff::type_decl_diff, typedef_diff::typedef_diff) |
| (translation_unit_diff::translation_unit_diff) |
| (corpus_diff::corpus_diff): Add missing API doc strings. |
| |
| 2016-05-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Optimize out some shared_ptr use |
| * include/abg-ir.h (pointer_type_def::get_naked_pointed_to_type): |
| Declare new member function. |
| * src/abg-ir.cc (pointer_type_def::priv::naked_pointed_to_type_): |
| New data member. |
| (pointer_type_def::priv::priv): Adjust to initialize the new data |
| member. |
| (pointer_type_def::pointer_type_def): Adjust to use the |
| constructor pointer_type_def::priv::priv to initialize the |
| pointed-to type (including its new naked pointer variant). So we |
| do not have to initialize the priv_->pointed_to_type_ explicitely |
| in the constructor anymore. |
| (pointer_type_def::get_naked_pointed_to_type): Define new data |
| member. |
| (pointer_type_def::get_qualified_name): Use a naked pointer to the |
| pointed-to type, rather than a smart pointer. |
| |
| 2016-05-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Light optimizations by passing reference to smart pointers around |
| * include/abg-fwd.h (get_type_name): Take a reference to type_sptr. |
| * src/abg-ir.cc (get_type_name): Take a reference to type_sptr. |
| (suppression_base::priv::{get_file_name_regex, |
| get_file_name_not_regex, get_soname_regex, get_soname_not_regex}): |
| Return a reference to regex_t_sptr. |
| |
| 2016-05-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Minimize number of string::length calculation |
| * src/abg-tools-utils.cc (string_ends_with): Call string::length |
| just once on each instance of string that matters. |
| |
| 2016-05-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Avoid unnecessary computation of type name in suppression evaluation |
| * src/abg-suppression.cc (type_suppression::suppresses_type): If |
| neither the type suppression "name" or "name_regex" properties |
| where provided in the suppression specification, then do not try |
| to look at the type name. |
| |
| 2016-05-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Plug leak of diffs of member variables of class type |
| * include/abg-comparison.h (diff_wptr, unordered_diff_sptr_set): New typedefs. |
| (struct diff_sptr_hasher): Define new type. |
| (diff_context::keep_diff_alive): Declare new member function. |
| (diff::children_nodes): Return a vector of diff*, rather than a |
| vector of diff_sptr. |
| * src/abg-comparison.cc (diff_context::priv::live_diffs_): New |
| data member. |
| (diff_context::keep_diff_alive): Define new data member. |
| (diff::priv::children_): Make this be a vector of diff*, rather |
| than a vector of diff_sptr. |
| (diff_less_than_functor::operator()): Add a new overload for |
| diff*. Make the existing overload of diff_sptr use the new one. |
| (diff::children_nodes): Adjust; |
| (diff::append_child_node): Make sure the child node is kept |
| alive. Only add the naked pointer to the child node to the vector |
| of children. |
| (diff::traverse): Adjust. |
| (var_diff::priv::type_diff_): Make this be a weak pointer, rather |
| than a shared pointer. |
| (var_diff::type_diff): The var_diff::priv::type_diff_ data member |
| is now a weak pointer, so make this accessor convert it to a |
| shared pointer. |
| (corpus_diff::priv::children_): Turn this into a vector of diff*, |
| rather than a vector of diff_sptr. |
| (corpus_diff::children_nodes): Adjust. |
| (corpus_diff::append_child_node): Make sure the child node is kept |
| alive. Only add the naked pointer to the child node to the vector |
| of children. |
| (category_propagation_visitor::visit_end): Adjust. |
| (suppression_categorization_visitor::visit_end): Adjust. |
| (redundancy_marking_visitor::{visit_begin, visit_end}): Adjust. |
| |
| 2016-05-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Speedup diff node child insertion |
| * src/abg-comparison.cc (corpus_diff::append_child_node): Insert |
| the new child at the right point in the vector of children, so |
| that it remains sorted. |
| |
| 2016-05-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix invocation of delete operator in test-read-dwarf.cc |
| * tests/test-read-dwarf.cc (main): Call delete[], not delete. |
| |
| 2016-05-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Plug leak of debug info handles |
| * configure.ac: Check the presence of dwarf_getalt in libdw. If |
| it's present, define the preprocessor macro |
| LIBDW_HAS_DWARF_GETALT. Update the autoconf configuration |
| summary. |
| * src/abg-dwarf-reader.cc: Add config.h. |
| (find_alt_debug_info_location): Factorize this out of ... |
| (find_alt_debug_info): ... this function. Use dwarf_getalt if |
| present, otherwise, keep using dwfl_standard_find_debuginfo. In |
| the later case, return the file descriptor opened to access the |
| alternate debug info, by parameter, so that the caller can fclose |
| it. |
| (read_context::alt_fd_): New data member. |
| (read_context::read_context): Initialize the new alt_fd_ data |
| member. |
| (read_context::load_debug_info): Store the file descriptor used to |
| access the alternate debug info into the new alt_fd_ data member. |
| (read_context::~read_context): New desctructor. |
| (get_soname_of_elf_file, get_type_of_elf_file): Free the elf |
| handle. |
| (read_context::load_debug_info): Be paranoid in making sure we |
| never override alt_dwarf_. |
| * tests/data/test-alt-dwarf-file/test0-report.txt: Adjust. |
| |
| 2016-05-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Plug leak of shared private data of class_diff type |
| * include/abg-comparison.h (class_diff::get_priv): Declare new |
| member function. |
| (class_diff::get_priv): Define new member function. |
| (class_diff::{chain_into_hierarchy, base_changes, deleted_bases, |
| inserted_bases, changed_bases, base_changes, member_types_changes, |
| member_types_changes, data_members_changes, inserted_data_members, |
| deleted_data_members, member_fns_changes, changed_member_fns, |
| member_fns_changes, deleted_member_fns, inserted_member_fns, |
| member_fn_tmpls_changes, member_class_tmpls_changes, |
| member_class_tmpls_changes, report}): Rather than accessing |
| class_diff::priv directly, use the new class_diff::get_priv. |
| |
| 2016-05-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Remove circular ref from class_decl::priv::definition_of_declaration |
| * include/abg-ir.cc (class_decl::get_definition_of_declaration): |
| Return a shared pointer, rather than a reference to a shared pointer. |
| * src/abg-ir.cc (class_decl::priv::definition_of_declaration_): |
| Make this be a weak pointer. |
| (class_decl::get_definition_of_declaration): |
| Likewise. And return the shared pointer built out of the weak |
| pointer we have in there now. |
| |
| 2016-05-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Plug leak of regex_t in suppression engine |
| * include/abg-sptr-utils.h (build_sptr<T>): Declare an overload that |
| allocates a T* and wraps it into a shared_ptr<T>. |
| (build_sptr<regex_t>): Declare a specialization for regex_t. |
| * src/abg-corpus.cc (build_sptr<regex_t>()): Define the |
| specialization here. |
| * src/abg-suppression.ccp |
| (suppression_base::priv::{get_file_[not]_name_regex, |
| get_soname_[not]_regex}): Use the new build_sptr<regex_t>(). |
| (type_suppression::priv::{get_type_name_regex, |
| get_source_location_to_keep_regex}): Likewise. |
| (function_suppression::parameter_spec::priv::get_type_name_regex): |
| Likewise. |
| (function_suppression::priv::{get_name_regex, |
| get_return_type_regex, get_symbol_name_regex, |
| get_symbol_version_regex}): Likewise. |
| (variable_suppression::priv::{get_name_regex, |
| get_symbol_name_regex, get_symbol_version_regex, |
| get_type_name_regex}): Likewise. |
| |
| 2016-05-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Plug leak of diff_context_sptr after calling compute_diff |
| * src/abg-comparison.cc (diff::priv::ctxt_): Make this a weak_ptr. |
| (diff::priv::get_context): Convert the weak pointer to the context |
| into a shared_ptr and return it. |
| (diff::priv::is_filtered_out): Adjust to use |
| diff::priv::get_context() to access the context. |
| (diff::context): Likewise. |
| (corpus_diff::priv::ctxt_): Make this a weak_ptr. |
| (corpus_diff::priv::priv): Add a new overload that takes two |
| corpora and a diff context. |
| (corpus_diff::priv::get_context): Convert the weak pointer to the |
| context into a shared_ptr and return it. |
| (corpus_diff::priv::ensure_lookup_tables_populated): Adjust to use |
| the new corpus_diff::priv::get_context to get the context. |
| (variable_is_suppressed): Likewise. |
| (corpus_diff::priv::{apply_suppressions_to_added_removed_fns_vars, |
| apply_filters_and_compute_diff_stats, emit_diff_stats, |
| categorize_redundant_changed_sub_nodes, |
| clear_redundancy_categorization}): Likewise. |
| (corpus_diff::{corpus_diff, context, |
| apply_filters_and_suppressions_before_reporting}): Adjust. |
| * tools/abipkgdiff.cc (compare): Make the overload that compares |
| elf binaries take a diff context output parameter. After the |
| context is created by this function, it's return to the caller, so |
| that it's life time is bound to the scope this function was |
| called from. |
| (pthread_routine_compare): Create a shared pointer to hold a |
| reference on a diff context. Pass that shared pointer by |
| reference to the compare function that compares elf binaries. |
| Rather than storing corpora in the reports_map, (as those corpora |
| would then out-live the diff context and thus create memory |
| corruption issues), emit the report directly into an ostringstream |
| and store that stream in reports_map. |
| (compare): In the overoad that compares packages, rather than |
| trying to get corpora from the report_map, just emit the content |
| of the ostringstream that is now there. |
| |
| 2016-05-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a read passed-the-end in abg-dwarf-reader.cc |
| * src/abg-dwarf-reader.cc (lookup_symbol_from_gnu_hash_tab): Do |
| not read passed the end of the array. |
| |
| 2016-05-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Support running "make check-valgrind" |
| * autoconf-archive/ax_valgrind_check.m4: Add new file. Copied it |
| from http://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html. |
| * configure.ac: Include the new ax_valgrind_check.m4 file. |
| Initialize the valgrind checking on tests. Update the configure |
| status. |
| * tests/test-valgrind-suppressions.supp: New valgrind suppression |
| file to silence memcheck leak errors from python. |
| * tests/Makefile.am: Add test-valgrind-suppressions.supp to source |
| distribution. Add check-valgrind-memcheck-recursive target. |
| |
| 2016-05-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Update the CONTRIBUTING file |
| * CONTRIBUTING: Cleanup. |
| |
| 2016-05-22 Dodji Seketeli <dodji@redhat.com> |
| |
| Update the COMMIT-LOG-GUIDELINES file |
| * COMMIT-LOG-GUIDELINES: Various enhancements. |
| |
| 2016-05-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Do not run fedabipkgdiff tests if --enable-fedabipkgdiff is turned off |
| * tests/Makefile.am: Make running runtestfedabipkgdiff be |
| dependent on ENABLE_FEDABIPKGDIFF. |
| |
| 2016-05-13 Chenxiong Qi <cqi@redhat.com> |
| |
| Fix pep8 error |
| * tools/fedabipkgdiff (build_commandline_args_parser): Fix |
| PEP8 error, line is too long. |
| |
| 2016-05-13 Chenxiong Qi <cqi@redhat.com> |
| |
| Use consistent string format |
| * tools/fedabipkgdiff (download_rpm): do not omit positional |
| argument specifiers in string format. |
| |
| 2016-05-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Remove config.h.in from the repository |
| * config.h.in: Remove from repository. |
| |
| 2016-02-09 Chenxiong Qi <cqi@redhat.com> |
| |
| Bug 19428 - New fedabipkgdiff utility |
| * autoconf-archive/ax_compare_version.m4: New file copied from the |
| autoconf-archive project. |
| * autoconf-archive/ax_prog_python_version.m4: Likewise. |
| * autoconf-archive/ax_python_module.m4: Likewise. |
| * Makefile.am: Add the new files above to the source distribution. |
| * configure.ac: Include the new m4 macros from the autoconf |
| archive. Add a new --enable-fedabipkgdiff option. Update the |
| report at the end of the configure process to show the status of |
| the fedabipkgdiff feature. Add check for prerequisite python |
| modules argparse, glob, logging, os, re, shlex, subprocess, sys, |
| itertools, urlparse, itertools, shutil, unittest, xdg, koji and |
| mock. These are necessary for the unit test of |
| fedabipkgdiff. Generate tests/runtestfedabipkgdiff.py into the |
| build directory, from the tests/runtestfedabipkgdiff.py.in input |
| file. |
| * tools/Makefile.am: Include the fedabipkgdiff to the source |
| distribution and install it if the "fedabipkgdiff" feature is |
| enabled. |
| * tests/Makefile.am: Rename runtestfedabipkgdiff.sh into |
| runtestfedabipkgdiff.py. Add the new runtestfedabipkgdiff.py.in |
| autoconf template file in here. |
| * tests/runtestfedabipkgdiff.py.in: New unit test file. |
| * tools/fedabipkgdiff: New fedabipkgdiff tool. |
| * doc/manuals/fedabipkgdiff.rst: New manual. |
| |
| 2016-05-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Implement a [suppress_file] suppression directive |
| * doc/manuals/libabigail-concepts.rst: Document the new |
| 'suppress_file' directive. |
| * include/abg-suppression.h (file_suppression): Define new class. |
| (file_suppression_sptr): Define new typedef. |
| (is_file_suppression, file_is_suppressed): Declare new functions. |
| * src/abg-suppression.cc (): |
| (read_file_suppression, is_file_suppression, file_is_suppressed): |
| Define new functions. |
| (file_suppression::{file_suppression, suppresses_file, |
| ~file_suppression}): Define new member functions. |
| * tools/abidiff.cc (main): If a suppression specification |
| suppresses one of the input files, then do not perform the |
| comparison. |
| * tools/abipkgdiff.cc (compare): If a suppression specification |
| suppresses a file that is to be compared, then do not perform the |
| comparison. |
| * tools/abicompat.cc (create_diff_context): New static function. |
| (perform_compat_check_in_normal_mode) |
| (perform_compat_check_in_weak_mode): Adjust to take a context in |
| parameter. Do not create a diff context here anymore, do not load |
| suppression files here either. |
| (main): Use the new create_diff_context to create a diff context |
| and initialize it, including loading suppression specifications. |
| If any suppression specification suppresses a file to load, then |
| do not load perform any compatibility checking. Adjust |
| invocations of perform_compat_check_in_weak_mode and |
| perform_compat_check_in_normal_mode to pass the diff context. |
| * tests/data/test-diff-suppr/test0-type-suppr-3.suppr: New test |
| input. |
| * tests/data/test-diff-suppr/test0-type-suppr-4.suppr: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-5.suppr: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-5.txt: |
| Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-6.suppr: Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-6.txt: |
| Likewise. |
| * tests/data/test-diff-suppr/test0-type-suppr-report-7.txt: |
| Likewise. |
| * tests/test-diff-suppr.cc (in_out_specs): Use the new test |
| inputs. |
| * tests/data/test-abicompat/test0-fn-changed-1.suppr: New test |
| input. |
| * tests/data/test-abicompat/test0-fn-changed-report-3.txt: |
| Likewise. |
| * tests/test-abicompat.cc (in_out_specs):: Use the new test |
| inputs. |
| * tests/data/Makefile.am: Add the new test material to source |
| distribution. |
| |
| 2016-05-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Split suppression engine off of abg-comparison.{cc,h} |
| * include/Makefile.am: Add abg-suppression.h to source |
| distribution. |
| * include/abg-comparison.h: Remove abg-ini.h include directive. |
| (suppression_sptr, suppressions_type): Move these typedefs to |
| abg-fwd.h. |
| (class suppression_base, type_suppression) |
| (type_suppression::insertion_range) |
| (type_suppression::insertion_range::boundary) |
| (type_suppression::insertion_range::integer_boundary) |
| (type_suppression::insertion_range::fn_call_expr_boundary) |
| (function_suppression, function_suppression::parameter_spec) |
| (variable_suppression): Move these type definitions to the new |
| abg-suppression.h. |
| (read_suppressions, is_type_suppression, is_integer_boundary) |
| (is_fn_call_expr_boundary, is_function_suppression) |
| (is_variable_suppression, operator&) |
| (operator|): Move these function declarations to the new |
| abg-suppression.h. |
| (type_suppression, type_suppression_sptr, type_suppression_type) |
| (function_suppression, function_suppression_sptr) |
| (function_suppressions_type, variable_suppression) |
| (variable_suppression_sptr, variable_suppressions_type): Move |
| these forward declaration and typedefs to the new |
| abg-suppression.h. |
| (diff_context::suppressions): Adjust return type to |
| suppr::suppressions_type&. |
| (diff_context::add_suppression): Adjust parameter type to |
| suppr::suppressions_sptr. |
| (diff_context::add_suppressions): Adjust parameter type |
| suppr::suppressions_type&. |
| (is_type_diff, is_decl_diff, is_var_diff, is_function_decl_diff) |
| (is_pointer_diff, is_reference_diff, is_fn_parm_diff) |
| (is_base_diff, is_child_node_of_function_parm_diff) |
| (is_child_node_of_base_diff): Declare these new functions. They |
| were previously static, local to abg-comparison.cc only. Now they |
| need to be exported because they are used by the suppression |
| engine's code that now lives in its one files. |
| * include/abg-fwd.h (suppr::{suppression_base, suppression_sptr, |
| suppressions_type}): Forward declare these here. |
| * include/abg-suppression.h (class suppression_base) |
| (type_suppression, type_suppression::insertion_range) |
| (type_suppression::insertion_range::boundary) |
| (type_suppression::insertion_range::integer_boundary) |
| (type_suppression::insertion_range::fn_call_expr_boundary) |
| (function_suppression, function_suppression::parameter_spec) |
| (variable_suppression): Move these type definitions here, in the |
| namespace suppr. |
| (read_suppressions, is_type_suppression, is_integer_boundary) |
| (is_fn_call_expr_boundary, is_function_suppression) |
| (is_variable_suppression, operator&) |
| (operator|): Move these function decalration here, in the |
| namespace suppr. |
| (type_suppression_sptr, type_suppressions_type) |
| (function_suppression_sptr, function_suppressions_type) |
| (variable_suppression_sptr, variable_suppressions_type): Move |
| these typedefs here, in the namespace suppr. |
| * src/Makefile.am: add src/abg-suppression.cc to source |
| distribution. |
| * src/abg-comparison.cc (is_type_diff, is_decl_diff, is_var_diff) |
| (is_function_decl_diff, is_pointer_diff, is_reference_diff) |
| (is_reference_or_pointer_diff, is_fn_parm_diff, is_base_diff) |
| (is_child_node_of_function_parm_diff, is_child_node_of_base_diff): |
| Export these functions. |
| (*suppression*): Move all the suppression-related definitions to |
| the new abg-suppression.cc. |
| * src/abg-suppression.cc: New file. Contains all the *suppression* |
| definitions from src/abg-comparison.cc, that are put in the suppr |
| namespace. |
| * tools/abicompat.cc: Adjust. |
| * tools/abidiff.cc: Likewise. |
| * tools/abipkgdiff.cc: Likewise. |
| |
| 2016-05-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix indentation for abidiff manual |
| * doc/manuals/abidiff.rst: Fix indentation for the --suppression |
| paragraph. |
| |
| 2016-05-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Add several shortcuts to options for abicompat |
| * doc/manuals/abicompat.rst: Update documentation. |
| * tools/abicompat.cc (display_usage): Update help strings. |
| (parse_command_line): Add shortcuts --suppr, --appd, --libd1 and |
| --libd2. |
| |
| 2016-05-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright year in tools/abicompat.cc |
| * tools/abicompat.cc: Update copyright years to 2016. |
| |
| 2016-05-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix mention of tool's name in abidiff error message |
| * src/abg-tools-utils.cc (emit_prefix): Try to emit the prefix |
| only if the program name was provided. |
| * abidiff.cc (maybe_check_suppression_files): Pass the name of the |
| tool to the check_file function. |
| |
| 2016-05-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright year on abg-comparison.h |
| * include/abg-comparison.h: Update copyright year. |
| |
| 2016-05-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Doc not show classes' inherited members in apidoc |
| * doc/api/libabigail.doxy: Don't show inherited member functions |
| or variables of a given class. |
| |
| 2016-05-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typo in concept manual |
| * doc/manuals/libabigail-concepts.rst: Do not refer to abidiff |
| specifically for suppressions because several tools use |
| suppressions. |
| |
| 2016-05-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix indentation in concepts manual |
| * doc/manuals/libabigail-concepts.rst: Fix indentation. |
| |
| 2016-05-06 Dodji Seketeli <dodji@redhat.com> |
| |
| Add some apidoc to dwarf_reader |
| * include/abg-dwarf-reader.h (namespace dwarf_reader): Add apidoc. |
| (enum elf_type): Add an apidoc for each enumerator. |
| * src/abg-dwarf-reader.cc (get_type_of_elf_file): Add an apidoc |
| for the 'type' parameter. |
| |
| 2016-04-28 Dodji Seketeli <dodji@redhat.com> |
| |
| [abipkgdiff] Show SONAME of removed/added libraries |
| * tools/abipkgdiff.cc (abi_diff::{added,removed}_binaries): Change |
| the type of these data member from vector<string> to |
| vector<elf_file_sptr>. |
| (compare): Adjust. Show the soname of added/removed binaries. |
| |
| 2016-04-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 20015 - support file_name_not_regexp and soname_not_regexp in suppr specs |
| * include/abg-comparison.h |
| (suppression_base::{get,set}_file_name_not_regex_str): Declare new |
| member functions. |
| (suppression_base::{get,set}_soname_not_regex_str): Likewise. |
| (suppression_base::{names,sonames}_of_binaries_match): Likewise. |
| * src/abg-comparison.cc |
| (suppression_base::priv::get_file_name_regex): Fix comment. |
| (suppression_base::priv::get_file_name_not_regex): New member |
| function. |
| (suppression_base::priv::get_soname_regex): Fix comment. |
| (suppression_base::priv::get_soname_not_regex): New member |
| function. |
| (suppression_base::{get,set}_file_name_not_regex_str): Define new |
| member functions. |
| (suppression_base::{get,set}_soname_not_regex_str): Likewise. |
| (suppression_base::{names,sonames}_of_binaries_match): Likewise. |
| These got factorized out of type_suppression::suppresses_type, |
| function_suppression::suppresses_function, |
| function_suppression::suppresses_function_symbol, |
| variable_suppression::suppresses_variable, |
| variable_suppression::suppresses_variable_symbol. |
| (type_suppression::suppresses_type): Use the new |
| suppression_base::{names,sonames}_of_binaries_match. |
| (read_type_suppression): Read the new file_name_not_regexp and |
| soname_not_regexp properties. |
| (function_suppression::{suppresses_function, |
| suppresses_function_symbol}): Use the new |
| suppression_base::{names,sonames}_of_binaries_match. |
| (read_function_suppression): Read the new file_name_not_regexp and |
| soname_not_regexp properties. |
| (variable_suppression::{suppresses_variable, |
| variable_suppression::suppresses_variable_symbol}): Use the new |
| suppression_base::{names,sonames}_of_binaries_match. |
| (read_variable_suppression): Use the new |
| suppression_base::{names,sonames}_of_binaries_match. |
| * doc/manuals/libabigail-concepts.rst: Document the new |
| file_name_not_regexp and soname_not_regexp suppression properties. |
| * tests/data/test-diff-suppr/test24-soname-report-10.txt: New test |
| reference output. |
| * tests/data/test-diff-suppr/test24-soname-report-11.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-12.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-13.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-14.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-15.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-16.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-9.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-10.txt: New test input. |
| * tests/data/test-diff-suppr/test24-soname-suppr-11.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-12.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-13.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-14.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-15.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-16.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-9.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-2.txt: New test |
| reference output. |
| * tests/data/test-diff-suppr/test29-soname-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-8.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-suppr-2.txt: New test input. |
| * tests/data/test-diff-suppr/test29-suppr-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-suppr-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-suppr-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-suppr-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-suppr-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-suppr-8.txt: Likewise. |
| * tests/data/Makefile.am: Add the new test material to source |
| distribution. |
| * tests/test-diff-suppr.cc (in_out_specs): Make this test harness |
| run over the new test inputs. |
| |
| 2016-04-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Make API documentation of thread pools visible |
| * include/abg-workers.h: Document the workers namespace, the task, |
| queue and queue::task_done_notify types. |
| * src/abg-workers.cc: Move the documentation of the thread_pool |
| module inside the abigail::worker namespace, so that references to |
| task and queue types (which are also in the abigail::worker |
| namespace) can be resolved in the apidoc. |
| |
| 2016-04-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Update documentation to require doxygen and python-sphinx for building |
| * COMPILING: Add python-sphinx to the set of required packages to |
| build the documentation. |
| * doc/website/mainpage.txt: Update the website to mention doxygen |
| and python-sphinx for documentation. |
| |
| 2016-04-27 Dodji Seketeli <dodji@redhat.com> |
| |
| Add doc, info, man and html-doc targets to generate documentation |
| * Makefile.am: Add info, man and html-doc targets to generate |
| documentation in info, man and html formats. If you want to |
| generate them all, then the doc target is the one to be used. |
| * COMPILING: Add documentation for the above. |
| |
| 2016-04-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19964 - Cannot load function aliases on ppc64 |
| * src/abg-dwarf-reader.cc (read_context::load_symbol_maps): While |
| filling the ppc64-specific "function-entry-address => symbol" map, |
| if we stumble accross a function-entry-address that belongs to an |
| alias of 'symbol', then assume the alias must have been registered |
| as an alias already, by the platform-agnostic code. Do not try to |
| register the alias again. |
| * tests/data/Makefile.am: Add the new test input binaries to the |
| source distribution. |
| * tests/data/test-diff-dwarf/libtest36-ppc64-aliases-v0.so: New |
| binary test input. |
| * tests/data/test-diff-dwarf/libtest36-ppc64-aliases-v1.so: Likewise. |
| * tests/data/test-diff-dwarf/test36-ppc64-aliases-report-0.txt: |
| New test reference output. |
| * tests/data/test-diff-dwarf/test36-ppc64-aliases-v0.cc: Source |
| code for the new binary test input above. |
| * tests/data/test-diff-dwarf/test36-ppc64-aliases-v1.cc: Likewise. |
| * tests/test-diff-dwarf.cc: Add the new test input to the list of |
| test inputs considered by this test harness. |
| |
| 2016-04-20 Sinny Kumari <sinny@redhat.com> |
| |
| Bug 19961 - Distinguish between PI executable and shared library |
| * include/abg-dwarf-reader.h (elf_type): Add new enumerator |
| ELF_TYPE_PI_EXEC. |
| * src/abg-dwarf-reader.cc |
| (lookup_data_tag_from_dynamic_segment): New function for |
| data tag lookup in dynamic segment of an elf |
| (elf_file_type): Return ELF_TYPE_PI_EXEC file type for |
| a PI executable. |
| (get_elf_file_type): Change this to take an elf handle. |
| (get_type_of_elf_file): New function that got factorized out of ... |
| (load_dt_soname_and_needed): ... this one. |
| * tools/abipkgdiff.cc (create_maps_of_package_content): Also |
| consider ELF_TYPE_PI_EXEC file type. |
| (compare): Likewise. |
| * tests/test-diff-pkg.cc (in_out_specs): Test case additions |
| * tests/data/Makefile.am: Include test files |
| * tests/data/test-diff-pkg/tarpkg-1-dir1.tar.gz: New test data |
| * tests/data/test-diff-pkg/tarpkg-1-dir2.tar.gz: New test data |
| * tests/data/test-diff-pkg/tarpkg-1-report-0.txt: New test result |
| |
| 2016-04-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Update website to 1.0.rc4 |
| * doc/website/mainpage.txt: Update tarball reference to 1.0.rc4 |
| |
| 2016-04-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump current version number to 1.0.rc5 |
| * configure.ac: Bump current version number to 1.0.rc5 |
| |
| 2016-04-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Add a 'release' target to main Makefile |
| * Makefile.am: Add tarball, upload-release-only, upload-release |
| and release targets. |
| |
| 2016-04-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog for 1.0.rc4 |
| * ChangeLog: Update automatically by running "make |
| update-changelog" |
| |
| 2016-04-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS for 1.0.rc4 |
| * NEWS: Update for 1.0.rc4 |
| |
| 2016-04-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typos in the suppression specifications manual |
| * doc/manuals/libabigail-concepts.rst: Fix typos. |
| |
| 2016-04-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Ease use of soname_regexp/file_name_regexp in suppr specs |
| * doc/manuals/libabigail-concepts.rst: Update the manual to |
| reflect the changes in the suppression_type, suppress_function and |
| suppress_variable directives. |
| * src/abg-comparison.cc (read_type_suppression): Accept that |
| the suppress_type directive contains only file_name_regexp |
| or the soname_regexp property. |
| (read_function_suppression): Likewise for the suppress_function |
| directive. |
| (read_variable_suppression): Likewise for the suppress_variable |
| directive. |
| * tests/data/test-diff-suppr/libtest29-soname-v0.so: New binary |
| test input. |
| * tests/data/test-diff-suppr/libtest29-soname-v1.so: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-5.txt: New |
| reference test output. |
| * tests/data/test-diff-suppr/test24-soname-report-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-report-8.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-5.txt: New test |
| suppression file. |
| * tests/data/test-diff-suppr/test24-soname-suppr-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-7.txt: Likewise. |
| * tests/data/test-diff-suppr/test24-soname-suppr-8.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-report-0.txt: New |
| reference test output. |
| * tests/data/test-diff-suppr/test29-soname-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test29-soname-v0.cc: Source code for |
| the new binary output above. |
| * tests/data/test-diff-suppr/test29-soname-v1.cc: Likewise. |
| * tests/data/test-diff-suppr/test29-suppr-0.txt: New test |
| suppression file. |
| * tests/data/test-diff-suppr/test29-suppr-1.txt: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-suppr.cc (in_out_specs): Make this test harness |
| run over the new test input above. |
| |
| 2016-03-31 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix comments in tests/test-diff-pkg.cc |
| * tests/test-diff-pkg.cc: Fix the wording of the introductory |
| comments. |
| |
| 2016-03-30 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19885 - Cannot associates a function DIE to a symbol on powerpc64 |
| *from* the address of its entry point. |
| More precisely, on ppc64, the address of a function is the address of |
| a function descriptor. The function descriptor is a set of three 64 |
| bits addresses. The first element of the triplet is the function |
| entry pointer address. So to get the symbol a given function entry |
| point address belongs to, one must get to the function descriptor |
| which contains said function entry point address. And function |
| descriptors are in the ".opd" special section. |
| Unfortunately, Libabigail's ELF/DWARF reader has no knowledge of all |
| this. So it cannot get the symbol of a given function DWARF |
| description. So it considers all functions as having no ELF symbols. |
| So it shows no ABI change pertaining to function sub-types on ppc64. |
| This patch makes Libabigail support function descriptors on ppc64 so |
| it can detect changes on function sub-types there. |
| * src/abg-dwarf-reader.cc (read_context::{opd_section_, |
| fun_entry_addr_sym_map_}): New data members. |
| (read_context::read_context): Initialize the new opd_section_ data |
| member. |
| (read_context::{find_opd_section, |
| lookup_ppc64_elf_fn_entry_pointer_address, |
| fun_entry_addr_sym_map_sptr, fun_entry_addr_sym_map, |
| elf_architecture_is_ppc64, elf_architecture_is_big_endian}): New |
| member functions. |
| (read_context::lookup_elf_fn_symbol_from_address): Adjust to use |
| the new read_context::fun_entry_addr_sym_map() function. |
| (read_context::load_symbol_maps): Populate the function entry |
| addresses -> symbol map, for ppc64 ELFv1. |
| (read_context::load_elf_properties): Renamed |
| read_context::load_remaining_elf_data into this. |
| (read_corpus_from_elf): Load elf properties before trying to load |
| elf symbols information. |
| * tests/data/test-diff-filter/libtest32-struct-change-v0.so: New |
| binary test input, compiled for ppc64le. |
| * tests/data/test-diff-filter/libtest32-struct-change-v1.so: Likewise. |
| * tests/data/test-diff-filter/test32-ppc64le-struct-change-report0.txt: |
| New test reference output. |
| * tests/data/test-diff-filter/test32-ppc64le-struct-change-v0.c: |
| Source code of the new binary test input above. |
| * tests/data/test-diff-filter/test32-ppc64le-struct-change-v1.c: |
| Likewise. |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-diff-filter.cc (in_out_spec): Make this test harness |
| run over the new test input binaries above. |
| |
| 2016-03-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix logs in abipkgdiff and add some more |
| * tools/abipkgdiff.cc (compare): Fix logs to make them more |
| readable in a multithreaded context. |
| (create_maps_of_package_content): Likewise. Add logs about the |
| number of elf files found in a given directory. Add logs about |
| skipping files. |
| |
| 2016-03-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19867 - abipkgdiff skips symbolic links |
| * include/abg-tools-utils.h (maybe_get_symlink_target_file_path): |
| Declare new function. |
| * src/abg-tools-utils.cc (get_stat): Use lstat here, not stat. |
| Update comment. |
| * tools/abipkgdiff.cc (first_package_tree_walker_callback_fn) |
| (second_package_tree_walker_callback_fn): Follow symbolic links to |
| elf files to get their target paths, and only work with that |
| target path. |
| (maybe_get_symlink_target_file_path): Define new function. |
| * test-diff-pkg/symlink-dir-test1-report0.txt New test material. |
| * test-diff-pkg/symlink-dir-test1/dir1/symlinks/foo.o: Likewise. |
| * test-diff-pkg/symlink-dir-test1/dir1/symlinks/libfoo.so: Likewise. |
| * test-diff-pkg/symlink-dir-test1/dir1/targets/foo.c: Likewise. |
| * test-diff-pkg/symlink-dir-test1/dir1/targets/foo.o: Likewise. |
| * test-diff-pkg/symlink-dir-test1/dir1/targets/libfoo.so: Likewise. |
| * test-diff-pkg/symlink-dir-test1/dir2/symlinks/foo.o: Likewise. |
| * test-diff-pkg/symlink-dir-test1/dir2/symlinks/libfoo.so: Likewise. |
| * test-diff-pkg/symlink-dir-test1/dir2/targets/foo.c: Likewise. |
| * test-diff-pkg/symlink-dir-test1/dir2/targets/foo.o: Likewise. |
| * test-diff-pkg/symlink-dir-test1/dir2/targets/libfoo.so: Likewise. |
| * tests/data/Makefile.am: Add the new test material to source |
| distribution. |
| * tests/test-diff-pkg.cc (in_out_spec): Run this test harness |
| over the new test material above. |
| |
| 2016-03-21 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typo on the web page |
| * doc/website/mainpage.txt: Fix typo. |
| |
| 2016-03-18 Roland McGrath <roland@hack.frob.com> |
| |
| Fix typo in configure --enable-deb help text |
| * configure.ac: Fix typo in --enable-deb usage text. |
| |
| 2016-03-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19846 - variable decl associated with the wrong debug info section |
| * src/abg-dwarf-reader.cc (build_ir_node_from_die): Associate the |
| decl of the variable to the same debug info file (alternate or |
| not) as the DIE, not as its specification DIE. |
| |
| 2016-03-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typo in the manual of abidiff |
| * doc/manuals/abidiff.rst: Fix typo. |
| |
| 2016-03-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typos in comments in src/abg-dwarf-reader.cc |
| * src/abg-dwarf-reader.cc (read_context::{die_type_map, |
| is_wip_class_die_offset, is_wip_function_type_die_offset}): Fix |
| typo in comments. |
| |
| 2016-03-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19844 - Cannot try to canonicalize a type that is being constructed |
| * src/abg-dwarf-reader.cc |
| (read_context::{alternate_die_wip_classes_map_, |
| alternate_die_wip_function_types_map_}): New data members. |
| (read_context::lookup_type_from_die_offset): Lookup WIP class and |
| function types too. |
| (read_context::{die_wip_classes_map, die_wip_function_types_map}): |
| Take a flag saying if we should get the map for the alternate |
| debug info section or not. |
| (read_context::{is_wip_class_die_offset, |
| is_wip_function_type_die_offset}): Take a flagy saying if the DIE |
| is in the alternate debug info section or not. |
| (build_class_type_and_add_to_ir, build_function_type) |
| (maybe_canonicalize_type): Adjust. |
| (build_ir_node_from_die): Do not call maybe_canonicalize_type on |
| type DIEs which no type has been constructed for. |
| * tests/data/test-diff-pkg/gtk2-debuginfo-2.24.22-5.el7.i686.rpm: |
| New test input. |
| * tests/data/test-diff-pkg/gtk2-debuginfo-2.24.28-8.el7.i686.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/gtk2-immodule-xim-2.24.22-5.el7.i686.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/gtk2-immodule-xim-2.24.28-8.el7.i686.rpm: |
| Likewise. |
| * tests/data/test-diff-pkg/gtk2-immodule-xim-2.24.22-5.el7.i686--gtk2-immodule-xim-2.24.28-8.el7.i686-report-0.txt: |
| New test reference output. |
| * tests/data/Makefile.am: Add the new test material to the source |
| distribution. |
| * tests/test-diff-pkg.cc (in_out_spec): Make this test harness run |
| on the new test input above. |
| |
| 2016-03-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix a typo in include/abg-tools-utils.h |
| * include/abg-tools-utils.h (enum abidiff_status): Fix typo in |
| comment. |
| |
| 2016-03-16 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright dates for the manuals |
| * doc/manuals/conf.py: Update copyright years. |
| |
| 2016-03-16 Dodji Seketeli <dodji@redhat.com> |
| |
| More docs about ABIDIFF_ABI_INCOMPATIBLE_CHANGE |
| * doc/manuals/abidiff.rst: Explain the kind of changes that flip |
| the ABIDIFF_ABI_INCOMPATIBLE_CHANGE flag. |
| |
| 2016-03-09 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix typos on the web page |
| * doc/website/mainpage.txt: Fix typos. |
| |
| 2016-03-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Bump version number to 1.0.rc4 |
| * configure.ac: Bump version number to 1.0.rc4 |
| |
| 2016-03-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix potential race condition in test-diff-pkg.cc |
| * tests/test-diff-pkg.cc (in_out_spec): Make the tar format tests |
| output have different names. |
| |
| 2016-03-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Updated website to point to 1.0.rc3 tarball |
| * doc/website/mainpage.txt: Updated website to point to 1.0.rc3 |
| tarball. |
| |
| 2016-03-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Update ChangeLog before 1.0.rc3 |
| * ChangeLog: Update for 1.0.rc3 |
| |
| 2016-03-08 Dodji Seketeli <dodji@redhat.com> |
| |
| Update NEWS file for 1.0.rc3 |
| * NEWS: update for 1.0.rc3 |
| |
| 2016-03-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Walk function_type_diff tree in a deterministic way |
| * src/abg-comparison.cc |
| (function_type_diff::priv::{sorted_subtype_changed_parms_, |
| sorted_changed_parms_by_id_}): Add two data members. |
| (function_type_diff::ensure_lookup_tables_populated): Sort the |
| changed parameters here ... |
| (function_type_diff::report): ... not here. |
| (function_type_diff::chain_into_hierarchy): Chain the *sorted* |
| changed parameters. |
| |
| 2016-03-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix reference to test file in Makefile.am |
| * tests/data/Makefile.am: Fix bogus reference to |
| libICE-1.0.6-1.el6.x86_64.rpm--libICE-1.0.9-2.el7.x86_64.rpm-report-0.txt. |
| |
| 2016-03-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19780 - abipkgdiff doesn't support parallel execution |
| * tools/abipkgdiff.cc: Update copyright notice. |
| (package::extracted_packages_parent_dir): Use mkdtemp to generate |
| the unique root directory under which packages are extracted. |
| * tests/test-diff-pkg.cc (struct test_task): New type. |
| (main): Use worker threads to run abipkgdiff in parallel, |
| depending on the number of CPUs advertised by the underlying |
| machine. |
| |
| 2016-03-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19778 - diff_has_ancestor_filtered_out() loops forever |
| * src/abg-comparison.cc (diff_has_ancestor_filtered_out): Add an |
| overload that takes an additional map of pointer values. Make the |
| older overload call the new one. |
| * tests/data/test-diff-pkg/libICE-1.0.6-1.el6.x86_64.rpm: New test material. |
| * 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: |
| New reference output. |
| * tests/data/test-diff-pkg/libICE-1.0.9-2.el7.x86_64.rpm: New test material. |
| * tests/data/test-diff-pkg/libICE-debuginfo-1.0.6-1.el6.x86_64.rpm: New test material. |
| * tests/data/test-diff-pkg/libICE-debuginfo-1.0.9-2.el7.x86_64.rpm: |
| New test material. |
| * tests/data/Makefile.am: Add the new test material to source distribution. |
| * tests/test-diff-pkg.cc (in_out_specs): Run this test harness |
| over the new tests material above. |
| |
| 2016-03-07 Dodji Seketeli <dodji@redhat.com> |
| |
| Forgot to add test2-filtered-removed-fns-v{0,1}.o |
| * test2-filtered-removed-fns-v{0,1}.o: Add these test input files. |
| |
| 2016-03-03 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19596 - Suppressed removed symbol changes still considered incompatible |
| * src/abg-comparison.cc (corpus_diff::has_incompatible_changes): |
| Consider the *net* number of removed function and variable |
| symbols. Also, if all function sub-type changes have been |
| suppressed, then no virtual offset change should be considered |
| incompatible. |
| * tests/data/test-abidiff-exit/test1-voffset-change-report1.txt |
| * tests/data/test-abidiff-exit/test1-voffset-change.abignore |
| * tests/data/test-abidiff-exit/test2-filtered-removed-fns-report0.txt |
| * tests/data/test-abidiff-exit/test2-filtered-removed-fns-report1.txt |
| * tests/data/test-abidiff-exit/test2-filtered-removed-fns-v0.c |
| * tests/data/test-abidiff-exit/test2-filtered-removed-fns-v1.c |
| * tests/data/test-abidiff-exit/test2-filtered-removed-fns.abignore |
| * tests/data/Makefile.am: Add the new test material above to |
| source distribution. |
| * tests/test-abidiff-exit.cc (InOutSpec::in_suppr_path): New data |
| member. |
| (in_out_specs): Adjust. Add new test inputs. |
| (main): Adjust. |
| |
| 2016-02-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Fixup virtual member functions with linkage and no underlying symbol |
| * src/abg-dwarf-reader.cc (die_function_decl_map_type): New |
| typedef. |
| (read_context::die_function_with_no_symbol_map_): New data member. |
| (read_context::die_function_decl_with_no_symbol_map): New |
| accessor. |
| (read_context::fixup_functions_with_no_symbols): New member |
| function. |
| (finish_member_function_reading): Take a read_context. Schedule |
| virtual member functions with linkage and no underlying symbol to |
| be fixed up after all the debug info is read. |
| (build_function_decl): After a virtual member function_decl has |
| been updated, if it has its underlying symbol and was scheduled |
| for fixup, then de-schedule it. |
| (build_class_type_and_add_to_ir, build_ir_node_from_die): Adjust |
| call to finish_member_function_reading. |
| (read_corpus_from_elf): Move the pure ELF (symbol and other mundane |
| information) information reading ... |
| (read_debug_info_into_corpus): ... here. Make it happen *before* |
| actual reading of DWARF information. We need symbol information |
| to be present and fully set before we start reading debug info. |
| This is so that we can know when a virtual member function doesn't |
| need to be fixed up. Also, perform the fixup after the debug |
| information was read. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| |
| 2016-02-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Add --verbose to abidw |
| * doc/manuals/abidw.rst: Update the manual for the new --verbose |
| option. |
| * tools/abidw.cc (options::do_log): New data member. |
| (options::options): Initialize it. |
| (display_usage): New string for --verbose. |
| (parse_command_line): Parse the --verbose option. |
| (main): Set the the logging option. |
| |
| 2016-02-25 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright information |
| * tools/abidiff.cc: Update copyright info for 2016. |
| * tools/abidw.cc: Likewise. |
| |
| 2016-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Make libabigail link with pthread |
| * src/Makefile.am: Add -pthread to libabigail_la_LDFLAGS. |
| * tools/Makefile.am: Do not use abinilint_LDFLAGS when it should |
| be abinilint_LDADD. This one was fixed by Michi Henning. |
| |
| 2016-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Update mentions to the build dependencies in the doc |
| * COMPILING: Mention elfutils, libtool, autoconf, automake and |
| libtool. |
| * doc/website/mainpage.txt: Mention automake and libtool. Fix a typo. |
| |
| 2016-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19706 - Core dump from abidiff with suppression |
| * src/abg-comparison.cc |
| (function_suppression::suppresses_function): Make sure a function |
| has a symbol before (de)referencing it. |
| |
| 2016-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Some small speed optimizations |
| * include/abg-ir.h (var_decl::get_naked_type): Declare new member function. |
| * src/abg-ir.cc (var_decl::get_naked_type): Define it. |
| (equals): For the var_decl overload, avoid copying symbol |
| smart pointers. Likewise for variable type smart pointers. |
| (hash_type_or_decl): Avoid accessing canonical type smart pointer. |
| |
| 2016-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Mist style cleanups |
| * include/abg-ir.h: Add missing comments. Space cleanups. Use |
| shorter typedefs rather than long template instantiation names. |
| Use string rather than the longer std::string. |
| * src/abg-ir.cc: Space cleanups. Add missing comments. User |
| shorter typedefs. |
| * src/abg-reader.cc: Likewise. |
| * src/abg-writer.cc: Likewise. |
| |
| 2016-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Implement string interning for Libabigail |
| * include/Makefile.am: Add the new abg-interned-str.h file to |
| source distribution. |
| * include/abg-corpus.h (corpus::corpus): Re-arrange the order of |
| * src/abg-corpus.cc |
| (corpus::exported_decls_builder::priv::get_id): Return |
| interned_string rather than std::string. |
| (corpus::corpus): Re-arrange the order of parameters: take an |
| environment as first parameter. parameters: take an environment |
| as first parameter. |
| * include/abg-dwarf-reader.h (lookup_symbol_from_elf) |
| (lookup_public_function_symbol_from_elf): Likewise. |
| * src/abg-dwarf-reader.cc (lookup_symbol_from_sysv_hash_tab) |
| (lookup_symbol_from_gnu_hash_tab) |
| (lookup_symbol_from_elf_hash_tab, lookup_symbol_from_symtab) |
| (lookup_symbol_from_elf, lookup_public_function_symbol_from_elf) |
| (lookup_public_variable_symbol_from_elf, lookup_symbol_from_elf) |
| (lookup_public_function_symbol_from_elf): Take an environment as |
| first parameter and adjust. |
| (build_translation_unit_and_add_to_ir) |
| (build_namespace_decl_and_add_to_ir, build_type_decl) |
| (build_enum_type, finish_member_function_reading) |
| (build_class_type_and_add_to_ir, build_function_type) |
| (read_debug_info_into_corpus, read_corpus_from_elf): Adjust. |
| * include/abg-fwd.h: Include abg-interned-str.h |
| (get_type_name, get_function_type_name, get_method_type_name): |
| Return a interned_string, rather than a std::string. |
| * include/abg-interned-str.h: New declarations for interned strings |
| and their pool. |
| * include/abg-ir.h (environment::intern): Declare new method. |
| (elf_symbol::{g,s}et_environment): Likewise. |
| (type_or_decl_base::type_or_decl_base): Make the default |
| constructor private. |
| ({translation, type_or_decl_base}::set_environment) |
| (set_environment_for_artifact): Take a const environment*. |
| (elf_symbol::elf_symbol) |
| (elf_symbol::create) |
| (type_or_decl_base::type_or_decl_base) |
| (translation::translation, decl_base::decl_base) |
| (scope_decl::scope_decl, type_base::type_base) |
| (type_decl::type_decl, scope_type_decl::scope_type_decl) |
| (namespace_decl::namespace_decl) |
| (enum_type_decl::enumerator::enumerator) |
| (function_type::function_type, method_type::method_type) |
| (template_decl::template_decl, function_tdecl::function_tdecl) |
| (class_tdecl::class_tdecl, class_decl::class_decl): Take an |
| environment. |
| (type_or_decl_base::operator=) |
| (enum_type_decl::enumerator::get_environment): Declare new method. |
| (decl_base::{peek_qualified_name, peek_temporary_qualified_name, |
| get_qualified_name, get_name, get_qualified_parent_name, |
| get_linkage_name}, qualified_type_def::get_qualified_name) |
| (reference_type_def::get_qualified_name) |
| (array_type_def::get_qualified_name) |
| (enum_type_decl::enumerator::{get_name, get_qualified_name}) |
| ({var,function}_decl::get_id) |
| (function_decl::parameter::{get_type_name, get_name_id}): Return |
| an interned_string, rather than a std::string. |
| (decl_base::{set_qualified_name, set_temporary_qualified_name, |
| get_qualified_name, set_linkage_name}) |
| (qualified_type_def::get_qualified_name) |
| (reference_type_def::get_qualified_name) |
| (array_type_def::get_qualified_name) |
| (function_decl::parameter::get_qualified_name): Take an |
| interned_string, rather than a std::string. |
| (class_decl::member_{class,function}_template::member_{class,function}_template): |
| Adjust. |
| * src/abg-ir.cc (environment_setter::env_): Make this be a pointer |
| to const environment. |
| (environment_setter::visit_begin): Adjust. |
| (interned_string_pool::priv): Define new type. |
| (interned_string_pool::*): Define the method declared in |
| abg-interned-str. h. |
| (operator==, operator!=, operator+): Define operator for interned_string and |
| std::string |
| (operator<<): Define for interned_string. |
| (translation_unit::priv::env_): Make this be a pointer to const |
| environment. |
| (translation_unit::priv::priv): Take a pointer to const |
| environment. |
| (elf_symbol::priv::env_): New data member. |
| (elf_symbol::priv::priv): Adjust. Make an overoad take an |
| environment. |
| (translation_unit::{g,s}et_environment): Adjust. |
| (interned_string_bool_map_type): New typedef. |
| (environment::priv::classes_being_compared_): Make this hastable |
| of string be a hashtable of interned_string. |
| (environment::priv::string_pool_): New data member. |
| (environment::{get_void_type_decl, |
| get_variadic_parameter_type_decl}): Adjust. |
| (type_or_decl_base::priv::env_): Make this be a pointer to const |
| environment. |
| (type_or_decl::base::priv::priv): Adjust. |
| (type_or_decl_base::set_environment) |
| (set_environment_for_artifact): Take a pointer to const |
| environment. |
| (elf_symbol::{g,s}et_environment, environment::intern) |
| (type_or_decl_base::operator=): Define new methods. |
| (decl_base::priv::{name_, qualified_parent_name_, |
| temporary_qualified_name_, qualified_name_, linkage_name_}): Make |
| these data member be of tpe interned_string. |
| (decl_base::priv::priv): Make this take an environment. Adjust. |
| (decl_base::{peek_qualified_name, peek_temporary_qualified_name, |
| get_linkage_name, get_qualified_parent_name, get_name, |
| get_qualified_name}, get_type_name, get_function_type_name) |
| (get_method_type_name, get_node_name) |
| (qualified_type_def::get_qualified_name) |
| (pointer_type_def::get_qualified_name) |
| (array_type_def::get_qualified_name) |
| (enum_type_decl::enumerator::get_qualified_name) |
| (var_decl::get_id, function_decl::get_id) |
| (function_decl::parameter::get_{name_id, type_name}): Return an |
| interned_string. |
| (decl_base::{set_qualified_name, set_temporary_qualified_name}) |
| (qualified_type_def::get_qualified_name) |
| (pointer_type_def::get_qualified_name) |
| (reference_type_def::get_qualified_name) |
| (array_type_def::get_qualified_name) |
| (function_decl::parameter::get_qualified_name): Take an |
| interned_string. |
| (decl_base::{set_name, set_linkage_name}): Intern the std::string |
| passed in parameter. |
| (equals): In the overload for decl_base, adjust for a little speed |
| optimization that is justified by profiling. |
| (pointer_type_def::priv::{internal_qualified_name_, |
| temp_internal_qualified_name_}): Make these data member be |
| interned_string. |
| (enum_type_decl::enumerator::priv::env_): New data member. |
| (enum_type_decl::enumerator::priv::{name_, qualified_name}): Make |
| these data member be of type interned_string. |
| (enum_type_decl::enumerator::get_environment): New method. |
| (enum_type_decl::enumerator::priv::priv) Adjust. |
| (typedef_decl::operator==): Implement a little speed optimization. |
| (var_decl::priv::nake_type_): New data member. |
| (var_decl::priv::id_): Make this data member be of type |
| interned_string. |
| (equals): In the overload for var_decl, function_type, |
| function_decl, adjust for the use of interned_string. |
| (function_decl::priv::id_): Make this be of type interned_string. |
| (scope_decl::{add_member_decl, insert_member_decl}) |
| (lookup_function_type_in_translation_unit) |
| (synthesize_type_from_translation_unit, lookup_node_in_scope) |
| (lookup_type_in_scope, scope_decl::scope_decl) |
| (qualified_type_def::qualified_type_def) |
| (qualified_type_def::get_qualified_name) |
| (pointer_type_def::pointer_type_def) |
| (reference_type_def::reference_type_def) |
| (array_type_def::array_type_def, array_type_def::append_subrange) |
| (array_type_def::get_qualified_name) |
| (enum_type_decl::enum_type_decl) |
| (enum_type_decl::enumerator::get_qualified_name) |
| (enum_type_decl::enumerator::set_name) |
| (typedef_decl::typedef_decl, var_decl::var_decl) |
| (function_type::function_type, method_type::method_type) |
| (function_decl::function_decl) |
| (function_decl::parameter::parameter) |
| (class_decl::priv::comparison_started) |
| (class_decl::add_base_specifier) |
| (class_decl::base_spec::base_spec) |
| (class_decl::method_decl::method_decl) |
| (type_tparameter::type_tparameter) |
| (non_type_tparameter::non_type_tparameter) |
| (template_tparameter::template_tparameter) |
| (type_composition::type_composition) |
| (function_tdecl::function_tdecl, class_tdecl::class_tdecl) |
| (qualified_name_setter::do_update): Adjust. |
| (translation_unit::translation_unit, elf_symbol::elf_symbol) |
| (elf_symbol::create, type_or_decl_base::type_or_decl_base) |
| (decl_base::decl_base, type_base::type_base) |
| (type_decl::type_decl, scope_type_decl::scope_type_decl) |
| (namespace_decl::namespace_decl) |
| (enum_type_decl::enumerator::enumerator, class_decl::class_decl) |
| (template_decl::template_decl, function_tdecl::function_tdecl) |
| (class_tdecl::class_tdecl): Take an environment. |
| * src/abg-comparison.cc |
| (function_suppression::suppresses_function): Adjust. |
| * src/abg-reader.cc (read_translation_unit) |
| (read_corpus_from_input, build_namespace_decl, build_elf_symbol) |
| (build_function_parameter, build_function_decl, build_type_decl) |
| (build_function_type, build_enum_type_decl, build_enum_type_decl) |
| (build_class_decl, build_function_tdecl, build_class_tdecl) |
| (read_corpus_from_native_xml): Likewise. |
| * src/abg-writer.cc (id_manager::m_cur_id): Make this mutable. |
| (id_manager::m_env): New data member. |
| (id_manager::id_manager): Adjust. |
| (id_manager::get_environment): New method. |
| (id_manager::{get_id, get_id_with_prefix}): Return an |
| interned_string. |
| (type_ptr_map): Make this be a hash map of type_base* -> |
| interned_string, rather a type_base* -> string. |
| (write_context::m_env): New data member. |
| (write_context::m_type_id_map): Make this data member be mutable. |
| (write_context::m_emitted_type_id_map): Make this be a hash map of |
| interned_string -> bool, rather than string -> bool. |
| (write_context::write_context): Take an environment and adjust. |
| (write_context::get_environment): New method. |
| (write_context::get_id_manager): New const overload. |
| (write_context::get_id_for_type): Return an interned_string; adjust. |
| (write_context::{record_type_id_as_emitted, |
| record_type_as_referenced}): Adjust. |
| (write_context::type_id_is_emitted): Take an interned_string. |
| (write_context::{type_is_emitted, |
| record_decl_only_type_as_emitted}): Adjust. |
| (write_translation_unit, write_corpus_to_native_xml, dump): |
| Adjust. |
| * tools/abisym.cc (main): Adjust. |
| * tests/data/test-read-write/test22.xml: Adjust. |
| * tests/data/test-read-write/test23.xml: Adjust. |
| * tests/data/test-read-write/test26.xml: Adjust. |
| |
| 2016-02-24 Dodji Seketeli <dodji@redhat.com> |
| |
| Update copyright notice |
| * include/abg-corpus.h: Update copyright notice. |
| * include/abg-dwarf-reader.h: Likewise. |
| * src/abg-comparison.cc: Likewise. |
| * src/abg-corpus.cc: Likewise. |
| * src/abg-ir.cc: Likewise. |
| |
| 2016-02-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix crash when handling templates with empty patterns |
| * src/abg-ir.cc (function_tdecl::traverse): Do not crash when |
| traversing a template with empty pattern. |
| (class_tdecl::operator==): Do not crash when comparing templates |
| with empty patterns. |
| |
| 2016-02-23 Dodji Seketeli <dodji@redhat.com> |
| |
| Add missing inequality operators for ABI artifacts |
| * include/abg-ir.h ({translation_unit, elf_symbol::version, |
| context_rel, decl_base, type_base, type_decl, |
| array_type_def::subrange_type, enum_type_def::enumerator, |
| dm_context_rel, template_parameter}::operator!=): Declare. |
| (operator==): Make the overload form translation_unit_sptr, |
| scope_decl_sptr, class_decl::base_spec_sptr, |
| class_decl::member_function_template_sptr, |
| class_decl::member_class_template_sptr take const references. |
| (operator!=): Declare an an overload for the non-member operator |
| != of translation_unit_sptr, elf_symbol_sptr, |
| type_or_decl_base_sptr, type_base_sptr, scope_decl_sptr, |
| type_decl, qualified_type_def_sptr, pointer_type_def_sptr, |
| reference_type_def_sptr, enum_type_decl_sptr, class_decl_sptr, |
| class_decl::base_spec_sptr, |
| class_decl::member_function_template_sptr, |
| class_decl::member_class_template_sptr. |
| * src/abg-ir.cc ({translation_unit, elf_symbol::version, |
| context_rel, decl_base, type_base, type_decl, |
| array_type_def::subrange_type, enum_type_def::enumerator, |
| dm_context_rel, template_parameter}::operator!=): Define. |
| (operator==): Make the overload for translation_unit_sptr, |
| scope_decl_sptr, class_decl::base_spec_sptr, |
| class_decl::member_function_template_sptr, |
| class_decl::member_class_template_sptr take const references. |
| (operator!=): Define an an overload for the non-member operator != |
| of translation_unit_sptr, elf_symbol_sptr, type_or_decl_base_sptr, |
| type_base_sptr, scope_decl_sptr, type_decl, |
| qualified_type_def_sptr, pointer_type_def_sptr, |
| reference_type_def_sptr, enum_type_decl_sptr, class_decl_sptr, |
| class_decl::base_spec_sptr, |
| class_decl::member_function_template_sptr, |
| class_decl::member_class_template_sptr. |
| |
| 2016-02-20 Dodji Seketeli <dodji@redhat.com> |
| |
| Make the tree pass distcheck again. |
| * tests/data/Makefile.am: Add file |
| test-diff-suppr/test28-add-aliased-function-report-0.txt to source |
| distribution. |
| |
| 2016-02-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19658 - Type canonicalization slow for the 2nd binary loaded |
| * include/abg-corpus.h (corpus::{record_canonical_type, |
| lookup_canonical_type}): Declare new member functions. |
| * src/abg-corpus.cc (corpus::priv::canonical_types_): New data |
| member. |
| (corpus::{record_canonical_type, lookup_canonical_type}): Define |
| new member functions. |
| * src/abg-ir.cc (type_base::get_canonical_type_for): Cache the |
| canonical type inside the corpus of the type being canonicalized. |
| Then later when canonicalizing another type, lookup in the cache |
| inside its corpus to see if there is a type with the same name. |
| * tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt: |
| Adjust. |
| |
| 2016-02-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Add --verbose option to abidiff |
| * doc/manuals/abidiff.rst: Add documentation for new --verbose |
| option. |
| * include/abg-dwarf-reader.h (set_do_log): Declare new function. |
| * src/abg-dwarf-reader.cc (read_context::do_log_): New data |
| member. |
| (read_context::read_context): Initialize the new data member. |
| (read_context::do_log): Define accessors. |
| (set_do_log): Define new function; |
| (read_context::canonicalize_types_scheduled) |
| (read_debug_info_into_corpus): Add logs. |
| * tools/abidiff.cc (options::do_log): New data member. |
| (options::options): Initialize it. |
| (display_usage): Add an usage string for --verbose. |
| (parse_command_line): Parse the new --verbose option. |
| (main): Set the dwarf reader's context wrt presence of the |
| --verbose option. |
| |
| 2016-02-18 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix indentation |
| * tools/abipkgdiff.cc (parse_command_line): Fix a wrong indentation. |
| |
| 2016-02-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19638 - DWARF reader fails to link clone function to its declaration |
| * include/abg-ir.h (decl_base::set_linkage_name): Make this member |
| function virtual. |
| (class_decl::string_mem_fn_ptr_map_type): Define new member type. |
| (class_decl::find_member_function): Declare new member function. |
| (copy_member_function): Declare new function. Declare it as |
| friend of class_decl. |
| (method_decl::set_linkage_name): Declare an overload for this |
| virtual function. |
| * src/abg-dwarf-reader.cc (build_function_decl): Allow updating of |
| linkage_name even if the linkage_name was already defined. |
| (build_ir_node_from_die): In the case DW_TAG_subprogram, make the |
| lookup of scope of the DIE work even if it has both an abstract |
| origin and a specification (DW_AT_abstract_origin and |
| DW_AT_specification). |
| * src/abg-ir.cc (maybe_adjust_canonical_type): Define new |
| function. |
| (canonicalize): Use it. |
| (function_decl::get_id): Return the linkage name first, if it |
| exist. |
| (class_decl::priv::mem_fns_map_): New data member. |
| (class_decl::find_member_function): Define new member function. |
| (class_decl::method_decl::set_linkage_name): Likewise. |
| (class_decl::add_member_function): Update the new data member |
| class_decl::priv::mem_fns_map_. |
| (copy_member_function): Define new static function. |
| * tests/data/test-abidiff/test-PR18791-report0.txt: Adjust. |
| * tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test12-pr18844.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test16-pr18904.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Adjust. |
| * tests/data/test-read-dwarf/test9-pr18818-clang.so.abi: Adjust. |
| |
| 2016-02-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Add function lookup by linkage name to libabigail::corpus |
| * include/abg-corpus.h (corpus::lookup_functions): Declare new |
| member function. |
| * src/abg-corpus.cc (class corpus::exported_decls_builder::priv): |
| Make class corpus be a friend of this type. |
| (corpus::exported_decls_builder::priv::add_fn_to_id_fns_map): Fix |
| a thinko that was preventing the fn_id -> functions map from ever |
| being filled. Fix this function to make it associate each aliases |
| of a given function to the function, in the hash table. |
| (corpus::lookup_functions): Define new member function. |
| |
| 2016-02-17 Dodji Seketeli <dodji@redhat.com> |
| |
| Fix style cleanups |
| * include/abg-ir.h (method_type::{method_type, set_class_type, |
| get_type, set_type}): Use type_base_sptr and class_decl_sptr |
| instead of the full non-typedefed name. |
| (method_type):Do some cleanups in the definition of the |
| convenience typedefs. |
| * src/abg-ir.cc (method_type::{method_type, set_class_type, |
| get_type, set_type}): Use type_base_sptr and class_decl_sptr |
| instead of the full non-typedefed name. |
| * src/abg-writer.cc (write_class_decl): Add a comment. |
| |
| 2016-02-13 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19619 - failing to suppress added aliased function reports for C++ |
| * src/abg-comparison.cc |
| (function_suppression::suppresses_function): Make the evaluation |
| of the "name" and "name_regexp" consider the cases of languages in |
| which the function name is the same as the symbol name and the |
| case of languages in which it is not. In the former case, all |
| symbol alias names must be matched. In the latter case, if "name" |
| and "name_regexp" match the function name, the suppression |
| specification is considered to match the report about the function |
| change. Also, use the elf_symbol::is_main_symbol() predicate to |
| test for the symbol being a main symbol, rather than using |
| error-prone pointer equality. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-0.suppr: |
| New test input. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-1.suppr: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-2.suppr: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-3.suppr: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-4.suppr: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-v0.cc: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-v0.o: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-v1.cc: Likewise. |
| * tests/data/test-diff-suppr/test27-add-aliased-function-v1.o: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-0.suppr: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-1.suppr: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-2.suppr: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-3.suppr: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-4.suppr: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-5.suppr: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-report-0.txt: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-report-1.txt: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-report-2.txt: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-report-3.txt: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-report-4.txt: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-report-5.txt: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-report-6.txt: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-v0.c: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-v0.o: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-v1.c: Likewise. |
| * tests/data/test-diff-suppr/test28-add-aliased-function-v1.o: Likewise. |
| * tests/data/Makefile.am: Add the new test material above to the |
| source distribution. |
| * tests/test-diff-suppr.cc: Add the new test inputs above to this |
| test harness. |
| |
| 2016-02-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Emit more informational messages on unrecognized options |
| * tools/abicompat.cc (options::prog_name): New data member. |
| (display_help, perform_compat_check_in_normal_mode) |
| (perform_compat_check_in_weak_mode, main): Prefix error messages |
| with the name of the program. |
| * tools/abidw.cc (options::wrong_option): New data member. |
| (display_help): Prefix error messages with the name of the |
| program.n |
| (parse_command_line): Record the name of the unrecognized option. |
| (main): Tell the name of the unrecognized option. Prefix error |
| messages with the name of the program. |
| * tools/abilint.cc (optionqs::wrong_option): New data member |
| (display_usage): Prefix error messages with the name of the |
| program. |
| (parse_command_line): Record the name of the unrecognized option. |
| (main): Tell the name of the unrecognized option. Prefix error |
| messages with the name of the program. |
| * tools/abipkgdiff.cc (options::{wrong_option, prog_name}): New |
| data members. |
| (package::erase_extraction_directory, display_usage, extract_rpm) |
| (extract_deb, extract_tar) |
| (erase_created_temporary_directories_parent, extract_package) |
| (compare, create_maps_of_package_content): Prefix error messages |
| with the name of the program. |
| (maybe_check_suppression_files): Adjust. |
| (parse_command_line): Record the name of the unrecognized option, |
| and the name of option which lacks an operand. |
| (main): Give the name of the unrecognized option. Prefix error |
| messages with the name of the program. |
| |
| 2016-02-12 Dodji Seketeli <dodji@redhat.com> |
| |
| Prefix abidiff error message with the 'abidiff' program name |
| * include/abg-tools-utils.h (emit_prefix): Declare new function. |
| (check_file): Add a new parameter with a default value, so that |
| existing code keeps compiling. |
| * src/abg-tools-utils.cc (emit_prefix): Define new function. |
| (check_file): Use the emit_prefix function and give it the program |
| name passed as a new parameter. |
| * tools/abidiff.cc (display_usage, main): Use the new emit_prefix |
| to prefix error messages. |
| |
| 2016-02-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Bug 19606 - Need better error message for invalid options |
| * tools/abidiff.cc (options::wrong_option): New data member. |
| (parse_command_line): Record the name of the unknown option and of |
| the option which value is missing. |
| |
| 2016-02-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Add a comment about libabigail needing elfutils 0.159 at least. |
| * configure.ac: Add a comment saying that we require at least |
| elfutils 0.159. |
| |
| 2016-02-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Talk about mandatory properties in suppress_* directives |
| * doc/manuals/libabigail-concepts.rst: Talk about the mandatory |
| properties for suppress_type, suppress_function and |
| suppress_variable directives. |
| |
| 2016-02-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abipkgdiff check for the presence of suppression spec files |
| * tools/abipkgdiff.cc (maybe_check_suppression_files): Define new |
| static function. |
| (main): Use it. |
| |
| 2016-02-11 Dodji Seketeli <dodji@redhat.com> |
| |
| Make abipkgdiff return correct exit code on usage error |
| * tools/abipkgdiff.cc (main): Return the correct error code on |
| usage error. |
| |
| 2016-02-11 Dodji Seketeli <dodji@redhat.com> |
| |
| |