This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
This patch adds a task that can be later used in an incremental build to check if a full build is needed and what files needs to be included. In an incremental build, it will be executed after all Read_symbols and before Add_symbols, Add_archive_symbols and Read_script. In non-incremental build, the order shouldn't change. There are two issues. Doing it after Read_symbols is suboptimal, as it already loaded symbols from object files, including the ones that were not modified. Later, I can divide this task into two and plug the input checker between detecting the type of file and loading symbols. A bigger problem is that we do it before Read_scripts thus we won't see input files included by scripts. This can be fixed by dividing the a Read_script task into one that reads script and another the applies it to the layout. Before doing this, as a hack, I could treat every file included by a script as modified. I don't know how plug-ins interacts with this - when do plugins add input objects? Currently I print an error if they do it too late. BTW, `make check` in gold fails (in ver_test_4 assertion failed in parameters.h:84 - gold_assert(this->options_valid())), but it also fails without my patches - it's probably caused by an earlier patch. I could try to look into it tomorrow. 2009-03-17 Mikolaj Zalewski <mikolajz@google.com> * gold.cc (queue_initial_tasks): add Incremental_input_checker task. * incremental.cc (Incremental_input::report_archive): new method. (Incremental_inputs::report_object): new method. (Incremental_inputs::report_script): new method. (Incremental_inputs_checker::run): new method. * incremental.h: new file. * layout.cc (Layout::Layout): handle new incremental_inputs_. * layout.h (Layout::incremental_inputs): new method. (Layout::incremental_inputs_): new field. * plugin.cc (Plugin_manager::add_input_file): check incremental build state. * readsyms.cc (Read_symbols::locks): lock the Incremental_build_checker if any. (Read_symbols::do_read_symbols): use layout->incremental_inputs(). * script.cc (read_input_scipt): add comment.
Attachment:
0002-gold-add-a-task-in-incremental-build-that-can-be-used-to-check-which-inputs-were-modifed.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |