summaryrefslogtreecommitdiff
path: root/rld-symbols.h
diff options
context:
space:
mode:
Diffstat (limited to 'rld-symbols.h')
-rw-r--r--rld-symbols.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/rld-symbols.h b/rld-symbols.h
index dcb0d3e..e602e36 100644
--- a/rld-symbols.h
+++ b/rld-symbols.h
@@ -58,14 +58,15 @@ namespace rld
/**
* Construct an exported symbol with a object file.
*/
- symbol (const std::string& name,
+ symbol (int index,
+ const std::string& name,
files::object& object,
const elf::elf_sym& esym);
/**
- * Construct an unresolved symbol with no object file.
+ * Construct a symbol with no object file and an ELF index.
*/
- symbol (const std::string& name, const elf::elf_sym& esym);
+ symbol (int index, const std::string& name, const elf::elf_sym& esym);
/**
* Construct a linker symbol that is internally created.
@@ -80,6 +81,11 @@ namespace rld
elf::elf_addr value = 0);
/**
+ * The symbol's index in the symtab section of the ELF file.
+ */
+ int index () const;
+
+ /**
* The symbol's name.
*/
const std::string& name () const;
@@ -105,9 +111,9 @@ namespace rld
int binding () const;
/**
- * The synbol's section index.
+ * The symbol's section index.
*/
- int index () const;
+ int section_index () const;
/**
* The value of the symbol.
@@ -159,6 +165,7 @@ namespace rld
private:
+ int index_; //< The symbol's index in the ELF file.
std::string name_; //< The name of the symbol.
std::string demangled_; //< If a C++ symbol the demangled name.
files::object* object_; //< The object file containing the symbol.