PR 10980
* options.h (class General_options): Add --allow-multiple-definition and -z muldefs. * resolve.cc (Symbol_table::should_override): Don't warn about a multiple symbol definition if --allow-multiple-definition or -z muldefs.
This commit is contained in:
parent
a0f1928042
commit
30bc8c4670
|
@ -1,5 +1,12 @@
|
||||||
2010-01-04 Ian Lance Taylor <iant@google.com>
|
2010-01-04 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
|
PR 10980
|
||||||
|
* options.h (class General_options): Add
|
||||||
|
--allow-multiple-definition and -z muldefs.
|
||||||
|
* resolve.cc (Symbol_table::should_override): Don't warn about a
|
||||||
|
multiple symbol definition if --allow-multiple-definition or -z
|
||||||
|
muldefs.
|
||||||
|
|
||||||
PR 10980
|
PR 10980
|
||||||
* options.h (class General_options): Add --add-needed and
|
* options.h (class General_options): Add --add-needed and
|
||||||
--copy-dt-needed-entries. Tweak --as-needed help entry.
|
--copy-dt-needed-entries. Tweak --as-needed help entry.
|
||||||
|
|
|
@ -584,6 +584,10 @@ class General_options
|
||||||
N_("Not supported"),
|
N_("Not supported"),
|
||||||
N_("Do not copy DT_NEEDED tags from shared libraries"));
|
N_("Do not copy DT_NEEDED tags from shared libraries"));
|
||||||
|
|
||||||
|
DEFINE_bool(allow_multiple_definition, options::TWO_DASHES, '\0', false,
|
||||||
|
N_("Allow multiple definitions of symbols"),
|
||||||
|
N_("Do not allow multiple definitions"));
|
||||||
|
|
||||||
DEFINE_bool(allow_shlib_undefined, options::TWO_DASHES, '\0', false,
|
DEFINE_bool(allow_shlib_undefined, options::TWO_DASHES, '\0', false,
|
||||||
N_("Allow unresolved references in shared libraries"),
|
N_("Allow unresolved references in shared libraries"),
|
||||||
N_("Do not allow unresolved references in shared libraries"));
|
N_("Do not allow unresolved references in shared libraries"));
|
||||||
|
@ -998,6 +1002,11 @@ class General_options
|
||||||
NULL);
|
NULL);
|
||||||
DEFINE_uint64(max_page_size, options::DASH_Z, '\0', 0,
|
DEFINE_uint64(max_page_size, options::DASH_Z, '\0', 0,
|
||||||
N_("Set maximum page size to SIZE"), N_("SIZE"));
|
N_("Set maximum page size to SIZE"), N_("SIZE"));
|
||||||
|
DEFINE_bool(muldefs, options::DASH_Z, '\0', false,
|
||||||
|
N_("Allow multiple definitions of symbols"),
|
||||||
|
NULL);
|
||||||
|
// copyreloc is here in the list because there is only -z
|
||||||
|
// nocopyreloc, not -z copyreloc.
|
||||||
DEFINE_bool(copyreloc, options::DASH_Z, '\0', true,
|
DEFINE_bool(copyreloc, options::DASH_Z, '\0', true,
|
||||||
NULL,
|
NULL,
|
||||||
N_("Do not create copy relocs"));
|
N_("Do not create copy relocs"));
|
||||||
|
|
|
@ -440,9 +440,11 @@ Symbol_table::should_override(const Symbol* to, unsigned int frombits,
|
||||||
|| (object != NULL && object->just_symbols()))
|
|| (object != NULL && object->just_symbols()))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Symbol_table::report_resolve_problem(true,
|
if (!parameters->options().allow_multiple_definition()
|
||||||
_("multiple definition of '%s'"),
|
&& !parameters->options().muldefs())
|
||||||
to, defined, object);
|
Symbol_table::report_resolve_problem(true,
|
||||||
|
_("multiple definition of '%s'"),
|
||||||
|
to, defined, object);
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
case WEAK_DEF * 16 + DEF:
|
case WEAK_DEF * 16 + DEF:
|
||||||
|
|
Loading…
Reference in New Issue