diff options
author | Ian Lance Taylor <iant@google.com> | 2008-02-28 19:46:06 +0000 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2008-02-28 19:46:06 +0000 |
commit | da769d5629564b82d4eec1b256ffc562d5c01624 (patch) | |
tree | c575a166927823074cd07dad6347b0e90072340f /gold/readsyms.h | |
parent | a7dfd0102bbf259cad78b322915523adb366837a (diff) | |
download | fsf-binutils-gdb-da769d5629564b82d4eec1b256ffc562d5c01624.zip fsf-binutils-gdb-da769d5629564b82d4eec1b256ffc562d5c01624.tar.gz fsf-binutils-gdb-da769d5629564b82d4eec1b256ffc562d5c01624.tar.bz2 |
Read input scripts which look like input objects with proper
serialization.
Diffstat (limited to 'gold/readsyms.h')
-rw-r--r-- | gold/readsyms.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gold/readsyms.h b/gold/readsyms.h index 7a4db41..fa870b9 100644 --- a/gold/readsyms.h +++ b/gold/readsyms.h @@ -220,6 +220,53 @@ class Finish_group : public Task Task_token* next_blocker_; }; +// This class is used to read a file which was not recognized as an +// object or archive. It tries to read it as a linker script, using +// the tokens to serialize with the calls to Add_symbols. + +class Read_script : public Task +{ + public: + Read_script(const General_options& options, Symbol_table* symtab, + Layout* layout, Dirsearch* dirpath, Input_objects* input_objects, + Input_group* input_group, const Input_argument* input_argument, + Input_file* input_file, Task_token* this_blocker, + Task_token* next_blocker) + : options_(options), symtab_(symtab), layout_(layout), dirpath_(dirpath), + input_objects_(input_objects), input_group_(input_group), + input_argument_(input_argument), input_file_(input_file), + this_blocker_(this_blocker), next_blocker_(next_blocker) + { } + + ~Read_script(); + + // The standard Task methods. + + Task_token* + is_runnable(); + + void + locks(Task_locker*); + + void + run(Workqueue*); + + std::string + get_name() const; + + private: + const General_options& options_; + Symbol_table* symtab_; + Layout* layout_; + Dirsearch* dirpath_; + Input_objects* input_objects_; + Input_group* input_group_; + const Input_argument* input_argument_; + Input_file* input_file_; + Task_token* this_blocker_; + Task_token* next_blocker_; +}; + } // end namespace gold #endif // !defined(GOLD_READSYMS_H) |