aboutsummaryrefslogtreecommitdiff
path: root/gold/target.h
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
commit0864d55193d9ad757c26cba29da1de1c00be4ba8 (patch)
treebd0b661d221890ae9c1e7211dd2a861f5140f2a7 /gold/target.h
parent789aa6de31480d7b322e515b43451b1b1108fedc (diff)
downloadgdb-0864d55193d9ad757c26cba29da1de1c00be4ba8.zip
gdb-0864d55193d9ad757c26cba29da1de1c00be4ba8.tar.gz
gdb-0864d55193d9ad757c26cba29da1de1c00be4ba8.tar.bz2
* 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/target.h')
-rw-r--r--gold/target.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/gold/target.h b/gold/target.h
index a71cbc6..30fa008 100644
--- a/gold/target.h
+++ b/gold/target.h
@@ -132,6 +132,15 @@ class Target
is_default_stack_executable() const
{ return this->pti_->is_default_stack_executable; }
+ // Return a character which may appear as a prefix for a wrap
+ // symbol. If this character appears, we strip it when checking for
+ // wrapping and add it back when forming the final symbol name.
+ // This should be '\0' if not special prefix is required, which is
+ // the normal case.
+ char
+ wrap_char() const
+ { return this->pti_->wrap_char; }
+
// This is called to tell the target to complete any sections it is
// handling. After this all sections must have their final size.
void
@@ -179,6 +188,8 @@ class Target
// Whether an object file with no .note.GNU-stack sections implies
// that the stack should be executable.
bool is_default_stack_executable;
+ // Prefix character to strip when checking for wrapping.
+ char wrap_char;
// The default dynamic linker name.
const char* dynamic_linker;
// The default text segment address.