diff --git a/gold/ChangeLog b/gold/ChangeLog index bb035f38f8..63476cda47 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2016-11-21 Cary Coutant + + PR gold/20693 + * gold.cc (queue_middle_tasks): Force valid target earlier. + 2016-11-21 Igor Kudrin * layout.cc: Include windows.h and rpcdce.h (for MinGW32). diff --git a/gold/gold.cc b/gold/gold.cc index 123d79bc17..7b3414f5f9 100644 --- a/gold/gold.cc +++ b/gold/gold.cc @@ -492,6 +492,14 @@ queue_middle_tasks(const General_options& options, if (timer != NULL) timer->stamp(0); + // We have to support the case of not seeing any input objects, and + // generate an empty file. Existing builds depend on being able to + // pass an empty archive to the linker and get an empty object file + // out. In order to do this we need to use a default target. + if (input_objects->number_of_input_objects() == 0 + && layout->incremental_base() == NULL) + parameters_force_valid_target(); + // Add any symbols named with -u options to the symbol table. symtab->add_undefined_symbols_from_command_line(layout); @@ -589,14 +597,6 @@ queue_middle_tasks(const General_options& options, } } - // We have to support the case of not seeing any input objects, and - // generate an empty file. Existing builds depend on being able to - // pass an empty archive to the linker and get an empty object file - // out. In order to do this we need to use a default target. - if (input_objects->number_of_input_objects() == 0 - && layout->incremental_base() == NULL) - parameters_force_valid_target(); - int thread_count = options.thread_count_middle(); if (thread_count == 0) thread_count = std::max(2, input_objects->number_of_input_objects());