diff options
Diffstat (limited to 'gold/gold.cc')
-rw-r--r-- | gold/gold.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gold/gold.cc b/gold/gold.cc index f455ec8..f810bf9 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*>(¶meters->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*>(¶meters->target()); workqueue->queue(new Task_function(new Layout_task_runner(options, input_objects, symtab, |