aboutsummaryrefslogtreecommitdiff
path: root/gold
AgeCommit message (Collapse)AuthorFilesLines
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.
2010-11-16 PR gold/12220Cary Coutant3-41/+54
* layout.cc (Layout::choose_output_section): Transform names of compressed sections even when using a script with a SECTIONS clause. (Layout::output_section_name): Remove code to transform compressed debug section names. * output.cc (Output_section::add_input_section): Use uncompressed section size when tracking input sections.
2010-11-11gold/Richard Sandiford7-229/+539
* symtab.h (Symbol::NON_PIC_REF): Remove. (Symbol::RELATIVE_REF, Symbol::TLS_REF): New Reference_flags. (Symbol::FUNCTION_CALL): Renumber. Reword comment. (Symbol::needs_dynamic_reloc): Don't check NON_PIC_REF. (Symbol::use_plt_offset): Take a flags argument and pass it directly to needs_dynamic_reloc. Restrict check for undefined weak symbols to function calls. * arm.cc (Target_arm::Scan::get_reference_flags): New function. (Target_arm::Scan::global): Use it. (Target_arm::Scan::scan_reloc_for_stub): Likewise. (Target_arm::Relocate::relocate): Likewise. (Target_arm::Relocate::should_apply_static_reloc): Replace flags parameter with an r_type parameter. Use get_reference_flags to get the flags. (Target_arm::Relocate::relocate): Update accordingly. * i386.cc (Target_i386::Scan::get_reference_flags): New function. (Target_i386::Scan::reloc_needs_plt_for_ifunc): Use it. (Target_i386::Scan::global): Likewise. (Target_i386::Relocate::relocate): Likewise. (Target_i386::Relocate::should_apply_static_reloc): Replace flags parameter with an r_type parameter. Use get_reference_flags to get the flags. (Target_i386::Relocate::relocate): Update accordingly. * powerpc.cc (Target_powerpc::Scan::get_reference_flags): New function. (Target_powerpc::Scan::global): Use it. (Target_powerpc::Scan::scan_reloc_for_stub): Likewise. (Target_powerpc::Relocate::relocate): Likewise. * sparc.cc (Target_sparc::Scan::get_reference_flags): New function. (Target_sparc::Scan::global): Use it. (Target_sparc::Scan::scan_reloc_for_stub): Likewise. (Target_sparc::Relocate::relocate): Likewise. * x86_64.cc (Target_x86_64::Scan::get_reference_flags): New function. (Target_x86_64::Scan::reloc_needs_plt_for_ifunc): Use it. (Target_x86_64::Scan::global): Likewise. (Target_x86_64::Relocate::relocate): Likewise.
2010-11-092010-11-08 Doug Kwan <dougkwan@google.com>Doug Kwan4-100/+241
Cary Coutant <ccoutant@google.com> * arm.cc (Arm_exidx_merge_section::build_contents): New method. (Arm_exidx_merge_section::section_contents_): New data member. (Arm_input_section::Arm_input_section): Initialize original_contents_. (Arm_input_section::~Arm_input_section): De-allocate memory. (Arm_input_section::original_contents_): New data member. (Arm_exidx_fixup::process_exidx_section): Pass EXIDX section contents in parameters instead of calling Object::section_contents without locking. (Arm_output_section::group_section): New parameter TASK. Pass it to callees that need locking objects. (Arm_output_section::fix_exidx_coverage): New parameter TASK. Use it to lock EXIDX input sections. Fix a formatting issue. Call Arm_exidx_merged_section::build_contents to create merged section contents. (Arm_output_section::create_stub_group): New parameter TASK. Use it to lock object of stub table owner. (Arm_exidx_input_section::Arm_exidx_input_section): Add new parameter TEXT_SIZE to initialize data member TEXT_SIZE_. (Arm_exidx_input_section::addralign): Fix typo in comment. (Arm_exidx_input_section::text_size): New method. (Target_arm::do_relax): New parameter TASK. Pass it to callees that require locking objects. Lock objects before scanning for stubs and updating local symbols. (Arm_input_section<big_endian>::init): Copy contents of original input section. (Arm_input_section<big_endian>::do_write): Use saved contents of original input section instead of calling Object::section_contents without locking. (Arm_exidx_cantunwind::do_fixed_endian_write): Find out text section size without calling Object::section_size(). (Arm_exidx_merged_section::Arm_exidx_merged_section): Add sanity check for size. Allocate a buffer for merged EXIDX entries. (Arm_exidx_merged_section::build_contents): New method. (Arm_exidx_merged_section::do_write): Move merge section contents building code to Arm_exidx_merged_section::build_contetns. Write out contetns in buffer instead of building it on the fly. (Arm_relobj::make_exidx_input_section): Also pass text section size to Arm_exidx_input_section constructor. (Arm_relobj::do_read_symbols): Fix memory leak. Fix a formatting issue. (Arm_dynobj::do_read_symbols): Fix memory leak. * layout.cc (Layout::finalize): Pass TASK to Target::relax(). * target.h: (class Task): Add forward declaration. (Target::relax): Add new parameter TASK and pass it to Target::do_relax(). (Target::do_relax):: New parameter TASK. Fix a formatting issue.
2010-11-05 PR gold/10708Cary Coutant6-3/+64
* copy-relocs.cc (Copy_relocs::emit_copy_reloc): Hold a lock on the object when reading from the file. * gold.cc (queue_middle_tasks): Hold a lock on the object when doing second layout pass. * icf.cc (preprocess_for_unique_sections): Hold a lock on the object when reading section contents. (get_section_contents): Likewise. (icf::find_identical_sections): Likewise. * mapfile.cc (Mapfile::print_discarded_sections): Hold a lock on the object when reading from the file. * plugin.cc (Plugin_manager::layout_deferred_objects): Hold a lock on the object when doing deferred section layout.
2010-11-03 PR ld/12001Nick Clifton4-0/+37
* ldlang.c (ldlang_def_chain_list): New variable. Contains a list of symbols defined via the --defsym command line option and currently waiting assignment. (insert_defined): Add a defined symbol to the symbol table. (ldlang_add_def): Add a entry to the ldlang_def_chain_list. (lang_place_defineds): Walk ldlang_def_chain_list defining the symbols. (lang_process): Call lang_place_defineds. (lang_add_assignment): If the assignment has come from a --defsym command line option then call lang_add_def. * ld-script/default-script2.d: Fix expected address for text section. PR gold/12001 * script.h (class Symbol_assignment: name): New member. Returns the name of the symbol. * scrfipt.cc (Script_options::is_pending_assignment): New member. Returns true if the given symbol name is on the list of assignments wating to be processed. * archive.cc (should_incldue_member): If the symbol is undefined, check to see if it is on the list of symbols pending assignment.
2010-11-03 * script-sections.cc (Script_sections::find_memory_region): CheckIan Lance Taylor2-0/+6
for a NULL output section pointer.