aboutsummaryrefslogtreecommitdiff
path: root/gold
AgeCommit message (Collapse)AuthorFilesLines
2011-04-05 * incremental-dump.cc (dump_incremental_inputs): Change signatureCary Coutant4-222/+417
to take a Sized_incremental_binary; change caller. Use readers in Sized_incremental_binary. * incremental.cc (Sized_incremental_binary::find_incremental_inputs_sections): Rename do_find_incremental_inputs_sections to this. (Sized_incremental_binary::setup_readers): New function. (Sized_incremental_binary::do_check_inputs): Check has_incremental_info_ flag; move setup code to setup_readers; use input readers. (Sized_incremental_binary::do_file_is_unchanged): New function. (Sized_incremental_binary::do_get_input_reader): New function. * incremental.h (class Incremental_binary): Move to end of file. (Incremental_binary::file_is_unchanged): New function. (Incremental_binary::do_file_is_unchanged): New function. (Incremental_binary::Input_reader): New class. (Incremental_binary::get_input_reader): New function. (class Sized_incremental_binary): Move to end of file. (Sized_incremental_binary::Sized_incremental_binary): Setup the input section reader classes. (Sized_incremental_binary::has_incremental_info): New function. (Sized_incremental_binary::inputs_reader): New function. (Sized_incremental_binary::symtab_reader): New function. (Sized_incremental_binary::relocs_reader): New function. (Sized_incremental_binary::got_plt_reader): New function. (Sized_incremental_binary::do_file_is_unchanged): New function. (Sized_incremental_binary::Sized_input_reader): New class. (Sized_incremental_binary::get_input_reader): New function. (Sized_incremental_binary::find_incremental_inputs_sections): Rename do_find_incremental_inputs_sections to this. (Sized_incremental_binary::setup_readers): New function. (Sized_incremental_binary::has_incremental_info_): New data member. (Sized_incremental_binary::inputs_reader_): New data member. (Sized_incremental_binary::symtab_reader_): New data member. (Sized_incremental_binary::relocs_reader_): New data member. (Sized_incremental_binary::got_plt_reader_): New data member. (Sized_incremental_binary::current_input_file_): New data member.
2011-04-052011-04-05 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov2-3/+9
PR gold/12640 * dwarf_reader.cc (Sized_dwarf_line_info): Fix vector bounds violation.
2011-03-30 * archive.cc (Archive::include_member): Adjust call to report_object.Cary Coutant10-76/+233
(Add_archive_symbols::run): Add script_info to call to report_archive_begin. (Lib_group::include_member): Adjust call to report_object. (Add_lib_group_symbols::run): Adjust call to report_object. * incremental-dump.cc (dump_incremental_inputs): Remove unnecessary blocks. Add object count for script input files. * incremental.cc (Incremental_inputs::report_archive_begin): Add script_info parameter; change all callers. (Incremental_inputs::report_object): Add script_info parameter; change all callers. (Incremental_inputs::report_script): Store backpointer to incremental info entry. (Output_section_incremental_inputs::set_final_data_size): Record additional information for scripts. (Output_section_incremental_inputs::write_info_blocks): Likewise. * incremental.h (Incremental_script_entry::add_object): New function. (Incremental_script_entry::get_object_count): New function. (Incremental_script_entry::get_object): New function. (Incremental_script_entry::objects_): New data member; adjust constructor. (Incremental_inputs::report_archive_begin): Add script_info parameter. (Incremental_inputs::report_object): Add script_info parameter. (Incremental_inputs_reader::get_object_count): New function. (Incremental_inputs_reader::get_object_offset): New function. * options.cc (Input_arguments::add_file): Return reference to new input argument. * options.h (Input_argument::set_script_info): New function. (Input_argument::script_info): New function. (Input_argument::script_info_): New data member; adjust all constructors. (Input_file_group::add_file): Return reference to new input argument. (Input_file_lib::add_file): Likewise. (Input_arguments::add_file): Likewise. * readsyms.cc (Add_symbols::run): Adjust call to report_object. * script.cc (Parser_closure::Parser_closure): Add script_info parameter; adjust all callers. (Parser_closure::script_info): New function. (Parser_closure::script_info_): New data member. (read_input_script): Report scripts earlier to incremental info. (script_add_file): Set script_info in Input_argument. (script_add_library): Likewise. * script.h (Script_options::Script_info): Rewrite class.
2011-03-30 * archive.cc (Library_base::should_include_member): MoveCary Coutant11-211/+461
method here from class Archive. (Archive::Archive): Initialize base class. (Archive::should_include_member): Move to base class. (Archive::do_for_all_unused_symbols): New function. (Add_archive_symbols::run): Remove redundant access to incremental_inputs. (Lib_group::Lib_group): Initialize base class. (Lib_group::do_filename): New function. (Lib_group::include_member): Pass pointer to Lib_group to report_object. (Lib_group::do_for_all_unused_symbols): New function. (Add_lib_group_symbols::run): Report archive information for incremental links. * archive.h (class Library_base): New base class. (class Archive): Derive from Library_base. (Archive::filename): Move to base class. (Archive::set_incremental_info): Likewise. (Archive::incremental_info): Likewise. (Archive::Should_include): Likewise. (Archive::should_include_member): Likewise. (Archive::Armap_entry): Remove. (Archive::Unused_symbol_iterator): Remove. (Archive::unused_symbols_begin): Remove. (Archive::unused_symbols_end): Remove. (Archive::do_filename): New function. (Archive::do_get_mtime): New function. (Archive::do_for_all_unused_symbols): New function. (Archive::task_): Move to base class. (Archive::incremental_info_): Likewise. (class Lib_group): Derive from Library_base. (Lib_group::do_filename): New function. (Lib_group::do_get_mtime): New function. (Lib_group::do_for_all_unused_symbols): New function. (Lib_group::task_): Move to base class. * dynobj.cc (Sized_dynobj::do_for_all_global_symbols): New function. * dynobj.h (Sized_dynobj::do_for_all_global_symbols): New function. * incremental.cc (Incremental_inputs::report_archive_begin): Use Library_base; call library's get_mtime; add incremental inputs entry before members. (class Unused_symbol_visitor): New class. (Incremental_inputs::report_archive_end): Use Library_base; use visitor class to record unused symbols; don't add incremental inputs entry after members. (Incremental_inputs::report_object): Use Library_base. * incremental.h (Incremental_archive_entry::Incremental_archive_entry): Remove unused Archive parameter. (Incremental_inputs::report_archive_begin): Use Library_base. (Incremental_inputs::report_archive_end): Likewise. (Incremental_inputs::report_object): Likewise. * object.cc (Sized_relobj::do_for_all_global_symbols): New function. * object.h (Object::for_all_global_symbols): New function. (Object::do_for_all_global_symbols): New function. (Sized_relobj::do_for_all_global_symbols): New function. * plugin.cc (Sized_pluginobj::do_for_all_global_symbols): New function. * plugin.h (Sized_pluginobj::do_for_all_global_symbols): New function.
2011-03-27 * archive.cc (Archive::interpret_header): Return -1 if somethingIan Lance Taylor2-15/+34
goes wrong. Change callers accordingly.
2011-03-25 * testsuite/Makefile.am (final_layout.stdout): Use -n option with nm.Cary Coutant3-2/+7
* testsuite/Makefile.in: Regenerate.
2011-03-232010-03-23 Rafael Ávila de Espíndola <respindola@mozilla.com>Rafael Ávila de Espíndola3-1/+55
* plugin.cc (get_view): New. (Plugin::load): Pass get_view to the plugin. (Plugin_manager::get_view): New.
2011-03-22 * testsuite/relro_test.sh: Fail if dc is not present.Ian Lance Taylor2-3/+5
2011-03-22Fix copyright.Ian Lance Taylor1-1/+1
2011-03-21 * testsuite/final_layout.sh: Rewrite to not use dc.Ian Lance Taylor2-9/+30
2011-03-21 * testsuite/icf_safe_so_test.sh: Add #!/bin/sh to start.Sriraman Tallam6-2/+22
Change == to -eq. * testsuite/icf_string_merge_test.sh: Add #!/bin/sh to start. * testsuite/icf_safe_test.sh: Add #!/bin/sh to start. Change == to -eq. * testsuite/icf_sht_rel_addend_test.sh: Add #!/bin/sh to start. * testsuite/icf_preemptible_functions_test.sh: Add #!/bin/sh to start.
2011-03-14 * script-sections.cc (Sort_output_sections::script_compare):Ian Lance Taylor2-19/+39
Rename from is_before, change return type. (Sort_output_sections::operator()): Adjust accordingly.
2011-03-11 PR gold/12572Ian Lance Taylor3-8/+18
* testsuite/odr_violation2.cc: Add comment to make all error line numbers double digits. * testsuite/debug_msg.sh: Adjust expected errors.
2011-03-10 * dwarf_reader.cc (Sized_dwarf_line_info): Include all lines,Ian Lance Taylor14-169/+371
but mark earlier ones as non-canonical (offset_to_iterator): Update search target and example (do_addr2line): Return extra lines in a vector* (format_file_lineno): Extract from do_addr2line (one_addr2line): Add vector* out-param * dwarf_reader.h (Offset_to_lineno_entry): New field recording when a lineno entry appeared last for its instruction (Dwarf_line_info): Add vector* out-param * object.cc (Relocate_info): Pass NULL for the vector* out-param * symtab.cc (Odr_violation_compare): Include the lineno in the comparison again. (linenos_from_loc): New. Combine the canonical line for an address with its other lines. (True_if_intersect): New. Helper functor to make std::set_intersection a query. (detect_odr_violations): Compare sets of lines instead of just one line for each function. This became less deterministic, but has fewer false positives. * symtab.h: Declarations. * testsuite/Makefile.am (odr_violation2.o): Compile with -O2 to mix an optimized and non-optimized object in the same binary (odr_violation2.so): Same. * testsuite/Makefile.in: Regenerate from Makefile.am. * testsuite/debug_msg.cc (main): Make OdrDerived classes. * testsuite/debug_msg.sh: Update line numbers and add assertions. * testsuite/odr_violation1.cc: Use OdrDerived, in a non-optimized context. * testsuite/odr_violation2.cc: Make sure Ordering::operator() isn't inlined, and use OdrDerived in an optimized context. * testsuite/odr_header1.h: Defines OdrDerived, where optimization will change the first-instruction-in-the-destructor's file and line number. * testsuite/odr_header2.h: Defines OdrBase.
2011-03-10 * fileread.cc (File_read::clear_views): Don't delete the wholeIan Lance Taylor2-1/+8
file view.
2011-03-09 PR gold/12525Ian Lance Taylor3-9/+24
* fileread.cc: #include <climits>. (GOLD_IOV_MAX): Define. (File_read::read_multiple): Limit number of entries by iov_max. * fileread.h (class File_read): Always set max_readv_entries to 128.
2011-03-07 PR gold/12525Ian Lance Taylor2-0/+9
* options.h (class General_options): Add -dy and -dn.
2011-03-02 * testsuite/script_test_9.t: Add TLS segment.Cary Coutant2-0/+13
2011-03-02 * configure.ac: Add check for gnu_indirect_function support inIan Lance Taylor3-1/+9
the toolchain building binutils. * configure: Rebuild.
2011-02-182010-02-18 Rafael Ávila de Espíndola <respindola@mozilla.com>Rafael Ávila de Espíndola2-0/+21
* symtab.cc (Symbol::should_add_dynsym_entry) Return false for plugin only symbols. (Symbol_table::sized_finalize_symbol) Mark symbol only present in plugin files as not needed in the symbol table.
2011-02-122011-02-11 Sriraman Tallam <tmsriram@google.com>Sriraman Tallam2-2/+9
* output.cc (Output_section::add_input_section): Delay fill generation for section ordering.
2011-02-10 PR gold/12316Ian Lance Taylor3-14/+9
* object.h (class Sized_relobj): Remove clear_local_symbols. * reloc.cc (Sized_relobj::do_relocate): Don't call clear_local_symbols.
2011-02-082010-02-08 Rafael Ávila de Espíndola <respindola@mozilla.com>Rafael Ávila de Espíndola2-0/+7
* plugin.cc (is_visible_from_outside): Return true for symbols in the -u option.
2011-02-05 * symtab.cc (Odr_violation_compare::operator()): Sort by just theIan Lance Taylor2-12/+33
filename.
2011-02-022011-02-02 Sriraman Tallam <tmsriram@google.com>Sriraman Tallam3-14/+22
* icf.h (is_section_foldable_candidate): Change type of parameter to std::string. * icf.cc (Icf::find_identical_sections): Change type of local variable section_name to be std::string. (is_function_ctor_or_dtor): Change type of parameter to std::string.
2011-01-25 * script.cc (script_add_extern): Rewrite to useIan Lance Taylor2-7/+8
add_symbol_reference.
2011-01-252011-01-25 Doug Kwan <dougkwan@google.com>Doug Kwan2-17/+11
* gold/icf.cc (get_section_contents): Always lock section's object.
2011-01-25 * options.h (class General_options): AcceptIan Lance Taylor2-2/+7
--no-detect-odr-violations.
2011-01-24 * version.cc (version_string): Bump to 1.11.Ian Lance Taylor2-1/+5
2011-01-24 * plugin.cc (class Plugin_rescan): Define new class.Ian Lance Taylor8-18/+388
(Plugin_manager::claim_file): Set any_claimed_. (Plugin_manager::save_archive): New function. (Plugin_manager::save_input_group): New function. (Plugin_manager::all_symbols_read): Create Plugin_rescan task if necessary. (Plugin_manager::new_undefined_symbol): New function. (Plugin_manager::rescan): New function. (Plugin_manager::rescannable_defines): New function. (Plugin_manager::add_input_file): Set any_added_. * plugin.h (class Plugin_manager): define new fields rescannable_, undefined_symbols_, any_claimed_, and any_added_. Declare Plugin_rescan as friend. Declare new functions. (Plugin_manager::Rescannable): Define type. (Plugin_manager::Rescannable_list): Define type. (Plugin_manager::Undefined_symbol_list): Define type. (Plugin_manager::Plugin_manager): Initialize new fields. * archive.cc (Archive::defines_symbol): New function. (Add_archive_symbols::run): Pass archive to plugins if any. * archive.h (class Archive): Declare defines_symbol. * readsyms.cc (Input_group::~Input_group): New function. (Finish_group::run): Pass input_group to plugins if any. * readsyms.h (class Input_group): Declare destructor. * symtab.cc (add_from_object): Pass undefined symbol to plugins if any.
2011-01-10 * layout.cc (Layout::layout_eh_frame): Mark a writable .eh_frameIan Lance Taylor2-1/+18
section as relro. (Layout::set_segment_offsets): Reset increase_relro before calling set_section_addresses a second time.
2011-01-04 * script-sections.cc (Sort_output_sections::operator()): Sort TLSCary Coutant2-9/+15
sections before NOBITS sections.
2011-01-01Update copyright in comments to 2011.H.J. Lu1-1/+1
2011-01-01Update copyright to 2011.H.J. Lu2-1/+5
binutils/ 2011-01-01 H.J. Lu <hongjiu.lu@intel.com> * version.c (print_version): Update copyright to 2011. gas/ 2011-01-01 H.J. Lu <hongjiu.lu@intel.com> * gas.c (parse_args): Update copyright to 2011. gold/ 2011-01-01 H.J. Lu <hongjiu.lu@intel.com> * version.cc (print_version): Update copyright to 2011. ld/ 2011-01-01 H.J. Lu <hongjiu.lu@intel.com> * ldver.c (ldversion): Update copyright to 2011. opcodes/ 2011-01-01 H.J. Lu <hongjiu.lu@intel.com> * i386-gen.c (process_copyright): Update copyright to 2011.
2010-12-23 * output.h (Output_data_reloc::add_output_section): Pass OD insteadCary Coutant2-3/+8
of OS to this->add. Add OD parameter to second form of the function.
2010-12-20 * dwarf_reader.cc (Sized_dwarf_line_info::read_lines): Only keepIan Lance Taylor3-2/+21
second of two consecutive entries with same offset.
2010-12-16gold: fix testsuite dependencies.Ralf Wildenhues3-75/+38
gold/: * testsuite/Makefile.am (ifuncmain2static_LDADD) (ifuncmain2_LDADD, ifuncmain4static_LDADD, ifuncmain4_LDADD) (ifuncmain7static_LDADD, ifuncmain7_LDADD): New empty variables, to avoid unneeded links against $(LDADD). * testsuite/Makefile.in: Regenerate.
2010-12-15 PR gold/12324Ian Lance Taylor4-6/+29
* x86_64.cc (Target_x86_64::Scan::check_non_pic): Give an error for R_X86_64_32 and R_X86_64_PC32. * testsuite/Makefile.am (ver_matching_def.so): Depend on and use ver_matching_def_pic.o. (ver_matching_def_pic.o): New target.
2010-12-14gold: fix race in FileRead::~View.Ralf Wildenhues2-10/+25
gold/: * fileread.cc (file_counts_lock, file_counts_initialize_lock) (total_mapped_bytes, current_mapped_bytes, maximum_mapped_bytes): Move definition before File_read::View member definitions. (File_read::View::~View): Initialize and hold lock before updating current_mapped_bytes.
2010-12-14Fix typos in gold.Ralf Wildenhues36-114/+148
gold/: * dwarf_reader.cc: Remove outdated comment. * gold-threads.cc: Fix typo in error message. * archive.cc: Fix typos in comments. * archive.h: Likewise. * arm-reloc-property.cc: Likewise. * arm-reloc-property.h: Likewise. * arm-reloc.def: Likewise. * arm.cc: Likewise. * attributes.h: Likewise. * cref.cc: Likewise. * ehframe.cc: Likewise. * fileread.h: Likewise. * gold.h: Likewise. * i386.cc: Likewise. * icf.cc: Likewise. * incremental.h: Likewise. * int_encoding.cc: Likewise. * layout.h: Likewise. * main.cc: Likewise. * merge.h: Likewise. * object.cc: Likewise. * object.h: Likewise. * options.cc: Likewise. * readsyms.cc: Likewise. * reduced_debug_output.cc: Likewise. * reloc.cc: Likewise. * script-sections.cc: Likewise. * sparc.cc: Likewise. * symtab.h: Likewise. * target-reloc.h: Likewise. * target.cc: Likewise. * target.h: Likewise. * timer.cc: Likewise. * timer.h: Likewise. * x86_64.cc: Likewise.
2010-12-09 * layout.cc (Layout::layout_gnu_stack): Add warnings for executableCary Coutant5-5/+33
stack. * layout.h (Layout::layout_gnu_stack): Add pointer to Object parameter; change all callers. * object.cc (Sized_relobj::do_layout): Adjust call to layout_gnu_stack. * options.h (warn_execstack): New option.
2010-12-082010-12-07 Doug Kwan <dougkwan@google.com>Doug Kwan2-1/+9
* arm.cc (Target_arm::Scan::get_reference_flags): Treat R_ARM_PREL31 like function call relocations.
2010-12-07 * archive.cc (Archive::get_elf_object_for_member): PermitIan Lance Taylor2-16/+30
punconfigured to be NULL. (Archive::read_symbols): Pass NULL to get_elf_object_for_member. (Archive::include_member): Pass NULL to get_elf_object_for_member if we searched for the archive and this is the first included object.
2010-12-01 * dwarf_reader.h (class Sized_dwarf_line_info): AddIan Lance Taylor5-8/+54
track_relocs_type_ field. * dwarf_reader.cc (Sized_dwarf_line_info::Sized_dwarf_line_info): Set track_relocs_type_. (Sized_dwarf_line_info::process_one_opcode): Ignore the section contents when using RELA relocs. (Sized_dwarf_line_info::read_relocs): Add the reloc addend to reloc_map_. * reloc.cc (Track_relocs::next_addend): New function. * reloc.h (class Track_relocs): Declare next_addend.
2010-12-01 * testsuite/icf_virtual_function_folding_test.cc (class Bar): AddIan Lance Taylor2-0/+6
virtual destructor.
2010-12-01 * README: Update compilers known to work and fail.Ian Lance Taylor2-2/+6
2010-11-23 * configure.ac: For --enable-gold, handle value `default' instead ofNick Clifton3-26/+49
`both*'. New configure option --{en,dis}able-ld. ld, gold/ * configure.ac: For --enable-gold, handle value `default' instead of `both*'. Always install ld as ld.gold, install as ld if gold is the default.
2010-11-182010-11-18 Doug Kwan <dougkwan@google.com>Doug Kwan2-5/+13
* expression.cc (BINARY_EXPRESSION): Initialize left_alignment and right_alignment to be zero. Store result alignment only if it is greater than existing alignment.
2010-11-17 * dwarf_reader.cc (Sized_dwarf_line_info::Sized_dwarf_line_info):Cary Coutant2-10/+19
Check for ".zdebug_line".
2010-11-16 * output.h (Output_segment::set_section_addresses): Pass increase_relroCary Coutant4-5/+32
by reference; adjust all callers. * output.cc (Output_segment::set_section_addresses): Adjust references to increase_relro. Add padding to *increase_relro when ORDER_RELRO_LAST list is empty. (Output_segment::set_offset): Assert if PT_GNU_RELRO segment does not end at page boundary.