const diff_stats& stats = const_cast<corpus_diff*>(this)->
apply_filters_and_suppressions_before_reporting();
- return (soname_changed()
+ return (soname_changed() || architecture_changed()
|| stats.net_num_func_removed() != 0
|| (stats.num_func_with_virtual_offset_changes() != 0
// If all reports about functions with sub-type changes
const diff_stats& stats = const_cast<corpus_diff*>(this)->
apply_filters_and_suppressions_before_reporting();
- return (stats.net_num_func_changed()
- || stats.net_num_vars_changed()
- || stats.net_num_func_added()
- || stats.net_num_added_func_syms()
- || stats.net_num_func_removed()
- || stats.net_num_removed_func_syms()
- || stats.net_num_vars_added()
- || stats.net_num_added_var_syms()
- || stats.net_num_removed_var_syms());
+ return (architecture_changed()
+ || soname_changed()
+ || stats.net_num_func_changed()
+ || stats.net_num_vars_changed()
+ || stats.net_num_func_added()
+ || stats.net_num_added_func_syms()
+ || stats.net_num_func_removed()
+ || stats.net_num_removed_func_syms()
+ || stats.net_num_vars_added()
+ || stats.net_num_added_var_syms()
+ || stats.net_num_vars_removed()
+ || stats.net_num_removed_var_syms());
}
/// "Less than" functor to compare instances of @ref function_decl.
test-diff-pkg/tarpkg-1-dir2.tar.gz \
test-diff-pkg/tarpkg-1-report-0.txt \
test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt \
+test-diff-pkg/dbus-glib-0.104-3.fc23.armv7hl.rpm \
+test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64--dbus-glib-0.104-3.fc23.armv7hl-report-0.txt \
\
test-fedabipkgdiff/dbus-glib-0.104-3.fc23.x86_64.rpm \
test-fedabipkgdiff/dbus-glib-debuginfo-0.104-3.fc23.x86_64.rpm \
--- /dev/null
+================ changes of 'dbus-binding-tool'===============
+ ELF architecture changed
+ Functions changes summary: 0 Removed, 0 Changed, 0 Added function
+ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+ Function symbols changes summary: 0 Removed, 5 Added function symbols not referenced by debug info
+ Variable symbols changes summary: 2 Removed, 0 Added variable symbols not referenced by debug info
+
+ architecture changed from 'elf-amd-x86_64' to 'elf-arm'
+
+ 5 Added function symbols not referenced by debug info:
+
+ __libc_csu_fini
+ __libc_csu_init
+ base_info_ref
+ base_info_unref
+ main
+
+ 2 Removed variable symbols not referenced by debug info:
+
+ stderr
+ stdout
+
+================ end of changes of 'dbus-binding-tool'===============
+
+================ changes of 'libdbus-glib-1.so.2.3.2'===============
+ ELF architecture changed
+ Functions changes summary: 0 Removed, 0 Changed, 0 Added function
+ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+
+ architecture changed from 'elf-amd-x86_64' to 'elf-arm'
+
+================ end of changes of 'libdbus-glib-1.so.2.3.2'===============
+
"data/test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt",
"output/test-diff-pkg/test-dbus-glib-0.80-3.fc12.x86_64-report-0.txt"
},
+ {
+ "data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64.rpm",
+ "data/test-diff-pkg/dbus-glib-0.104-3.fc23.armv7hl.rpm",
+ "--no-default-suppression",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "data/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64--dbus-glib-0.104-3.fc23.armv7hl-report-0.txt",
+ "output/test-diff-pkg/dbus-glib-0.104-3.fc23.x86_64--dbus-glib-0.104-3.fc23.armv7hl-report-0.txt"
+ },
#endif //WITH_RPM
#ifdef WITH_DEB
// Now really do the diffing.
corpus_diff_sptr changes = compute_diff(lib1_corpus, lib2_corpus, ctxt);
- const corpus_diff::diff_stats& s =
- changes->apply_filters_and_suppressions_before_reporting();
-
- if (changes->soname_changed()
- || s.num_func_removed() != 0
- || s.num_vars_removed() != 0
- || s.num_func_syms_removed() != 0
- || s.num_var_syms_removed() != 0
- || s.net_num_func_changed() != 0
- || s.net_num_vars_changed() != 0)
+ if (changes->has_net_changes())
{
string app_path = opts.app_path,
lib1_path = opts.lib1_path,
status |= abigail::tools_utils::ABIDIFF_ABI_CHANGE;
- bool abi_broke_for_sure = changes->soname_changed()
- || s.num_vars_removed()
- || s.num_func_removed()
- || s.num_var_syms_removed()
- || s.num_func_syms_removed();
+ bool abi_broke_for_sure = changes->has_incompatible_changes();
cout << "ELF file '" << app_path << "'";
if (abi_broke_for_sure)