aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog6
-rw-r--r--gold/layout.cc2
-rw-r--r--gold/options.h3
3 files changed, 11 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 2daf182..8bd1afc 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,9 @@
+2014-12-01 Dimitry Ivanov <dimitry@google.com>
+
+ * layout.cc (Layout::finish_dynamic_section): When '-z global'
+ is specified set DF_1_GLOBAL in DT_FLAGS_1 flags.
+ * options.h (General_options): New -z option (global).
+
2014-12-01 Cary Coutant <ccoutant@google.com>
PR gold/17578
diff --git a/gold/layout.cc b/gold/layout.cc
index a0d7c59..0a71a2a 100644
--- a/gold/layout.cc
+++ b/gold/layout.cc
@@ -4883,6 +4883,8 @@ Layout::finish_dynamic_section(const Input_objects* input_objects,
odyn->add_constant(elfcpp::DT_FLAGS, flags);
flags = 0;
+ if (parameters->options().global())
+ flags |= elfcpp::DF_1_GLOBAL;
if (parameters->options().initfirst())
flags |= elfcpp::DF_1_INITFIRST;
if (parameters->options().interpose())
diff --git a/gold/options.h b/gold/options.h
index cf3b705..6d827f1 100644
--- a/gold/options.h
+++ b/gold/options.h
@@ -1272,6 +1272,9 @@ class General_options
NULL);
DEFINE_bool(execstack, options::DASH_Z, '\0', false,
N_("Mark output as requiring executable stack"), NULL);
+ DEFINE_bool(global, options::DASH_Z, '\0', false,
+ N_("Make symbols in DSO available for subsequently loaded "
+ "objects"), NULL);
DEFINE_bool(initfirst, options::DASH_Z, '\0', false,
N_("Mark DSO to be initialized first at runtime"),
NULL);