From fb2578353335091488c8a5a02e8275a7c139f51a Mon Sep 17 00:00:00 2001 From: Dmitriy Ivanov Date: Mon, 1 Dec 2014 13:37:21 -0800 Subject: [PATCH] Add support for -z global. gold/ * 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). --- gold/ChangeLog | 6 ++++++ gold/layout.cc | 2 ++ gold/options.h | 3 +++ 3 files changed, 11 insertions(+) diff --git a/gold/ChangeLog b/gold/ChangeLog index 2daf182d951..8bd1afc8c44 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2014-12-01 Dimitry Ivanov + + * 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 PR gold/17578 diff --git a/gold/layout.cc b/gold/layout.cc index a0d7c591cb0..0a71a2a13b8 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 cf3b7056d22..6d827f187bc 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); -- 2.30.2