diff options
author | Nick Clifton <nickc@redhat.com> | 2010-11-03 17:18:23 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2010-11-03 17:18:23 +0000 |
commit | e597fa086665187c4d0dea1c45d5c044e297af66 (patch) | |
tree | 425160e0e61155ace9a561b8166d4f3fc29c067c /gold/script.h | |
parent | 74cea91bbb82d5e4afa212b67eaf53710fd99dcd (diff) | |
download | gdb-e597fa086665187c4d0dea1c45d5c044e297af66.zip gdb-e597fa086665187c4d0dea1c45d5c044e297af66.tar.gz gdb-e597fa086665187c4d0dea1c45d5c044e297af66.tar.bz2 |
PR ld/12001
* ldlang.c (ldlang_def_chain_list): New variable. Contains a list
of symbols defined via the --defsym command line option and
currently waiting assignment.
(insert_defined): Add a defined symbol to the symbol table.
(ldlang_add_def): Add a entry to the ldlang_def_chain_list.
(lang_place_defineds): Walk ldlang_def_chain_list defining the
symbols.
(lang_process): Call lang_place_defineds.
(lang_add_assignment): If the assignment has come from a --defsym
command line option then call lang_add_def.
* ld-script/default-script2.d: Fix expected address for text
section.
PR gold/12001
* script.h (class Symbol_assignment: name): New member. Returns
the name of the symbol.
* scrfipt.cc (Script_options::is_pending_assignment): New member.
Returns true if the given symbol name is on the list of
assignments wating to be processed.
* archive.cc (should_incldue_member): If the symbol is undefined,
check to see if it is on the list of symbols pending assignment.
Diffstat (limited to 'gold/script.h')
-rw-r--r-- | gold/script.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gold/script.h b/gold/script.h index 70e3a59..e1134ca 100644 --- a/gold/script.h +++ b/gold/script.h @@ -345,6 +345,10 @@ class Symbol_assignment set_if_absolute(Symbol_table*, const Layout*, bool is_dot_available, uint64_t dot_value); + const std::string& + name() const + { return this->name_; } + // Print the assignment to the FILE. This is for debugging. void print(FILE*) const; @@ -423,6 +427,10 @@ class Script_options add_symbol_assignment(const char* name, size_t length, bool is_defsym, Expression* value, bool provide, bool hidden); + // Look for an assigned symbol. + bool + is_pending_assignment(const char* name); + // Add a reference to a symbol. void add_symbol_reference(const char* name, size_t length); |