mirror of
git://sourceware.org/git/libabigail.git
synced 2025-02-01 22:31:46 +00:00
5ed0e40bfd
Until now, an offset change is reported by showing the old and new offsets of the data member that changed. This patch adds the string "(by +N bits)" with 'N' being the number of bits by which the offset of the data member was increased, or "(by -N bits) if the offset of the data member was decreased of N bits. The patch also emits a string that says "size hasn't changed" if the size of the structure did not change. This can be disabled by a new --no-show-relative-offset-changes option. * 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. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
.. | ||
libtest0-fn-changed-libapp-v0.so | ||
libtest0-fn-changed-libapp-v1.so | ||
libtest1-fn-removed-v0.so | ||
libtest1-fn-removed-v1.so | ||
libtest2-var-removed-v0.so | ||
libtest2-var-removed-v1.so | ||
libtest3-fn-removed-v0.so | ||
libtest3-fn-removed-v1.so | ||
libtest4-soname-changed-v0.so | ||
libtest4-soname-changed-v1.so | ||
libtest5-fn-changed-libapp-v0.so | ||
libtest5-fn-changed-libapp-v1.so | ||
libtest6-var-changed-libapp-v0.so | ||
libtest6-var-changed-libapp-v1.so | ||
libtest7-fn-changed-libapp-v0.so | ||
libtest7-fn-changed-libapp-v1.so | ||
libtest8-fn-changed-libapp-v0.so | ||
libtest8-fn-changed-libapp-v1.so | ||
libtest9-fn-changed-v0.so | ||
libtest9-fn-changed-v1.so | ||
test0-fn-changed-0.suppr | ||
test0-fn-changed-1.suppr | ||
test0-fn-changed-app | ||
test0-fn-changed-app.cc | ||
test0-fn-changed-libapp-v0.cc | ||
test0-fn-changed-libapp-v1.cc | ||
test0-fn-changed-libapp.h | ||
test0-fn-changed-report-0.txt | ||
test0-fn-changed-report-1.txt | ||
test0-fn-changed-report-2.txt | ||
test0-fn-changed-report-3.txt | ||
test1-fn-removed-app | ||
test1-fn-removed-app.cc | ||
test1-fn-removed-report-0.txt | ||
test1-fn-removed-v0.cc | ||
test1-fn-removed-v1.cc | ||
test2-var-removed-app | ||
test2-var-removed-app.cc | ||
test2-var-removed-report-0.txt | ||
test2-var-removed-v0.cc | ||
test2-var-removed-v1.cc | ||
test3-fn-removed-app | ||
test3-fn-removed-app.cc | ||
test3-fn-removed-report-0.txt | ||
test3-fn-removed-v0.cc | ||
test3-fn-removed-v1.cc | ||
test3-fn-removed-version-script-0 | ||
test3-fn-removed-version-script-1 | ||
test4-soname-changed-app | ||
test4-soname-changed-app.cc | ||
test4-soname-changed-report-0.txt | ||
test4-soname-changed-v0.cc | ||
test4-soname-changed-v1.cc | ||
test5-fn-changed-app | ||
test5-fn-changed-app.cc | ||
test5-fn-changed-libapp-v0.cc | ||
test5-fn-changed-libapp-v0.h | ||
test5-fn-changed-libapp-v1.cc | ||
test5-fn-changed-libapp-v1.h | ||
test5-fn-changed-report-0.txt | ||
test5-fn-changed-report-1.txt | ||
test6-var-changed-app | ||
test6-var-changed-app.cc | ||
test6-var-changed-libapp-v0.cc | ||
test6-var-changed-libapp-v0.h | ||
test6-var-changed-libapp-v1.cc | ||
test6-var-changed-libapp-v1.h | ||
test6-var-changed-report-0.txt | ||
test6-var-changed-report-1.txt | ||
test7-fn-changed-app | ||
test7-fn-changed-app.c | ||
test7-fn-changed-libapp-v0.c | ||
test7-fn-changed-libapp-v0.h | ||
test7-fn-changed-libapp-v1.c | ||
test7-fn-changed-libapp-v1.h | ||
test7-fn-changed-report-0.txt | ||
test7-fn-changed-report-1.txt | ||
test7-fn-changed-report-2.txt | ||
test8-fn-changed-app | ||
test8-fn-changed-app.c | ||
test8-fn-changed-libapp-v0.c | ||
test8-fn-changed-libapp-v0.h | ||
test8-fn-changed-libapp-v1.c | ||
test8-fn-changed-libapp-v1.h | ||
test8-fn-changed-report-0.txt | ||
test9-fn-changed-app | ||
test9-fn-changed-app.cc | ||
test9-fn-changed-report-0.txt | ||
test9-fn-changed-v0.cc | ||
test9-fn-changed-v0.h | ||
test9-fn-changed-v1.cc | ||
test9-fn-changed-v1.h |