summaryrefslogtreecommitdiffstats
path: root/gold/gold.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gold/gold.cc')
-rw-r--r--gold/gold.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/gold/gold.cc b/gold/gold.cc
index f455ec8a41..f810bf913b 100644
--- a/gold/gold.cc
+++ b/gold/gold.cc
@@ -679,6 +679,8 @@ queue_middle_tasks(const General_options& options,
// Attach sections to segments.
layout->attach_sections_to_segments();
+ // TODO(csilvers): figure out a more principled way to get the target
+ Target* target = const_cast<Target*>(&parameters->target());
if (!parameters->options().relocatable())
{
// Predefine standard symbols.
@@ -687,6 +689,9 @@ queue_middle_tasks(const General_options& options,
// Define __start and __stop symbols for output sections where
// appropriate.
layout->define_section_symbols(symtab);
+
+ // Define target-specific symbols.
+ target->define_standard_symbols(symtab, layout);
}
// Make sure we have symbols for any required group signatures.
@@ -768,8 +773,6 @@ queue_middle_tasks(const General_options& options,
// When all those tasks are complete, we can start laying out the
// output file.
- // TODO(csilvers): figure out a more principled way to get the target
- Target* target = const_cast<Target*>(&parameters->target());
workqueue->queue(new Task_function(new Layout_task_runner(options,
input_objects,
symtab,
OpenPOWER on IntegriCloud