diff options
author | Ian Lance Taylor <ian@airs.com> | 2009-05-15 17:01:04 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2009-05-15 17:01:04 +0000 |
commit | 072fe7ce7a6d9d6b401284de5858495157a35df3 (patch) | |
tree | ca7231716f83cae7acf0c8b04566ffcef0f4c762 /gold/readsyms.cc | |
parent | 17a37d488c16b07d3a1f069ef727e2e53c622722 (diff) | |
download | gdb-072fe7ce7a6d9d6b401284de5858495157a35df3.zip gdb-072fe7ce7a6d9d6b401284de5858495157a35df3.tar.gz gdb-072fe7ce7a6d9d6b401284de5858495157a35df3.tar.bz2 |
* gold.h (Incremental_argument_list): Remove (invalid) forward
declaration.
* incremental.cc (Incremental_inputs::report_achive): New method.
(Incremental_inputs::report_object): New method.
(Incremental_inputs::report_script): New method.
(Incremental_inputs::finalize_inputs): New method.
(Incremental_inputs::finalize): Call finalize_inputs().
(Incremental_inputs::sized_create_incremental_inputs_section_data):
Create inputs entries.
* incremental.h (Incremental_input_type): New enum.
(Incremental_inputs::Incremental_input): Initialize new fields.
(Incremental_inputs::report_inputs): New method.
(Incremental_inputs::report_achive): New method.
(Incremental_inputs::report_object): New method.
(Incremental_inputs::report_script): New method.
(Incremental_inputs::finalize_inputs): New method.
(Incremental_inputs::Input_info): New struct.
(Incremental_inputs::Input_info_map): New typedef.
(Incremental_inputs::lock_): New field.
(Incremental_inputs::Inputs_): New field.
(Incremental_inputs::Inputs_map): New field.
* main.cc (main): Call Incremental_input::report_inputs.
* options.h (Input_argument_list): Typedef moved from
Input_arguments.
(Input_file_group::Files): Remove, use ::Input_argument_list.
(Input_file_group::Input_argument_list): Remove, use
::Input_argument_list.
* plugin.cc (Plugin_manager::add_input_file): Add error in
incremental build.
* read_syms.cc (do_read_syms): Call Incremental_input::report_*
functions.
* script.cc (read_input_script): Call
Incremental_input::report_script.
* script.h (Script_info): New class.
Diffstat (limited to 'gold/readsyms.cc')
-rw-r--r-- | gold/readsyms.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/gold/readsyms.cc b/gold/readsyms.cc index b6da88d..c05d5a3 100644 --- a/gold/readsyms.cc +++ b/gold/readsyms.cc @@ -33,6 +33,8 @@ #include "script.h" #include "readsyms.h" #include "plugin.h" +#include "layout.h" +#include "incremental.h" namespace gold { @@ -199,7 +201,7 @@ Read_symbols::do_read_symbols(Workqueue* workqueue) { bool is_thin_archive = memcmp(ehdr, Archive::armagt, Archive::sarmag) == 0; - if (is_thin_archive + if (is_thin_archive || memcmp(ehdr, Archive::armag, Archive::sarmag) == 0) { // This is an archive. @@ -207,7 +209,13 @@ Read_symbols::do_read_symbols(Workqueue* workqueue) input_file, is_thin_archive, this->dirpath_, this); arch->setup(); - + + if (this->layout_->incremental_inputs()) + { + const Input_argument* ia = this->input_argument_; + this->layout_->incremental_inputs()->report_archive(ia, arch); + } + // Unlock the archive so it can be used in the next task. arch->unlock(this); @@ -280,6 +288,12 @@ Read_symbols::do_read_symbols(Workqueue* workqueue) Read_symbols_data* sd = new Read_symbols_data; obj->read_symbols(sd); + if (this->layout_->incremental_inputs()) + { + const Input_argument* ia = this->input_argument_; + this->layout_->incremental_inputs()->report_object(ia, obj); + } + // Opening the file locked it, so now we need to unlock it. We // need to unlock it before queuing the Add_symbols task, // because the workqueue doesn't know about our lock on the |