Do not show information about where in the *second shared library*
the respective type was changed.
+ * ``--ignore-soname``
+
+ Ignore differences in the SONAME when doing a comparison
+
* ``--weak-mode``
This triggers the weak mode of ``abicompat``. In this mode, only
Show sizes and offsets in decimal base. This option is activated
by default.
+ * ``--ignore-soname``
+
+ Ignore differences in the SONAME when doing a comparison
+
* ``--no-show-relative-offset-changes``
Without this option, when the offset of a data member changes,
ctxt->set_corpus_diff(r);
- r->priv_->sonames_equal_ = f->get_soname() == s->get_soname();
+ if(ctxt->show_soname_change())
+ r->priv_->sonames_equal_ = f->get_soname() == s->get_soname();
+ else
+ r->priv_->sonames_equal_ = true;
r->priv_->architectures_equal_ =
f->get_architecture_name() == s->get_architecture_name();
bool redundant_opt_set;
bool no_redundant_opt_set;
bool show_locs;
+ bool ignore_soname;
options(const char* program_name)
:prog_name(program_name),
show_redundant(true),
redundant_opt_set(),
no_redundant_opt_set(),
- show_locs(true)
+ show_locs(true),
+ ignore_soname(false)
{}
}; // end struct options
<< " --suppressions|--suppr <path> specify a suppression file\n"
<< " --no-redundant do not display redundant changes\n"
<< " --no-show-locs do now show location information\n"
+ << " --ignore-soname do not take the SONAMEs into account\n"
<< " --redundant display redundant changes (this is the default)\n"
<< " --weak-mode check compatibility between the application and "
"just one version of the library.\n"
}
else if (!strcmp(argv[i], "--no-show-locs"))
opts.show_locs = false;
+ else if (!strcmp(argv[i], "--ignore-soname"))
+ opts.ignore_soname=true;
else if (!strcmp(argv[i], "--help")
|| !strcmp(argv[i], "-h"))
{
ctxt->show_linkage_names(true);
ctxt->show_redundant_changes(opts.show_redundant);
ctxt->show_locs(opts.show_locs);
+ // Intentional logic flip of ignore_soname
+ ctxt->show_soname_change(!opts.ignore_soname);
ctxt->switch_categories_off
(abigail::comparison::ACCESS_CHANGE_CATEGORY
| abigail::comparison::COMPATIBLE_TYPE_CHANGE_CATEGORY
bool no_default_supprs;
bool no_arch;
bool no_corpus;
+ bool ignore_soname;
bool leaf_changes_only;
bool fail_no_debug_info;
bool show_hexadecimal_values;
no_default_supprs(),
no_arch(),
no_corpus(),
+ ignore_soname(false),
leaf_changes_only(),
fail_no_debug_info(),
show_hexadecimal_values(),
"default suppression specification\n"
<< " --no-architecture do not take architecture in account\n"
<< " --no-corpus-path do not take the path to the corpora into account\n"
+ << " --ignore-soname do not take the SONAMEs into account\n"
<< " --fail-no-debug-info bail out if no debug info was found\n"
<< " --leaf-changes-only|-l only show leaf changes, "
"so no change impact analysis (implies --redundant)\n"
opts.no_arch = true;
else if (!strcmp(argv[i], "--no-corpus-path"))
opts.no_corpus = true;
+ else if (!strcmp(argv[i], "--ignore-soname"))
+ opts.ignore_soname = true;
else if (!strcmp(argv[i], "--fail-no-debug-info"))
opts.fail_no_debug_info = true;
else if (!strcmp(argv[i], "--leaf-changes-only")
ctxt->show_added_vars(opts.show_all_vars || opts.show_added_vars);
ctxt->show_linkage_names(opts.show_linkage_names);
ctxt->show_locs(opts.show_locs);
+ // Intentional logic flip of ignore_soname
+ ctxt->show_soname_change(!opts.ignore_soname);
// So when we are showing only leaf changes, we want to show
// redundant changes because of this: Suppose several functions have
// their return type changed from void* to int*. We want them all