aboutsummaryrefslogtreecommitdiff
path: root/gold/readsyms.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2008-02-28 19:46:06 +0000
committerIan Lance Taylor <iant@google.com>2008-02-28 19:46:06 +0000
commitda769d5629564b82d4eec1b256ffc562d5c01624 (patch)
treec575a166927823074cd07dad6347b0e90072340f /gold/readsyms.h
parenta7dfd0102bbf259cad78b322915523adb366837a (diff)
downloadfsf-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.h47
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)