Snapshot. Now able to produce a minimal executable which actually
[external/binutils.git] / gold / reloc.h
1 // reloc.h -- relocate input files for gold   -*- C++ -*-
2
3 #ifndef GOLD_RELOC_H
4 #define GOLD_RELOC_H
5
6 #include "workqueue.h"
7
8 namespace gold
9 {
10
11 class Relocate_task : public Task
12 {
13  public:
14   Relocate_task(const General_options& options, const Symbol_table* symtab,
15                 const Stringpool* sympool, Object* object, Output_file* of,
16                 Task_token* final_blocker)
17     : options_(options), symtab_(symtab), sympool_(sympool), object_(object),
18       of_(of), final_blocker_(final_blocker)
19   { }
20
21   // The standard Task methods.
22
23   Is_runnable_type
24   is_runnable(Workqueue*);
25
26   Task_locker*
27   locks(Workqueue*);
28
29   void
30   run(Workqueue*);
31
32  private:
33   class Relocate_locker;
34
35   const General_options& options_;
36   const Symbol_table* symtab_;
37   const Stringpool* sympool_;
38   Object* object_;
39   Output_file* of_;
40   Task_token* final_blocker_;
41 };
42
43 } // End namespace gold.
44
45 #endif // !defined(GOLD_RELOC_H)