mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-24 04:29:49 +00:00
Fix bug where -u option with empty archive results in internal error.
gold/ PR gold/20693 * gold.cc (queue_middle_tasks): Force valid target earlier.
This commit is contained in:
parent
d0de53e251
commit
c13b08dbbc
@ -1,3 +1,8 @@
|
|||||||
|
2016-11-21 Cary Coutant <ccoutant@gmail.com>
|
||||||
|
|
||||||
|
PR gold/20693
|
||||||
|
* gold.cc (queue_middle_tasks): Force valid target earlier.
|
||||||
|
|
||||||
2016-11-21 Igor Kudrin <ikudrin@accesssoftek.com>
|
2016-11-21 Igor Kudrin <ikudrin@accesssoftek.com>
|
||||||
|
|
||||||
* layout.cc: Include windows.h and rpcdce.h (for MinGW32).
|
* layout.cc: Include windows.h and rpcdce.h (for MinGW32).
|
||||||
|
16
gold/gold.cc
16
gold/gold.cc
@ -492,6 +492,14 @@ queue_middle_tasks(const General_options& options,
|
|||||||
if (timer != NULL)
|
if (timer != NULL)
|
||||||
timer->stamp(0);
|
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.
|
// Add any symbols named with -u options to the symbol table.
|
||||||
symtab->add_undefined_symbols_from_command_line(layout);
|
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();
|
int thread_count = options.thread_count_middle();
|
||||||
if (thread_count == 0)
|
if (thread_count == 0)
|
||||||
thread_count = std::max(2, input_objects->number_of_input_objects());
|
thread_count = std::max(2, input_objects->number_of_input_objects());
|
||||||
|
Loading…
Reference in New Issue
Block a user