summaryrefslogtreecommitdiff
path: root/gold/options.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2008-04-09 00:48:13 +0000
committerIan Lance Taylor <ian@airs.com>2008-04-09 00:48:13 +0000
commitf6a3fd0f05455d0be710cb238d89f8e0005e80ff (patch)
treedb7b9e1a6978d9288b9debc0db66fc0507dd839b /gold/options.cc
parente4c3ed604e50ea55e994790d1cff18f7ab025621 (diff)
downloadbinutils-redhat-f6a3fd0f05455d0be710cb238d89f8e0005e80ff.tar.gz
* options.h (class General_options): Define --wrap as a special
option. Add wrap_symbols_ field. (General_options::any_wrap_symbols): New function. (General_options::is_wrap_symbol): New function. * options.cc (General_options::parse_wrap): New function. (General_options::General_options): Initialize wrap_symbols_. * symtab.cc (Symbol_table::wrap_symbol): New function. (Symbol_table::add_from_object): Handle --wrap. * symtab.h (class Symbol_table): Declare wrap_symbol. * target.h (Target::wrap_char): New function. (Target::Target_info): Add wrap_char field. * i386.cc (Target_i386::i386_info): Initialize wrap_char. * x86_64.cc (Target_x86_64::x86_64_info): Likewise. * testsuite/testfile.cc (Target_test::test_target_info): Likewise.
Diffstat (limited to 'gold/options.cc')
-rw-r--r--gold/options.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/gold/options.cc b/gold/options.cc
index b6e4711881..a80f32cb96 100644
--- a/gold/options.cc
+++ b/gold/options.cc
@@ -325,6 +325,13 @@ General_options::parse_version_script(const char*, const char* arg,
}
void
+General_options::parse_wrap(const char*, const char* arg,
+ Command_line*)
+{
+ this->wrap_symbols_.insert(std::string(arg));
+}
+
+void
General_options::parse_start_group(const char*, const char*,
Command_line* cmdline)
{
@@ -581,7 +588,7 @@ namespace gold
General_options::General_options()
: execstack_status_(General_options::EXECSTACK_FROM_INPUT), static_(false),
- do_demangle_(false)
+ do_demangle_(false), wrap_symbols_()
{
}