| 2015-12-17 Peter Collingbourne <pcc@google.com> |
| |
| PR gold/18780 |
| * arm.cc (Target_arm::do_make_data_plt): Choose PLT generator based |
| on value of --long-plt flag. |
| (Output_data_plt_arm_standard::do_get_plt_entry_size): Moved to |
| Output_data_plt_arm_short. |
| (Output_data_plt_arm_standard::do_fill_plt_entry): Likewise. |
| (Output_data_plt_arm_standard::plt_entry): Likewise. |
| (Output_data_plt_arm_standard::do_fill_first_plt_entry): Fix |
| variable reference. |
| (Output_data_plt_arm_short): New class. |
| (Output_data_plt_arm_short::do_fill_plt_entry): Error out on too large |
| PLT offsets instead of asserting. |
| (Output_data_plt_arm_long): New class. |
| * options.h (General_options): Define --long-plt flag. |
| |
| 2015-12-16 Roland McGrath <mcgrathr@google.com> |
| |
| PR ld/17473 |
| * binary.cc: Move #include "safe-ctype.h" to be last #include. |
| |
| 2015-12-13 Cary Coutant <ccoutant@gmail.com> |
| |
| * object.h (Object::get_output_view): remove const from return type. |
| (Object::do_get_output_view): Likewise. |
| (Sized_relobj_file::do_get_output_view): Likewise. |
| * reloc.cc (Sized_relobj_file::do_get_output_view): Likewise. |
| |
| 2015-12-11 Cary Coutant <ccoutant@gmail.com> |
| |
| * target.h (Target::calls_non_split): Add prelocs, reloc_count |
| parameters. |
| (Target::do_calls_non_split): Likewise. |
| * target.cc (Target::do_calls_non_split): Likewise. |
| * reloc.cc (Sized_relobj_file::split_stack_adjust_reltype): Adjust |
| call to Target::calls_non_split. |
| * i386.cc (Target_i386::do_calls_non_split): Add prelocs, reloc_count |
| parameters. |
| * powerpc.cc (Target_powerpc::do_calls_non_split): Likewise. |
| * x86_64.cc (Target_x86_64::do_calls_non_split): Likewise. |
| |
| 2015-12-11 Cary Coutant <ccoutant@gmail.com> |
| |
| * object.cc (Sized_relobj_file::Sized_relobj_file): Initialize |
| output_views_. |
| * object.h (Object::get_output_view): New function. |
| (Object::do_get_output_view): New function. |
| (Sized_relobj_file::do_get_output_view): New function. |
| (Sized_relobj_file::output_views_): New data member. |
| * reloc.cc: (Sized_relobj_file::do_relocate): Store pointer to |
| output views in class object. |
| (Sized_relobj_file::do_get_output_view): New function. |
| |
| 2015-12-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR ld/19317 |
| * symtab.cc (Symbol_table::add_from_relobj): Don't complain |
| plugin needed to handle slim lto object for relocatable link. |
| |
| 2015-12-09 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Relocate::relocate): New constant |
| d_offset. Use throughout. |
| (Target_powerpc::relocate_relocs): Likewise. |
| |
| 2015-12-09 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Relocate::relocate): Edit ELFv2 |
| entry code. |
| (Target_powerpc::relocate_relocs): Edit relocs to suit. |
| |
| 2015-12-09 Alan Modra <amodra@gmail.com> |
| |
| * object.h (struct Relocate_info): Add "rr". |
| * reloc.h (Relocatable_relocs::set_strategy): New accessor. |
| * reloc.cc (Sized_relobj_file::do_relocate_sections): Init |
| relinfo.rr for relocate_section and relocate_relocs. |
| * powerpc.cc (relocate): Add rel_type and preloc parameters. |
| Delete rela and r_type params, instead recalculate these from |
| preloc. |
| (relocate_relocs): Delete Relocatable_relocs* param, instead |
| use relinfo->rr. |
| * aarch64.cc: Likewise. |
| * arm.cc: Likewise. |
| * i386.cc: Likewise. |
| * mips.cc: Likewise. |
| * s390.cc: Likewise. |
| * sparc.cc: Likewise. |
| * target.h: Likewise. |
| * tilegx.cc: Likewise. |
| * x86_64.cc: Likewise. |
| * testsuite/testfile.cc: Likewise. |
| * target-reloc.h (relocate_section): Adjust to suit. |
| (apply_relocation, relocate_relocs): Likewise. |
| |
| 2015-12-07 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (add_2_2_12, ld_2_12, lis_2): Define. |
| (Target_powerpc::Scan::local, global): Handle R_PPC64_ENTRY. |
| (Target_powerpc::Relocate::relocate): Edit code at R_PPC64_ENTRY. |
| |
| 2015-12-03 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> |
| |
| * object.cc (Sized_relobj::do_for_all_local_got_entries): Use |
| Local_got_entry_key for searching in local_got_offsets_. |
| * object.h (class Local_got_entry_key): New class. |
| (Relobj::local_has_got_offset): New overloaded method. |
| (Relobj::local_got_offset): Likewise. |
| (Relobj::set_local_got_offset): Likewise. |
| (Relobj::do_local_has_got_offset): Add addend argument. |
| (Relobj::do_local_got_offset): Likewise. |
| (Relobj::do_set_local_got_offset): Likewise. |
| (Sized_relobj::do_local_has_got_offset): Add addend argument, and use |
| Local_got_entry_key for searching through local_got_offsets_. |
| (Sized_relobj::do_local_got_offset): Likewise. |
| (Sized_relobj::do_set_local_got_offset): Likewise. |
| (Sized_relobj::Local_got_offsets): Change type of the key from |
| unsigned int to Local_got_entry_key, and add hash and equal_to. |
| * output.cc (Got_entry::write): Take addend into account for |
| calculating value of the local symbol for GOT. |
| (Output_data_got::add_local): New definition of overloaded method. |
| (Output_data_got::add_local_with_rel): Likewise. |
| (Output_data_got::add_local_pair_with_rel): Likewise. |
| * output.h (Output_data_got::add_local): New declaration of overloaded |
| method. |
| |
| 2015-11-25 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/19291 |
| * object.cc (Sized_relobj_file::write_local_symbols): If relocatable, |
| subtract section address from symbol value. |
| |
| 2015-11-25 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Output_data_got_powerpc::Output_data_got_powerpc): Align |
| to 256 byte boundary. |
| |
| 2015-11-19 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Scan::get_reference_flags): Correct |
| GOT16 and TOC16 relocs to RELATIVE_REF. |
| |
| 2015-11-14 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/19244 |
| PR gold/18548 |
| * symtab.cc (Symbol_table::do_define_in_output_data): Check for forced |
| local symbols only for predefined symbols. |
| |
| 2015-11-11 Alan Modra <amodra@gmail.com> |
| Peter Bergner <bergner@vnet.ibm.com> |
| |
| * powerpc.cc (Powerpc_relocate_functions::addr16_dq): New function. |
| (Powerpc_relocate_functions::addr16dx_ha): Likewise. |
| (Target_powerpc::Scan::local): Handle R_POWERPC_REL16DX_HA. |
| (Target_powerpc::Scan::global): Likewise. |
| (Target_powerpc::Relocate::relocate): Likewise. |
| |
| 2015-11-09 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> |
| |
| * layout.h (Layout::is_debug_info_section): Recognize .pdr debug |
| sections. |
| |
| 2015-11-09 Cary Coutant <ccoutant@gmail.com> |
| Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com> |
| |
| * copy-relocs.h (Copy_relocs::copy_reloc): Replace reloc parameter |
| with type, offset, addend. |
| (Copy_relocs::save): Likewise. |
| * copy-relocs.cc (Copy_relocs::copy_reloc): Likewise. |
| (Copy_relocs::save): Likewise. |
| * aarch64.cc (Target_aarch64::copy_reloc): Pass r_type, r_offset, |
| and r_addend to Copy_relocs::copy_reloc. |
| * arm.cc (Target_arm::copy_reloc): Likewise. |
| * i386.cc (Target_i386::copy_reloc): Likewise. |
| * mips.cc (Target_mips::copy_reloc): Likewise. |
| * powerpc.cc (Target_powerpc::copy_reloc): Likewise. |
| * s390.cc (Target_s390::copy_reloc): Likewise. |
| * sparc.cc (Target_sparc::copy_reloc): Likewise. |
| * tilegx.cc (Target_tilegx::copy_reloc): Likewise. |
| * x86_64.cc (Target_x86_64::copy_reloc): Likewise. |
| |
| 2015-11-05 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/19119 |
| PR gold/19172 |
| PR gold/19197 |
| Revert commit 6457197210144f50a696097c0d308d81d46d5510: |
| 2015-10-16 H.J. Lu <hongjiu.lu@intel.com> |
| * options.h (General_options): Remove "obsolete" from -m. |
| * parameters.cc (set_parameters_target): Check if input target |
| is compatible with output emulation set by "-m emulation". |
| |
| 2015-11-05 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/19163 |
| * aarch64.cc (Target_aarch64::Relocate::relocate): Don't apply |
| certain relocations if --no-apply-dynamic-relocs is set. |
| * options.h (--apply-dynamic-relocs): New aarch64-specific option. |
| |
| 2015-11-03 Alan Modra <amodra@gmail.com> |
| |
| * po/POTFILES.in: Regenerate. |
| |
| 2015-10-30 Nick Clifton <nickc@redhat.com> |
| |
| * po/zh_CN.po: New (simplified) Chinese translation. |
| |
| 2015-10-29 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/19184 |
| * incremental.cc (Got_plt_view_info): Add got_entry_size. |
| (Local_got_offset_visitor::visit): Replace got_entry_size_ |
| with info_.got_entry_size. |
| (Local_got_offset_visitor::got_entry_size_): Removed. |
| (Global_got_offset_visitor::visit): Replace got_entry_size_ |
| with info_.got_entry_size. |
| (Global_got_offset_visitor::got_entry_size_): Removed. |
| (Output_section_incremental_inputs::write_got_plt): Initialize |
| view_info.got_entry_size. |
| * target.h (Sized_target::got_entry_size): New virtual function. |
| * x86_64.cc (Target_x86_64::got_entry_size): New function. |
| |
| 2015-10-28 Marcin Kościelnicki <koriakin@0x04.net> |
| |
| * testsuite/binary_test.cc: Add __attribute__((aligned(1))). |
| * testsuite/script_test_12a.c: Likewise. |
| * testsuite/script_test_1a.cc: Likewise. |
| * testsuite/script_test_2.cc: Likewise. |
| |
| 2015-10-28 Marcin Kościelnicki <koriakin@0x04.net> |
| |
| * testsuite/debug_msg.sh: Accept more fuzz in line numbers. |
| |
| 2015-10-28 Marcin Kościelnicki <koriakin@0x04.net> |
| |
| PR gold/18959 |
| * stringpool.cc (Stringpool_template::new_key_offset): Align all |
| strings, even zero-length. |
| (Stringpool_template::set_string_offsets): Likewise. |
| |
| 2015-10-28 Marcin Kościelnicki <koriakin@0x04.net> |
| |
| * s390.cc: New file. |
| * Makefile.am (TARGETSOURCES): Add s390.cc. |
| (ALL_TARGETOBJS): Add s390.o. |
| * Makefile.in: Regenerate. |
| * configure.ac: Add s390 support. |
| * configure: Regenerate. |
| * configure.tgt: Add s390-*-* and s390x-*-*. |
| * testsuite/icf_safe_test.sh (arch_specific_safe_fold): Add s390 |
| support. |
| |
| 2015-10-28 Marcin Kościelnicki <koriakin@0x04.net> |
| |
| * archive.cc (Archive::sym64name): New const. |
| (Archive::setup): Add support for SYM64 armap. |
| (Archive::read_armap): Likewise. |
| (Archive::interpret_header): Likewise. |
| (Archive::const_iterator::read_next_header): Likewise. |
| * archive.h (Archive::sym64name): New const. |
| (Archive::read_armap): Add mapsize template parameter. |
| |
| 2015-10-28 Marcin Kościelnicki <koriakin@0x04.net> |
| |
| * dynobj.cc (Dynobj::create_elf_hash_table): Create hash table with |
| target-specific entry size. |
| (Dynobj::sized_create_elf_hash_table): Add size template parameter. |
| * dynobj.h (Dynobj::sized_create_elf_hash_table): Likewise. |
| * layout.cc (Layout::create_dynamic_symtab): Set entsize to |
| hash_entry_size. |
| * target.h (Target::hash_entry_size): New method. |
| (Target::Target_info::hash_entry_size): New data member. |
| |
| * aarch64.cc (Target_aarch64::aarch64_info): Add hash_entry_size. |
| * arm.cc (Target_arm::arm_info): Likewise. |
| (Target_arm_nacl::arm_nacl_info): Likewise. |
| * i386.cc (Target_i386::i386_info): Likewise. |
| (Target_i386_nacl::i386_nacl_info): Likewise. |
| (Target_iamcu::iamcu_info): Likewise. |
| * mips.cc (Target_mips::mips_info): Likewise. |
| (Target_mips_nacl::mips_nacl_info): Likewise. |
| * powerpc.cc (Target_powerpc::powerpc_info): Likewise. |
| * sparc.cc (Target_sparc::sparc_info): Likewise. |
| * tilegx.cc (Target_tilegx::tilegx_info): Likewise. |
| * x86_64.cc (Target_x86_64::x86_64_info): Likewise. |
| (Target_x86_64_nacl::x86_64_nacl_info): Likewise. |
| * testsuite/testfile.cc (Target_test::test_target_info): Likewise. |
| |
| 2015-10-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/19177 |
| * i386.cc (Target_i386::Relocate::relocate): Check R_386_GOT32 |
| and R_386_GOT32X relocations without base register. |
| |
| 2015-10.27 Han Shen <shenhan@google.com> |
| |
| PR gold/19042 - unsupported reloc 311/312. |
| |
| * aarch64.cc (Target_aarch64::Scan::local): Add support for |
| reloc 311/312. |
| |
| 2015-10-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * x86_64.cc (Target_x86_64<size>::Scan::get_reference_flags): |
| Treat R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX the same |
| as R_X86_64_GOTPCREL. |
| (Target_x86_64<size>::Scan::local): Likewise. |
| (Target_x86_64<size>::Scan::possible_function_pointer_reloc): |
| Likewise. |
| (Target_x86_64<size>::Scan::global): Likewise. |
| (Target_x86_64<size>::Relocate::relocate): Likewise. |
| (Target_x86_64<size>::Relocatable_size_for_reloc::get_size_for_reloc): |
| Likewise. |
| |
| 2015-10-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * i386.cc (Target_i386::Scan::get_reference_flags(): Treat |
| R_386_GOT32X the same as R_386_GOT32. |
| (Target_i386::Scan::local): Likewise. |
| (Target_i386::Scan::possible_function_pointer_reloc): Likewise. |
| (Target_i386::Scan::global): Likewise. |
| (Target_i386::Relocate::relocate): Likewise. |
| (Target_i386::Relocatable_size_for_reloc::get_size_for_reloc): |
| Likewise. |
| |
| 2015-10-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * testsuite/Makefile.am (x86_64_mov_to_lea11): Replace |
| x86_64_mov_to_lea1.o with x86_64_mov_to_lea2.o. |
| (x86_64_mov_to_lea12): Replace x86_64_mov_to_lea2.o with |
| x86_64_mov_to_lea1.o. |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2015-10-16 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/19119 |
| * options.h (General_options): Remove "obsolete" from -m. |
| * parameters.cc (set_parameters_target): Check if input target |
| is compatible with output emulation set by "-m emulation". |
| |
| 2015-10-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/19118 |
| * i386.cc (Target_iamcu): New class. |
| (Target_selector_iamcu): Likewise. |
| (Target_iamcu::iamcu_info): New variable. |
| (target_selector_iamcu): Likewise. |
| |
| 2015-10-07 Andreas Schwab <schwab@suse.de> |
| |
| * aarch64.cc (aarch64_info): Set abi_pagesize to 64K. |
| |
| 2015-10-06 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/18855 |
| * sparc.cc (Sparc_relocate_functions::gdop_hix22): Remove addend |
| parameter. |
| (Sparc_relocate_functions::gdop_lox10): Likewise. |
| (Target_sparc::Relocate::relocate): Use addend when computing |
| symbol value for R_SPARC_GOTDATA_OP*. |
| |
| 2015-09-07 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/18930 |
| PR gold/18886 |
| * resolve.cc (Symbol::override_base): Don't convert IFUNC symbols here. |
| * symtab.cc (Symbol_table::add_from_dynobj): Convert them here instead. |
| |
| 2015-09-02 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/18886 |
| * resolve.cc (Symbol::override_base): Turn IFUNC symbols from |
| shared libraries into normal FUNC symbols. |
| * symtab.cc (Symbol_table::sized_write_symbol): Assert IFUNC |
| symbols aren't from shared libraries. |
| |
| 2015-09-02 Alan Modra <amodra@gmail.com> |
| |
| PR 18878 |
| * powerpc.cc (Target_powerpc): Add savres_section_ and accessor. |
| (Target_powerpc::Branch_info::make_stub): Determine whether long |
| branch stub is for save/restore function. |
| (Branch_stub_ent): Add save_res_, and extra parm to constructor. |
| (Stub_table): Add need_save_res_. |
| (Stub_table:clear_stubs): Clear need_save_res_. |
| (Stub_table:set_address_and_size): Add save/restore section size. |
| (Stub_table::add_long_branch_entry): Add save_res param. Set |
| need_save_res_, but don't add space for save/restore stubs. |
| (Stub_table::find_long_branch_entry): Return offset to local copy |
| of save/restore func. |
| (Stub_table::do_write): Don't output save/restore stubs. Instead |
| copy the save/restore functions. |
| (Output_data_save_res:contents): New accessor. |
| (Target_powerpc::define_save_restore_funcs): Set savres_section_. |
| |
| 2015-08-25 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/18847 |
| * script-sections.cc (Memory_region::set_address): New method. |
| (Script_sections::find_memory_region): Add explicit_only parameter. |
| (Output_section_definition::set_section_addresses): Handle case where |
| script specifies both address and vma region. |
| * script-sections.h (Script_sections::find_memory_region): Add |
| explicit_only parameter. |
| |
| 2015-08-25 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/18859 |
| * object.cc (Input_objects::add_object): Store objects in a map, |
| indexed by soname; update as-needed flag when necessary. |
| * object.h (Object::clear_as_needed): New method. |
| (Input_objects::so_names_): Change from set to map. |
| |
| 2015-08-25 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/14746 |
| * expression.cc (Expression::Expression_eval_info): Add |
| is_valid_pointer field. |
| (Expression::eval_maybe_dot): Add is_valid_pointer parameter. |
| Adjust all callers. |
| (Addr_expression::value_from_output_section): Check whether address |
| is valid. |
| * script.cc (Symbol_assignment::set_if_absolute): Defer assignment |
| if evaluation failed due to address that is not yet valid. |
| * script.h: (Expression::eval_maybe_dot): Add is_valid_pointer |
| parameter. |
| |
| 2015-08-25 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/18866 |
| PR gold/18703 |
| * symtab.cc (Symbol_table): Reorder conditions to avoid internal error. |
| |
| 2015-08-20 Alan Modra <amodra@gmail.com> |
| |
| PR gold/18846 |
| * target-reloc.h (relocate_relocs <RELOC_ADJUST_FOR_SECTION_RELA>): |
| Subtract os->address() from addend. |
| * powerpc.cc (relocate_relocs): Likewise. |
| |
| 2015-08-12 Simon Dardis <simon.dardis@imgtec.com> |
| |
| * mips.cc (plt0_entry_o32, plt0_entry_n32, plt0_entry_n64, |
| lazy_stub_normal_1, lazy_stub_normal_1_n64, |
| lazy_stub_normal_2, lazy_stub_normal_2_n64, lazy_stub_big, |
| lazy_stub_big_n64, lazy_stub_micromips32_normal_1_n64, |
| lazy_stub_micromips32_normal_2_n64, lazy_stub_micromips32_big, |
| lazy_stub_micromips32_big_n64): Update to use 'or' for move instead |
| of 'addu/daddu'. |
| |
| 2015-07-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * configure: Regenerated. |
| |
| 2015-07-26 Doug Kwan <dougkwan@google.com> |
| |
| * testsuite/arm_unaligned_reloc.{s,sh}: Make test less sensitive to |
| disassembler output format. |
| |
| 2015-07-23 Ian Coolidge <icoolidge@google.com> |
| Plumb --pic-veneer option for gold. |
| |
| * arm.cc (Reloc_stub::stub_type_for_reloc): Plumb to stub |
| generation. |
| * options.h (General_options): Add --pic-veneer option. |
| |
| 2015-07-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/18663 |
| * testsuite/Makefile.am (script_test_1_SOURCES): Set to |
| script_test_1a.cc script_test_1b.cc. |
| (script_test_11_r.o): Replace script_test_11.o with |
| script_test_11a.o script_test_11b.o. |
| (script_test_11.o): Removed. |
| (script_test_11a.o): New. |
| (script_test_11b.o): Likewise. |
| * testsuite/Makefile.in: Regenerated. |
| * testsuite/script_test_1.h: New file. |
| * testsuite/script_test_1b.cc: Likewise. |
| * testsuite/script_test_11.h: Likewise. |
| * testsuite/script_test_11b.c: Likewise. |
| * testsuite/script_test_1.cc: Renamed to ... |
| * testsuite/script_test_1a.cc: This. |
| Include "script_test_1.h". |
| (main): Call check_int and check_ptr. |
| * testsuite/script_test_11.c: Renamed to ... |
| * testsuite/script_test_11a.c: This. |
| Include "script_test_11.h". |
| (main): Call ptr_equal. |
| |
| 2015-07-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/18628 |
| * testsuite/ifuncdep2.c (global): Change protected to hidden. |
| * testsuite/ifuncmod1.c (global): Likewise. |
| * testsuite/ifuncmod5.c (global): Likewise. |
| |
| 2015-07-22 Alan Modra <amodra@gmail.com> |
| |
| * aarch64.cc (try_fix_erratum_843419_optimized): Warning fix. |
| |
| 2015-07-21 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/18548 |
| * symtab.cc (Symbol_table::do_define_in_output_data): Check for |
| forced local symbol even when oldsym != NULL. |
| (Symbol_table::do_define_in_output_segment): Likewise. |
| (Symbol_table::do_define_as_constant): Likewise. |
| |
| 2015-07-21 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/18698 |
| * archive.cc (Library_base::should_include_member): Don't use entry |
| point for relocatable links, or if target is not yet valid. |
| * parameters.cc (Parameters::entry): Check target_valid(). |
| |
| 2015-07-20 Han Shen <shenhan@google.com> |
| |
| Optimize erratum 843419 fix. |
| |
| * aarch64.cc (AArch64_insn_utilities::is_adr): New method. |
| (AArch64_insn_utilities::aarch64_adr_encode_imm): New method. |
| (AArch64_insn_utilities::aarch64_adrp_decode_imm): New method. |
| (E843419_stub): New sub-class of Erratum_stub. |
| (AArch64_relobj::try_fix_erratum_843419_optimized): New method. |
| (AArch64_relobj::section_needs_reloc_stub_scanning): Try optimized fix. |
| (AArch64_relobj::create_erratum_stub): Add 1 argument. |
| (Target_aarch64::scan_erratum_843419_span): Pass in adrp insn offset. |
| |
| 2015-07-20 Han Shen <shenhan@google.com> |
| |
| Fix arm elf header flags wrt hardfp bit. |
| |
| * arm.cc (Target_arm::do_adjust_elf_header): Set flags into view. |
| |
| 2015-07-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/18689 |
| * layout.cc (Layout::layout): Clear the SHF_COMPRESSED flag bit |
| from input group section for relocatable link. |
| * testsuite/Makefile.am (check_SCRIPTS): Add pr18689.sh. |
| (check_DATA): Add pr18689.stdout. |
| (MOSTLYCLEANFILES): Add pr18689a.o pr18689b.o. |
| (pr18689.stdout): New rule. |
| (pr18689a.o): Likewise. |
| (pr18689b.o): Likewise. |
| (pr18689.o): Likewise. |
| * testsuite/pr18689.c: New file. |
| * testsuite/pr18689.sh: Likewise. |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2015-07-20 Yiran Wang <yiran@google.com> |
| Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/15574 |
| * resolve.cc (Symbol_table): Remove warning about references |
| from shared objects to hidden symbols. |
| * testsuite/Makefile.am (hidden_test): Add hidden_test.syms. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/hidden_test.sh: Check dynamic symbol table; update |
| expected error messages. |
| |
| 2015-07-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * compressed_output.cc (Output_compressed_section::set_final_data_size): |
| Make --compress-debug-sections=zlib the same as |
| --compress-debug-sections=zlib-gabi. |
| * testsuite/Makefile.am (flagstest_compress_debug_sections.check): |
| Expect ".debug_.*" with the SHF_COMPRESSED bit, instead of |
| ".zdebug_". |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2015-07-12 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/18322 |
| * compressed_output.cc (zlib_compress): Add argument for |
| compression header size. Set header size to compression header |
| size if it isn't 0. Don't write out the zlib header here. |
| (Output_compressed_section::set_final_data_size): Support |
| zlib-gnu and zlib-gabi compressions. Pass compression header |
| size to zlib_compress and write out compression header. Set |
| the SHF_COMPRESSED bit for zlib-gabi compression. Otherwise |
| clear the SHF_COMPRESSED bit |
| * options.h (compress_debug_sections): Add zlib-gnu and |
| zlib-gabi. |
| * output.h (Output_section::set_flags): New. |
| * testsuite/Makefile.am (check_PROGRAMS): Add |
| flagstest_compress_debug_sections_none, |
| flagstest_compress_debug_sections_gnu and |
| flagstest_compress_debug_sections_gabi. |
| (check_DATA): Add flagstest_compress_debug_sections_none.stdout. |
| flagstest_compress_debug_sections.stdout, |
| flagstest_compress_debug_sections.cmp, |
| flagstest_compress_debug_sections.check, |
| flagstest_compress_debug_sections_gnu.stdout, |
| flagstest_compress_debug_sections_gnu.cmp, |
| flagstest_compress_debug_sections_gnu.check, |
| flagstest_compress_debug_sections_gabi.stdout, |
| flagstest_compress_debug_sections_gabi.cmp and |
| flagstest_compress_debug_sections_gabi.check. |
| (flagstest_compress_debug_sections_none): New. |
| (flagstest_compress_debug_sections_none.stdout): Likewise. |
| (flagstest_compress_debug_sections.stdout): Likewise. |
| (flagstest_compress_debug_sections.check): Likewise. |
| (flagstest_compress_debug_sections.cmp): Likewise. |
| (flagstest_compress_debug_sections_gnu): Likewise. |
| (flagstest_compress_debug_sections_gnu.stdout): Likewise. |
| (flagstest_compress_debug_sections_gnu.check): Likewise. |
| (flagstest_compress_debug_sections_gnu.cmp): Likewise. |
| (flagstest_compress_debug_sections_gabi): Likewise. |
| (flagstest_compress_debug_sections_gabi.stdout): Likewise. |
| (flagstest_compress_debug_sections_gnu.check): Likewise. |
| (flagstest_compress_debug_sections_gnu.cmp): Likewise. |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2015-07-12 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/18321 |
| * compressed_output.h (decompress_input_section): Add arguments |
| for ELF class, big endian and sh_flags. |
| * compressed_output.cc (decompress_input_section): Likewise. |
| Support the SHF_COMPRESSED section. |
| * dynobj.h (Dynobj): Add elfsize and is_big_endian member |
| functions. |
| * plugin.h (Pluginobj): Likewise. |
| * layout.cc (Layout::get_output_section_flags): Also clear the |
| SHF_COMPRESSED bit. |
| * object.h (Compressed_section_info): Add flag to store sh_flags. |
| (Object): Add pure virtual elfsize and is_big_endian member |
| functions. |
| * object.cc (need_decompressed_section): Don't skip the ".zdebug" |
| prefix here. |
| (build_compressed_section_map): Check SHF_COMPRESSED for |
| uncompressed size. Store sh_flags in Compressed_section_info. |
| Pass size, big_endian and sh_flags to decompress_input_section. |
| Skip the ".debug"/".zdebug" prefix when passing section name to |
| need_decompressed_section. |
| (Sized_relobj_file<size, big_endian>::do_find_special_section): |
| Don't check ".zdebug_*" sections. |
| (Object::decompressed_section_contents): Pass ELF class, big |
| endian and sh_flags to decompress_input_section. |
| * reloc.cc (Sized_relobj_file<size, big_endian>::write_sections): |
| Likewise. |
| * testsuite/Makefile.am (check_DATA): Add |
| debug_msg_cdebug_gabi.err and gdb_index_test_2_gabi.stdout. |
| (MOSTLYCLEANFILES): Add debug_msg_cdebug_gabi.err and |
| gdb_index_test_2_gabi.stdout. |
| (debug_msg_cdebug_gabi.o): New. |
| (odr_violation1_cdebug_gabi.o): Likewise. |
| (odr_violation2_cdebug_gabi.o): Likewise. |
| (debug_msg_cdebug_gabi.err): Likewise. |
| (check_SCRIPTS): Add gdb_index_test_2_gabi.sh. |
| (gdb_index_test_cdebug_gabi.o): Likewise. |
| (gdb_index_test_2_gabi): Likewise. |
| (gdb_index_test_2_gabi.stdout): Likewise. |
| * testsuite/gdb_index_test_2_gabi.sh: New file. |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2015-07-09 Han Shen <shenhan@google.com> |
| |
| Use "gold_info" instead of "gold_warning" for erratum fix. |
| |
| * aarch64.cc (Target_aarch64::scan_erratum_843419_span): Use |
| 'gold_info'. |
| (Target_aarch64::scan_erratum_835769_span): USe 'gold_info'. |
| |
| 2015-07-09 Han Shen <shenhan@google.com> |
| |
| Drop missing symbol warning for arm/aarch64. |
| |
| * aarch64.cc (AArch64_relobj::scan_errata): Drop missing symbol warning. |
| * arm.cc (Arm_relobj::scan_section_for_cortex_a8_erratum): Drop missing |
| symbol warning. |
| |
| 2015-07-07 Han Shen <shenhan@google.com> |
| |
| Make gold aarch64 accept long form of mapping symbols. |
| |
| * aarch64.cc (AArch64_relobj::do_count_local_symbols): Make legal |
| of mapping symbols. |
| |
| 2015-06-29 Doug Kwan <dougkwan@google.com> |
| |
| * testsuite/arm_bl_out_of_range.s: Align stub table so that it appears |
| at address expected by test. |
| * testsuite/arm_cortex_a8_b.s: Ditto. |
| * testsuite/arm_cortex_a8_b_cond.s: Ditto. |
| * testsuite/arm_cortex_a8_bl.s: Ditto. |
| * testsuite/arm_cortex_a8_blx.s: Ditto. |
| * testsuite/arm_cortex_a8_local.s: Ditto. |
| * testsuite/arm_fix_v4bx.s: Ditto. |
| * testsuite/arm_unaligned_reloc.s: Ditto. |
| * testsuite/thumb_bl_out_of_range.s: Ditto. |
| * testsuite/thumb_bl_out_of_range_local.s: Ditto. |
| * testsuite/thumb_blx_out_of_range.s: Ditto. |
| |
| 2015-06-29 Han Shen <shenhan@google.com> |
| |
| Patch for erratum 843419 internal error. |
| |
| * aarch64.cc (Erratum_stub::Insn_utilities): New typedef. |
| (Erratum_stub::update_erratum_insn): New method. |
| (Stub_table::relocate_stubs): Modified to place relocated insn. |
| (AArch64_relobj::fix_errata): Modified gold_assert. |
| |
| 2015-06-12 Han Shen <shenhan@google.com> |
| |
| Fix erratum 835769. |
| |
| * aarch64.cc (AArch64_insn_utilities::BYTES_PER_INSN): Move |
| defintion outside class definition. |
| (AArch64_insn_utilities::AARCH64_ZR): New static constant. |
| (AArch64_insn_utilities::aarch64_op31): New member. |
| (AArch64_insn_utilities::aarch64_ra): New member. |
| (AArch64_insn_utilities::aarch64_mac): New member. |
| (AArch64_insn_utilities::aarch64_mlxl): New member. |
| (ST_E_835769): New global enum member. |
| (Stub_table::relocate_stubs): Add 835769 handler. |
| (Stub_template_repertoire::Stub_template_repertoire): Install new |
| stub type. |
| (AArch64_relobj::scan_errata): This func is renamed from |
| scan_erratum_843419. |
| (AArch64_relobj::do_count_local_symbols): Add 835769 handler. |
| (AArch64_relobj::do_relocate_sections): Add 835769 handler. |
| (AArch64_relobj::scan_sections_for_stubs): Add 835769 handler. |
| (Target_aarch64::scan_erratum_835769_span): New method. |
| (Target_aarch64::create_erratum_stub): New method. |
| (Target_aarch64::is_erratum_835769_sequence): New method. |
| (Target_aarch64::scan_erratum_843419_sequence): Move part of the |
| code into create_erratum_stub. |
| * options.h (fix_cortex_a53_835769): New option. |
| |
| 2015-06-11 Cary Coutant <ccoutant@gmail.com> |
| |
| * aarch64.cc (Erratum_stub::STUB_ADDR_ALIGN): Move initialization |
| outside class body. |
| (Reloc_stub::STUB_ADDR_ALIGN): Likewise. |
| |
| 2015-06-11 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/17731 |
| * layout.cc (corresponding_uncompressed_section_name): New function. |
| (Layout::choose_output_section): Call it. |
| * layout.h (corresponding_uncompressed_section_name): New function. |
| * script-sections.cc (Input_section_info::set_section_name): Check |
| for compressed debug section (.zdebug style). |
| |
| 2015-06-11 Jing Yu <jingyu@google.com> |
| |
| * testsuite/Makefile.am: Add -O0 for script_test_12 test. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2015-06-11 Davide Italiano <dccitaliano@gmail.com> |
| |
| * gold.h (is_cident): Correct typo. |
| |
| 2015-06-10 Han Shen <shenhan@google.com> |
| Patch for erratum-843419 (2 of 2 - fix erratum occurrences). |
| |
| Now fixing for 843419 is fully functional. |
| |
| The first part of the erratum fix CL is here - |
| https://sourceware.org/ml/binutils/2015-04/msg00229.html |
| |
| * aarch64.cc(global enum): New constants representing stub types. |
| (Stub_template): New POD struct. |
| (Stub_template_repertoire): New class. |
| (Stub_base): New class. |
| (Erratum_stub): New class. |
| (Reloc_stub): Refactored to be a subclass of Stub_base. |
| (Reloc_stub::Stub_type): Removed. |
| (Reloc_stub::offset): Moved to Stub_base. |
| (Reloc_stub::set_offset): Moved to Stub_base. |
| (Reloc_stub::destination_address): Moved to Stub_base. |
| (Reloc_stub::set_destination_address): Moved to Stub_base. |
| (Reloc_stub::reset_destination_address): Moved to Stub_base. |
| (Reloc_stub::stub_type): Renamed and moved to Stub_base. |
| (Reloc_stub::stub_size): Renamed and moved to Stub_base. |
| (Reloc_stub::stub_insns): Renamed and moved to Stub_base. |
| (Reloc_stub::write): Moved to Stub_base. |
| (Reloc_stub::invalid_offset): Moved to Stub_base. |
| (Reloc_stub::invalid_address): Moved to Stub_base. |
| (Reloc_stub::stub_type_): Renamed and moved to Stub_base. |
| (Reloc_stub::stub_insns_): Moved to Stub_base. |
| (Reloc_stub::offset_): Moved to Stub_base. |
| (Reloc_stub::destination_address_): Moved to Stub_base. |
| (Stub_table::The_aarch64_relobj): New typedef. |
| (Stub_table::The_erratum_stub): New typedef. |
| (Stub_table::The_erratum_stub_less): New typedef. |
| (Stub_table::The_erratum_stub_set): New typedef. |
| (Stub_table::The_erratum_stub_set_iter): New typedef. |
| (Stub_table::empty): Added emptiness testing for erratum stubs. |
| (Stub_table::add_erratum_stub): New method to add an erratum stub. |
| (Stub_table::find_erratum_stub): New method. |
| (Stub_table::find_erratum_stubs_for_input_section): New method. |
| (Stub_table::erratum_stub_address): New method. |
| (Stub_table::update_date_size_changed_p): Modified to handle erratum stubs. |
| (Stub_table::do_addralign): Modified to handle erratum stubs. |
| (Stub_table::erratum_stubs_): New member. |
| (Stub_table::erratum_stub_size_): New member. |
| (Stub_table::relocate_stubs): Modified to handle erratum stubs. |
| (Stub_table::do_write): Modified to handle erratum stubs. |
| (AArch64_relobj::The_erratum_stub): New typedef. |
| (AArch64_relobj::Erratum_stub_set_iter): New typedef. |
| (AArch64_relobj::fix_errata): New method. |
| (Target_aarch64::The_reloc_stub_type): Removed. |
| (Target_aarch64::The_erratum_stub): New typede. |
| (AArch64_relocate_functions::construct_b): New method. |
| |
| 2015-06-08 Nick Clifton <nickc@redhat.com> |
| |
| * po/fr.po: New French Translation. |
| |
| 2015-06-07 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/18288 |
| * resolve.cc (symbol_to_bits): Remove type parameter; adjust all |
| callers. Don't use STT_COMMON to check for common symbols. |
| (Symbol_table::resolve): Warn if relocatable object has STT_COMMON |
| symbol that's not in a common section. |
| * symtab.h (Symbol::is_common): Don't use STT_COMMON to check for |
| common symbols. |
| |
| 2015-06-04 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/18200 |
| * Makefile.am (diststuff): Add target. |
| * Makefile.in: Regenerate. |
| |
| 2015-06-04 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/17498 |
| * object.cc (Sized_relobj_file::do_count_local_symbols): Discard |
| temporary locals in merge sections. |
| * options.cc (General_options::parse_discard_all): New method. |
| (General_options::parse_discard_locals): New method. |
| (General_options::parse_discard_none): New method. |
| (General_options::General_options): Initialize discard_locals_. |
| * options.h (--discard-all): Convert to special option. |
| (--discard-locals): Likewise. |
| (--discard-none): New option. |
| (General_options::discard_all): New method. |
| (General_options::discard_locals): New method. |
| (General_options::discard_sec_merge): New method. |
| (General_options::Discard_locals): New enum. |
| (General_options::discard_locals_): New data member. |
| |
| 2015-06-03 Cary Coutant <cary@google.com> |
| |
| * script-sections.cc (Script_sections::Script_sections): Initialize |
| segments_created_. |
| (Script_sections::create_note_and_tls_segments): Set flag when |
| segments are created. |
| (Script_sections::expected_segment_count): Count PT_INTERP. |
| (Script_sections::attach_sections_using_phdrs_clause): Set flag when |
| segments are created. |
| * script-sections.h (Script_sections::segments_created_): New data |
| member. |
| |
| 2015-06-03 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/15370 |
| * script-sections.cc |
| (Output_section_element_input::set_section_addresses): When there |
| are several patterns with no sort spec, put all sections in the same |
| bin. |
| * testsuite/Makefile.am (script_test_12): New testcase. |
| (script_test_12i): New testcase. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/script_test_12.t: New test linker script. |
| * testsuite/script_test_12i.t: New test linker script. |
| * testsuite/script_test_12a.c: New test source file. |
| * testsuite/script_test_12b.c: New test source file. |
| |
| 2015-06-02 Cary Coutant <ccoutant@gmail.com> |
| |
| * nacl.h (Sniff_file): Switch parameters to get_view to get an |
| aligned view. |
| |
| 2015-06-03 Cary Coutant <ccoutant@gmail.com> |
| |
| PR gold/17819 |
| * gold.cc (queue_final_tasks): When --build-id=tree, queue a |
| separate task to schedule the build id computation. |
| * layout.cc (Hash_task::Hash_task): Remove build_id_blocker, |
| add Output_file and offset. |
| (Hash_task::run): Get and release the input views. |
| (Hash_task::is_runnable): Always return NULL (always runnable). |
| (Layout::queue_build_id_tasks): Remove. |
| (Layout::write_build_id): Add array_of_hashes and size_of_hashes |
| parameters; use them instead of class members. |
| (Build_id_task_runner::run): New function. |
| (Close_task_runner::run): Pass array_of_hashes and size_of_hashes |
| to write_build_id. |
| * layout.h (Layout::queue_build_id_tasks): Remove. |
| (Layout::write_build_id): Add array_of_hashes and size_of_hashes |
| parameters. |
| (Layout::array_of_hashes_): Remove. |
| (Layout::size_of_array_of_hashes_): Remove. |
| (Layout::input_view_): Remove. |
| (Build_id_task_runner): New class. |
| (Close_task_runner::Close_task_runner): Add array_of_hashes and |
| size_of_hashes parameters. |
| (Close_task_runner::array_of_hashes_): New data member. |
| (Close_task_runner::size_of_hashes_): New data member. |
| * testsuite/Makefile.am |
| (flagstest_compress_debug_sections_and_build_id_tree): New test. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2015-06-01 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * merge.cc (get_input_merge_map): Update for data structure change. |
| (get_or_make_input_merge_map): Update for data structure change. |
| * merge.h (Object_merge_map): Use a std::vector<std::pair>> instead of |
| a std::map. Remove first_shnum_, first_map_, second_shnum_, second_map_. |
| |
| 2015-05-16 Alan Modra <amodra@gmail.com> |
| |
| * reloc.cc (Sized_relobj_file::find_functions): Use function_location. |
| * powerpc.cc (Target_powerpc::do_calls_non_split): New function. |
| (addi_12_1, addis_2_12, addis_12_1, cmpld_7_12_0): New constants. |
| (lis_0): Rename from lis_0_0. |
| |
| 2015-04-29 Cary Coutant <cary@google.com> |
| Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * gc.h (Garbage_collection::is_section_garbage): Change Object* |
| to Relobj*. |
| (Garbage_collection::add_reference): Likewise. |
| (Garbage_collection::gc_process_relocs): Likewise. Don't push |
| object/shndx pair onto *secvec for dynamic objects. Don't follow |
| relocations pointing to dynamic objects for GC. |
| * icf.cc (Icf::find_identical_sections): Change Object* to Relobj*. |
| (Icf::unfold_section): Likewise. |
| (Icf::is_section_folded): Likewise. |
| (Icf::get_folded_section): Likewise. |
| * icf.h: (Icf::get_folded_section): Likewise. |
| (Icf::unfold_section): Likewise. |
| (Icf::is_section_folded): Likewise. |
| (Icf::section_has_function_pointers): Likewise. |
| (Icf::set_section_has_function_pointers): Likewise. |
| * object.h (Section_id): Likewise. |
| (Const_section_id): Likewise. |
| * output.cc (Output_section::update_section_layout): Likewise. |
| * output.h: (Output_section_lookup_maps::find_relaxed_input_section): |
| Likewise. |
| * plugin.cc (update_section_order): Likewise. |
| (unique_segment_for_sections): Likewise. |
| * powerpc.cc (Powerpc_relobj::add_reference): Likewise. |
| (Target_powerpc::do_gc_add_reference): Likewise. |
| (Target_powerpc::gc_process_relocs): Likewise. |
| (Target_powerpc::do_gc_add_reference): Likewise. |
| * symtab.cc (Symbol_table::is_section_folded): Likewise. |
| (Symbol_table::gc_mark_symbol): Likewise. |
| * symtab.h: (Symbol_table::is_section_folded): Likewise. |
| * target.h: (Sized_target::gc_add_reference): Likewise. |
| (Sized_target::do_gc_add_reference): Likewise. |
| |
| 2015-04-29 Nick Clifton <nickc@redhat.com> |
| |
| * po/fi.po: Updated Finnish translation. |
| |
| 2015-04-28 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::do_dynsym_value): Use Address rather |
| than unsigned int for find_global_entry result temp. Compare |
| against invalid_address. |
| (Target_powerpc::do_plt_address_for_global): Likewise. |
| (Target_powerpc::Relocate::relocate): Likewise. Don't assert |
| on plt call stub existence for debug info. Do assert for plt |
| and global entry stub existence if an alloc section. |
| |
| 2015-04-28 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Relocate::relocate): Don't assert |
| on missing global entry stub due to bogus debug info. |
| |
| 2015-04-27 Han Shen <shenhan@google.com> |
| |
| * options.h (--fix-cortex-a53-843419): Rename option. |
| * aarch64.cc (AArch64_relobj::do_count_local_symbols): Use renamed |
| option. |
| (AArch64_relobj::scan_sections_for_stubs): Use renamed option. |
| |
| 2015-04-27 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| PR gold/18327 |
| * output.cc (Output_section::is_input_address_mapped): Assume a missing |
| entry is mapped. |
| * testsuite/Makefile.am: Add the eh_test test. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/eh_test_a.cc: New test. |
| * testsuite/eh_test_b.cc: New test. |
| |
| 2015-04-23 Sriraman Tallam <tmsriram@google.com> |
| |
| * options.h (--weak-unresolved-symbols): New option. |
| * symtab.cc (Symbol_table::sized_write_globals): Change symbol |
| binding to weak with new option. |
| * symtab.h (is_weak_undefined): Check for new option. |
| (is_strong_undefined): Check for new option. |
| * testsuite/Makefile.am (weak_unresolved_symbols_test): New test. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/weak_unresolved_symbols_test.cc: New file. |
| |
| 2015-04-20 Ian Coolidge <icoolidge@google.com> |
| |
| * symtab.cc (Symbol::should_add_dynsym_entry): Return true for |
| GNU_UNIQUE. |
| |
| 2015-04-17 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * gc.cc (Garbage_collection::do_transitive_closure): Use back and |
| push_back. |
| * gc.h (Garbage_collection): Use a std::vector instead of a std::queue. |
| * object.cc (Sized_relobj_file::do_layout): Use push_back. |
| * powerpc.cc (process_gc_mark): Use push_back. |
| (Target_powerpc::do_gc_mark_symbol): Use push_back. |
| * symtab.cc (Symbol_table::gc_mark_symbol): Use push_back. |
| |
| 2015-04-16 Han Shen <shenhan@google.com> |
| |
| * aarch64.cc (AArch64_insn_utilities): New utility class. |
| (AArch64_relobj::Mapping_symbol_position): New struct. |
| (AArch64_relobj::Mapping_symbol_info): New typedef. |
| (AArch64_relobj::do_count_local_symbols): New function overriding |
| parent's implementation. |
| (AArch64_relobj::mapping_symbol_info_): New member |
| (AArch64_relobj::scan_erratum_843419): New method. |
| (Target_aarch64::scan_erratum_843419_span): New method. |
| (Target_aarch64::is_erratum_843419_sequence): New method. |
| * options.h (fix_cortex_a53): New option. |
| |
| 2015-04-09 Cary Coutant <ccoutant@google.com> |
| |
| * symtab.cc (Symbol::final_value_is_known): Check for TLS symbol |
| in a PIE link. |
| * testsuite/Makefile.am (tls_pie_test.sh): New test. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/tls_pie_test.sh: New. |
| |
| 2015-04-09 Cary Coutant <ccoutant@google.com> |
| |
| * debug.h (DEBUG_LOCATION): New. |
| (DEBUG_ALL): Include DEBUG_LOCATION. |
| (debug_string_to_enum): Add DEBUG_LOCATION. |
| * dwarf_reader.cc (Sized_dwarf_line_info::read_lines): Fix debug |
| output to print correct context. |
| (Sized_dwarf_line_info::do_addr2line): Add debug output. Return |
| up to 4 more locations at the beginning of the function. |
| * symtab.cc (Symbol_table::detect_odr_violations): Get canonical |
| result before sorting list of line numbers. |
| * testsuite/debug_msg.sh: Allow range of line numbers for |
| canonical results on optimized code. |
| |
| 2015-04-07 HC Yen <hc.yen@mediatek.com> |
| |
| Add AArch32 support for gold linker. |
| * arm.cc: Add V8 arch combine table. |
| |
| 2015-04-06 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * aarch64.cc (do_reloc_addend): Fix signature to match the parent one. |
| |
| 2015-04-06 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * gc.cc (Garbage_collection::do_transitive_closure): Avoid a call |
| to find by using the return value of insert. |
| |
| 2015-04-06 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * gc.cc (Garbage_collection::do_transitive_closure): Avoid a copy |
| constructor call. |
| |
| 2015-04-06 Ilya Tocar <ilya.tocar@intel.com> |
| |
| PR gold/17641 |
| * x86_64.cc (Target_x86_64::can_convert_mov_to_lea): New. |
| (Target_x86_64::Scan::local): Don't create GOT entry, when we |
| can convert mov to lea. |
| (Target_x86_64::Scan::global): Ditto. |
| (Target_x86_64::Relocate::relocate): Convert mov foo@GOTPCREL(%rip), |
| %reg to lea foo(%rip), %reg if possible. |
| * testsuite/Makefile.am (x86_64_mov_to_lea): New test. |
| * testsuite/x86_64_mov_to_lea1.s: New. |
| * testsuite/x86_64_mov_to_lea2.s: Ditto. |
| * testsuite/x86_64_mov_to_lea3.s: Ditto. |
| * testsuite/x86_64_mov_to_lea4.s: Ditto. |
| * testsuite/x86_64_mov_to_lea.sh: Ditto. |
| |
| 2015-04-02 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * configure: Regenerated. |
| |
| 2015-04-01 Ilya Tocar <ilya.tocar@intel.com> |
| |
| PR gold/17640 |
| * i386.cc (Target_i386::can_convert_mov_to_lea): New. |
| (Target_i386::Scan::local): Don't create GOT entry, when we |
| can convert GOT to GOTOFF. |
| (Target_i386::Scan::global): Ditto. |
| (Target_i386::Relocate::relocate): Convert mov foo@GOT(%reg), %reg to |
| lea foo@GOTOFF(%reg), %reg if possible. |
| * testsuite/Makefile.am (i386_mov_to_lea): New test. |
| * testsuite/i386_mov_to_lea1.s: New. |
| * testsuite/i386_mov_to_lea2.s: Ditto. |
| * testsuite/i386_mov_to_lea3.s: Ditto. |
| * testsuite/i386_mov_to_lea4.s: Ditto. |
| * testsuite/i386_mov_to_lea5.s: Ditto. |
| * testsuite/i386_mov_to_lea.sh: Ditto. |
| |
| 2015-04-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * Makefile.am (ZLIB): New. |
| (ZLIBINC): Likewise. |
| (AM_CFLAGS): Add $(ZLIBINC). |
| (AM_CXXFLAGS): Likewise. |
| (ldadd_varldadd_var): Add $(ZLIB). |
| (incremental_dump_LDADD): Likewise. |
| (dwp_LDADD): Likewise. |
| * compressed_output.cc: Don't check HAVE_ZLIB_H to include |
| <zlib.h>. |
| (zlib_compress): Don't check HAVE_ZLIB_H. |
| (zlib_decompress): Likewise. |
| * options.h (compress_debug_sections): Likewise. |
| * configure.ac (AM_CONDITIONAL): Removed. |
| * testsuite/Makefile.am (ZLIB): New. |
| (LDADD): Add $(ZLIB). |
| Don't check HAVE_ZLIB. |
| * Makefile.in: Regenerated. |
| * config.in: Likewise. |
| * configure: Likewise. |
| * testsuite/Makefile.in: Likewise. |
| |
| 2015-03-30 Jing Yu <jingyu@google.com> |
| |
| * aarch64-reloc.def: New TLSLD_ADD_DTPREL_HI12, |
| TLSLD_ADD_DTPREL_LO12_NC. |
| * aarch64.cc (Target_aarch64::define_tls_base_symbol): Always let |
| _TLS_MODULE_BASE_ point to the start of tls segment. |
| (Target_aarch64::optimize_tls_reloc): Add cases for |
| R_AARCH64_TLSLD_ADD_DTPREL_HI12 and |
| R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC. |
| (Target_aarch64::Scan::local): Likewise. |
| (Target_aarch64::Scan::global): Likewise. |
| (Target_aarch64::Relocate::relocate): Likewise. |
| (Target_aarch64::Relocate::relocate_tls): Likewise. And remove |
| subtracting tls segment size from symbol value for TLSLD_*_DTPREL |
| relocations. |
| |
| 2015-03-27 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * merge.cc (Object_merge_map::add_mapping): call |
| Object_merge_map::Input_merge_map::add_mapping. |
| (Object_merge_map::Input_merge_map::add_mapping): New. |
| (Output_merge_data::do_add_input_section): Call |
| get_or_make_input_merge_map before a loop. |
| (Output_merge_string<Char_type>::finalize_merged_data): Call |
| get_or_make_input_merge_map before a loop. |
| * merge.h (Object_merge_map): Make Input_merge_map public. |
| * object.cc (Relobj::add_merge_mapping): Use get_or_create_merge_map. |
| (Relobj::get_or_create_merge_map): New. |
| * object.h (Relobj::get_or_create_merge_map): New. |
| |
| 2015-03-24 Alan Modra <amodra@gmail.com> |
| |
| PR 18147 |
| * powerpc.cc (Target_powerpc::Relocate::relocate): Don't report |
| relocation errors for branches to strong undefined symbols. |
| |
| 2015-03-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * merge.cc (Object_merge_map::get_input_merge_map): Make it const. |
| (Object_merge_map::is_merge_section_for): Remove. |
| (Object_merge_map::find_merge_section): New. |
| * merge.h (Object_merge_map::is_merge_section_for): Remove. |
| (Object_merge_map::find_merge_section): New. |
| (Object_merge_map::get_input_merge_map): Add a const version. |
| * object.cc (Relobj::is_merge_section_for): Remove. |
| (Relobj::find_merge_section): New. |
| * object.h (Relobj::is_merge_section_for): Remove. |
| (Relobj::find_merge_section): New. |
| * output.cc |
| (Output_section::Input_section::is_merge_section_for): Remove. |
| (Output_section::add_merge_input_section): Don't call |
| add_merge_input_section. |
| (Output_section::find_merge_section): Return const. Use |
| object->find_merge_section. |
| (Output_section::build_lookup_maps): Don't build a map for |
| merge sections. |
| (Output_section::is_input_address_mapped): Return false if |
| section is not found. |
| (Output_section::find_starting_output_address): Use |
| find_merge_section instead of is_merge_section_for. |
| (Output_section::add_script_input_section): Don't build a map for |
| merge sections. |
| * output.h (Output_section_lookup_maps::merge_sections_by_id_): Remove. |
| (Output_section_lookup_maps::find_merge_section): Remove. |
| (Output_section_lookup_maps::add_merge_input_section) Remove. |
| (Output_section::find_merge_section): Return const. |
| |
| 2015-03-22 Cary Coutant <cary@google.com> |
| |
| PR gold/18106 |
| * i386.cc (Target_i386::Relocate::tls_gd_to_ie): Fix support for |
| non-SIB form of lea, with nop after the call. |
| |
| 2015-03-21 Cary Coutant <cary@google.com> |
| |
| PR gold/14217 |
| * output.cc (Output_segment::is_first_section_relro): Don't ignore |
| .tdata section. |
| (Output_segment::set_section_addresses): Don't align size of relro |
| segment for .tbss. |
| |
| 2015-03-21 Cary Coutant <cary@google.com> |
| |
| PR gold/18010 |
| * stringpool.cc (Stringpool_template): Don't optimize if section |
| alignment is greater than sizeof(char). |
| |
| 2015-03-21 Cary Coutant <cary@google.com> |
| |
| PR gold/18048 |
| * script-c.h (script_include_directive): Add first_token parameter. |
| * script.cc (script_include_directive): Add first_token parameter, and |
| pass it to read_script_file. |
| * yyscript.y (PARSING_SECTIONS_BLOCK, PARSING_SECTION_CMDS) |
| (PARSING_MEMORY_DEF): New tokens. |
| (top): Add new productions for INCLUDE files. |
| (file_cmd): Replace file_or_sections_cmd with copy of its productions. |
| Pass PARSING_LINKER_SCRIPT to script_include_directive. |
| (section_block_cmd): Likewise; pass PARSING_SECTIONS_BLOCK. |
| (section_cmd): Pass PARSING_SECTION_CMDS. |
| (file_or_sections_cmd): Remove. |
| (memory_def): Pass PARSING_MEMORY_DEF. |
| * testsuite/Makefile.am (memory_test_2): New test. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/memory_test_inc.t: New script file. |
| * testsuite/memory_test_inc_1.t.src: New script file. |
| * testsuite/memory_test_inc_2.t.src: New script file. |
| * testsuite/memory_test_inc_3.t.src: New script file. |
| |
| 2015-03-21 Cary Coutant <cary@google.com> |
| |
| * dwp.cc (Sized_relobj_dwo::do_section_contents): Delete. |
| (Sized_relobj_dwo::setup): Build compressed section map. |
| (Sized_relobj_dwo::do_decompressed_section_contents): Delete. |
| * dynobj.cc (Sized_dynobj::base_read_symbols): Build compressed |
| section map. |
| * object.cc (Sized_relobj_file::Sized_relobj_file): Remove |
| compressed_sections_ field. |
| (build_compressed_section_map): Take Object instead of |
| Sized_relobj_file parameter; add decompress_if_needed parameter. |
| (Sized_relobj_file::do_find_special_sections): Store compressed |
| section map in parent Object. |
| (Sized_relobj_file::do_decompressed_section_contents): Move |
| implementation to Object::decompressed_section_contents. |
| (Sized_relobj_file::do_discard_decompressed_sections): Move |
| implementation to Object::discard_decompressed_sections. |
| * object.h (build_compressed_section_map): Declare. |
| (Object::Object): Add compressed_sections_ field. |
| (Object::section_is_compressed): Move implementation here. |
| (Object::decompressed_section_contents): De-virtualize. |
| (Object::discard_decompressed_sections): De-virtualize. |
| (Object::do_section_is_compressed): Delete. |
| (Object::do_decompressed_section_contents): Delete. |
| (Object::set_compressed_sections): New method. |
| (Object::compressed_sections): New method. |
| (Object::compressed_sections_): New data member. |
| (Compressed_section_info, Compressed_section_map): Move to top of file. |
| (Sized_relobj_file::do_section_is_compressed): Delete. |
| (Sized_relobj_file::do_decompressed_section_contents): Delete. |
| (Sized_relobj_file::do_discard_decompressed_sections): Delete. |
| (Sized_relobj_file::compressed_sections_): Move to Object class. |
| |
| 2015-03-21 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/18152 |
| * gold.cc (queue_middle_tasks): Finalize .eh_frame after laying out |
| deferred objects. |
| |
| 2015-03-11 Cary Coutant <ccoutant@google.com> |
| |
| * options.cc (General_options::finalize): Don't allow -z relro |
| with incremental linking. |
| * testsuite/Makefile.am (incremental_test): Add -z norelro. |
| (incremental_test_2): Likewise. |
| (incremental_test_3): Likewise. |
| (incremental_test_4): Likewise. |
| (incremental_test_5): Likewise. |
| (incremental_test_6): Likewise. |
| (incremental_copy_test): Likewise. |
| (incremental_common_test_1): Likewise. |
| (incremental_comdat_test_1): Likewise. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2015-03-09 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/14675 |
| * ehframe.cc (Eh_frame::add_ehframe_input_section): Change return type; |
| return enum indicating whether .eh_frame section is empty, optimizable, |
| unrecognized, or an end marker. Adjust explicit instantiations. |
| * ehframe.h (Eh_frame::Eh_frame_section_disposition): New enum type. |
| (Eh_frame::add_ehframe_input_section): Change return type. |
| * gold.cc (queue_middle_tasks): Call Layout::finalize_eh_frame_section. |
| * layout.cc (Layout::layout_eh_frame): Don't add optimized sections |
| to the .eh_frame output section until we see the end marker. |
| (Layout::finalize_eh_frame_section): New. |
| * layout.h: (Layout::finalize_eh_frame_section): New. |
| |
| 2015-03-05 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * output.cc (Relobj::initialize_input_to_output_map<size>): |
| Remove typename on elfcpp::Elf_types<size>::Elf_Addr. |
| |
| 2015-03-04 Cary Coutant <ccoutant@google.com> |
| |
| * parameters.cc (Parameters::set_target_once): Call |
| Target::select_as_default_target just once from here... |
| (set_parameters_target): ...instead of from here. |
| |
| 2015-03-04 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * ehframe.cc (Cie::set_output_offset): Pass in and use a |
| Output_section_data instead of a Merge_map. |
| (Eh_frame::Eh_frame): Don't initialize merge_map_. |
| (Eh_frame::read_cie): Use add_merge_mapping instead of |
| Merge_map::add_mapping. |
| (Eh_frame::read_fde): Ditto. |
| (Eh_frame::set_final_data_size): Use this instead of this->merge_map_. |
| (Eh_frame::do_output_offset): Use merge_output_offset istead of |
| merge_map_->get_output_offset. |
| (Eh_frame::do_is_merge_section_for): Delete. |
| * ehframe.h (Fde::add_mapping): Pass in and use a Output_section_data |
| instead of a Merge_map. |
| (Cie::set_output_offset): Pass in a Output_section_data instead of a |
| Merge_map. |
| (Eh_frame::do_is_merge_section_for): Delete. |
| (Eh_frame::merge_map_): Delete. |
| * merge.cc (Object_merge_map::get_or_make_input_merge_map): Pass in |
| and use a Output_section_data instead of a Merge_map. |
| (Object_merge_map::add_mapping): Ditto. |
| (Object_merge_map::get_output_offset): Remove the merge_map argument. |
| (Object_merge_map::is_merge_section_for): Pass in and use a |
| Output_section_data instead of a Merge_map. |
| (Merge_map): Delete. |
| (Output_merge_base::do_output_offset): Use merge_output_offset instead |
| of merge_map_.get_output_offset. |
| (Output_merge_base::do_is_merge_section_for): Delete. |
| (Output_merge_data::do_add_input_section): Use |
| object->add_merge_mapping instead of add_mapping. |
| (Output_merge_string<Char_type>::finalize_merged_data): Ditto. |
| * merge.h (Merge_map): Delete forward declaration. |
| (Object_merge_map::add_mapping): Pass in and use a Output_section_data |
| instead of a Merge_map. |
| (Object_merge_map::get_output_offset): Remove the merge_map argument. |
| (Object_merge_map::is_merge_section_for): Pass in and use a |
| Output_section_data instead of a Merge_map. |
| (Input_merge_map::Object_merge_map::merge_map): Replace with |
| output_data. |
| (Object_merge_map::get_or_make_input_merge_map): Pass in and use a |
| Output_section_data instead of a Merge_map. |
| (Merge_map): Delete. |
| (Output_merge_base::Output_merge_base): Don't initialize merge_map_. |
| (Output_merge_base::do_is_merge_section_for): Delete. |
| (Output_merge_base::add_mapping): Delete. |
| (Output_merge_base::merge_map_): Delete. |
| * object.cc (Relobj::initialize_input_to_output_map): New. |
| (Relobj::initialize_input_to_output_map): New. |
| (Relobj::merge_output_offset): New. |
| (Relobj::is_merge_section_for): New. |
| (Relobj::initialize_input_to_output_map): Instantiate for 32 and 64 |
| bits. |
| * object.h (Relobj::merge_map): Delete. |
| (initialize_input_to_output_map): New. |
| (set_merge_map): Delete. |
| (add_merge_mapping): New. |
| (merge_output_offset): New. |
| (is_merge_section_for): New. |
| * output.cc (Output_section::Input_section::is_merge_section_for): |
| Use object->is_merge_section_for. |
| * output.h (Output_section_data::is_merge_section_for): Delete. |
| (Output_section_data::do_is_merge_section_for): Delete. |
| * reloc.cc (Merged_symbol_value<size>::initialize_input_to_output_map): |
| Use object->initialize_input_to_output_map. |
| (Merged_symbol_value<size>::value_from_output_section): Use |
| object->merge_output_offset. |
| |
| 2015-03-02 Peter Collingbourne <pcc@google.com> |
| Cary Coutant <ccoutant@google.com> |
| |
| * output.cc (Output_section::add_merge_input_section): Do not |
| attempt to merge sections with an entsize of 0. |
| |
| 2015-03-02 Khem Raj <raj.khem@gmail.com> |
| |
| * attributes.h (class Output_attributes_section_data ): Add |
| do_print_to_mapfile function. |
| |
| 2015-02-24 Alan Modra <amodra@gmail.com> |
| |
| PR 18010 |
| * powerpc.cc (Powerpc_relocate_functions::addr16_ds): Always |
| complain if value is not a multiple of four. |
| (Target_powerpc::Relocate::relocate): Correct handling of |
| R_POWERPC_GOT_TPREL16 and R_POWERPC_GOT_TPREL16_LO for ppc64. |
| |
| 2015-02-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * configure.ac (default_size): Set to 32 for x32. |
| * configure: Regenerated. |
| |
| 2015-02-18 Alan Modra <amodra@gmail.com> |
| |
| PR 17954 |
| * powerpc.cc (Global_symbol_visitor_opd::operator()): Set default |
| visibility. |
| |
| 2015-02-17 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * gc.h (Garbage_collection::add_reference): Don't use find. |
| |
| 2015-02-17 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * object.cc (write_local_symbols): avoid std::vector copy. |
| |
| 2015-02-17 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * merge.cc (get_output_offset): Use upper_bound instead of lower_bound. |
| |
| 2015-02-09 Mark Wielaard <mjw@redhat.com> |
| |
| * gdb-index.cc (Gdb_index_info_reader::visit_top_die): Recognize |
| DW_LANG_Fortran03 and DW_LANG_Fortran08. |
| |
| 2015-02-16 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/13577 |
| PR gold/16992 |
| * layout.cc (Layout::finish_dynamic_section): Don't set DT_SYMBOLIC or |
| DF_SYMBOLIC if --dynamic-list option is used. |
| * options.cc (General_options::finalize): --dynamic-list is not |
| mutually exclusive with -Bsymbolic. |
| * symtab.h (Symbol::is_preemptible): Don't exclude dynamic symbols not |
| listed in --dynamic-list. |
| * testsuite/Makefile.am (dynamic_list_lib2.so): Add |
| -Bsymbolic-functions. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2015-02-16 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/17971 |
| * incremental.cc: Remove redundant include of "output.h". |
| |
| 2015-02-12 Jing Yu <jingyu@google.com> |
| |
| * aarch64-reloc.def (TLSLE_MOVW_TPREL_G2, TLSLE_MOVW_TPREL_G1, |
| TLSLE_MOVW_TPREL_G1_NC, TLSLE_MOVW_TPREL_G0, TLSLE_MOVW_TPREL_G0_NC,): |
| New relocation. |
| * aarch64.cc (Target_aarch64::Scan::local): Add cases for new |
| TLSLE_MOVW_* relocations. |
| (Target_aarch64::Scan::global): Likewise. |
| (Target_aarch64::Relocate::relocate): Likewise. |
| (Target_aarch64::Relocate::relocate_tls): Add cases and handlings |
| for new TLSLE_MOVW_* relocations. |
| |
| 2015-02-11 Will Newton <will.newton@linaro.org> |
| |
| PR gold/13321 |
| * arm.cc (Target_arm::make_plt_section): Create an ARM |
| state mapping symbol at the start of the PLT. |
| |
| 2015-02-09 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * testsuite/Makefile.am (two_file_shared_2_pic_1_test_DEPENDENCIES): |
| Replace two_file_shared_2.so with two_file_shared_1.so. |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2015-02-09 Alan Modra <amodra@gmail.com> |
| |
| * testsuite/Makefile.am (MOSTLYCLEANFILES): Add libweak_undef_2.a, |
| plugin_test_thin.a and defsym_test. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2015-02-04 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * merge.cc (do_add_input_section): Combine loop epilogue into main loop |
| body. |
| |
| 2015-02-04 Peter Collingbourne <pcc@google.com> |
| |
| * plugin.cc (Pluginobj::get_symbol_resolution_info): Resolve |
| forwarding symbols when computing symbol resolution info for plugins. |
| * plugin.h (Plugin_manager::symtab): New method. |
| (Pluginobj::get_symbol_resolution_info): Add symtab parameter. |
| |
| 2015-02-03 Cary Coutant <ccoutant@google.com> |
| Peter Collingbourne <pcc@google.com> |
| |
| PR gold/15660 |
| * archive.cc (Thin_archive_object_unlocker): New class. |
| (Archive::include_member): Unlock external members of thin archives. |
| * testsuite/Makefile.am (plugin_test_1): Rename .syms files. |
| (plugin_test_2): Likewise. |
| (plugin_test_3): Likewise. |
| (plugin_test_4): Likewise. |
| (plugin_test_5): Likewise. |
| (plugin_test_6): Likewise. |
| (plugin_test_7): Likewise. |
| (plugin_test_8): Likewise. |
| (plugin_test_9): Likewise. |
| (plugin_test_10): Likewise. |
| (plugin_test_11): New test case. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/plugin_test.c (claim_file_hook): Check for parallel .syms |
| file to decide whether to claim file. |
| (all_symbols_read_hook): Likewise. |
| * testsuite/plugin_test_1.sh: Adjust expected output. |
| * testsuite/plugin_test_2.sh: Likewise. |
| * testsuite/plugin_test_3.sh: Likewise. |
| * testsuite/plugin_test_6.sh: Likewise. |
| * testsuite/plugin_test_tls.sh: Likewise. |
| * testsuite/plugin_test_11.sh: New testcase. |
| |
| 2015-02-03 Cary Coutant <ccoutant@google.com> |
| |
| * descriptors.cc (Descriptors::open): Set artificially-low limit for |
| file descriptors when debugging enabled. Add debug output. |
| (Descriptors::release): Add debug output. |
| (Descriptors::close_some_descriptor): Likewise. |
| (Descriptors::close_all): Likewise. |
| * fileread.cc (File_read::lock): Likewise. |
| (File_read::unlock): Likewise. |
| |
| 2015-02-02 Cary Coutant <ccoutant@google.com> |
| |
| * x86_64.cc (Target_x86_64::Relocate::relocate_tls): Check for |
| executable output file. |
| |
| 2015-01-22 Han Shen <shenhan@google.com> |
| |
| * arm.cc (Target_arm::Target_arm): Add initialization for new members. |
| (Target_arm::do_plt_address_for_global): New method. |
| (Target_arm::do_plt_address_for_local): New method. |
| (Target_arm::rel_irelative_section): New method. |
| (Target_arm::make_data_plt): Add more parameters for plt ctor. |
| (Target_arm::do_make_data_plt): Add more parameters for plt ctor. |
| (Target_arm::Scan::symbol_needs_plt_entry): Add ifunc support. |
| (Target_arm::Scan::reloc_needs_plt_for_ifunc): Add ifunc support. |
| (Target_arm::Scan::check_non_pic): Add ifunc support. |
| (Target_arm::Scan::local): Add ifunc support. |
| (Target_arm::Scan::global): Add ifunc support. |
| (Target_arm::make_plt_section): New method. |
| (Target_arm::make_plt_entry): Change to call to make_plt_section. |
| (Target_arm::make_local_ifunc_plt_entry): New method. |
| (Target_arm::got_irelative_): New member. |
| (Target_arm::rel_irelative_): New member. |
| (Target_arm::got_section): Add creation for got_irelative_. |
| (Target_arm::rel_dyn_section): Add creation for rel_irelative_. |
| (Target_arm::Relocate::relocate): Properly set local ifunc address. |
| (Target_arm::do_dynsym_value): Properly set global ifunc address. |
| (Target_arm::scan_reloc_for_stub): Properly set global ifunc address. |
| (Output_data_plt_arm::IRelative_data): New type. |
| (Output_data_plt_arm::Output_data_plt_arm): Add more parameters. |
| (Output_data_plt_arm::add_entry): Add more parameters. |
| (Output_data_plt_arm::add_relocation): New method. |
| (Output_data_plt_arm::add_local_ifunc_entry): New method. |
| (Output_data_plt_arm::rel_irelative): New method. |
| (Output_data_plt_arm::entry_count): Modified. |
| (Output_data_plt_arm::address_for_global): New method. |
| (Output_data_plt_arm::address_for_local): New method. |
| (Output_data_plt_arm::set_final_data_size): Add irelative_count_. |
| (Output_data_plt_arm::insert_irelative_data): New method. |
| (Output_data_plt_arm::irelative_rel_): New member. |
| (Output_data_plt_arm::got_): New member. |
| (Output_data_plt_arm::got_irelative_): New member. |
| (Output_data_plt_arm::irelative_count_): New member. |
| (Output_data_plt_arm::IRelative_data_vec): New typedef. |
| (Output_data_plt_arm::irelative_data_vec_): New member. |
| (Output_data_plt_arm::do_write): Write out irelative entries. |
| (Output_data_plt_arm_standard::Output_data_plt_arm_standard): Add |
| more parameters to ctor. |
| (Output_data_plt_arm_nacl::Output_data_plt_arm_nacl): Add |
| more parameters to ctor. |
| * output.h (Output_data_reloc::add_local_relative): New method. |
| * aarch64.cc (Output_data_plt_aarch64): Fixed typo in comment. |
| |
| 2015-01-29 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Relocate::relocate): Correct GOT_TLSLD |
| and GOT_TLSGD to LE optimization. |
| |
| 2015-01-28 Cary Coutant <ccoutant@google.com> |
| |
| * x86_64.cc (Target_x86_64::Scan::global): Allow IE-to-LE optimization |
| for undef TLS symbols. |
| (Target_x86_64::Relocate::relocate_tls): Likewise. |
| (Target_x86_64::Relocate::tls_ie_to_le): Likewise. |
| |
| 2015-01-25 Cary Coutant <ccoutant@google.com> |
| |
| * output.cc (Output_segment::set_section_addresses): Fix calculation |
| of size of relro segment. |
| |
| 2015-01-22 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Scan::local <got relocs>): Correct |
| condition for need of ifunc plt entry. |
| (Target_powerpc::Scan::global <got relocs>): Likewise. |
| |
| 2015-01-14 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * mips.cc (reloc_high): Add r_sym. |
| (Mips_relocate_functions::relhi16): Add r_sym parameter. Pass r_sym to |
| reloc_high constructor. |
| (Mips_relocate_functions::relgot16_local): Likewise. |
| (Mips_relocate_functions::rello16): Add r_sym parameter. Use r_sym and |
| r_type to decide whether LO16 matches HI16. |
| (Target_mips::Relocate::relocate): Pass r_sym to calls to relhi16, |
| rello16 and relgot16_local. |
| |
| 2015-01-09 Cary Coutant <ccoutant@google.com> |
| |
| * layout.cc (Layout::set_segment_offsets): Don't align start of segment |
| unless alignment is larger than page size. |
| |
| 2015-01-06 H.J. Lu <hongjiu.lu@intel.com> |
| Cary Coutant <ccoutant@google.com> |
| |
| PR gold/17729 |
| * configure.ac (DEFAULT_TARGET_X86_64): Don't set for x32. |
| (DEFAULT_TARGET_X32): Set for x32. |
| * x86_64.cc (cmp_insn_32): New. |
| (lea_r10_insn_32): Likewise. |
| (lea_r11_insn_32): Likewise. |
| (cmp_insn_64): Likewise. |
| (lea_r10_insn_64): Likewise. |
| (lea_r11_insn_64): Likewise. |
| (Target_x86_64<size>::do_calls_non_split): Handle x32. |
| * testsuite/Makefile.am (check_SCRIPTS): Add split_x32.sh. |
| (check_DATA): Add split_x32 files. |
| (split_x32_[1234n].o): New targets. |
| (split_x32_[124]): New targets. |
| (split_x32_[1234r].stdout): New targets. |
| * testsuite/split_x32.sh: New file. |
| * testsuite/split_x32_1.s: Likewise. |
| * testsuite/split_x32_2.s: Likewise. |
| * testsuite/split_x32_3.s: Likewise. |
| * testsuite/split_x32_4.s: Likewise. |
| * testsuite/split_x32_n.s: Likewise. |
| * configure: Regenerated. |
| * testsuite/Makefile.in: Likewise. |
| |
| 2015-01-06 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/17809 |
| * x86_64.cc (Target_x86_64<size>::Relocate::tls_ie_to_le): Handle |
| x32. |
| |
| 2015-01-02 Alan Modra <amodra@gmail.com> |
| |
| * version.cc (print_version): Just print current year. |
| * dwp.cc (print_version): Likewise. |
| |
| 2015-01-01 Alan Modra <amodra@gmail.com> |
| |
| Update year range in copyright notice of all files. |
| |
| 2014-12-25 Alan Modra <amodra@gmail.com> |
| |
| * arm.cc (Target_arm::do_adjust_elf_header): Provide namespace on |
| new enums. |
| (Target_arm::merge_object_attributes, ): Likewise. |
| |
| 2014-12-25 Thomas Preud'homme <thomas.preudhomme@arm.com> |
| |
| * arm.cc (Target_arm::do_adjust_elf_header): Set e_flags in ELF header |
| as hard float only when Tag_ABI_VFP_args is 1, using new enum value |
| AEABI_VFP_args_vfp to check that. |
| (Target_arm::merge_object_attributes): Handle new Tag_ABI_VFP_args |
| value and replace hardcoded values by enum values. |
| |
| 2014-12-22 Cary Coutant <ccoutant@google.com> |
| |
| * powerpc.cc (Target_powerpc::relocate): Fix overflow check. |
| |
| 2014-12-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/14608 |
| * testsuite/debug_msg.cc (SometimesInlineFunction): Changed |
| to "return i * i * 3;". |
| |
| 2014-12-16 Cary Coutant <ccoutant@google.com> |
| |
| * mapfile.cc (Mapfile::print_input_section): Print uncompressed sizes. |
| (Mapfile::print_output_data): Use current_data_size() to avoid |
| assert for sections requiring postprocessing; if address is not valid, |
| print 0. |
| (Mapfile::print_output_section): Use current_data_size(); print note |
| that addresses and sizes are before compression. |
| |
| 2014-12-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * aarch64.cc (AArch64_relocate_functions::maybe_apply_stub): |
| Cast current_group_size to unsigned long when reporting error. |
| |
| 2014-12-10 Jing Yu <jingyu@google.com> |
| |
| * aarch64.cc (Target_aarch64): Add new variable stub_group_size_. |
| (AArch64_relocate_functions::maybe_apply_stub): Add new parameter. |
| Update error message. |
| (Target_aarch64::do_relax): Use absolute value of option |
| stub_group_size. Replace local variable with class member |
| stub_group_size_. |
| |
| 2014-12-04 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Branch_info::make_stub): Ignore |
| addend of PLTREL24 reloc when not generating a plt stub. Make |
| max_branch_offset an "Address". |
| (Stub_table::can_reach_stub): Make max_branch_offset an "Address". |
| (Target_powerpc::Relocate::relocate): Likewise. |
| |
| 2014-12-04 Alan Modra <amodra@gmail.com> |
| |
| PR 17670 |
| * symtab.cc (Symbol::set_undefined): Remove assertion. |
| * powerpc.cc (Target_powerpc::symval_for_branch): Don't assert |
| on symbols defined in discarded sections, instead return false. |
| Rearrange params, update all callers. |
| (Target_powerpc::Branch_info::make_stub): Don't make stubs for |
| branches to syms in discarded sections. |
| (Global_symbol_visitor_opd::operator()): Set discarded opd syms |
| undefined and flag as discarded. |
| (Target_powerpc::Relocate::relocate): Localize variable. |
| |
| 2014-12-03 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/17675 |
| * testsuite/Makefile.am (pie_copyrelocs_test_CXXFLAGS): New. |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2014-12-03 Alan Modra <amodra@gmail.com> |
| |
| PR 17566 |
| * powerpc.cc (Target_powerpc::Scan::local): Use add_local_section |
| when adding dynamic relocations against section symbols. |
| |
| 2014-12-01 Dimitry Ivanov <dimitry@google.com> |
| |
| * layout.cc (Layout::finish_dynamic_section): When '-z global' |
| is specified set DF_1_GLOBAL in DT_FLAGS_1 flags. |
| * options.h (General_options): New -z option (global). |
| |
| 2014-12-01 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/17578 |
| * layout.cc (Layout::layout_gnu_stack): Don't warn when -z execstack |
| is given. |
| (Layout::create_executable_stack_info): Warn when -z noexecstack is |
| given but some inputs require executable stack. |
| |
| 2014-11-26 Cary Coutant <ccoutant@google.com> |
| |
| * layout.cc (gdb_sections): Keep .debug_gdb_scripts and |
| .debug_str_offsets; strip .debug_gnu_pubnames and |
| .debug_gnu_pubtypes. |
| (lines_only_debug_sections): Strip all four new sections. |
| |
| 2014-11-26 Jing Yu <jingyu@google.com> |
| |
| * aarch64.cc (Relocate::tls_desc_gd_to_ie): Set ldr target |
| register to be x0 when to relax TLSDESC_LD64_LO12. |
| |
| 2014-11-26 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (struct Stub_table_owner): New. |
| (Powerpc_relobj): Rename stub_table_ to stub_table_index_, an |
| unsigned int vector. Update all references. |
| (powerpc_relobj::set_stub_table): Take an unsigned int param |
| rather than a Stub_table. Update callers. |
| (Powerpc_relobj::clear_stub_table): New function. |
| (Target_powerpc): Add relax_failed_, relax_fail_count_ and |
| stub_group_size_ vars. |
| (Target_powerpc::new_stub_table): Delete. |
| (max_branch_delta): New function, extracted from.. |
| (Target_powerpc::Relocate::relocate): ..here.. |
| (Target_powerpc::Branch_info::make_stub): ..and here. Return |
| status on whether stub created successfully. |
| (Stub_control::Stub_control): Add "no_size_errors" param. Move |
| default sizing to.. |
| (Target_powerpc::do_relax): ..here. Init stub_group_size_ and |
| reduce on relax failure. |
| (Target_powerpc::group_sections): Add "no_size_errors" param. |
| Use stub_group_size_. Set up group info in a temp vector, |
| before building Stub_table vector. Account for input sections |
| possibly already converted to relaxed sections. |
| (Stub_table::init): Delete. Merge into.. |
| (Stub_table::Stub_table): ..here. |
| (Stub_table::can_reach_stub): New function. |
| (Stub_table::add_plt_call_entry): Add "from" parameter and |
| return true iff stub could be reached. |
| (Stub_table::add_long_branch_entry): Similarly. Add "r_type" |
| param too. |
| (Stub_table::clear_stubs): Add "all" param. |
| |
| 2014-11-26 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Stub_control::set_output_and_owner): New function. |
| (Target_powerpc::group_sections): Use it. |
| |
| 2014-11-25 Cary Coutant <ccoutant@google.com> |
| |
| * binary.cc (Binary_to_elf::sized_convert): Add size to _start symbol. |
| (Binary_to_elf::write_symbol): Add st_size parameter. |
| * binary.h (Binary_to_elf::write_symbol): Add st_size parameter. |
| |
| 2014-11-25 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/17639 |
| * object.cc (Sized_relobj_file): Initialize is_deferred_layout_. |
| (Sized_relobj_file::do_layout): Handle deferred sections properly |
| during GC pass 1. Don't add reloc sections to deferred list twice. |
| * object.h (Sized_relobj_file::is_deferred_layout): New function. |
| (Sized_relobj_file::is_deferred_layout_): New data member. |
| |
| 2014-11-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/17619 |
| * x86_64.cc (Output_data_plt_x86_64_standard<size>::do_fill_plt_entry): |
| Check PC-relative offset overflow in PLT entry. |
| |
| 2014-11-21 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Relocate::relocate): Correct test |
| for undefined weaks. |
| |
| 2014-11-20 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Stub_control::Stub_control): Init stub14_group_size_ |
| from --stub-group-size parameter divided by 1024. |
| (Powerpc_relocate_functions::rela, rela_ua): Add fieldsize |
| template parameter. Update all uses. |
| (Target_powerpc::Relocate::relocate): Rename has_plt_value to |
| has_stub_value. Set for long branches. Don't report overflow for |
| branch to undefined weak symbols. Print info message on |
| overflowing branch to stub. |
| |
| 2014-11-20 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::do_relax): Add __go_go to thread_starters. |
| |
| 2014-11-13 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * x86_64.cc (Target_x86_64<size>::Scan::global): Don't make PLT |
| entry for R_X86_64_GOTPLT64. |
| (Target_x86_64<size>::Relocate::relocate): Update comments for |
| R_X86_64_GOTPLT64. |
| |
| 2014-11-06 Evgeniy Dushistov <dushistov@mail.ru> |
| |
| * plugin.cc: use lock to searialize calls of Plugin_manager::claim_file |
| * plugin.h: add lock definition |
| |
| 2014-10-29 Han Shen <shenhan@google.com> |
| Jing Yu <jingyu@google.com> |
| |
| * aarch64-reloc.def: Add LD_PREL_LO12, ADR_PREL_LO21, |
| TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC, TLSLD_MOVW_DTPREL_G1, |
| TLSLD_MOVW_DTPREL_G0_NC. Change property of TLS relocations to |
| Symbol::TLS_REF. |
| * aarch64.cc (Target_aarch64::do_can_check_for_function_pointers): New |
| method. |
| (Target_aarch64::reloc_needs_plt_for_ifunc): New method. |
| (Target_aarch64::tls_ld_to_le): New method. |
| (Target_aarch64::aarch64_info): Enable can_icf_inline_merge_sections |
| for 64bit targets. |
| (Output_data_plt_aarch64::irelative_rel_): New data member. |
| (Output_data_plt_aarch64::add_entry): Add irelative entries to plt. |
| (Output_data_plt_aarch64::add_local_ifunc_entry): New method. |
| (Output_data_plt_aarch64::add_relocation): New method. |
| (Output_data_plt_aarch64::do_write): Add gold_assert on got_irelative |
| offset. Add got_irelative size to got size. |
| (AArch64_relocate_functions): Typedef AArch64_valtype. Replace long |
| type string with the new typename. |
| (AArch64_relocate_functions::update_adr): Replace parameter x with |
| immed. |
| (AArch64_relocate_functions::update_movnz): Correct wrong val mask. |
| (AArch64_relocate_functions::reloc_common): New method. |
| (AArch64_relocate_funcsions::rela_general): Extract common part out |
| into reloc_common method. |
| (AArch64_relocate_functions::rela_general): Likewise. |
| (AArch64_relocate_functions::pcrela_general): Likewise. |
| (AArch64_relocate_functions::adr): New method. |
| (AArch64_relocate_functions::adrp): Calculate immed before calling |
| update_adr. |
| (AArch64_relocate_functions::adrp): Likewise. |
| (AArch64_relocate_functions::movnz): Cast x to SignedW type when |
| comparing x to 0. Calculate immed from ~x when x < 0. |
| (Target_aarch64::optimize_tls_reloc): Add new cases for |
| TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC, TLSLD_MOVW_DTPREL_G1, |
| TLSLD_MOVW_DTPREL_G0_NC. |
| (Target_aarch64::possible_function_pointer_reloc): Implement this |
| method. |
| (Target_aarch64::Scan::local_reloc_may_be_function_pointer): Update |
| comment. |
| (Target_aarch64::Scan::local): Add codes to handle STT_GNU_IFUNC |
| symbol. Add cases for TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC, |
| TLSLD_MOVW_DTPREL_G1, TLSLD_MOVW_DTPREL_G0_NC. |
| (Target_aarch64::Scan::global): Add codes to handle STT_GNU_IFUNC |
| symbol. Add cases for TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC, |
| TLSLD_MOVW_DTPREL_G1, TLSLD_MOVW_DTPREL_G0_NC. |
| (Target_aarch64::make_plt_entry): Call add_entry with two more |
| parameters. |
| (Target_aarch64::make_local_ifunc_plt_entry): New method. |
| (Target_aarch64::Relocate::relocate): Add cases for LD_PREL_LO19, |
| ADR_PREL_LO21, TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC, |
| TLSLD_MOVW_DTPREL_G1, TLSLD_MOVW_DTPREL_G0_NC. |
| (Target_aarch64::Relocate::relocate_tls): Add cases for |
| TLSLD_ADR_PAGE21, TLSLD_ADD_LO12_NC, TLSLD_MOVW_DTPREL_G1, |
| TLSLD_MOVW_DTPREL_G0_NC. |
| * testsuite/icf_safe_so_test.cc: Correct test comment. |
| * testsuite/icf_safe_test.sh: Add AArch64 arch. |
| |
| 2014-10-22 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (do_relax): Add gcc-4.9 libgomp functions to |
| thread_starter. |
| |
| 2014-10-18 Andreas Schwab <schwab@linux-m68k.org> |
| |
| * configure.tgt (targ_extra_obj) [aarch64*-*]: Define. |
| |
| 2014-10-17 Cary Coutant <ccoutant@google.com> |
| |
| * aarch64.cc (AArch64_relocate_functions::maybe_apply_stub): |
| Add "typename" keyword. |
| |
| 2014-10-15 Han Shen <shenhan@google.com> |
| Jing Yu <jingyu@google.com> |
| |
| Patch for gold aarch64 backend to support relaxation. |
| * aarch64-reloc.def: Change format. |
| * aarch64.cc (class Reloc_stub): New class. |
| (class Stub_table): New class. |
| (class AArch64_relobj): New class. |
| (class AArch64_input_section): New class. |
| (class AArch64_output_section): New class. |
| (Target_aarch64::new_stub_table): New method. |
| (Target_aarch64::new_aarch64_input_section): New method. |
| (Target_aarch64::find_aarch64_input_section): New method. |
| (Target_aarch64::scan_section_for_stubs): New method. |
| (Target_aarch64::scan_reloc_section_for_stubs): New method. |
| (Target_aarch64::relocate_stub): New method. |
| (Target_aarch64::current_target): New method. |
| (Target_aarch64::do_make_elf_object): New method. |
| (Target_aarch64::do_may_relax): New method. |
| (Target_aarch64::do_relax): New method. |
| (Target_aarch64::group_sections): New method. |
| (Target_aarch64::scan_reloc_for_stub): New method. |
| (Target_aarch64::do_make_output_section): New method. |
| (Target_aarch64::stub_tables_): New data member. |
| (Target_aarch64::aarch64_input_section_map_): New data member. |
| (AArch64_relocate_functions::maybe_apply_stub): New method. |
| |
| 2014-09-30 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/17432 |
| * resolve.cc (Symbol_table::resolve): Fix local shadowing error. |
| |
| 2014-09-30 Kito Cheng <kito@0xlab.org> |
| |
| PR gold/13597 |
| * layout.cc (Layout::create_dynamic_symtab): Build gnu-style |
| hash table before sysv-style hash table. |
| |
| 2014-09-29 Sriraman Tallam <tmsriram@google.com> |
| |
| * options.h (--pic-executable): Add negative to alias to -no-pie. |
| |
| 2014-09-26 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/16773 |
| * object.cc (Sized_relobj_file): Compute value of section symbols |
| for TLS sections the same as TLS symbols. |
| |
| 2014-09-25 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/17432 |
| * resolve.cc (Symbol_table::resolve): Override common placeholder |
| symbols, but adjust sizes. |
| * symtab.cc (Symbol_table::add_from_object): Don't add placeholder |
| symbols to common lists. |
| |
| 2014-09-24 Alan Modra <amodra@gmail.com> |
| |
| * po/POTFILES.in: Regenerate. |
| |
| 2014-09-23 Taiju Tsuiki <tzik@google.com> |
| Cary Coutant <ccoutant@google.com> |
| |
| PR gold/14860 |
| * gold.cc (queue_final_tasks): Add Write_sections_task as a blocker |
| on input_sections_blocker. |
| * layout.cc (Write_sections_task::locks): Unblock |
| input_sections_blocker_. |
| * layout.h (Write_sections_task::Write_sections_task): Add |
| input_sections_blocker. |
| * testsuite/Makefile.am (exception_x86_64_bnd_test): Add gcctestdir/ld |
| to DEPENDENCIES. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2014-09-18 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * testsuite/Makefile.am (plugin_test_10): New test. |
| * testsuite/Makefile.in: Regenerate |
| * testsuite/plugin_common_test_2.c (c1): Align to 8. |
| * testsuite/plugin_test_10.sh: New file. |
| |
| 2014-09-17 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * plugin.cc (Sized_pluginobj::do_add_symbols): Ignore isym->size. |
| * resolve.cc (Symbol_table::resolve): Don't override common symbols |
| during the replacement phase. |
| |
| 2014-09-17 Han Shen <shenhan@google.com> |
| Jing Yu <jingyu@google.com> |
| |
| * aarch64-reloc.def: Add TLSGD_ADR_PAGE21, TLSGD_ADD_LO12_NC, |
| TLSDESC_ADR_PAGE21, TLSDESC_LD64_LO12, TLSDESC_ADD_LO12, TLSDESC_CALL. |
| * aarch64.cc (Target_aarch64): Add data members |
| got_irelative_, got_tlsdesc_, rela_irelative_, got_mod_index_offset_, |
| tlsdesc_reloc_info_, tls_base_symbol_defined_. Initialize them in |
| constructor. |
| (Target_aarch64::do_reloc_symbol_index): New method. |
| (Target_aarch64::do_reloc_addend): New method. |
| (Target_aarch64::add_tlsdesc_info): New method. |
| (Target_aarch64::do_dynsym_value): New method. |
| (Target_aarch64::do_make_data_plt): Add new parameters: got, |
| got_irelative. Pass them to Output_data_plt_aarch64_standard. |
| (Target_aarch64::make_data_plt): Add new parameters: got, |
| got_irelative. Pass them to do_make_data_plt. |
| (Target_aarch64::Relocate): Add skip_call_tls_get_addr_ variable. |
| (Target_aarch64::Relocate:tls_gd_to_le): New method. |
| (Target_aarch64::Relocate:tls_ie_to_le): New method. |
| (Target_aarch64::Relocate:tls_desc_gd_to_le): New method. |
| (Target_aarch64::Relocate:tls_desc_gd_to_ie): New method. |
| (Target_aarch64::got_tlsdesc_section): New method. |
| (Target_aarch64::make_local_ifunc_plt_entry): New method. |
| (Target_aarch64::define_tls_base_symbol): New method. |
| (Target_aarch64::reserve_tlsdesc_entries): New method. |
| (Target_aarch64::got_mod_index_entry): New method. |
| (Target_aarch64::rela_tlsdesc_section): New method. |
| (Target_aarch64::rela_irelative_section): New method. |
| (Target_aarch64::Tlsdesc_info): New struct. |
| (Target_aarch64::got_section): Create .got.plt space for IRELATIVE |
| relocations and tlsdesc relocations. |
| (Target_aarch64::optimize_tls_reloc): Implement method. |
| (Output_data_plt_aarch64): Add member variables: tlsdesc_rel_, got_, |
| got_irelative_, irelative_count_, tlsdesc_got_offset_. Initialize them |
| in constructor. |
| (Output_data_plt_aarch64::reserve_tlsdesc_entry): New method. |
| (Output_data_plt_aarch64::has_tlsdesc_entry): New method. |
| (Output_data_plt_aarch64::get_tlsdesc_got_offset): New method. |
| (Output_data_plt_aarch64::get_tlsdesc_plt_offset): New method. |
| (Output_data_plt_aarch64::rela_tlsdesc): New method. |
| (Output_data_plt_aarch64::rela_irelative): New method. |
| (Output_data_plt_aarch64::entry_count): Count IRELATIVE relocations. |
| (Output_data_plt_aarch64::first_plt_entry_offset): Add const attribute. |
| (Output_data_plt_aarch64::get_plt_tlsdesc_entry_size): New method. |
| (Output_data_plt_aarch64::fill_tlsdesc_entry): New method. |
| (Output_data_plt_aarch64::do_get_plt_tlsdesc_entry_size): New method. |
| (Output_data_plt_aarch64::do_fill_tlsdesc_entry): New method. |
| (Output_data_plt_aarch64_standard): New member variables: |
| plt_tlsdesc_entry_size, tlsdesc_plt_entry. |
| (Output_data_plt_aarch64_standard::Output_data_plt_aarch64_standard): |
| New parameter: got, got_irelative. |
| (Output_data_plt_aarch64_standard::do_get_plt_entry_size): New method. |
| (Output_data_plt_aarch64_standard::do_fill_tlsdesc_entry): New method. |
| (Output_data_plt_aarch64::do_write): Replace got_address with |
| gotplt_address. Add irelative_count_ to count. Write tlsdesc entry. |
| (AArch64_relocate_functions::update_movnz): New method. |
| (AArch64_relocate_functions): Correct format. |
| (AArch64_relocate_functions::movnz): New method. |
| (Target_aarch64::Scan::local): Correct format. Move r_sym, got to |
| before the switch. Add new cases to switch. |
| Check ie_to_le relaxation on tlsie relocations. Add code handling |
| tlsgd tlsdesc cases. |
| (Target_aarch64::Scan::global): Move arp to front. Do copy_reloc when |
| needed. Add new cases to switch. Insert dynamic RELATIVE relocation |
| when needed. Add code handling tlsgd, tlsie, tlsdesc cases. |
| Call reloc_name_in_error_message to print unsupported reloc. |
| (Target_aarch64::make_plt_section): Pass got_ and got_irelative_ to |
| make_data_plt. |
| (Target_aarch64::do_finalize_sections): Emit relocs to save COPY |
| relocs. Fill in some more dynamic tags. |
| (Target_aarch64::Relocate::relocate): Handle tlsgd, tlsdesc relocs. |
| Skip call tls_get_addr when tlsgd is relaxed. |
| (Target_aarch64::Relocate::relocate_tls): Correct format. Add code |
| handling tlsgd, tlsdesc relocs, and tls gd->le, ie->le, tlsdesc->le, |
| tlsdesc->ie relaxation. |
| |
| 2014-09-03 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * mips.cc (Target_mips_nacl): New class. |
| (Target_selector_mips_nacl): New class. |
| (target_selector_mips32): Rename from target_selector_mips32be and use |
| Target_selector_mips_nacl instead of Target_selector_mips. |
| (target_selector_mips32el): Rename from target_selector_mips32 and use |
| Target_selector_mips_nacl instead of Target_selector_mips. |
| (target_selector_mips64): Rename from target_selector_mips64be and use |
| Target_selector_mips_nacl instead of Target_selector_mips. |
| (target_selector_mips64el): Rename from target_selector_mips64 and use |
| Target_selector_mips_nacl instead of Target_selector_mips. |
| (Target_mips::mips_info): Add const attribute. |
| |
| 2014-09-02 Cary Coutant <ccoutant@google.com> |
| |
| * dwp.cc (Sized_relobj_dwo::do_section_name): Add const attribute. |
| * dynobj.h (Sized_dynobj::do_section_name): Likewise. |
| * incremental.cc (Sized_relobj_incr::do_section_name): Likewise. |
| (Sized_incr_dynobj::do_section_name): Likewise. |
| * incremental.h (Sized_relobj_incr::do_section_name): Likewise. |
| (Sized_incr_dynobj::do_section_name): Likewise. |
| * object.h (Object::section_name): Likewise. |
| (Object::do_section_name): Likewise. |
| (Sized_relobj_file::do_section_name): Likewise. |
| * plugin.cc (Sized_pluginobj::do_section_name): Likewise. |
| * plugin.h (Sized_pluginobj::do_section_name): Likewise. |
| |
| 2014-09-02 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/17005 |
| * ehframe.cc (Fde::write): Add output_offset parameter. |
| (Cie::write): Likewise. |
| (Eh_frame::set_final_data_size): Account for offset within output |
| section. |
| (Eh_frame::do_sized_write): Likewise. |
| * ehframe.h (Fde::write): Add output_offset parameter. |
| (Cie::write): Likewise. |
| * output.cc (Output_section::Input_section_sort_entry): Remove |
| section_has_name_; add output_section_name parameter. Use |
| output section name for non-input sections. |
| (Output_section::Input_section_sort_entry::section_has_name): Remove. |
| (Output_section::Input_section_sort_entry::section_has_name_): Remove. |
| (Output_section::Input_section_sort_compare): Remove logic for |
| sections without names. |
| (Output_section::Input_section_sort_init_fini_compare): Likewise. |
| (Output_section::Input_section_sort_section_prefix_special_ordering_compare): |
| Likewise. |
| (Output_section::Input_section_sort_section_name_compare): Likewise. |
| |
| 2014-08-29 Han Shen <shenhan@google.com> |
| Jing Yu <jingyu@google.com> |
| |
| * aarch64-reloc-property.cc |
| (AArch64_reloc_property_table::reloc_name_in_error_message): Fix bug in |
| reference reloc property in the table. |
| * aarch64-reloc.def: Add TLSLE reloc types and fix some errors in |
| 3 other entries. |
| * aarch64.cc: (Output_data_got_aarch64::add_static_reloc): |
| 2 new overloaded methods. |
| (Output_data_got_aarch64::do_write): Add code to write out |
| static relocs. |
| (class Output_data_got_aarch64::Static_reloc): New class to wrap |
| static relocs. |
| (Output_data_got_aarch64::static_relocs): New vector to |
| hold static relocs. |
| (Target_aarch64::TCB_SIZE): New const static memeber. |
| (Target_aarch64::tcb_size): New method. |
| (Target_aarch64::Relocate::relocate): Add code handling new reloc types. |
| (Target_aarch64::Relocate::relocate_tls): New method. |
| (Target_aarch64::Scan::local): Add code handling new reloc types. |
| (Target_aarch64::Scan::global): Add code handling new reloc types. |
| |
| 2014-08-13 Sriraman Tallam <tmsriram@google.com> |
| |
| * options.h (-no-pie): Add option. |
| |
| 2014-08-08 Jing Yu <jingyu@google.com> |
| Han Shen <shenhan@google.com> |
| |
| * Makefile.am (HFILES): Add aarch64-reloc-property.h. |
| (DEFFILES): add aarch64-reloc.def. |
| (TARGETSOURCES): Add aarch64-reloc-property.cc. |
| (ALL_TARGETOBJS): Add aarch64-reloc-property.$(OBJEXT). |
| * Makefile.in: Regenerate. |
| * aarch64-reloc-property.cc: New file. |
| * aarch64-reloc-property.h: New file. |
| * aarch64-reloc.def: New file. |
| * aarch64.cc: Include aarch64-reloc-property.h. Replace spaces |
| with tab to make the format consistent. |
| (Output_data_got_aarch64::symbol_table_): New method. |
| (Target_aarch64::do_plt_address_for_global): New method. |
| (Target_aarch64::do_plt_address_for_local): New method. |
| (Target_aarch64::do_select_as_default_target): New method. |
| (Target_aarch64::do_make_data_plt): New method. |
| (Target_aarch64::make_data_plt): New method. |
| (Output_data_plt_aarch64::has_irelative_section): New method. |
| (Output_data_plt_aarch64::address_for_global): New method. |
| (Output_data_plt_aarch64::address_for_local): New method. |
| (Output_data_plt_aarch64::irelative_rel_): New parameter. |
| (Output_data_plt_aarch64::add_entry): Implement contents. |
| (Output_data_plt_aarch64::set_final_data_size): Fix typo. |
| (Output_data_plt_aarch64::do_write): Remove useless got_base. Set |
| the got_pov entry to plt0. |
| (Output_data_plt_aarch64_standard::do_fill_first_plt_entry): |
| Implement contents. |
| (Output_data_plt_aarch64_standard::do_fill_plt_entry): Implement. |
| (AArch64_howto): New struct. |
| (aarch64_howto[]): New static const array. |
| (AArch64_relocate_functions): New class. |
| (Target_aarch64::Scan::get_reference_flags): Remove method. |
| (Target_aarch64::Scan::local): Implement to support a few relocations. |
| (Target_aarch64::Scan::global): Implement to support a few relocations. |
| (Target_aarch64::make_plt_section): Implement contents. |
| (Target_aarch64::make_plt_entry): Implement contents. |
| (Target_aarch64::do_finalize_sections): Implement contents. |
| (Target_aarch64::Relocate::relocate): Implement a few relocations. |
| (Target_aarch64::relocate_section): Implement contents. |
| |
| 2014-08-06 Alan Modra <amodra@gmail.com> |
| |
| * testsuite/defsym_test.sh: Allow ppc64le localentry annotation. |
| |
| 2014-08-06 Alan Modra <amodra@gmail.com> |
| |
| PR 13227 |
| * symtab.cc (Symbol_table::add_from_relobj): Warn on __gnu_lto_slim. |
| |
| 2014-07-21 Sriraman Tallam <tmsriram@google.com> |
| |
| * object.cc (Relobj::is_section_name_included): Add |
| ".rodata.nptl_version" to not garbage collect this section. |
| |
| 2014-07-08 Cary Coutant <ccoutant@google.com> |
| |
| * expression.cc (struct Expression::Expression_eval_info): Add |
| new fields type_pointer, vis_pointer, and nonvis_pointer. |
| (Expression::eval_maybe_dot): Add type_pointer, vis_pointer, and |
| nonvis_pointer parameters. Adjust all calls. |
| (Symbol_expression::value): Update type, visibility, and nonvis bits |
| in caller. |
| * script.cc (Symbol_assignment::sized_finalize): Update type, |
| visibility, and remaining st_other bits for new symbol. |
| * script.h: (Expression::eval_maybe_dot): Add type_pointer, |
| vis_pointer, and nonvis_pointer parameters. |
| * symtab.h (Symbol::set_type): New method. |
| |
| * testsuite/Makefile.am (defsym_test): New test. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/defsym_test.c: New file. |
| * testsuite/defsym_test.sh: New file. |
| |
| 2014-07-08 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/15639 |
| * dynobj.h (Sized_dynobj::base_read_symbols): New method. |
| * dynobj.cc (Sized_dynobj::do_read_symbols): Move body to... |
| (Sized_dynobj::base_read_symbols): ...new method. |
| * object.h (Sized_relobj_file::base_read_symbols): New method. |
| * object.cc (Sized_relobj_file::do_read_symbols): Move body to... |
| (Sized_relobj_file::base_read_symbols): ...new method. |
| * arm.cc (Arm_relobj::do_read_symbols): Call base_read_symbols. |
| * mips.cc: (Mips_relobj::do_read_symbols): Likewise. |
| * powerpc.cc (Powerpc_dynobj::do_read_symbols): Likewise. |
| |
| 2014-07-04 Alan Modra <amodra@gmail.com> |
| |
| * po/POTFILES.in: Regenerate. |
| |
| 2014-07-02 Jing Yu <jingyu@google.com> |
| |
| * aarch64.cc: New file |
| * Makefile.am (TARGETSOURCES): Add aarch64.cc |
| (ALL_TARGETOBJS): Add aarch64.$(OBJEXT) |
| * Makefile.in: Regenerate. |
| * configure.tgt: Add entries for aarch64*. |
| * configure.ac: Likewise. |
| * configure: Likewise. |
| |
| 2014-06-27 Alan Modra <amodra@gmail.com> |
| |
| * symtab.cc (Symbol::should_add_dynsym_entry): Don't make inline. |
| |
| 2014-06-24 Cary Coutant <ccoutant@google.com> |
| |
| * dwp.cc (Dwo_file::read): Allow files with no .debug_types |
| sections. |
| (Dwo_file::sized_read_unit_index): Likewise. |
| |
| 2014-06-23 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * mips.cc: New file. |
| * Makefile.am (TARGETSOURCES): Add mips.cc |
| (ALL_TARGETOBJS): Add mips.$(OBJEXT) |
| * configure.tgt: Add entries for mips*. |
| * configure.ac: Likewise. |
| * Makefile.in: Regenerate. |
| * configure: Likewise. |
| |
| 2014-06-09 Cary Coutant <ccoutant@google.com> |
| |
| * dwarf_reader.cc (Dwarf_pubnames_table::read_header): Check that |
| unit_length is within section bounds. |
| |
| 2014-06-09 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/16980 |
| * layout.cc (Layout::print_to_mapfile): Print unattached sections in |
| map. |
| |
| 2014-06-07 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (relocate): Treat field of cmpli insn as a bitfield. |
| |
| 2014-06-06 Cary Coutant <ccoutant@google.com> |
| |
| * dwarf_reader.h (Dwarf_pubnames_table): Remove output_section_offset_. |
| * dwarf_reader.cc (Dwarf_pubnames_table::read_section): Likewise. |
| (Dwarf_pubnames_table::read_header): Likewise. |
| * layout.cc (gdb_fast_lookup_sections): Add .debug_gnu_pubnames and |
| .debug_gnu_pubtypes. |
| |
| 2014-06-05 Joel Brobecker <brobecker@adacore.com> |
| |
| * Makefile.am (CONFIG_STATUS_DEPENDENCIES): New. |
| * Makefile.in, configure: Regenerate. |
| |
| 2014-06-03 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (addis_12_2): Define. |
| (Stub_table::do_write): Support fusion on ELFv2 stubs. |
| |
| 2014-06-03 Alan Modra <amodra@gmail.com> |
| |
| * testsuite/plugin_test.c (parse_readelf_line): Skip non-visibility |
| st_other output. |
| |
| 2014-06-02 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::local_reloc_may_be_function_pointer): |
| Only ignore relocs on ELFv1. |
| (Target_powerpc::global_reloc_may_be_function_pointer): Likewise. |
| |
| 2014-05-30 Cary Coutant <ccoutant@google.com> |
| |
| * testsuite/Makefile.am (ehdr_start_test_4): Fix typo in -B option. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/ehdr_start_test_4.sh: Look for "U" instead of "w". |
| |
| 2014-05-27 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/16945 |
| * x86_64.cc (Target_x86_64::Relocate::relocate): Use signed int |
| for got_offset. Properly get GOT address for R_X86_64_PLTOFF64. |
| |
| 2014-05-15 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (do_plt_fde_location): Handle zero length .glink. |
| Compare FDE contents with DW_CFA_nop rather than 0. |
| |
| 2014-05-13 Sriraman Tallam <tmsriram@google.com> |
| |
| * symtab.h (may_need_copy_reloc): Remove check for position independent |
| code. |
| * x86_64.cc (Target_x86_64<size>::Scan::global): Add check for no |
| position independence before pc absolute may_need_copy_reloc call. |
| Add check for executable output befor pc relative may_need_copy_reloc |
| call. |
| * i386.cc: Ditto. |
| * arm.cc: Ditto. |
| * sparc.cc: Ditto. |
| * tilegx.cc: Ditto. |
| * powerpc.cc: Add check for no position independence before |
| may_need_copy_reloc calls. |
| * testsuite/pie_copyrelocs_test.cc: New file. |
| * testsuite/pie_copyrelocs_shared_test.cc: New file. |
| * Makefile.am (pie_copyrelocs_test): New test. |
| * Makefile.in: Regenerate. |
| |
| 2014-05-08 Martin Liška <mliska@suse.cz> |
| |
| * output.cc (Sized_relobj_file::do_layout): Fix typo in info message. |
| |
| 2014-05-06 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/16900 |
| * i386.cc (Output_data_got_plt_i386): New class. |
| (Output_data_plt_i386::Output_data_plt_i386): Change type of got_plt |
| parameter. Change all callers. |
| (Output_data_plt_i386::layout_): Remove. |
| (Output_data_plt_i386::got_plt_): Change type. |
| (Target_i386::got_plt_): Change type. Change all references. |
| (Target_i386::got_section): Create instance of new class. |
| (Output_data_got_plt_i386::do_write): New function. |
| * x86_64.cc (Output_data_got_plt_x86_64): New class. |
| (Output_data_plt_x86_64::Output_data_plt_x86_64): Change type of got_plt |
| parameter. Change all callers. |
| (Output_data_plt_x86_64::layout_): Remove. |
| (Output_data_plt_x86_64::got_plt_): Change type. |
| (Target_x86_64::got_plt_): Change type. Change all references. |
| (Target_x86_64::got_section): Create instance of new class. |
| (Output_data_got_plt_x86_64::do_write): New function. |
| (Output_data_plt_x86_64::do_write): Don't write reserved words in GOT. |
| (Target_x86_64<size>::init_got_plt_for_update): Create instance of new |
| class. |
| |
| 2014-05-05 Cary Coutant <ccoutant@google.com> |
| |
| * gdb-index.cc (Gdb_index_info_reader): Don't complain about language |
| if we have pubnames/pubtypes. |
| |
| 2014-05-02 Cary Coutant <ccoutant@google.com> |
| |
| * defstd.cc (in_segment): Define __ehdr_start here... |
| * layout.cc (Layout::finalize): ...Instead of here. Set the |
| output segment when known. |
| * resolve.cc (Symbol::override_base_with_special): Remember |
| the original binding. |
| * symtab.cc (Symbol::set_output_segment): New function. |
| (Symbol::set_undefined): New function. |
| * symtab.h (Symbol::is_weak_undefined): Check original undef |
| binding. |
| (Symbol::is_strong_undefined): New function. |
| (Symbol::set_output_segment): New function. |
| (Symbol::set_undefined): New function. |
| * target-reloc.h (is_strong_undefined): Remove. |
| (issue_undefined_symbol_error): Call Symbol::is_weak_undefined. |
| Check for hidden undefs. |
| (relocate_section): Call Symbol::is_strong_undefined. |
| |
| * testsuite/Makefile.am (ehdr_start_test_1) |
| (ehdr_start_test_2, ehdr_start_test_3) |
| (ehdr_start_test_4, ehdr_start_test_5): New test cases. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/ehdr_start_def.cc: New source file. |
| * testsuite/ehdr_start_test.cc: New source file. |
| * testsuite/ehdr_start_test.t: New linker script. |
| * testsuite/ehdr_start_test_4.sh: New shell script. |
| |
| 2014-04-23 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/16870 |
| * x86_64.cc (Target_x86_64::Relocate::relocate): Add missing break. |
| |
| 2014-04-15 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * layout.cc (Layout::include_section): Allow a target to decide |
| whether to include a section. |
| * target.h (Target::should_include_section): New function. |
| (Target::do_should_include_section): New function. |
| |
| 2014-04-15 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * copy-relocs.cc (Copy_relocs::Copy_reloc_entry::emit): Remove and |
| inline into ... |
| (Copy_relocs::emit): ... here. |
| * copy-relocs.h (Copy_reloc_entry): Change from class to struct. |
| (Copy_reloc_entry::make_copy_reloc): Change from private to protected. |
| (Copy_reloc_entry::entries_): Change from private to protected. |
| |
| 2014-04-02 Sriraman Tallam <tmsriram@google.com> |
| |
| * icf.cc (get_section_contents): Replace copies of reloc |
| vectors with const references. |
| |
| 2014-04-02 Cary Coutant <ccoutant@google.com> |
| |
| * configure.ac (HAVE_PUBNAMES): Use C instead of C++. |
| (HAVE_NO_USE_LINKER_PLUGIN): Check for -fno-use-linker-plugin. |
| * configure: Regenerate. |
| * testsuite/Makefile.am (OPT_NO_PLUGINS): New macro for |
| -fno-use-linker-plugin. |
| (LINK1, CXXLINK1): Add it to the link command. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2014-03-12 Alan Modra <amodra@gmail.com> |
| |
| * Makefile.in: Regenerate. |
| |
| 2014-03-10 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * symtab.h (Symbol::set_nonvis): New function. |
| |
| 2014-03-10 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * symtab.cc (Sized_symbol<32>::init_output_data): |
| Instantiate the template. |
| (Sized_symbol<64>::init_output_data): Likewise. |
| |
| 2014-03-10 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * symtab.cc (Symbol_table::sized_write_globals): Allow a target to |
| adjust dynamic symbol value. |
| * target.h (Target::adjust_dyn_symbol): New function. |
| (Target::do_adjust_dyn_symbol): New function. |
| |
| 2014-03-10 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * output.cc (Output_data_dynamic::Dynamic_entry::write): |
| Get the value of DYNAMIC_CUSTOM dynamic entry. |
| * output.h (Output_data_dynamic::add_custom): New function. |
| (Dynamic_entry::Dynamic_entry): New constructor for DYNAMIC_CUSTOM |
| dynamic entry. |
| (enum Dynamic_entry::Classification): Add DYNAMIC_CUSTOM. |
| * target.h (Target::dynamic_tag_custom_value): New function. |
| (Target::do_dynamic_tag_custom_value): New function. |
| |
| 2014-03-10 Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * symtab.cc (Symbol_table::set_dynsym_indexes): Allow a target to set |
| dynsym indexes. |
| * target.h (Target::has_custom_set_dynsym_indexes): New function. |
| (Target::do_has_custom_set_dynsym_indexes): New function. |
| (Target::set_dynsym_indexes): New function. |
| (Target::do_set_dynsym_indexes): New function. |
| |
| 2014-03-07 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Powerpc_relocate_functions::Overflow_check): Add |
| CHECK_UNSIGNED, CHECK_LOW_INSN, CHECK_HIGH_INSN. |
| (Powerpc_relocate_functions::has_overflow_unsigned): New function. |
| (Powerpc_relocate_functions::has_overflow_bitfield, |
| overflowed): Use the above. |
| (Target_powerpc::Relocate::relocate): Correct overflow checking |
| for a number of relocations. Modify overflow test for 16-bit |
| fields in instructions to signed/unsigned according to whether |
| the field takes a signed or unsigned value. |
| |
| 2014-03-05 Alan Modra <amodra@gmail.com> |
| |
| Update copyright years. |
| |
| 2014-03-05 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Scan::local, global): Support |
| R_PPC64_ADDR64_LOCAL. |
| (Target_powerpc::Relocate::relocate): Likewise. |
| |
| 2014-03-03 Alan Modra <amodra@gmail.com> |
| |
| * dwp.cc (print_version): Update copyright year to current. |
| |
| 2014-02-10 Alan Modra <amodra@gmail.com> |
| |
| * po/gold.pot: Regenerate. |
| |
| 2014-02-06 Cary Coutant <ccoutant@google.com> |
| |
| Fix problem where -u is ignored when a weak undef is seen. |
| |
| * archive.cc (Library_base::should_include_member): Reorder |
| code to check for -u option if a weak undef has already been seen. |
| * testsuite/Makefile.am (weak_undef_test_2): New test case. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/weak_undef_file3.cc: New file. |
| * testsuite/weak_undef_file4.cc: New file. |
| * testsuite/weak_undef_test_2.cc: New file. |
| |
| 2014-02-05 Cary Coutant <ccoutant@google.com> |
| |
| Fix issues with gold undefined symbol diagnostics. |
| |
| PR binutils/15435 |
| * errors.cc (Errors::undefined_symbol): Move undef vtable symbol |
| check to here. |
| * target-reloc.h (is_strong_undefined): New function. |
| (relocate_section): Move undef vtable symbol check from here. |
| Check for is_strong_undefined. |
| |
| 2014-02-05 Cary Coutant <ccoutant@google.com> |
| |
| Fix problems with the --dynamic-list option. |
| |
| PR gold/13577 |
| * options.cc (General_options::parse_dynamic_list): |
| Set have_dynamic_list_. |
| (General_options::General_options): Initialize have_dynamic_list_. |
| (General_options::finalize): Turn off -Bsymbolic and |
| -Bsymbolic-functions if --dynamic-list provided. |
| * options.h (General_options::have_dynamic_list): New function. |
| (General_options::have_dynamic_list_): New data member. |
| * symtab.h (Symbol::is_preemptible): Handle --dynamic-list |
| correctly. |
| |
| PR gold/16530 |
| * symtab.cc (Symbol_table::add_from_relobj): If symbol is named |
| in --dynamic-list, mark it. |
| |
| * testsuite/Makefile.am (gc_dynamic_list_test.sh): New test case. |
| (dynamic_list_2): New test case. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/dynamic_list_2.cc: New file. |
| * testsuite/dynamic_list_2.t: New file. |
| * testsuite/dynamic_list_lib1.cc: New file. |
| * testsuite/dynamic_list_lib2.cc: New file. |
| * testsuite/gc_dynamic_list_test.c: New file. |
| * testsuite/gc_dynamic_list_test.sh: New file. |
| * testsuite/gc_dynamic_list_test.t: New file. |
| |
| 2014-01-28 Cary Coutant <ccoutant@google.com> |
| |
| Add .gdb_index version 7 support. |
| |
| * dwarf_reader.cc: include <utility> (for make_pair). |
| (Dwarf_abbrev_table::do_read_abbrevs): Check for compressed |
| debug sections. |
| (Dwarf_ranges_table::read_ranges_table): Likewise. |
| (Dwarf_pubnames_table::read_section): Check for GNU-style |
| sections, and for compressed debug sections. |
| (Dwarf_pubnames_table::read_header): Compute end address of table. |
| (Dwarf_pubnames_table::next_name): Return flag_byte. Check |
| for end of list by offset, not by offset == 0. |
| (Dwarf_info_reader::do_read_string_table): Check for compressed |
| debug sections. |
| * dwarf_reader.h (Dwarf_pubnames_table::Dwarf_pubnames_table): |
| Initialize new data members. |
| (Dwarf_pubnames_table::next_name): return flag_byte. |
| (Dwarf_pubnames_table::end_of_table_): New data member. |
| (Dwarf_pubnames_table::is_gnu_style_): New data member. |
| * gdb-index.cc (gdb_index_version): Update to version 7. |
| (Gdb_index_info_reader::read_pubtable): Read flag_byte. |
| (Gdb_index_info_reader::read_pubnames_and_pubtypes): Don't |
| read skeleton type unit DIEs. |
| (Gdb_index::add_symbol): Add flag_byte; adjust all callers. |
| (Gdb_index::do_write): Write flag_byte. |
| * gdb-index.h (Gdb_index::add_symbol): Add flags parameter. |
| (Gdb_index::Cu_vector): Store flags along with cu indexes. |
| * testsuite/gdb_index_test_3.sh: Allow versions 4-7. |
| * testsuite/gdb_index_test_comm.sh: Likewise. |
| |
| 2014-01-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * version.cc (print_version): Update copyright year to 2014. |
| |
| 2013-12-19 Dimitry Andric <dimitry@andric.com> |
| |
| * stringpool.cc (Stringpool_template::reserve): Add |
| HAVE_UNORDERED_MAP case. |
| * stringpool.cc (Stringpool_template::print_stats): Likewise. |
| |
| 2013-12-18 Cary Coutant <ccoutant@google.com> |
| |
| * configure.ac: Check for <unordered_set> and <unordered_map>. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * system.h: Use <unordered_set> and <unordered_map> if available. |
| |
| 2013-12-10 Roland McGrath <mcgrathr@google.com> |
| |
| * Makefile.am (install-exec-local): Prefix $(INSTALL_PROGRAM) uses |
| with $(INSTALL_PROGRAM_ENV). |
| * Makefile.in: Regenerate. |
| |
| 2013-11-22 Cary Coutant <ccoutant@google.com> |
| |
| * configure.ac: Add check for which library is needed for |
| dlopen. |
| * configure: Regenerate. |
| |
| 2013-11-22 Cary Coutant <ccoutant@google.com> |
| |
| * testsuite/Makefile.am (exception_x86_64_bnd_test): Use in-tree |
| assembler. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2013-11-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * x86_64.cc (Target_x86_64<size>::Scan::get_reference_flags): |
| Handle R_X86_64_PC32_BND and R_X86_64_PLT32_BND just like |
| R_X86_64_PC32 and R_X86_64_PLT32, respectively. |
| (Target_x86_64<size>::Scan::local): Likewise. |
| (Target_x86_64<size>::Scan::global): Likewise. |
| (Target_x86_64<size>::Relocate::relocate): Likewise. |
| (Target_x86_64<size>::Relocatable_size_for_reloc::get_size_for_reloc): |
| Likewise. |
| (Target_x86_64<size>::Scan::check_non_pic(): Handle |
| R_X86_64_PC32_BND. |
| |
| * testsuite/Makefile.am (check_PROGRAMS): Add |
| exception_x86_64_bnd_test. |
| (exception_x86_64_bnd_test_SOURCES): New macro. |
| (exception_x86_64_bnd_test_DEPENDENCIES): Likewise. |
| (exception_x86_64_bnd_test_LDFLAGS): Likewise. |
| (exception_x86_64_bnd_test_LDADD): Likewise. |
| (exception_x86_64_bnd_1.o): New rule. |
| (exception_x86_64_bnd_2.o): Likewise. |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2013-11-15 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::glink_section): Provide non-const |
| accessor. |
| (Target_powerpc::Branch_info::make_stub): Make global entry stubs. |
| Only call ppc64_local_entry_offset for 64-bit. Restrict |
| symval_for_branch lookup to ELFv1. |
| (Stub_table::add_plt_call_entry): Use unsigned int off. |
| (Output_data_glink::Address, invalid_address): New. |
| (Output_data_glink::add_eh_frame): Move out of line. Add |
| support for ELFv2. |
| (Output_data_glink::add_global_entry, find_global_entry, |
| global_entry_address): New functions. |
| (Output_data_glink::global_entry_stubs_, end_branch_table_, |
| ge_size): New variables. |
| (Output_data_glink::set_final_data_size): Add global entry |
| stub sizing. |
| (Output_data_glink::do_write): Write global entry stubs. |
| (Target_powerpc::Scan::reloc_needs_plt_for_ifunc): Add target |
| parameter. Return true for ELFv2. Adjust callers. |
| (Target_powerpc::Scan::local, global): Restrict opd lookup to |
| ELFv1. Similarly for ifunc and dynamic relocation processing |
| specific to ELFv1. Recognize that symbols are defined on |
| their plt entries for ELFv2. |
| (Target_powerpc::symval_for_branch): Assert if called for |
| ELFv2 or ppc32. |
| (Target_powerpc::Relocate::relocate): Use global entry plt |
| stub for symbol value if such exists on ELFv2. |
| (Target_powerpc::Relocate::relocate): Don't call |
| symval_for_branch when ELFv2. Do adjust for local entry |
| offset when ELFv2. |
| (Target_powerpc::do_dynsym_value): Set symbols to global entry |
| plt stub for ELFv2. |
| (Target_powerpc::do_plt_address_for_global): Similarly. |
| |
| 2013-11-14 Cary Coutant <ccoutant@google.com> |
| |
| Revert patch -- this did not fix the problem, and there is |
| no race there. |
| |
| 2013-11-14 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/14860 |
| * ehframe.cc (Eh_frame_hdr::Eh_frame_hdr): Initialize lock_. |
| (Ehframe_hdr::set_final_data_size): Allocate a Lock. |
| * ehframe.h (Eh_frame_hdr::record_fde): Hold the lock while |
| updating fde_offsets_. |
| (Eh_frame_hdr::lock_): New data member. |
| |
| 2013-11-14 Cary Coutant <ccoutant@google.com> |
| |
| * dwp.cc (Dwo_file_entry): New type. |
| (File_list): Use Dwo_file_entry. |
| (Dwo_file::verify): New function. |
| (Dwo_file::verify_dwo_list): New function. |
| (Dwo_file::sized_verify_dwo_list): New function. |
| (Dwo_name_info_reader::visit_compilation_unit): Add dwo_id to file |
| list. |
| (Dwp_options): New enum type. |
| (dwp_options): Add --verify-only. |
| (usage): Likewise. |
| (main): Likewise. |
| * dwp.h (gold_info): Add declaration. |
| |
| 2013-11-14 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/14860 |
| * ehframe.cc (Eh_frame_hdr::Eh_frame_hdr): Initialize lock_. |
| (Ehframe_hdr::set_final_data_size): Allocate a Lock. |
| * ehframe.h (Eh_frame_hdr::record_fde): Hold the lock while |
| updating fde_offsets_. |
| (Eh_frame_hdr::lock_): New data member. |
| |
| 2013-11-06 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/15758 |
| * object.cc (Sized_relobj_file::do_layout): Handle .eh_frame sections |
| before reloc sections. |
| |
| 2013-11-04 Alan Modra <amodra@gmail.com> |
| |
| * symtab.h (Symbol::Reference_flags): Add FUNC_DESC_ABI. |
| (Symbol::needs_dynamic_reloc): Test new flag. |
| * powerpc.cc (needs_dynamic_reloc, use_plt_offset): Delete. |
| (Target_powerpc::Scan::get_reference_flags): Add target param. |
| Return FUNC_DESC_ABI for 64-bit ELFv1. |
| (Target_powerpc::Branch_info::make_stub): Adjust get_reference_flags |
| call. |
| (Target_powerpc::Scan::global): Use Symbol::needs_dynamic_reloc. |
| (Target_powerpc::Relocate::relocate): Use Symbol::use_plt_offset. |
| |
| 2013-10-31 Cary Coutant <ccoutant@google.com> |
| |
| Restore support for dwp v2 DWARF package file format. |
| |
| * dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add |
| tu_length parameter. Adjust all callers. |
| * dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise. |
| * dwp.cc: Include dwarf.h. |
| (Section_bounds): New struct type. |
| (Unit_set): New struct type. |
| (Dwo_file::Dwo_file): Initialize new data member. |
| (Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index): |
| Combine and rename to... |
| (Dwo_file::read_unit_index): ...this. |
| (Dwo_file::sized_read_compunit_index) |
| (Dwo_file::sized_read_typeunit_index): Combine and rename to... |
| (Dwo_file::sized_read_unit_index): ...this. |
| (Dwo_file::copy_section): Remove section_name, is_str_offsets |
| parameters; add section_id parameter. |
| (Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to... |
| (Dwo_file::add_unit_set): ...this. |
| (Dwo_file::shndx_map_): Remove. |
| (Dwo_file::sect_offsets_): New data member. |
| (Dwp_output_file::Dwp_output_file): Initialize new data members. |
| (Dwp_output_file::add_section): Rename to... |
| (Dwp_output_file::add_contribution): ...this. |
| (Dwp_output_file::add_cu_set): Combine parameters into a struct. |
| (Dwp_output_file::add_tu_set): Likewise. |
| (Dwp_output_file::Contribution): New type. |
| (Dwp_output_file::Section::contributions): New data member. |
| (Dwp_output_file::Cu_or_tu_set): Remove. |
| (Dwp_output_file::Section::Section): New ctor. |
| (Dwp_output_file::Dwp_index::Shndx_pool): Remove. |
| (Dwp_output_file::Dwp_index::Section_table): New type. |
| (Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members. |
| (Dwp_output_file::Dwp_index::enter_set): Change type of "set" |
| parameter. |
| (Dwp_output_file::Dwp_index::shndx_pool): Remove. |
| (Dwp_output_file::Dwp_index::shndx_pool_end): Remove. |
| (Dwp_output_file::Dwp_index::section_table): New member function. |
| (Dwp_output_file::Dwp_index::section_table_end): New member function. |
| (Dwp_output_file::Dwp_index::shndx_pool_size): Remove. |
| (Dwp_output_file::Dwp_index::section_table_rows): New member function. |
| (Dwp_output_file::Dwp_index::section_table_cols): New member function. |
| (Dwp_output_file::Dwp_index::shndx_pool_): Remove. |
| (Dwp_output_file::Dwp_index::section_table_): New data member. |
| (Dwp_output_file::Dwp_index::section_mask_): New data member. |
| (Dwp_output_file::add_output_section): New member function. |
| (Dwp_output_file::write_new_section): New member function. |
| (Dwp_output_file::write_contributions): New member function. |
| (Dwp_output_file::section_id_map_): New data member. |
| (class Dwo_id_info_reader): Remove. |
| (class Unit_reader): New class. |
| (get_dwarf_section_name): New function. |
| (Dwo_file::read_executable): Adjust initializations of class data. |
| (Dwo_file::read): Add support for v2 package file format. |
| (Dwo_file::read_unit_index): Likewise. |
| (Dwo_file::sized_read_unit_index): Likewise. |
| (Dwo_file::copy_section): Likewise. |
| (Dwo_file::add_unit_set): Likewise. |
| (Dwp_output_file::add_output_section): Likewise. |
| (Dwp_output_file::add_contribution): Likewise. |
| (Dwp_output_file::Dwp_index::find_or_add): Use row index to check |
| for empty slot. |
| (Dwp_output_file::Dwp_index::enter_set): Add support for v2 package |
| file format. |
| (Dwp_output_file::Dwp_index::grow): Use row index to check for empty |
| slot. |
| (Dwp_output_file::initialize): Remove unused function. |
| (Dwp_output_file::finalize): Add support for v2 package file format. |
| (Dwp_output_file::write_index): Likewise. |
| * gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust |
| function prototype. |
| |
| 2013-10-31 Cary Coutant <ccoutant@google.com> |
| |
| * configure.ac: Fix check for -fmerge-constants. |
| * configure.ac: Regenerate. |
| |
| 2013-10-30 Roland McGrath <mcgrathr@google.com> |
| |
| * x86_64.cc (Output_data_plt_x86_64_nacl::first_plt_entry): |
| Correct 9-byte nop sequence to match what the assembler generates. |
| |
| 2013-10-30 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Powerpc_relobj::abiversion, set_abiversion, |
| ppc64_local_entry_offset, ppc64_local_entry_offset, |
| do_read_symbols): New functions. |
| (Powerpc_relobj::e_flags_, st_other_): New vars. |
| (Powerpc_relobj::Powerpc_relobj): Call set_abiversion. |
| (Powerpc_dynobj::abiversion, set_abiversion): New functions. |
| (Powerpc_relobj::e_flags_): New var. |
| (Target_powerpc::first_plt_entry_offset, plt_entry_size): Inline |
| and adjust for ELFv2. |
| (Target_powerpc::abiversion, set_abiversion, stk_toc): New functions. |
| (Powerpc_relobj::do_find_special_sections): Check no .opd in ELFv2. |
| (Powerpc_dynobj::do_find_special_sections): Likewise. |
| (Target_powerpc::do_define_standard_symbols): Define ".TOC.". |
| (Target_powerpc::Branch_info::make_stub): Adjust stub destination |
| to ELFv2 local entry. |
| (Target_powerpc::do_relax): No thread safe barriers needed for |
| ELFv2. |
| (Output_data_plt_powerpc::initial_plt_entry_size_, |
| plt_entry_size): Delete. Replace all uses with |
| first_plt_entry_offset() and plt_entry_size(). |
| (Output_data_plt_powerpc::Output_data_plt_powerpc): Remove |
| reserved_size parm. Update callers. |
| (Output_data_plt_powerpc::entry_count): Update. |
| (Output_data_plt_powerpc::first_plt_entry_offset): Make private |
| and use Target_powerpc::first_plt_entry_offset(). |
| (Output_data_plt_powerpc::get_plt_entry_size): Similarly and |
| rename to plt_entry_size. |
| (Output_data_plt_powerpc::add_ifunc_entry, |
| add_local_ifunc_entry): Adjust reloc for ELFv2. |
| (glink_eh_frame_fde_64): Rename to glink_eh_frame_fde_64v1. |
| (glink_eh_frame_fde_64v2): New. |
| (Stub_table::plt_call_size): Support ELFv2 sizing. |
| (Output_data_glink::add_eh_frame): Use the new FDE. |
| (Output_data_glink::set_final_data_size): Adjust for ELFv2 glink. |
| (Stub_table::do_write): Write ELFv2 stubs and glink. |
| (Target_powerpc::Relocate::relocate): Replaces nop after call |
| with ld 2,24(1) and adjust local offset destination for ELFv2. |
| |
| 2013-10-30 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Scan::check_non_pic): Handle new relocs. |
| (Target_powerpc::Scan::global, local): Likewise. |
| (Target_powerpc::Relocate::relocate): Likewise. Check for overflow |
| on all ppc64 @h and @ha relocs. |
| |
| 2013-10-14 Alan Modra <amodra@gmail.com> |
| |
| * output.h (Output_data_got::add_constant): Tidy. |
| (Output_data_got::add_constant_pair): New function. |
| * powerpc.cc (Output_data_got_powerpc): Override all Output_data_got |
| methods used so as to first call reserve_ent(). |
| |
| 2013-10-11 Roland McGrath <mcgrathr@google.com> |
| |
| * powerpc.cc (Output_data_got_powerpc): Remove unused methods |
| add_got_entry and add_got_entry_pair. |
| |
| * configure.ac (TLS_GNU2_DIALECT): Use -Werror in test. |
| (HAVE_PUBNAMES): Likewise. |
| * configure: Regenerate. |
| |
| * testsuite/Makefile.am: Replace '-T foo' with '-Wl,-T,foo' throughout. |
| * testsuite/Makefile.in: Regenerate. |
| |
| * target.h (Target::adjust_elf_header, Target::do_adjust_elf_header): |
| Remove const from declaration. |
| * target.cc (Sized_target::do_adjust_elf_header): Update definition. |
| * sparc.cc (Target_sparc::do_adjust_elf_header): Likewise. |
| * output.h (Output_file_header): Remove const from member target_ |
| and corresponding constructor argument. |
| * output.cc (Output_file_header::Output_file_header): Update prototype. |
| (Output_file_header::do_sized_write): Use this->target_ in place |
| of parameters()->target(). |
| |
| * testsuite/undef_symbol.cc (Foo::get_a): New method. |
| |
| * configure.ac (MERGE_CONSTANTS_FLAG): New check. |
| * configure: Regenerate. |
| * Makefile.in: Regenerate. |
| * testsuite/merge_string_literals_1.c: Renamed to have .cc suffix. |
| * testsuite/merge_string_literals_2.c: Likewise. |
| * testsuite/Makefile.am |
| (merge_string_literals_1.o, merge_string_literals_2.o): Update deps. |
| (AM_CFLAGS, AM_CXXFLAGS): Use $(MERGE_CONSTANTS_FLAG) in place of |
| literal -fmerge-constants. |
| * testsuite/Makefile.in: Regenerate. |
| |
| * i386.cc (Target_i386): Remove unused member dynbss_. |
| * arm.cc (Target_arm): Likewise. |
| * powerpc.cc (Target_powerpc): Likewise. |
| * sparc.cc (Target_sparc): Likewise. |
| * tilegx.cc (Target_tilegx): Likewise. |
| * x86_64.cc (Target_x86_64): Likewise. |
| * dwarf_reader.h (Dwarf_info_reader): Remove unused members |
| type_signature_, type_offset_. |
| * plugin.h (Plugin_hook): Remove unused member layout_. |
| * readsyms.h (Add_symbols): Remove unused members dirpath_, dirindex_, |
| mapfile_. |
| (Read_member): Remove unused members input_objects_, symtab_, |
| mapfile_, layout_. |
| (Check_library): Remove unused member symtab_. |
| * archive.h (Lib_group): Remove unused member lib_. |
| * archive.cc (Lib_group::Lib_group): Update initializer. |
| * incremental.h (Incremental_binary): Remove unused member target_. |
| (Incremental_script_entry): Removed unused member script_. |
| * layout.h (Write_symbols_task): Remove unused member input_objects_. |
| * icf.h (Icf): Remove unused member num_tracked_relocs. |
| |
| * gold-threads.h (Once): Conditionalize member was_run_lock_ on |
| [ENABLE_THREADS && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4], matching |
| its only use. |
| * gold-threads.cc (Once::Once): Likewise conditionalize initializer. |
| |
| * archive.h: Use struct rather than class for forward declaration |
| of Read_symbols_data. |
| |
| 2013-10-07 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/16010 |
| * testsuite/Makefile.am (icf_test): Fix dependencies. |
| (icf_safe_test): Likewise. |
| (icf_safe_so_test): Likewise. |
| (large_symbol_alignment): Add empty _LDADD rule. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2013-09-03 Pavel Chupin <pavel.v.chupin@intel.com> |
| |
| PR gold/15927 |
| * x86_64.cc (Target_x86_64<size>::Scan::global): Use relative |
| relocation for R_X86_64_32 on x32. |
| |
| 2013-08-27 Roland McGrath <mcgrathr@google.com> |
| |
| * output.cc (Output_segment::set_section_addresses): Take new |
| Target* argument. If target->isolate_execinstr() and the segment |
| is executable and starts at a target->abi_pagesize() boundary, |
| pad its end out to a target->abi_pagesize() boundary with code fill. |
| * output.h (Output_segment::set_section_addresses): Update decl. |
| * layout.h (Layout::check_output_data_for_reset_values): Take new |
| argument RELAX_OUTPUTS. |
| (Layout): New member relax_output_list_. |
| (Layout::add_relax_output): New method. |
| * layout.cc (Layout::Layout): Update constructor. |
| (Layout::reset_relax_output): New method. |
| (Layout::clean_up_after_relaxation): Call it. |
| (Layout::prepare_for_relaxation): Update caller. |
| (Layout::set_segment_offsets): Update callers of set_section_addresses. |
| Call reset_relax_output before re-processing segments for |
| isolate_execinstr case. |
| (Layout::write_data): Handle relax_output_list_. |
| (Layout::Relaxation_debug_check::check_output_data_for_reset_values): |
| Take new argument RELAX_OUTPUTS. Assert it's an empty collection. |
| |
| 2013-08-23 Yuri Chornoivan <yurchor@ukr.net> |
| |
| PR binutils/15834 |
| * object.h: Fix typos. |
| |
| 2013-08-16 Roland McGrath <mcgrathr@google.com> |
| |
| * i386.cc (Target_i386_nacl::do_code_fill): New virtual function. |
| * x86_64.cc (Target_x86_64_nacl::do_code_fill): New virtual function. |
| |
| 2013-08-07 Cary Coutant <ccoutant@google.com> |
| |
| Revert support for v2 DWP files: |
| |
| 2013-03-01 Cary Coutant <ccoutant@google.com> |
| |
| Add dwp support for v2 DWARF package file format. |
| * dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add |
| tu_length parameter. Adjust all callers. |
| * dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise. |
| * dwp.cc: Include dwarf.h. |
| (Section_bounds): New struct type. |
| (Unit_set): New struct type. |
| (Dwo_file::Dwo_file): Initialize new data member. |
| (Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index): |
| Combine and rename to... |
| (Dwo_file::read_unit_index): ...this. |
| (Dwo_file::sized_read_compunit_index) |
| (Dwo_file::sized_read_typeunit_index): Combine and rename to... |
| (Dwo_file::sized_read_unit_index): ...this. |
| (Dwo_file::copy_section): Remove section_name, is_str_offsets |
| parameters; add section_id parameter. |
| (Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to... |
| (Dwo_file::add_unit_set): ...this. |
| (Dwo_file::shndx_map_): Remove. |
| (Dwo_file::sect_offsets_): New data member. |
| (Dwp_output_file::Dwp_output_file): Initialize new data members. |
| (Dwp_output_file::add_section): Rename to... |
| (Dwp_output_file::add_contribution): ...this. |
| (Dwp_output_file::add_cu_set): Combine parameters into a struct. |
| (Dwp_output_file::add_tu_set): Likewise. |
| (Dwp_output_file::Contribution): New type. |
| (Dwp_output_file::Section::contributions): New data member. |
| (Dwp_output_file::Cu_or_tu_set): Remove. |
| (Dwp_output_file::Section::Section): New ctor. |
| (Dwp_output_file::Dwp_index::Shndx_pool): Remove. |
| (Dwp_output_file::Dwp_index::Section_table): New type. |
| (Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members. |
| (Dwp_output_file::Dwp_index::enter_set): Change type of "set" |
| parameter. |
| (Dwp_output_file::Dwp_index::shndx_pool): Remove. |
| (Dwp_output_file::Dwp_index::shndx_pool_end): Remove. |
| (Dwp_output_file::Dwp_index::section_table): New member function. |
| (Dwp_output_file::Dwp_index::section_table_end): New member function. |
| (Dwp_output_file::Dwp_index::shndx_pool_size): Remove. |
| (Dwp_output_file::Dwp_index::section_table_rows): New member function. |
| (Dwp_output_file::Dwp_index::section_table_cols): New member function. |
| (Dwp_output_file::Dwp_index::shndx_pool_): Remove. |
| (Dwp_output_file::Dwp_index::section_table_): New data member. |
| (Dwp_output_file::Dwp_index::section_mask_): New data member. |
| (Dwp_output_file::add_output_section): New member function. |
| (Dwp_output_file::write_new_section): New member function. |
| (Dwp_output_file::write_contributions): New member function. |
| (Dwp_output_file::section_id_map_): New data member. |
| (class Dwo_id_info_reader): Remove. |
| (class Unit_reader): New class. |
| (get_dwarf_section_name): New function. |
| (Dwo_file::read_executable): Adjust initializations of class data. |
| (Dwo_file::read): Add support for v2 package file format. |
| (Dwo_file::read_unit_index): Likewise. |
| (Dwo_file::sized_read_unit_index): Likewise. |
| (Dwo_file::copy_section): Likewise. |
| (Dwo_file::add_unit_set): Likewise. |
| (Dwp_output_file::add_output_section): Likewise. |
| (Dwp_output_file::add_contribution): Likewise. |
| (Dwp_output_file::Dwp_index::find_or_add): Use row index to check |
| for empty slot. |
| (Dwp_output_file::Dwp_index::enter_set): Add support for v2 package |
| file format. |
| (Dwp_output_file::Dwp_index::grow): Use row index to check for empty |
| slot. |
| (Dwp_output_file::initialize): Remove unused function. |
| (Dwp_output_file::finalize): Add support for v2 package file format. |
| (Dwp_output_file::write_index): Likewise. |
| * gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust |
| function prototype. |
| |
| 2013-07-31 Cary Coutant <ccoutant@google.com> |
| |
| * object.cc (Sized_relobj::do_output_section_address): New function. |
| (Sized_relobj): Instantiate explicitly. |
| * object.h (Object::output_section_address): New function. |
| (Object::do_output_section_address): New function. |
| (Sized_relobj::do_output_section_address): New function. |
| * powerpc.cc (Target_powerpc::symval_for_branch): Use it. |
| |
| 2013-07-30 Cary Coutant <ccoutant@google.com> |
| Sasa Stankovic <Sasa.Stankovic@imgtec.com> |
| |
| * parameters.cc (Parameters::entry): Return target-specific entry |
| symbol name. |
| * target.h (Target::entry_symbol_name): New function. |
| (Target_info::entry_symbol_name): New data member. |
| |
| * arm.cc (Target_arm::arm_info): Add entry_symbol_name. |
| * i386.cc (Target_i386::i386_info): Likewise. |
| (Target_i386_nacl::i386_nacl_info): Likewise. |
| * sparc.cc (Target_sparc::sparc_info): Likewise. |
| * tilegx.cc (Target_tilegx::tilegx_info): Likewise. |
| * x86_64.cc: (Target_x86_64::x86_64_info) Likewise. |
| (Target_x86_64_nacl::x86_64_nacl_info) Likewise. |
| * testsuite/testfile.cc (Target_test::test_target_info): Likewise. |
| |
| 2013-07-22 Sterling Augustine <saugustine@google.com> |
| |
| * dwarf_reader.cc (Dwarf_pubnames_table::read_section): |
| Convert parameter shndx to local variable. Add parameters symtab |
| and symtab_size. Scan over section names. Find relocation |
| section corresponding to current section. Create and initialize |
| reloc_mapper_ and reloc_type_. |
| (Dwarf_pubnames_table::read_header): Add assertion. Change |
| unit_length to off_t. Initialize member unit_length_. Fill in field |
| cu_offset_. |
| * dwarf_reader.h (Dwarf_pubnames_table::Dwarf_pubnames_table): |
| Initialize new fields unit_length_ and cu_offset_. |
| (Dwarf_pubnames_table::read_section): Update prototype. |
| (Dwarf_pubnames_table::cu_offset): New member function. |
| (Dwarf_pubnames_table::subsection_size): Likewise. |
| (Dwarf_pubnames_table::cu_offset_, Dwarf_pubnames_table::unit_length): |
| New fields. |
| (Dwarf_info_reader::symtab, Dwarf_info_reader::symtab_size): Make |
| member functions public. |
| * gdb_index.cc (Gdb_index_info_reader::read_pubnames_and_pubtypes): |
| Update comment. Rework logic. Move repeated parts to... |
| (Gdb_index_info_reader::read_pubtable): ...here. New function. |
| (Gdb_index::Gdb_index): Initialize new fields, pubnames_table_, |
| pubtypes_table_, and stmt_list_offset. |
| (Gdb_index::map_pubtable_to_dies, Gdb_index::find_pubname_offset, |
| Gdb_index::find_pubtype_offset, |
| Gdb_index::map_pubnames_and_types_to_dies): Define new functions. |
| (Gdb_index::pubnames_read): Update prototype and rework logic. |
| * gdb_index.h (Gdb_index_info_reader, Dwarf_pubnames_table): |
| Forward declare. |
| (Gdb_index::map_pubtable_to_dies, Gdb_index::find_pubname_offset, |
| Gdb_index::find_pubtype_offset, Gdb_index::pubnames_table) |
| Gdb_index::pubtypes_table, Gdb_index::map_pubnames_and_types_to_dies, |
| Gdb_index::map_pubtable_to_dies): |
| Declare functions. |
| (Gdb_index::pubnames_read): Update declaration. |
| (Gdb_index::Pubname_offset_map): New type. |
| (Gdb_index::cu_pubname_map_, Gdb_index::cu_pubtype_map_, |
| Gdb_index::pubnames_table_, Gdb_index::pubtypes_table_, |
| Gdb_index::stmt_list_offset): Declare. |
| (Gdb_index::pubnames_shndx_, Gdb_index::pubnames_offet_, |
| Gdb_index::pubtypes_object_, Gdb_index::pubtypes_shndx_) |
| Gdb_index::pubtypes_offset_): Remove. |
| |
| 2013-07-19 Roland McGrath <mcgrathr@google.com> |
| |
| * options.h (General_options): Add -Trodata-segment option. |
| * parameters.cc (Parameters::check_rodata_segment): New function. |
| (Parameters::set_target_once): Call it. |
| * parameters.h (Parameters): Declare it (private member function). |
| * layout.cc (load_seg_unusable_for_headers): New function, broken |
| out of Layout::relaxation_loop_body. If TARGET->isolate_execinstr() |
| then validate rodata segment rather than text segment. |
| (relaxation_loop_body): Call that. |
| (is_text_segment): New function. Don't admit a non-executable |
| segment if TARGET->isolate_execinstr(). |
| (set_segment_offsets): Call it. Honor -Trodata-segment option. |
| |
| 2013-07-15 Shawn Landden <shawnlandden@gmail.com> |
| |
| PR gold/15070 |
| * fileread.h (File_read::get_view): Clarify comment about ALIGNED. |
| * nacl.h (Sniff_file::View::View): Request aligned view. |
| |
| 2013-07-11 Cary Coutant <ccoutant@google.com> |
| |
| * powerpc.cc (Target_powerpc::write_branch_lookup_table): Use |
| correct BRLT entry size. |
| |
| 2013-07-03 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Relocate::relocate): Update self-call |
| comment. |
| |
| 2013-07-01 Cary Coutant <ccoutant@google.com> |
| |
| * dwarf_reader.cc (Dwarf_ranges_table::read_ranges_table): Save |
| reloc_type_. |
| (Dwarf_ranges_table::read_range_list): Call lookup_reloc. |
| (Dwarf_ranges_table::lookup_reloc): New function. |
| * dwarf_reader.h (Dwarf_ranges_table::Dwarf_ranges_table): Initialize |
| reloc_type_. |
| (Dwarf_ranges_table::lookup_reloc): New function. |
| (Dwarf_ranges_table::reloc_type_): New data member. |
| |
| 2013-06-27 Jing Yu <jingyu@google.com> |
| |
| PR gold/15662 |
| * powerpc.cc (Output_data_brlt_powerpc::reset_brlt_sizes): New |
| function. |
| (Output_data_brlt_powerpc::finalize_brlt_sizes): New function. |
| (Target_powerpc::do_relax): Call the above. |
| |
| 2013-06-27 Cary Coutant <ccoutant@google.com> |
| |
| * powerpc.cc (Target_powerpc::symval_for_branch): Don't assert |
| on garbage collected .opd section. |
| |
| 2013-06-27 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::do_gc_add_reference): Test dst_shndx |
| is non-zero. |
| (Target_powerpc::do_gc_mark_symbols): Likewise for sym->shndx(). |
| (Target_powerpc::do_function_location): Likewise for loc->shndx. |
| |
| 2013-06-14 Cary Coutant <ccoutant@google.com> |
| |
| * resolve.cc (Symbol::override_base): Don't override st_type |
| from plugin placeholder symbols. |
| (Symbol_table::resolve): Likewise. |
| (Symbol_table::should_override): Don't complain about TLS mismatch |
| if the TO symbol is a plugin placeholder. |
| * testsuite/Makefile.am (plugin_test_tls): New test. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/plugin_test_tls.sh: New test script. |
| * testsuite/two_file_test_2_tls.cc: New test source. |
| * testsuite/two_file_test_tls.cc: New test source. |
| |
| 2013-06-05 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| |
| * layout.cc (Layout::set_segment_offsets): Taking care of the case when |
| the maximum segment alignment is larger than the page size. |
| * testsuite/Makefile.am (large_symbol_alignment): Test that Gold |
| correctly aligns the symbols with large alignemnt. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/large_symbol_alignment.cc: New file. |
| |
| 2013-05-30 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| Sriraman Tallam <tmsriram@google.com> |
| |
| * options.h (sort_section): New option. |
| * output.h (Input_section_sort_section_prefix_special_ordering_compare): |
| Rename from Input_section_sort_section_name_special_ordering_compare. |
| (Input_section_sort_section_name_compare): New struct. |
| * output.cc (Output_section::Input_section_sort_section_name_compare:: |
| operator()): New function. |
| (Output_section::sort_attached_input_sections): Use new sort function |
| for .text if --sort-section=name is specified. |
| * layout.cc (Layout::make_output_section): |
| Add sorting by name when --sort-section=name is specified. |
| * testsuite/Makefile.am (text_section_grouping): Test option |
| --sort-section=name. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/section_sorting_name.cc: New file. |
| * testsuite/section_sorting_name.sh: New file. |
| |
| 2013-05-21 Cary Coutant <ccoutant@google.com> |
| |
| * symtab.h (Symbol::is_cxx_vtable): New function. |
| * target-reloc.h (relocate_section): Check for vtable symbol. |
| * testsuite/Makefile.am (missing_key_func.sh): New test case. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/missing_key_func.cc: New test source. |
| * testsuite/missing_key_func.sh: New test script. |
| |
| 2013-05-21 Cary Coutant <ccoutant@google.com> |
| |
| * object.cc (Sized_relobj_file::get_symbol_location_info): Set |
| type of enclosing symbol. |
| (Relocate_info::location): Check symbol type when describing symbol. |
| * object.h (Symbol_location_info): Remove unused line_number; |
| add enclosing_symbol_type. |
| * testsuite/debug_msg.sh: Adjust expected output. |
| |
| 2013-05-13 Cary Coutant <ccoutant@google.com> |
| |
| * configure.ac: Export DEFAULT_TARGET. |
| * configure: Regenerate. |
| * Makefile.in: Regenerate. |
| * testsuite/Makefile.am: Add .EXPORT_ALL_VARIABLES. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/debug_msg.sh: Delete duplicate tests. |
| Don't check undef_int error message match for powerpc where the |
| source file and line number aren't available. |
| |
| 2013-05-10 Roland McGrath <mcgrathr@google.com> |
| |
| * options.h (General_options): Add --rosegment-gap option. |
| * options.cc (finalize): --rosegment-gap implies --rosegment. |
| * layout.cc (set_segment_offsets): Let user option override |
| target->rosegment_gap(). |
| |
| 2013-05-10 Roland McGrath <mcgrathr@google.com> |
| |
| * options.h (General_options): Remove leading space from help |
| messages for -nostdlib and --rosegment. |
| |
| 2013-05-03 Maciej W. Rozycki <macro@codesourcery.com> |
| |
| PR ld/15365 |
| * layout.cc (Layout::finalize): Make __ehdr_start STV_HIDDEN. |
| |
| 2013-05-03 Alan Modra <amodra@gmail.com> |
| |
| * merge.cc (Output_merge_string::do_add_input_section): Correct |
| scan for number of strings. Rename vars to avoid shadowing. |
| Include missing terminator in input_size_. |
| |
| 2013-05-01 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * merge.cc (Output_merge_string<Char_type>::do_add_input_section): |
| Restore empty string handling. |
| |
| 2013-05-01 Cary Coutant <ccoutant@google.com> |
| |
| * stringpool.cc (Stringpool_template::new_key_offset): Fix |
| uninitialized warning. |
| |
| 2013-04-29 Alexander Ivchenko <alexander.ivchenko@intel.com> |
| |
| * output.cc (Output_section::add_merge_input_section): Allow |
| to merge sections if the alignment is more than character size. |
| * merge.h (Output_merge_string::Output_merge_string): Remove |
| assert. |
| * merge.cc (Output_merge_string<Char_type>::do_add_input_section): Count |
| only not-null strings. Check the alignment of strings. |
| * stringpool.h |
| (Stringpool_template<Stringpool_char>::Stringpool_template): Add |
| alignment as the argument. |
| (Stringpool_template<Stringpool_char>::addralign_): New class member. |
| * stringpool.cc (Stringpool_template<Stringpool_char>::new_key_offset): |
| Align non-zero length strings according to the addralign_. |
| (Stringpool_template<Stringpool_char>::set_string_offsets): |
| Updating offsets according to the given alignment. |
| * testsuite/Makefile.am (text_section_grouping): Test if string |
| literals are getting merged. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/merge_string_literals_1.c: New file. |
| * testsuite/merge_string_literals_2.c: Ditto. |
| * testsuite/merge_string_literals.sh: Ditto. |
| |
| 2013-04-26 Ian Lance Taylor <iant@google.com> |
| |
| * target-reloc.h (relocate_section): If the reloc offset is out of |
| range, pass VIEW as NULL to relocate.relocate. |
| * arm.cc (Target_arm:Relocate::relocate): Check for a NULL view. |
| * i386.cc (Target_i386::Relocate::relocate): Likewise. |
| * powerpc.cc (Target_powerpc::Relocate::relocate): Likewise. |
| * sparc.cc (Target_sparc::Relocate::relocate): Likewise. |
| * tilegx.cc (Target_tilegx::Relocate::relocate): Likewise. |
| * x86_64.cc (Target_x86_64::Relocate::relocate): Likewise. |
| |
| 2013-04-26 Geoff Pike <gpike@chromium.org> |
| |
| * gold.cc (queue_final_tasks): invoke layout->queue_build_id_tasks(). |
| * layout.cc (Hash_task): New class. |
| (Layout::queue_build_id_tasks): New function. |
| (Layout::write_build_id): Handle single-thread portion of build ID |
| computation. (In some cases, all of it is single-threaded.) Replace |
| {sha1,md5}_process_bytes with {sha1,md5}_buffer to get the same |
| functionality in fewer lines of code. |
| * layout.h (Layout::queue_build_id_tasks): New function declaration. |
| * options.h (General_options): make "--build-id" default to tree |
| rather than sha1. Add two new options related to --build-id=tree: |
| --build-id-chunk-size-for-treehash and |
| --build-id-min-file-size-for-treehash. |
| * Makefile.am: add testing of --build-id=tree and related new options |
| (these tests will be invoked by "make check"). |
| * Makefile.in: Regenerate. |
| |
| 2013-04-25 Alan Modra <amodra@gmail.com> |
| |
| * configure.tgt: Add powerpcle and powerpc64le. |
| |
| 2013-04-22 Alan Modra <amodra@gmail.com> |
| |
| PR gold/15355 |
| * layout.cc (Layout::segment_precedes): Allow more than one |
| segment with the same type and flags. |
| |
| 2013-04-15 Cary Coutant <ccoutant@google.com> |
| |
| * layout.cc (Layout::set_relocatable_section_offsets): Don't |
| allocate space in file for BSS sections. |
| |
| 2013-04-15 Cary Coutant <ccoutant@google.com> |
| |
| * script-sections.cc (Orphan_output_section): Reset address |
| to zero after each orphaned section for relocatable links. |
| |
| 2013-04-15 Cary Coutant <ccoutant@google.com> |
| |
| * symtab.cc (Symbol_table::sized_write_globals): Subtract |
| section starting address for relocatable link. |
| * testsuite/Makefile.am (script_test_11): New test. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/script_test_11.c: New source file. |
| * testsuite/script_test_11.t: New linker script. |
| |
| 2013-04-13 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Stub_control::can_add_to_stub_group): Don't set |
| owner when sections are not adjacent and exceed group size. |
| (Target_powerpc::group_sections): Handle corner case. |
| (Target_powerpc::Branch_info::make_stub): Handle case where |
| stub table doesn't exist due to branches in non-exec sections. |
| (Target_powerpc::Relocate::relocate): Likewise. |
| |
| 2013-04-11 Alan Modra <amodra@gmail.com> |
| |
| PR gold/15354 |
| * powerpc.cc (Target_powerpc::make_brlt_section): Name section |
| .branch_lt to match bfd ld. Adjust comments throughout file. |
| |
| 2013-04-04 Ian Lance Taylor <iant@google.com> |
| |
| GCC PR c++/56840 |
| * object.cc (do_layout_deferred_sections): Handle .eh_frame |
| sections before checking whether they are included in the link. |
| |
| 2013-03-29 Sriraman Tallam <tmsriram@google.com> |
| |
| * archive.cc (Archive::get_elf_object_for_member): Create the elf |
| object before calling the plugin claim_file handler. Pass the elf |
| object of the archive to the plugin. Delete the elf object if the |
| plugin claims the file. |
| |
| 2013-03-21 Alan Modra <amodra@gmail.com> |
| |
| * layout.cc (Layout::set_segment_offsets): Accept writable .text |
| segment when omagic. |
| |
| 2013-03-21 Alan Modra <amodra@gmail.com> |
| |
| * dwp.cc (Dwp_output_file::add_contribution): Avoid signed/unsigned |
| comparison warning. |
| * layout.cc (Layout::create_dynamic_symtab): Avoid "may be used |
| uninitialized" warning. |
| |
| 2013-03-20 Alan Modra <amodra@gmail.com> |
| |
| * symtab.h (Symbol::clear_version): New function. |
| * symtab.cc (Symbol_table::set_dynsym_indexes): Don't set object |
| is_needed by weak references. Clear version for symbols defined |
| in as-needed objects that are not needed. |
| |
| 2013-03-15 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::Scan::reloc_needs_plt_for_ifunc): Make |
| static and public. Add report_err param. Return false for data refs. |
| (Target_powerpc::rela_dyn_section): New overloaded function. |
| (Target_powerpc::plt_, iplt_): Elucidate. |
| (Output_data_plt_powerpc::entry_count): Handle current_data_size()==0. |
| (Output_data_plt_powerpc::do_write): Don't write .iplt. |
| (Output_data_plt_powerpc::plt_entry_count): Don't add .iplt entries. |
| (Target_powerpc::Scan::local, global): Adjust reloc_needs_plt_for_ifunc |
| calls. Put ifunc dynamic relocs in irela_dyn_section. Only |
| push_branch and make_plt_entry for ifunc syms when |
| reloc_needs_plt_for_ifunc. |
| (Target_powerpc::Relocate::relocate): Don't use plt entry value |
| for ifunc unless reloc_needs_plt_for_ifunc. |
| |
| 2013-03-15 Alan Modra <amodra@gmail.com> |
| |
| * gc.h (gc_process_relocs): Don't look through function descriptors. |
| * icf.cc (get_section_contents): Do so here instead. |
| |
| 2013-03-13 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (is_branch_reloc): Forward declare. |
| (Target_powerpc::do_can_check_for_function_pointers): New predicate. |
| (Target_powerpc::Scan::local_reloc_may_be_function_pointer): Return |
| false for 64-bit, true for 32-bit non-branch relocs. |
| (Target_powerpc::Scan::global_reloc_may_be_function_pointer): Likewise. |
| * testsuite/Makefile.am (icf_test): Use linker map file instead of |
| nm output. |
| (icf_safe_test): Generate linker map file as well as nm output. |
| (icf_safe_so_test): Likewise. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/icf_test.sh: Parse linker map file to determine |
| section folding. |
| * testsuite/icf_safe_test.sh: Likewise. Expect folding for PowerPC. |
| * testsuite/icf_safe_so_test.sh: Likewise. |
| (X86_32_or_ARM_specific_safe_fold): Merge into.. |
| (arch_specific_safe_fold): ..this. |
| (X86_64_specific_safe_fold): Delete unused function. |
| |
| 2013-03-12 Alan Modra <amodra@gmail.com> |
| |
| * gc.h (gc_process_relocs): Look through function descriptors |
| to determine shndx, symvalue and addend used by ICF. Tidy |
| variable duplication. |
| |
| 2013-03-11 Alan Modra <amodra@gmail.com> |
| |
| * gold.cc (queue_middle_tasks): Move detect_odr_violations.. |
| * layout.cc (Layout_task_runner::run): ..to here. |
| * symtab.h (struct Symbol_location): Extract from.. |
| (class Symbol_table): ..here. |
| * symtab.cc (Symbol_table::linenos_from_loc): Invoke function_location. |
| * target.h (class Target): Add function_location and |
| do_function_location functions. |
| (class Sized_target): Add do_function_location. |
| * object.h (class Sized_relobj_file): Move find_shdr.. |
| (class Object): ..to here. |
| * object.cc: Likewise. Update to suit. Instantiate. |
| (Sized_relobj_file::find_eh_frame): Update find_shdr call. |
| * powerpc.cc (class Powerpc_dynobj): New. |
| (Target_powerpc::do_function_location): New function. |
| (Powerpc_relobj::do_find_special_sections): Update find_shdr call. |
| (Powerpc_dynobj::do_read_symbols): New function. |
| (Target_powerpc::do_make_elf_object): Make a Powerpc_dynobj. |
| |
| 2013-03-08 Ian Lance Taylor <iant@google.com> |
| |
| * options.cc (General_options::string_to_object_format): Accept |
| "default". |
| |
| 2013-03-08 Alan Modra <amodra@gmail.com> |
| |
| * ehframe.h (Post_fdes) Make it a vector of Post_fde rather than |
| pointer to Post_fde. |
| (struct Post_fde): Move definition to here.. |
| * ehframe.cc (struct Post_fde): ..from here. |
| (Cie::write): Don't alloc Post_fde. |
| (Eh_frame::do_sized_write): Update. Don't free Post_fde. |
| |
| 2013-03-07 Alan Modra <amodra@gmail.com> |
| |
| * testsuite/discard_locals_relocatable_test.c: Add a powerpc |
| relocation referencing .LC0. |
| * testsuite/discard_locals_test.sh: Remove FIXMEs. |
| |
| 2013-03-07 Alan Modra <amodra@gmail.com> |
| |
| * testsuite/ifunc-sel.h (ifunc_sel, ifunc_one): Mark |
| always_inline. Add assembly for powerpc to avoid GOT. |
| |
| 2013-03-07 Alan Modra <amodra@gmail.com> |
| |
| * testsuite/script_test_10.sh: Don't test .bss section |
| header number. |
| |
| 2013-03-06 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (class Powerpc_relobj): Move some member functions. |
| (Target_powerpc::symval_for_branch): Add symtab param. Update |
| all callers. Handle folded sections. |
| (Target_powerpc::do_gc_add_reference): Don't cast dynamic object |
| to Powerpc_relobj. |
| (Global_symbol_visitor_opd::operator()): Likewise. |
| |
| 2013-03-04 Alan Modra <amodra@gmail.com> |
| |
| * testsuite/Makefile.am (final_layout_script.lds): Add .sbss. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2013-03-01 Cary Coutant <ccoutant@google.com> |
| |
| Add dwp support for v2 DWARF package file format. |
| * dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add |
| tu_length parameter. Adjust all callers. |
| * dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise. |
| * dwp.cc: Include dwarf.h. |
| (Section_bounds): New struct type. |
| (Unit_set): New struct type. |
| (Dwo_file::Dwo_file): Initialize new data member. |
| (Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index): |
| Combine and rename to... |
| (Dwo_file::read_unit_index): ...this. |
| (Dwo_file::sized_read_compunit_index) |
| (Dwo_file::sized_read_typeunit_index): Combine and rename to... |
| (Dwo_file::sized_read_unit_index): ...this. |
| (Dwo_file::copy_section): Remove section_name, is_str_offsets |
| parameters; add section_id parameter. |
| (Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to... |
| (Dwo_file::add_unit_set): ...this. |
| (Dwo_file::shndx_map_): Remove. |
| (Dwo_file::sect_offsets_): New data member. |
| (Dwp_output_file::Dwp_output_file): Initialize new data members. |
| (Dwp_output_file::add_section): Rename to... |
| (Dwp_output_file::add_contribution): ...this. |
| (Dwp_output_file::add_cu_set): Combine parameters into a struct. |
| (Dwp_output_file::add_tu_set): Likewise. |
| (Dwp_output_file::Contribution): New type. |
| (Dwp_output_file::Section::contributions): New data member. |
| (Dwp_output_file::Cu_or_tu_set): Remove. |
| (Dwp_output_file::Section::Section): New ctor. |
| (Dwp_output_file::Dwp_index::Shndx_pool): Remove. |
| (Dwp_output_file::Dwp_index::Section_table): New type. |
| (Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members. |
| (Dwp_output_file::Dwp_index::enter_set): Change type of "set" |
| parameter. |
| (Dwp_output_file::Dwp_index::shndx_pool): Remove. |
| (Dwp_output_file::Dwp_index::shndx_pool_end): Remove. |
| (Dwp_output_file::Dwp_index::section_table): New member function. |
| (Dwp_output_file::Dwp_index::section_table_end): New member function. |
| (Dwp_output_file::Dwp_index::shndx_pool_size): Remove. |
| (Dwp_output_file::Dwp_index::section_table_rows): New member function. |
| (Dwp_output_file::Dwp_index::section_table_cols): New member function. |
| (Dwp_output_file::Dwp_index::shndx_pool_): Remove. |
| (Dwp_output_file::Dwp_index::section_table_): New data member. |
| (Dwp_output_file::Dwp_index::section_mask_): New data member. |
| (Dwp_output_file::add_output_section): New member function. |
| (Dwp_output_file::write_new_section): New member function. |
| (Dwp_output_file::write_contributions): New member function. |
| (Dwp_output_file::section_id_map_): New data member. |
| (class Dwo_id_info_reader): Remove. |
| (class Unit_reader): New class. |
| (get_dwarf_section_name): New function. |
| (Dwo_file::read_executable): Adjust initializations of class data. |
| (Dwo_file::read): Add support for v2 package file format. |
| (Dwo_file::read_unit_index): Likewise. |
| (Dwo_file::sized_read_unit_index): Likewise. |
| (Dwo_file::copy_section): Likewise. |
| (Dwo_file::add_unit_set): Likewise. |
| (Dwp_output_file::add_output_section): Likewise. |
| (Dwp_output_file::add_contribution): Likewise. |
| (Dwp_output_file::Dwp_index::find_or_add): Use row index to check |
| for empty slot. |
| (Dwp_output_file::Dwp_index::enter_set): Add support for v2 package |
| file format. |
| (Dwp_output_file::Dwp_index::grow): Use row index to check for empty |
| slot. |
| (Dwp_output_file::initialize): Remove unused function. |
| (Dwp_output_file::finalize): Add support for v2 package file format. |
| (Dwp_output_file::write_index): Likewise. |
| * gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust |
| function prototype. |
| |
| 2013-03-01 Cary Coutant <ccoutant@google.com> |
| |
| * dwarf_reader.cc (Dwarf_info_reader::check_buffer): Move |
| function into class definition in header file. |
| (Dwarf_info_reader::warn_corrupt_debug_section): New function. |
| * dwarf_reader.h (Dwarf_info_reader::warn_corrupt_debug_section): |
| New function. |
| (Dwarf_info_reader::check_buffer): Move here from .cc file. |
| |
| 2013-02-28 Alan Modra <amodra@gmail.com> |
| |
| * target.h (Target::plt_fde_location, do_plt_fde_location): Declare. |
| * target.cc (Target::do_plt_fde_location): New function. |
| * ehframe.h (class FDE): Add post_map field to u_.from_linker, |
| accessor function, and constructor param. |
| (struct Post_fde, Post_fdes): Declare. |
| (Cie::write): Add post_fdes param. |
| * ehframe.cc (Fde::write): Use plt_fde_location. |
| (struct Post_fde): Define. |
| (Cie::write): Stash FDEs added post merge mapping. |
| (Eh_frame::add_ehframe_for_plt): Assert no new CIEs after mapping. |
| Adjust Fde constructor call. Bump final_data_size_ for post map FDEs. |
| (Eh_frame::do_sized_write): Arrange to write post map FDES after |
| other FDEs. |
| * powerpc.cc (Target_powerpc::do_plt_fde_location): New function. |
| (Target_powerpc::has_glink): New function. |
| (Target_powerpc::do_relax): Add eh_frame info for stubs. |
| (struct Eh_cie, eh_frame_cie, glink_eh_frame_fde_64, |
| glink_eh_frame_fde_32, default_fde): New data. |
| (Stub_table::eh_frame_added_): New var. |
| (Stub_table::find_long_branch_entry, stub_address, stub_offset): |
| Make const. |
| (Stub_table::add_eh_frame): New function. |
| (Output_data_glink::add_eh_frame): New function. |
| (Target_powerpc::make_glink_section): Call add_eh_frame. |
| |
| 2013-02-15 Ian Lance Taylor <iant@google.com> |
| |
| * options.h (DEFINE_uint64_alias): Define. |
| (class General_options): Add -Ttext-segment as an alias for |
| -Ttext. |
| |
| 2013-02-15 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Stub_table::plt_off): New function, extracted from.. |
| (Stub_table::do_write): ..here, two places. |
| (Stub_table::plt_call_size): Use it here too. |
| |
| 2013-02-11 Ian Lance Taylor <iant@google.com> |
| |
| * descriptors.cc (Descriptors::close_all): New function. |
| * descriptors.h (class Descriptors): Declare close_all. |
| (close_all_descriptors): New inline function. |
| * plugin.cc: Include "descriptors.h". |
| (Plugin_manager::cleanup): Call close_all_descriptors. |
| |
| 2013-02-06 Alan Modra <amodra@gmail.com> |
| |
| * README: Update coding style link. |
| |
| 2013-01-28 Cary Coutant <ccoutant@google.com> |
| |
| * dwp.cc (File_list): New typedef. |
| (Dwo_name_info_reader): New class. |
| (Dwo_id_info_reader::Dwo_id_info_reader): Remove unused parameters. |
| (Dwo_id_info_reader::visit_top_die): Remove unused member function. |
| (Dwo_file::~Dwo_file): Delete input_file_ after obj_. |
| (Dwo_file::read_executable): New function. |
| (Dwo_file::read): Move common setup code to ... |
| (Dwo_file::make_object): ... here. |
| (dwp_options): Add --exec/-e. |
| (usage): Likewise. |
| (main): Likewise. |
| |
| 2013-01-24 Sriraman Tallam <tmsriram@google.com> |
| |
| * layout.cc (Layout::layout): Check for option text_reorder. |
| (Layout::make_output_section): Ditto. |
| * options.h (text_reorder): New option. |
| * output.cc (Input_section_sort_compare): Remove special ordering |
| of section names. |
| (Output_section:: |
| Input_section_sort_section_name_special_ordering_compare:: |
| operator()): New function. |
| (Output_section::sort_attached_input_sections): Use new sort function |
| for .text. |
| * output.h (Input_section_sort_section_name_special_ordering_compare): |
| New struct. |
| * testsuite/Makefile.am (text_section_grouping): Test option |
| --no-text-reorder |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/text_section_grouping.sh: Check order of functions without |
| default text reordering. |
| |
| 2013-01-18 Mike Frysinger <vapier@gentoo.org> |
| |
| * options.h (General_options): Change default to true for new_dtags. |
| |
| 2013-01-18 Mike Frysinger <vapier@gentoo.org> |
| |
| * layout.cc (Layout::finish_dynamic_section): Only add DT_RPATH |
| when enable_new_dtags is false. Only add DT_RUNPATH when |
| enable_new_dtags is true. |
| |
| 2013-01-17 Serge Pavlov <serge.v.pavlov@gmail.com> |
| |
| * powerpc.cc (Stub_table::find_plt_call_entry): Make types |
| used in declaration and definition consistent. |
| (Target_powerpc::symval_for_branch): Ditto. |
| |
| 2013-01-16 Sriraman Tallam <tmsriram@google.com> |
| |
| * testsuite/plugin_final_layout.cc: Fix comment. |
| |
| 2013-01-16 Sriraman Tallam <tmsriram@google.com> |
| |
| * layout.cc (Layout::layout): Do not do default sorting for |
| text sections when section ordering is specified. |
| (make_output_section): Ditto. |
| * testsuite/plugin_final_layout.cc: Name the function sections |
| to catch reordering issues. |
| |
| 2013-01-15 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::do_relax): Default shared libs to |
| plt-thread-safe. |
| |
| 2013-01-15 Alan Modra <amodra@gmail.com> |
| |
| * testsuite/Makefile.am (final_layout_script.lds): Handle .got section. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2013-01-14 Alan Modra <amodra@gmail.com> |
| |
| * testsuite/Makefile.am (MOSTLYCLEANFILES): Add various output files. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2013-01-11 Pavel Chupin <pavel.v.chupin@intel.com> |
| |
| PR bfd/14430 |
| Fix mingw gold build with plugins enabled |
| * Makefile.am: Replace -ldl with @DLOPEN_LIBS@. |
| * configure.ac: Export DLOPEN_LIBS and add headers check. |
| * plugin.cc: Handle non-dlfcn case. |
| * Makefile.in: Regenerate. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2013-01-09 Sriraman Tallam <tmsriram@google.com> |
| |
| * output.h (sort_attached_input_sections): Change to be public. |
| * script-sections.cc |
| (Output_section_definition::set_section_addresses): Sort |
| attached input sections according to section order before linker |
| script assigns section addresses. |
| (Orphan_output_section::set_section_addresses): Sort |
| attached input sections according to section order before linker |
| script assigns section addresses. |
| * Makefile.am (final_layout.sh): Use a simple linker script to |
| check if section ordering still works. |
| * Makefile.in: Regenerate. |
| |
| 2013-01-09 Ben Cheng <bccheng@google.com> |
| |
| * arm.cc (Target_arm::attributes_accept_div): New function. |
| (Target_arm::attributes_forbid_div): New function. |
| (Target_arm::merge_object_attributes): Merge the Tag_DIV_use |
| attribute using the same new functions as what bfd/elf32_arm.c |
| does. |
| |
| 2013-01-07 Cary Coutant <ccoutant@google.com> |
| |
| PR gold/14993 |
| * output.cc (Output_section::add_input_section): For incremental |
| updates, don't track input sections that are allocated from patch |
| space. |
| |
| 2013-01-07 H.J. Lu <hongjiu.lu@intel.com> |
| Ian Lance Taylor <iant@google.com> |
| |
| PR gold/14897 |
| * configure.ac (--enable-ld): Removed. |
| (install_as_default): Set to yes only for --enable-gold=default |
| or --disable-ld. |
| * configure: Regenerated. |
| |
| 2013-01-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * options.h (General_options): Add -fuse-ld= for GCC linker |
| option compatibility. |
| |
| 2013-01-04 Cary Coutant <ccoutant@google.com> |
| |
| * configure.ac: Fix typo restoring CXXFLAGS. |
| * configure: Regenerate. |
| |
| 2013-01-04 Cary Coutant <ccoutant@google.com> |
| |
| * testsuite/Makefile.am (CXXLINK_S): New macro. |
| (debug_msg_so.err, debug_msg_ndebug.err): Use CXXLINK_S. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2013-01-02 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * version.cc (print_version): Update copyright year to 2013. |
| |
| 2012-12-20 Ian Lance Taylor <iant@google.com> |
| |
| * layout.cc (Layout::special_ordering_of_input_section): New |
| function. |
| (Layout::layout): If input section requires special ordering, must |
| sort input sections. |
| (Layout::make_output_section): May sort .text input sections. |
| (Layout::is_section_name_prefix_grouped): Remove. |
| * layout.h (class Layout): Declare |
| special_ordering_of_input_section. Don't declare |
| is_section_name_prefix_grouped. |
| * output.cc (Output_section::add_input_section): Revert last |
| change. |
| (Output_section::Input_section_sort::match_file_name): Don't crash |
| if called on output section data. |
| (Output_section::Input_section_sort_compare): Sort based on |
| special ordering. |
| (Output_section::Input_section_sort_section_order_index_compare): |
| Revert last patch. |
| (Output_section::sort_attached_input_sections): Likewise. |
| |
| 2012-12-18 Sriraman Tallam <tmsriram@google.com> |
| |
| * layout.cc (Layout::is_section_name_prefix_grouped): New function. |
| * layout.h (Layout::is_section_name_prefix_grouped): New function. |
| * output.cc (Output_section::add_input_section): Check if section |
| name contains special prefix. Keep input sections to sort such |
| sections. |
| (Output_section::Input_section_sort_section_order_index_compare |
| ::operator()): Group sections according to prefixes. |
| (Output_section::sort_attached_input_sections): Add condition to |
| Input_section_entry constructor call. |
| * testsuite/Makefile.am (text_section_grouping): New test. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/text_section_grouping.cc: New file. |
| * testsuite/text_section_grouping.sh: New file. |
| |
| 2012-12-17 Nick Clifton <nickc@redhat.com> |
| |
| * Makefile.am: Add copyright notice. |
| * NEWS: Likewise. |
| * README: Likewise. |
| * configure.ac: Likewise. |
| * ftruncate.c: Likewise. |
| * Makefile.in: Regenerate. |
| |
| 2012-12-14 Cary Coutant <ccoutant@google.com> |
| |
| * testsuite/Makefile.am (exception_separate_shared_12_test): Add |
| --no-as-needed flag. |
| (exception_separate_shared_12_test): Likewise. |
| (incremental_copy_test): Likewise. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2012-12-14 Cary Coutant <ccoutant@google.com> |
| |
| * dwp.cc (Dwp_output_file::add_cu_set): Check for duplicate CUs. |
| (Dwp_output_file::Dwp_index::enter_set): Add assert. |
| |
| 2012-12-12 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (class Track_tls): New. |
| (class Relocate, class Scan): Inherit Track_tls. |
| (Target_powerpc::Scan::local, global): Track tls optimization |
| and avoid creating plt entry for __tls_get_addr if all uses |
| are optimized away. |
| (Target_powerpc::Relocate::relocate): Update to use Track_tls. |
| |
| 2012-12-12 Alan Modra <amodra@gmail.com> |
| |
| * options.h (General_options): Add --toc-sort/--no-toc-sort. |
| Replace no_toc_optimize with toc_optimize. |
| * output.h (Output_section::input_sections): Provide non-const variant. |
| * powerpc.cc (Powerpc_relobj::has_small_toc_reloc_, |
| set_has_small_toc_reloc, has_small_toc_reloc): New variable and |
| accessors. |
| (Target_powerpc::Scan::local, global): Call set_has_small_toc_reloc. |
| (class Sort_toc_sections): New. |
| (Target_powerpc::do_finalize_sections): Sort toc sections. |
| (Target_powerpc::Relocate::relocate): Update toc_optimize test. |
| |
| 2012-12-10 Roland McGrath <mcgrathr@google.com> |
| |
| * testsuite/binary_unittest.cc (read_all): New function. |
| (Sized_binary_test): Use it instead of ::read. |
| * fileread.cc (do_read): Don't assume pread always reads the whole |
| amount in a single call. |
| |
| 2012-12-10 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_selector_powerpc::Target_selector_powerpc): |
| Set EM_PPC64 or EM_PPC here. |
| (Target_selector_powerpc::do_recognize): Delete. |
| |
| 2012-12-10 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Powerpc_relobj::Powerpc_relobj): Init has14_ and |
| stub_table_. |
| (Target_powerpc::Branch_info::make_stub): Don't omit addend. |
| |
| 2012-12-07 Roland McGrath <mcgrathr@google.com> |
| |
| * testsuite/binary_unittest.cc (Sized_binary_test): |
| Use open_descriptor rather than ::open. |
| |
| 2012-12-07 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Stub_table::do_write): Delete redundant Address |
| typedef and invalid_address constant. |
| (Output_data_glink, Stub_table, Target_powerpc): Explicitly |
| instantiate constants. |
| |
| 2012-12-06 Roland McGrath <mcgrathr@google.com> |
| |
| * configure.ac (HAVE_ZLIB): Use AM_ZLIB instead of AC_SEARCH_LIBS. |
| Use $ac_cv_header_zlib_h = yes as the condition in AM_CONDITIONAL. |
| * aclocal.m4: Regenerate. |
| * configure: Regenerate. |
| * Makefile.in: Regenerate. |
| * testsuite/Makefile.in: Regenerate. |
| |
| 2012-12-07 Alan Modra <amodra@gmail.com> |
| |
| * options.h (General_options): Add no_toc_optimize. |
| * powerpc.cc (ok_lo_toc_insn): New function. |
| (Target_powerpc::Relocate::relocate): Optimize toc access sequences. |
| |
| 2012-12-06 Alan Modra <amodra@gmail.com> |
| |
| * options.h (General_options): Add plt_align, plt_static_chain, |
| plt_thread_safe. Update stub_group_size help text. |
| * powerpc.cc (Target_powerpc::plt_thread_safe): New access function |
| for new plt_thread_safe_ var. |
| (use_plt_offset): Correct comments. |
| (Target_powerpc::do_relax): Look for thread creation symbols to |
| determine default plt_thread_safe value. Clear plt call stubs |
| as well as branch stubs each iteration. |
| (add_2_2_11, add_12_12_11, bnectr_p4, cmpldi_2_0, xor_11_11_11): New |
| insn constants. |
| (l, hi, ha, write_insn): Move earlier. |
| (Stub_table): Delete prev_size, add last_plt_size and last_branch_size. |
| (Stub_table::clear_stubs): Rename from clear_long_branch_stubs, clear |
| plt stubs too. |
| (Stub_table::update_size): Adjust. |
| (Stub_table::prev_size, set_prev_size): Delete. |
| (Stub_table::stub_align): Let --plt-align affect result. |
| (Stub_table::plt_call_size): Calculate sizes for various stubs. |
| (Stub_table::branch_stub_size): Use last_plt_size in address calc. |
| (Stub_table::add_plt_call_stub): Pass iterator to plt_call_size. |
| (Stub_table::do_write): Support more stub variants. |
| |
| 2012-12-04 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Powerpc_relobj::do_scan_relocs): Delete. |
| (Target_powerpc::do_define_standard_symbols): New function. |
| |
| 2012-12-03 Alan Modra <amodra@gmail.com> |
| |
| * output.h: Formatting, whitespace. |
| |
| 2012-12-03 Alan Modra <amodra@gmail.com> |
| |
| * layout.h (Layout::get_executable_sections): Declare. |
| * layout.cc (Layout::get_executable_sections): New function. |
| * arm.cc (Target_arm::group_sections): Use it. |
| (Arm_output_section::group_sections): Delete now redundant test. |
| * output.cc (Output_reloc::Output_reloc): Add is_relative. |
| param to handle relative relocs. |
| * output.h (Output_reloc::Output_reloc <absolute reloc>): Likewise. |
| (Output_data_reloc::add_absolute): Adjust. |
| (Output_data_reloc::add_relative): New function. |
| (Output_data::reset_data_size): New function. |
| (Output_relaxed_input_section::set_relobj, set_shndx): New functions. |
| (Output_section::set_addralign): New function. |
| (Output_section::checkpoint_set_addralign): New function. |
| (Output_section::clear_section_offsets_need_adjustment): New function. |
| (Output_section::input_sections): Make public. |
| * powerpc.cc (class Output_data_brlt_powerpc): New. |
| (class Stub_table, class Stub_control): New. |
| (Powerpc_relobj::has14_, set_has_14bit_branch, has_14bit_branch, |
| stub_table_, set_stub_table, stub_table): New vectors and accessor |
| functions. |
| (Target_powerpc::do_may_relax, do_relax, push_branch, |
| new_stub_table, stub_tables, brlt_section, group_sections, |
| add_branch_lookup_table, find_branch_lookup_table, |
| write_branch_lookup_table, make_brlt_section): New functions. |
| (Target_powerpc::struct Sort_sections, class Branch_info): New. |
| (Target_powerpc::brlt_section_, stub_tables_, branch_lookup_table_, |
| branch_info_): New vars. |
| (Target_powerpc::make_plt_entry, make_local_ifunc_plt_entry): Don't |
| make call stubs here. |
| (Output_data_glink): Remove all call stub handling from this class. |
| (Target_powerpc::Scan::local, global): Save interesting branch |
| relocs and relocs for ifunc. Adjust calls to plt entry functions. |
| (Target_powerpc::do_finalize_sections): Only make reg save/restore |
| functions on final link. |
| (Target_powerpc::Relocate::relocate): Adjust lookup of call stubs. |
| Handle long branch destinations too. |
| (Target_powerpc::do_dynsym_value, do_plt_address_for_global, |
| do_plt_address_for_local): Adjust lookup of plt call stubs. |
| |
| 2012-11-30 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.c (Target_powerpc::Scan::global): Don't emit relative |
| relocs against protected symbols when building 32-bit shared libs. |
| |
| 2012-11-30 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Target_powerpc::make_plt_section): Add symtab |
| param. Call got_section() to make .got. Update all callers |
| and their callers and so on. |
| |
| 2012-11-30 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Powerpc_relobj::do_scan_relocs): Make STB_LOCAL |
| _GLOBAL_OFFSET_TABLE_ rather than STB_WEAK. |
| (Output_data_got_powerpc::make_header): Update _GLOBAL_OFFSET_TABLE_ |
| value if it already exists. |
| |
| 2012-11-19 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR gold/14858 |
| * x86_64.cc (Relocate::tls_ld_to_le): Support x32. |
| |
| 2012-11-14 Roland McGrath <mcgrathr@google.com> |
| |
| * arm.cc (Output_data_plt_arm_nacl::first_plt_entry): Use bic rather |
| than bfc instruction for data sandboxing. |
| |
| 2012-11-08 Alan Modra <amodra@gmail.com> |
| |
| * po/POTFILES.in: Regenerate. |
| |
| 2012-11-05 Alan Modra <amodra@gmail.com> |
| |
| * configure.ac: Apply 2012-09-10 change to config.in here. |
| * configure: Regenerate. |
| |
| 2012-11-05 Alan Modra <amodra@gmail.com> |
| |
| * powerpc.cc (Powerpc_relobj): Delete "Offset" typedef. |
| (struct Opd_ent): Use "Address" rather than "Offset". |
| (Output_data_got_powerpc::got_base_offset): Return Valtype. |
| (Target_powerpc::got_section): Make public. |
| (Target_powerpc::scan_relocs): Move code setting symbols.. |
| (Powerpc_relobj::do_scan_relocs): ..to here, new function. |
| Create _SDA_BASE_ only when referenced. |
| |
| 2012-11-02 Roland McGrath <mcgrathr@google.com> |
| |
| * i386.cc (Target_i386::relocate_relocs): Remove extraneous typename |
| from last change. |
| |
| 2012-11-01 Roland McGrath <mcgrathr@google.com> |
| |
| * target.h (Sized_target::relocate_relocs): Use Elf_Off |
| for offset_in_output_section parameter. |
| (Sized_target::relocate_special_relocatable): Likewise. |
| * arm.cc (Target_arm::relocate_relocs): Likewise. |
| (Target_arm::relocate_special_relocatable): Likewise. |
| * i386.cc (Target_i386::relocate_relocs): Likewise. |
| * powerpc.cc (Target_powerpc::relocate_relocs): Likewise. |
| * sparc.cc (Target_sparc::relocate_relocs): Likewise. |
| * target-reloc.h (relocate_relocs): Likewise. |
| * testsuite/testfile.cc (Target_test): Likewise. |
| * tilegx.cc (Target_tilegx::relocate_relocs): Likewise. |
| * x86_64.cc (Target_x86_64::relocate_relocs): Likewise. |
| |
| * system.h: Move inclusion of <clocale> to after <libintl.h> in |
| [ENABLE_NLS] section, and separately at top of [!ENABLE_NLS] section. |
| |
| * descriptors.cc (set_close_on_exec): Add ATTRIBUTE_UNUSED to the |
| parameter, which is unused in the [!F_SETFD] case. |
| |
| * dwarf_reader.cc (Sized_elf_reloc_mapper::symbol_section): Cast |
| SYMNDX to off_t before comparing it to this->data_size(). |
| * output.cc (Output_symtab_xindex::endian_do_write): Likewise. |
| * incremental.cc (Output_section_incremental_inputs::do_write): |
| Cast GLOBAL_SYM_COUNT to off_t before comparing it to SYMTAB_SIZE. |
| |
| * nacl.cc: Include "libiberty.h" for vasprintf declaration. |
| |
| 2012-10-30 Steve McIntyre <steve.mcintyre@linaro.org> |
| |
| * gold.cc (Target_arm::do_adjust_elf_header): Add the |
| hard-float/soft-float ABI flag as appropriate for ET_DYN/ET_EXEC |
| in EABI_VER5. |
| |
| 2012-10-29 Cary Coutant <ccoutant@google.com> |
| |
| * dwp.cc (usage): Add file and exit status parameters; |
| add --help and --version options. |
| (print_version): New function. |
| (main): Add --help and --version options. |
| |
| 2012-10-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * testsuite/Makefile.am (MOSTLYCLEANFILES): Add |
| final_layout_sequence.txt. |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2012-10-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * testsuite/Makefile.am (COMPILE1): New variable. Renamed from |
| COMPILE generated by automake. |
| (LINK1): Likewise. |
| (CXXCOMPILE1): Likewise. |
| (CXXLINK1): Likewise. |
| (COMPILE): Strip out -Wp,-D_FORTIFY_SOURCE= from COMPILE1. |
| (LINK): Likewise. |
| (CXXCOMPILE): Likewise. |
| (CXXLINK): Likewise. |
| * testsuite/Makefile.in: Regenerated. |
| |
| 2012-10-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * dwp.cc (Dwo_file::record_target_info): Issue a fatal error |
| on bad fwrite return. |
| |
| 2012-10-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * dwp.cc (Dwo_file::remap_str_offset): Use section_offset_type |
| on val. |
| |
| 2012-10-23 Cary Coutant <ccoutant@google.com> |
| |
| * testsuite/Makefile.am (TEST_OBJCOPY): New macro. |
| * testsuite/Makefile.in: Regenerate. |
| * testsuite/dwp_test.h: New source file. |
| * testsuite/dwp_test_1.cc: New source file. |
| * testsuite/dwp_test_1.s: New source file. |
| * testsuite/dwp_test_1.sh: New source file. |
| * testsuite/dwp_test_1b.cc: New source file. |
| * testsuite/dwp_test_1b.s: New source file. |
| * testsuite/dwp_test_2.cc: New source file. |
| * testsuite/dwp_test_2.s: New source file. |
| * testsuite/dwp_test_2.sh: New source file. |
| * testsuite/dwp_test_main.cc: New source file. |
| * testsuite/dwp_test_main.s: New source file. |
| |
| 2012-10-23 Cary Coutant <ccoutant@google.com> |
| |
| * dwp.h: New header file. |
| * dwp.cc: New source file. |
| * gold.h: Move shared declarations to system.h. |
| * system.h: New header file. |
| * Makefile.am: Add dwp. |
| * Makefile.in: Regenerate. |
| |
| 2012-10-23 Cary Coutant <ccoutant@google.com> |
| |
| * dwarf_reader.cc (Dwarf_ranges_table::read_range_list): Call |
| Dwarf_info_reader::read_from_pointer. |
| (Dwarf_pubnames_table::read_header): Likewise. |
| (Dwarf_pubnames_table::next_name): Likewise. |
|