From: ian Date: Thu, 7 Jan 2010 15:05:23 +0000 (+0000) Subject: PR 10980 X-Git-Url: http://git.osdn.net/view?p=pf3gnuchains%2Fpf3gnuchains3x.git;a=commitdiff_plain;h=c7194a1dae634101d46b0b289a646a7940176dc5 PR 10980 * options.h (class General_options): Add --warn-shared-textrel. * layout.cc (Layout::finish_dynamic_section): Implement --warn-shared-textrel. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index c759683765..b52505ff8d 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,6 +1,11 @@ 2010-01-06 Ian Lance Taylor 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 diff --git a/gold/layout.cc b/gold/layout.cc index 13c7f7eab0..f3deb9aa3e 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 018ec1b505..110b91f813 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"));