aboutsummaryrefslogtreecommitdiff
path: root/gold/target.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-09-23 05:31:48 +0000
committerIan Lance Taylor <iant@google.com>2007-09-23 05:31:48 +0000
commitab5c9e90a6d088f6b09bdc8f6bee09c911789df6 (patch)
tree315b4833fd2030948138845c5f58b05f252dc918 /gold/target.h
parentcb615bc189241f02996054391ade06ba06147147 (diff)
downloadgdb-ab5c9e90a6d088f6b09bdc8f6bee09c911789df6.zip
gdb-ab5c9e90a6d088f6b09bdc8f6bee09c911789df6.tar.gz
gdb-ab5c9e90a6d088f6b09bdc8f6bee09c911789df6.tar.bz2
Use special value when we refer a function symbol in some way other
than calling it.
Diffstat (limited to 'gold/target.h')
-rw-r--r--gold/target.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/gold/target.h b/gold/target.h
index 32ad143..31037ef 100644
--- a/gold/target.h
+++ b/gold/target.h
@@ -114,6 +114,13 @@ class Target
finalize_sections(Layout* layout)
{ return this->do_finalize_sections(layout); }
+ // Return the value to use for a global symbol which needs a special
+ // value in the dynamic symbol table. This will only be called if
+ // the backend first calls symbol->set_needs_dynsym_value().
+ uint64_t
+ dynsym_value(const Symbol* sym) const
+ { return this->do_dynsym_value(sym); }
+
// Return a string to use to fill out a code section. This is
// basically one or more NOPS which must fill out the specified
// length in bytes.
@@ -158,6 +165,11 @@ class Target
do_finalize_sections(Layout*)
{ }
+ // Virtual function which may be implemented by the child class.
+ virtual uint64_t
+ do_dynsym_value(const Symbol*) const
+ { gold_unreachable(); }
+
// Virtual function which must be implemented by the child class if
// needed.
virtual std::string