diff options
author | Ian Lance Taylor <ian@airs.com> | 2011-07-03 04:46:56 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2011-07-03 04:46:56 +0000 |
commit | 886288f10bd9d10fb446191e5266154c38f0cbad (patch) | |
tree | 26e8bfbc8ec2337e1c3f4212b8a1aa54f46c88d7 /gold/layout.cc | |
parent | ae3a6d4fa3cfdf9daa38946945b2a6aa0c0e9fa8 (diff) | |
download | gdb-886288f10bd9d10fb446191e5266154c38f0cbad.zip gdb-886288f10bd9d10fb446191e5266154c38f0cbad.tar.gz gdb-886288f10bd9d10fb446191e5266154c38f0cbad.tar.bz2 |
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.
Diffstat (limited to 'gold/layout.cc')
-rw-r--r-- | gold/layout.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/gold/layout.cc b/gold/layout.cc index 11dbbef..e6fd7e5 100644 --- a/gold/layout.cc +++ b/gold/layout.cc @@ -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) { |