diff options
Diffstat (limited to 'gold')
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/layout.cc | 4 | ||||
-rw-r--r-- | gold/options.h | 4 |
3 files changed, 13 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index c759683..b52505f 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,6 +1,11 @@ 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. 2010-01-06 Viktor Kutuzov <vkutuzov@accesssoftek.com> diff --git a/gold/layout.cc b/gold/layout.cc index 13c7f7e..f3deb9a 100644 --- a/gold/layout.cc +++ b/gold/layout.cc @@ -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; diff --git a/gold/options.h b/gold/options.h index 018ec1b..110b91f 100644 --- a/gold/options.h +++ b/gold/options.h @@ -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")); |