summaryrefslogtreecommitdiff
path: root/gold/common.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2006-11-03 18:26:11 +0000
committerIan Lance Taylor <iant@google.com>2006-11-03 18:26:11 +0000
commit750cc302b17eff7da82db0ef4a4c2773d19a69ed (patch)
tree4e24cd2e100a1ded63548d50aae554861aac14db /gold/common.h
parent6e9890411034bc42fab32d8fa4c34541ab25e5b0 (diff)
downloadbinutils-redhat-750cc302b17eff7da82db0ef4a4c2773d19a69ed.tar.gz
Can now do a full static link of hello, world in C or C++
Diffstat (limited to 'gold/common.h')
-rw-r--r--gold/common.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/gold/common.h b/gold/common.h
new file mode 100644
index 0000000000..75237a6a5c
--- /dev/null
+++ b/gold/common.h
@@ -0,0 +1,49 @@
+// common.h -- handle common symbols for gold -*- C++ -*-
+
+#ifndef GOLD_COMMON_H
+#define GOLD_COMMON_H
+
+#include "workqueue.h"
+
+namespace gold
+{
+
+class General_options;
+class Symbol_table;
+
+// This task is used to allocate the common symbols.
+
+class Allocate_commons_task : public Task
+{
+ public:
+ Allocate_commons_task(const General_options& options, Symbol_table* symtab,
+ Layout* layout, Task_token* symtab_lock,
+ Task_token* blocker)
+ : options_(options), symtab_(symtab), layout_(layout),
+ symtab_lock_(symtab_lock), blocker_(blocker)
+ { }
+
+ // The standard Task methods.
+
+ Is_runnable_type
+ is_runnable(Workqueue*);
+
+ Task_locker*
+ locks(Workqueue*);
+
+ void
+ run(Workqueue*);
+
+ private:
+ class Allocate_commons_locker;
+
+ const General_options& options_;
+ Symbol_table* symtab_;
+ Layout* layout_;
+ Task_token* symtab_lock_;
+ Task_token* blocker_;
+};
+
+} // End namespace gold.
+
+#endif // !defined(GOLD_COMMON_H)