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]

[PATCH] gold: create .gnu_incremental_inputs entries for inputs


  This patch stores some data for inputs entries. It does not yet
create entries for archive members, doesn't store the extra type
specific information nor save the timestamp, but all this can be fixed
later if the approach in this patch is good. A file added by a plugin
is currently  an error - I will look into plug-ins later.
  Incremental link needs more information about input element that I
have found gold to save, so I'm storing the extra information in a map
in Incremental_inputs. It could be added as extra fields to
Input_argument, but then the structure wouldn't be immutable anymore
and there would be a slight memory overhead for non-incremental
builds.

2009-05-11  Mikolaj Zalewski  <mikolajz@google.com>

	* 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

Attachment: 0001-gold-create-.gnu_incremental_inputs-entries-for-inputs.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]