aboutsummaryrefslogtreecommitdiff
path: root/gold/gold.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2006-09-21 22:13:18 +0000
committerIan Lance Taylor <iant@google.com>2006-09-21 22:13:18 +0000
commita2fb1b05e4af3fac54faac6c07a4717f2cb34aae (patch)
treecab19eb8c3abe76aee65d684dcceee884ed59c61 /gold/gold.cc
parent5ffff7c1d1d2db595e4c23a8c388d3a51d5bb357 (diff)
downloadfsf-binutils-gdb-a2fb1b05e4af3fac54faac6c07a4717f2cb34aae.zip
fsf-binutils-gdb-a2fb1b05e4af3fac54faac6c07a4717f2cb34aae.tar.gz
fsf-binutils-gdb-a2fb1b05e4af3fac54faac6c07a4717f2cb34aae.tar.bz2
New drop, with first cut of section layout code.
Diffstat (limited to 'gold/gold.cc')
-rw-r--r--gold/gold.cc17
1 files changed, 12 insertions, 5 deletions
diff --git a/gold/gold.cc b/gold/gold.cc
index e419f9c..02e7366 100644
--- a/gold/gold.cc
+++ b/gold/gold.cc
@@ -12,6 +12,7 @@
#include "dirsearch.h"
#include "readsyms.h"
#include "symtab.h"
+#include "layout.h"
namespace gold
{
@@ -66,7 +67,8 @@ void
queue_initial_tasks(const General_options& options,
const Dirsearch& search_path,
const Command_line::Input_argument_list& inputs,
- Workqueue* workqueue, Symbol_table* symtab)
+ Workqueue* workqueue, Object_list* input_objects,
+ Symbol_table* symtab)
{
if (inputs.empty())
gold_fatal(_("no input files"), false);
@@ -82,12 +84,13 @@ queue_initial_tasks(const General_options& options,
{
Task_token* next_blocker = new Task_token();
next_blocker->add_blocker();
- workqueue->queue(new Read_symbols(options, symtab, search_path,
- *p, this_blocker, next_blocker));
+ workqueue->queue(new Read_symbols(options, input_objects, symtab,
+ search_path, *p, this_blocker,
+ next_blocker));
this_blocker = next_blocker;
}
- // workqueue->queue(new Layout(options, inputs, this_blocker));
+ workqueue->queue(new Layout_task(options, input_objects, this_blocker));
}
} // end anonymous namespace.
@@ -113,6 +116,9 @@ main(int argc, char** argv)
// The work queue.
gold::Workqueue workqueue(command_line.options());
+ // The list of input objects.
+ Object_list input_objects;
+
// The symbol table.
Symbol_table symtab;
@@ -122,7 +128,8 @@ main(int argc, char** argv)
// Queue up the first set of tasks.
queue_initial_tasks(command_line.options(), search_path,
- command_line.inputs(), &workqueue, &symtab);
+ command_line.inputs(), &workqueue, &input_objects,
+ &symtab);
// Run the main task processing loop.
workqueue.process();