* options.h (class General_options): Add --warn-shared-textrel.
	* layout.cc (Layout::finish_dynamic_section): Implement
	--warn-shared-textrel.
This commit is contained in:
Ian Lance Taylor 2010-01-07 06:05:23 +00:00
parent 6eda8c29b8
commit b9674e179b
3 changed files with 13 additions and 0 deletions

View File

@ -1,5 +1,10 @@
2010-01-06 Ian Lance Taylor <iant@google.com>
PR 10980
* options.h (class General_options): Add --warn-shared-textrel.
* layout.cc (Layout::finish_dynamic_section): Implement
--warn-shared-textrel.
PR 10980
* options.h (class General_options): Add --warn-multiple-gp.

View File

@ -3355,6 +3355,10 @@ Layout::finish_dynamic_section(const Input_objects* input_objects,
// Add a DT_TEXTREL for compatibility with older loaders.
odyn->add_constant(elfcpp::DT_TEXTREL, 0);
flags |= elfcpp::DF_TEXTREL;
if (parameters->options().warn_shared_textrel()
&& parameters->options().shared())
gold_warning(_("shared library text segment is not shareable"));
}
if (parameters->options().shared() && this->has_static_tls())
flags |= elfcpp::DF_STATIC_TLS;

View File

@ -968,6 +968,10 @@ class General_options
N_("Warn when skipping an incompatible library"),
N_("Don't warn when skipping an incompatible library"));
DEFINE_bool(warn_shared_textrel, options::TWO_DASHES, '\0', false,
N_("Warn if text segment is not shareable"),
N_("Do not warn if text segment is not shareable (default)"));
DEFINE_bool(whole_archive, options::TWO_DASHES, '\0', false,
N_("Include all archive contents"),
N_("Include only needed archive contents"));