* options.h (class General_options): Add -Bgroup.
* options.cc (General_options::finalize): If -Bgroup is set,
default to --unresolved-symbols=report-all.
* layout.cc (Layout::finish_dynamic_section): Implement -Bgroup.
* target-reloc.h (issue_undefined_symbol_error): Handle
--unresolved-symbols=report-all.
+2011-07-11 Ian Lance Taylor <iant@google.com>
+
+ PR gold/12979
+ * options.h (class General_options): Add -Bgroup.
+ * options.cc (General_options::finalize): If -Bgroup is set,
+ default to --unresolved-symbols=report-all.
+ * layout.cc (Layout::finish_dynamic_section): Implement -Bgroup.
+ * target-reloc.h (issue_undefined_symbol_error): Handle
+ --unresolved-symbols=report-all.
+
2011-07-08 Ian Lance Taylor <iant@google.com>
PR gold/11985
flags |= elfcpp::DF_1_ORIGIN;
if (parameters->options().now())
flags |= elfcpp::DF_1_NOW;
+ if (parameters->options().Bgroup())
+ flags |= elfcpp::DF_1_GROUP;
if (flags != 0)
odyn->add_constant(elfcpp::DT_FLAGS_1, flags);
}
}
}
+ // -Bgroup implies --unresolved-symbols=report-all.
+ if (this->Bgroup() && !this->user_set_unresolved_symbols())
+ this->set_unresolved_symbols("report-all");
+
+ // -shared implies --allow-shlib-undefined. Currently
+ // ---allow-shlib-undefined controls warnings issued based on the
+ // -symbol table. --unresolved-symbols controls warnings issued
+ // -based on relocations.
if (this->shared() && !this->user_set_allow_shlib_undefined())
this->set_allow_shlib_undefined(true);
DEFINE_bool_alias(dn, Bdynamic, options::ONE_DASH, '\0',
N_("alias for -Bstatic"), NULL, true);
+ DEFINE_bool(Bgroup, options::ONE_DASH, '\0', false,
+ N_("Use group name lookup rules for shared library"), NULL);
+
DEFINE_bool(Bsymbolic, options::ONE_DASH, '\0', false,
N_("Bind defined symbols locally"), NULL);
{
if (strcmp(u, "ignore-all") == 0)
return false;
+ if (strcmp(u, "report-all") == 0)
+ return true;
if (strcmp(u, "ignore-in-object-files") == 0 && !sym->in_dyn())
return false;
if (strcmp(u, "ignore-in-shared-libs") == 0 && !sym->in_reg())