aboutsummaryrefslogtreecommitdiff
path: root/gold/incremental.cc
AgeCommit message (Collapse)AuthorFilesLines
2009-10-09elfcpp/:Ian Lance Taylor1-13/+146
* elf_file.h: (class Elf_strtab): New class. gold/: * gold.cc: (queue_initial_tasks): Pass incremental_inputs to Incremental_checker. * incremental.cc: (INCREMENTAL_LINK_VERSION): Change type to unsigned int. (class Incremental_inputs_header): New class. (Incremental_inputs_header_writer): Edit comment. (Incremental_inputs_entry): New class. (Incremental_inputs_entry_writer): Edit comment. (Sized_incremental_binary::do_find_incremental_inputs_section): Add *strtab_shndx parameter, fill it. (Sized_incremental_binary::do_check_inputs): New method. (Incremental_checker::can_incrementally_link_output_file): Use Sized_incremental_binary::check_inputs. (Incremental_inputs::report_command_line): Save command line in command_line_. * incremental.h: (Incremental_binary::find_incremental_inputs_section): New method. (Incremental_binary::do_find_incremental_inputs_section): Add strtab_shndx parameter. (Incremental_binary::do_check_inputs): New pure virtual method. (Sized_incremental_binary::do_check_inputs): Declare. (Incremental_checker::Incremental_checker): Add incremental_inputs parameter, use it to initialize incremental_inputs_. (Incremental_checker::incremental_inputs_): New field. (Incremental_checker::command_line): New method. (Incremental_checker::inputs): New method. (Incremental_checker::command_line_): New field.
2009-10-09elfcpp/:Ian Lance Taylor1-0/+192
* elfcpp_file.h: Fix header guard. Include <cstdio>. (class Elf_recognizer): New class, code from gold/object.cc. (Elf_file::find_section_by_type): New method. gold/: * incremental.cc: Include <cstdarg> and "target-select.h". (vexplain_no_incremental): New function. (explain_no_incremental): New function. (Incremental_binary::error): New method. (Sized_incremental_binary::do_find_incremental_inputs_section): New method. (make_sized_incremental_binary): New function. (open_incremental_binary): New function. (can_incrementally_link_file): Add checks if output is ELF and has inputs section. * incremental.h: Include "elfcpp_file.h" and "output.h". (Incremental_binary): New class. (Sized_incremental_binary): New class. (open_incremental_binary): Declare. * object.cc (is_elf_object): Use elfcpp::Elf_recognizer::is_elf_file. (make_elf_object): Use elfcpp::Elf_recognizer::is_valid_header. * output.h (Output_file::filesize): New method.
2009-09-01 * gold.cc: Include "incremental.h".Ian Lance Taylor1-0/+13
(queue_initial_tasks): Call Incremental_checker methods. * incremental.cc: Include "output.h". (Incremental_checker::can_incrementally_link_output_file): New method. * incremental.h (Incremental_checker): New class.
2009-07-06 * fileread.cc (File_read::get_mtime): New method.Ian Lance Taylor1-14/+19
* fileread.h (Timespec): New structure. (File_read::get_mtime): New method. * incremental.cc (Incremental_inputs_entry_data::timestamp_usec): Renamed from timestamp_nsec. (Incremental_inputs_entry_write::timestamp_sec): Fix argument to Elf_Xword. (Incremental_inputs_entry_write::timestamp_usec): Renamed from timestamp_nsec. (Incremental_inputs::report_archive): Save mtime; style fix. (Incremental_inputs::report_obejct): Save mtime; style fix. (Incremental_inputs::report_script): Save mtime; style fix. (Incremental_inputs::finalize_inputs): Style fix. (Incremental_inputs::finalize): Style fix. (Incremental_inputs::create_input_section_data): Store inputs mtime. * incremental.h (Incremental_inputs::report_script): Add mtime argument. (Incremental_inputs::Input_info::Input_info): Intialize only one union member. (Incremental_inputs::Input_info::archive): Move to nameless union. (Incremental_inputs::Input_info::obejct): Move to nameless union. (Incremental_inputs::Input_info::script): Move to nameless union. (Incremental_inputs::mtime): New field. * script.cc (read_input_script): Pass file mtime to Incremental_input. * script.h (Script_info::inputs): Style fix.
2009-05-31 * incremental.cc (Incremental_inputs::report_command_line): FilterIan Lance Taylor1-0/+6
out --incremental-* options.
2009-05-15 * gold.h (Incremental_argument_list): Remove (invalid) forwardIan Lance Taylor1-9/+138
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.
2009-04-24 * incremental.cc (Incremental_inputs_header_data): Renamed fromIan Lance Taylor1-13/+110
Incremental_input_header_data. (Incremental_inputs_header_data::data_size): New field. (Incremental_inputs_header_data::put_input_file_count): Renamed from input_file_count. (Incremental_inputs_header_data::put_command_line_offset): Renamed from command_line_offset. (Incremental_inputs_header_data::put_reserved): Renamed from put_reserved. (Incremental_inputs_entry_data): Renamed from Incremental_input_entry_data. (Incremental_inputs_entry_data::data_size): New field. (Incremental_inputs::report_command_line): New method. (Incremental_inputs::finalize): New method. (Incremental_inputs::create_incremental_inputs_data): New method. (Incremental_inputs::sized_create_incremental_inputs_data): New method. * incremental.h: New file. * layout.cc (Layout::Layout): Handle new incremental_inputs_. (Layout::finalize): Create incremental inputs section in incremental builds. (Layout::create_incremental_info_sections): New method. * layout.h (Layout::incremental_inputs): New method. (Layout::create_incremental_info_sections): New method. (Layout::incremental_inputs_): New field. * main.cc (main): Notify Incremental_input of the command line.
2009-03-20include/elf:Ian Lance Taylor1-0/+145
* common.h (SHT_GNU_INCREMENTAL_INPUTS): Define. elfcpp: * elfcpp.h (SHT_GNU_INCREMENTAL_INPUTS): Define. gold: * incremental.cc: New file. * Makefile.am (CCFILES): Add incremental.cc. * Makefile.in: Rebuild.