Commit ea964f22 authored by Vivek Das Mohapatra's avatar Vivek Das Mohapatra
Browse files

Implement and document -z unique / -z nounique handling in gold

parent af6224a7
2020-12-09 Vivek Das Mohapatra <vivek@collabora.com>
Implement -z unique / -z nounique options.
* layout.cc (Layout::finish_dynamic_section): Set DF_GNU_1_UNIQUE.
* options.h (class General_options): Handle -z unique, -z nounique.
2020-12-07 Alan Modra <amodra@gmail.com>
* plugin.cc (Plugin_recorder::init): Replace strncpy with memcpy.
......
......@@ -5371,6 +5371,12 @@ Layout::finish_dynamic_section(const Input_objects* input_objects,
flags |= elfcpp::DF_1_PIE;
if (flags != 0)
odyn->add_constant(elfcpp::DT_FLAGS_1, flags);
flags = 0;
if (parameters->options().unique())
flags |= elfcpp::DF_GNU_1_UNIQUE;
if (flags != 0)
odyn->add_constant(elfcpp::DT_GNU_FLAGS_1, flags);
}
// Set the size of the _DYNAMIC symbol table to be the size of the
......
......@@ -1469,6 +1469,9 @@ class General_options
DEFINE_bool(interpose, options::DASH_Z, '\0', false,
N_("Mark object to interpose all DSOs but executable"),
NULL);
DEFINE_bool(unique, options::DASH_Z, '\0', false,
N_("Mark DSO to be loaded at most once, and only in the main namespace"),
N_("Do not mark the DSO as one to be loaded only in the main namespace"));
DEFINE_bool_alias(lazy, now, options::DASH_Z, '\0',
N_("Mark object for lazy runtime binding"),
NULL, true);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment