+ Mapfile* mapfile_;
+ Input_group* input_group_;
+ size_t saw_undefined_;
+ Task_token* this_blocker_;
+ 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(Symbol_table* symtab, Layout* layout, Dirsearch* dirpath,
+ int dirindex, Input_objects* input_objects, Mapfile* mapfile,
+ Input_group* input_group, const Input_argument* input_argument,
+ Input_file* input_file, Task_token* this_blocker,
+ Task_token* next_blocker)
+ : symtab_(symtab), layout_(layout), dirpath_(dirpath), dirindex_(dirindex),
+ input_objects_(input_objects), mapfile_(mapfile),
+ 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:
+ Symbol_table* symtab_;
+ Layout* layout_;
+ Dirsearch* dirpath_;
+ int dirindex_;
+ Input_objects* input_objects_;
+ Mapfile* mapfile_;