PR gold/12957
* options.h (class General_options): Add -f and -F. * options.cc (General_options::finalize): Fatal error if -f/-F are used without -shared. * layout.cc (Layout::finish_dynamic_section): Implement -f/-F.
This commit is contained in:
parent
ae3a6d4fa3
commit
886288f10b
4 changed files with 36 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
|||
2011-07-02 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
PR gold/12957
|
||||
* options.h (class General_options): Add -f and -F.
|
||||
* options.cc (General_options::finalize): Fatal error if -f/-F
|
||||
are used without -shared.
|
||||
* layout.cc (Layout::finish_dynamic_section): Implement -f/-F.
|
||||
|
||||
2011-07-02 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
* dirsearch.cc (Dir_cache::read_files): Ignore ENOTDIR errors.
|
||||
|
|
|
@ -4218,8 +4218,18 @@ Layout::finish_dynamic_section(const Input_objects* input_objects,
|
|||
}
|
||||
}
|
||||
|
||||
// Add a DT_FLAGS entry. We add it even if no flags are set so that
|
||||
// post-link tools can easily modify these flags if desired.
|
||||
if (parameters->options().filter() != NULL)
|
||||
odyn->add_string(elfcpp::DT_FILTER, parameters->options().filter());
|
||||
if (parameters->options().any_auxiliary())
|
||||
{
|
||||
for (options::String_set::const_iterator p =
|
||||
parameters->options().auxiliary_begin();
|
||||
p != parameters->options().auxiliary_end();
|
||||
++p)
|
||||
odyn->add_string(elfcpp::DT_AUXILIARY, *p);
|
||||
}
|
||||
|
||||
// Add a DT_FLAGS entry if necessary.
|
||||
unsigned int flags = 0;
|
||||
if (have_textrel)
|
||||
{
|
||||
|
|
|
@ -1166,6 +1166,14 @@ General_options::finalize()
|
|||
if (this->pie() && this->relocatable())
|
||||
gold_fatal(_("-pie and -r are incompatible"));
|
||||
|
||||
if (!this->shared())
|
||||
{
|
||||
if (this->filter() != NULL)
|
||||
gold_fatal(_("-F/--filter may not used without -shared"));
|
||||
if (this->any_auxiliary())
|
||||
gold_fatal(_("-f/--auxiliary may not be used without -shared"));
|
||||
}
|
||||
|
||||
// TODO: implement support for -retain-symbols-file with -r, if needed.
|
||||
if (this->relocatable() && this->retain_symbols_file())
|
||||
gold_fatal(_("-retain-symbols-file does not yet work with -r"));
|
||||
|
|
|
@ -735,6 +735,14 @@ class General_options
|
|||
N_("(ARM only) Do not warn about objects with incompatible "
|
||||
"enum sizes"));
|
||||
|
||||
DEFINE_set(auxiliary, options::TWO_DASHES, 'f',
|
||||
N_("Auxiliary filter for shared object symbol table"),
|
||||
N_("SHLIB"));
|
||||
|
||||
DEFINE_string(filter, options::TWO_DASHES, 'F', NULL,
|
||||
N_("Filter for shared object symbol table"),
|
||||
N_("SHLIB"));
|
||||
|
||||
DEFINE_bool(fatal_warnings, options::TWO_DASHES, '\0', false,
|
||||
N_("Treat warnings as errors"),
|
||||
N_("Do not treat warnings as errors"));
|
||||
|
|
Loading…
Add table
Reference in a new issue