bdab445c82
I was lazy when adding indx_ to Plt_stub_ent. The field isn't part of the key, so ought to be part of the mapped type. Make it so. * powerpc.cc (Plt_stub_key): Rename from Plt_stub_ent. Remove indx_. (Plt_stub_key_hash): Rename from Plt_stub_ent_hash. (struct Plt_stub_ent): New. (Plt_stub_entries): Map from Plt_stub_key to Plt_stub_ent. Adjust use throughout file.
344 lines
12 KiB
Plaintext
344 lines
12 KiB
Plaintext
2017-06-21 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (Plt_stub_key): Rename from Plt_stub_ent. Remove indx_.
|
||
(Plt_stub_key_hash): Rename from Plt_stub_ent_hash.
|
||
(struct Plt_stub_ent): New.
|
||
(Plt_stub_entries): Map from Plt_stub_key to Plt_stub_ent. Adjust
|
||
use throughout file.
|
||
|
||
2017-06-20 Eric Christopher <echristo@gmail.com>
|
||
|
||
* aarch64.cc (scan_reloc_for_stub): Use plt_address_for_global to
|
||
calculate the symbol value.
|
||
(scan_reloc_section_for_stubs): Allow stubs to be created for
|
||
section symbols.
|
||
(maybe_apply_stub): Handle creating stubs for weak symbols to
|
||
match the code in scan_reloc_for_stub.
|
||
|
||
2017-06-20 James Clarke <jrtc27@jrtc27.com>
|
||
|
||
* powerpc.cc (Stub_table::define_stub_syms): Always include object's
|
||
uniq_ value.
|
||
|
||
2017-06-15 Eric Christopher <echristo@gmail.com>
|
||
|
||
* aarch64.cc: Fix a few typos and grammar-os.
|
||
|
||
2017-06-15 Jiong Wang <jiong.wang@arm.com>
|
||
|
||
* aarch64.cc (Insn_utilities::is_mrs_tpidr_el0): New method.
|
||
(AArch64_relobj<size, big_endian>::try_fix_erratum_843419_optimized):
|
||
Return ture for some TLS relaxed sequences.
|
||
|
||
2017-06-07 Eric Christopher <echristo@gmail.com>
|
||
|
||
* aarch64.cc (maybe_apply_stub): Add debug logging for looking
|
||
up stubs to undefined symbols and early return rather than
|
||
fail to look them up.
|
||
(scan_reloc_for_stub): Add debug logging for no stub creation
|
||
for undefined symbols.
|
||
|
||
2017-05-23 Alan Modra <amodra@gmail.com>
|
||
|
||
PR 21503
|
||
* options.h: Add --emit-stub-syms option.
|
||
* powerpc.cc (object_id): New.
|
||
(Powerpc_relobj): Add uniq_ and accessor. Sort variables for
|
||
better packing.
|
||
(Powerpc_dynobj): Sort variables for better packing.
|
||
(Target_powerpc::define_local): New function.
|
||
(Target_powerpc::group_sections): Pass stub table size to
|
||
Stub_table constructor.
|
||
(Target_powerpc::do_relax): Define stub and glink symbols.
|
||
(Stub_table): Add uniq_ variable, and id param to constructor.
|
||
(Stub_table::Plt_stub_ent): Add indx_ variable.
|
||
(Stub_table::Branch_stub_entries): Move typedef earlier.
|
||
(Stub_table::branch_stub_size): Replace "to" parameter with a
|
||
Branch_stub_entries iterator.
|
||
(Stub_table::add_long_branch_entry): Adjust to suit.
|
||
(Stub_table::add_plt_call_entry): Set indx_.
|
||
(Stub_table::define_stub_syms): New function.
|
||
|
||
2017-05-15 Eric Christopher <echristo@gmail.com>
|
||
|
||
* layout.cc (Layout::segment_precedes): Add a case for testing
|
||
pointer equality when determining which segment precedes
|
||
another.
|
||
|
||
2017-05-13 James Clarke <jrtc27@jrtc27.com>
|
||
|
||
PR gold/21444
|
||
* gold.cc (Target_sparc::Relocate::relocate_tls): Local
|
||
variables are final for position-independent executables. This
|
||
has to be consistent with Target_sparc::Scan::local otherwise
|
||
they will disagree as to whether local-exec is used.
|
||
|
||
2017-05-12 Igor Kudrin <ikudrin@accesssoftek.com>
|
||
|
||
PR gold/21430
|
||
* aarch64.cc
|
||
(AArch64_relobj::convert_input_section_to_relaxed_section):
|
||
Set the section offset to -1ULL.
|
||
(Target_aarch64::relocate_section): Adjust the view in case
|
||
of a relaxed input section.
|
||
* testsuite/Makefile.am (pr21430): New test.
|
||
* testsuite/Makefile.in: Regenerate
|
||
* testsuite/pr21430.s: New test source file.
|
||
* testsuite/pr21430.sh: New test script.
|
||
|
||
2017-04-27 Alan Modra <amodra@gmail.com>
|
||
|
||
* testsuite/plugin_section_order.c (onload): Add missing break.
|
||
|
||
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
* mips.cc (Mips_got_entry::hash()): Shift addend to reduce
|
||
possibility of collisions.
|
||
(Mips_got_entry::equals): Fix case for GOT_TLS_LDM
|
||
entries.
|
||
|
||
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
* mips.cc (Mips_relobj::merge_processor_specific_data_): New data
|
||
member.
|
||
(Mips_relobj::merge_processor_specific_data): New method.
|
||
(Mips_relobj::do_read_symbols): Set merge_processor_specific_data_
|
||
to false, only if the input file is a binary or if object has no
|
||
contents except the section name string table and an empty symbol
|
||
table with the undefined symbol.
|
||
(Target_mips::do_finalize_sections): Refactor. Skip empty object files
|
||
for merging processor-specific data.
|
||
|
||
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
* mips.cc (Target_mips::Relocate::calculated_value_): New data
|
||
member.
|
||
(Target_mips::Relocate::calculate_only_): Likewise.
|
||
(Target_mips::Relocate::relocate): Handle multiple consecutive
|
||
relocations with the same offset.
|
||
|
||
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
* mips.cc (Target_mips::Relocate::relocate): Remove redundant
|
||
checks for relocatable link.
|
||
(Mips_relocate_functions::reljalr): Likewise.
|
||
|
||
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
* mips.cc (class Mips_output_section_options): New class.
|
||
(Target_mips::do_make_output_section): New method.
|
||
|
||
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
* mips.cc (Mips_relocate_functions::rel26): Don't print relocation
|
||
overflow error message.
|
||
(Target_mips::relocate_special_relocatable): Improve relocation
|
||
overflow error message.
|
||
(Target_mips::Relocate::relocate): Likewise.
|
||
|
||
2017-03-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
* mips.cc (symbol_refs_local): Return false if a symbol
|
||
is from a dynamic object.
|
||
(Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN.
|
||
(Target_mips::set_gp): Refactor. Make _gp STT_NOTYPE and
|
||
STB_LOCAL.
|
||
(Target_mips::do_finalize_sections): Set _gp after all the checks
|
||
for creating .got are done.
|
||
(Target_mips::Scan::global): Remove unused code.
|
||
|
||
2017-02-22 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (Target_powerpc::make_iplt_section): Check that
|
||
output_section exists before attempting add_output_section_data.
|
||
(Target_powerpc::make_brlt_section): Likewise.
|
||
|
||
2017-02-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
* mips.cc (Target_mips::Scan::get_reference_flags): Remove
|
||
gold_unreachable from default case.
|
||
|
||
2017-02-15 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
PR gold/21111
|
||
* mips.cc (Mips_relocate_functions::relhigher): New method.
|
||
(Mips_relocate_functions::relhighest): Likewise.
|
||
(mips_get_size_for_reloc): Add support for relocs: R_MIPS_HIGHER and
|
||
R_MIPS_HIGHEST.
|
||
(Target_mips::Scan::local): Add support for relocs: R_MIPS_HIGHER,
|
||
R_MIPS_HIGHEST, R_MICROMIPS_HIGHER and R_MICROMIPS_HIGHEST.
|
||
(Target_mips::Scan::global): Likewise.
|
||
(Target_mips::Scan::get_reference_flags): Likewise.
|
||
(Target_mips::Relocate::relocate): Call static methods for resolving
|
||
HIGHER and HIGHEST relocations.
|
||
|
||
2017-02-03 Rahul Chaudhry <rahulchaudhry@google.com>
|
||
|
||
* x86_64.cc (Target_x86_64::do_can_check_for_function_pointers):
|
||
Return true even when building pie binaries.
|
||
(Target_x86_64::possible_function_pointer_reloc): Check opcode
|
||
for R_X86_64_PC32 relocations.
|
||
(Target_x86_64::local_reloc_may_be_function_pointer): Pass
|
||
extra arguments to local_reloc_may_be_function_pointer.
|
||
(Target_x86_64::global_reloc_may_be_function_pointer): Likewise.
|
||
* gc.h (gc_process_relocs): Add check for STT_FUNC.
|
||
* testsuite/Makefile.am (icf_safe_pie_test): New test case.
|
||
* testsuite/Makefile.in: Regenerate.
|
||
* testsuite/icf_safe_pie_test.sh: New shell script.
|
||
|
||
2017-02-03 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (Powerpc_relobj::make_toc_relative): Don't crash
|
||
when no .toc section exists.
|
||
|
||
2017-01-31 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
PR gold/21090
|
||
* x86_64.cc (Target_x86_64::can_convert_mov_to_lea): Add check
|
||
for predefined symbol.
|
||
(Target_x86_64::Relocate::relocate): Fix formatting.
|
||
|
||
2017-01-23 Rahul Chaudhry <rahulchaudhry@google.com>
|
||
|
||
* testsuite/icf_safe_so_test.sh: Use "set -e".
|
||
* testsuite/icf_safe_test.sh: Likewise.
|
||
* testsuite/icf_test.sh: Likewise.
|
||
|
||
2017-01-23 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
* mips.cc (Mips_output_data_plt::rel_plt): Remove const from return
|
||
type.
|
||
(Target_mips::make_plt_entry): Make the sh_info field of .rel.plt
|
||
point to .plt.
|
||
|
||
2017-01-23 Vladimir Radosavljevic <Vladimir.Radosavljevic@imgtec.com>
|
||
|
||
PR gold/21054
|
||
* mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol
|
||
to the dynamic symbol table if it is forced to local visibility.
|
||
(Target_mips::do_finalize_sections): Don't add __RLD_MAP symbol to the
|
||
dynamic symbol table if it is forced to local visibility.
|
||
|
||
2017-01-20 Nick Clifton <nickc@redhat.com>
|
||
|
||
* aarch64.cc (Stub_template_repertoire): Change ST_E_835769_INSNS
|
||
from a pointer to an array.
|
||
|
||
2017-01-13 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR gold/21040
|
||
* powerpc.cc (Powerpc_relobj<size, big_endian>::make_toc_relative):
|
||
Cast 0x80008000 to uint64_t.
|
||
|
||
2017-01-12 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
* object.cc (Sized_relobj_file): Fix byte counts for calls to memmem.
|
||
|
||
2017-01-11 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
PR gold/21040
|
||
* x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry):
|
||
Remove unnecessary 'typename' keyword.
|
||
(Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise.
|
||
(Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise.
|
||
(Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise.
|
||
(Output_data_plt_x86_64_bnd::do_write): Likewise.
|
||
|
||
2017-01-11 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
PR gold/21040
|
||
* x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry):
|
||
Remove unnecessary 'typename' keyword.
|
||
(Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise.
|
||
(Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise.
|
||
(Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise.
|
||
* testsuite/copy_test_relro_1.cc (p, b, c, q): Add separate extern
|
||
declarations.
|
||
|
||
2017-01-11 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
PR gold/21039
|
||
* testsuite/script_test_13.sh: Adjust patterns to work for i386.
|
||
* testsuite/script_test_15a.sh: Likewise.
|
||
* testsuite/script_test_15b.sh: Likewise.
|
||
* testsuite/script_test_15c.sh: Likewise.
|
||
|
||
2017-01-11 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (class Powerpc_copy_relocs): New.
|
||
(Powerpc_copy_relocs::emit): New function.
|
||
(Powerpc_relobj::relatoc_, toc_, no_toc_opt_): New variables.
|
||
(Powerpc_relobj::toc_shndx, set_no_toc_opt, no_toc_opt): New inlines.
|
||
(Powerpc_relobj::do_relocate_sections): New function.
|
||
(Powerpc_relobj::make_toc_relative): Likewise.
|
||
(Powerpc_relobj::do_find_special_sections): Stash away .rela.toc
|
||
and .toc too.
|
||
(ok_lo_toc_insn): Move earlier, and handle more insns.
|
||
(Target_powerpc::Scan::local): If optimizing toc accesses, set
|
||
no_toc_opt for entries we can't edit. Check insn validity.
|
||
Emit "toc optimization is not supported" warning, downgraded
|
||
from error.
|
||
(Target_powerpc::Scan::global): Likewise.
|
||
(Target_powerpc::Relocate::relocate): Edit TOC indirect code
|
||
to TOC relative. Don't emit "toc optimization is not supported"
|
||
error here.
|
||
|
||
2017-01-10 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
* aarch64.cc (AArch64_relobj::do_relocate_sections): Call
|
||
Sized_relobj_file::relocate_section_range().
|
||
* arm.cc (Arm_relobj::do_relocate_sections): Likewise.
|
||
* object.h (Sized_relobj_file::relocate_section_range): New method.
|
||
* reloc.cc (Sized_relobj_file::do_relocate_sections): Move
|
||
implementation...
|
||
(Sized_relobj_file::relocate_section_range): ...to new method.
|
||
|
||
2017-01-10 Alan Modra <amodra@gmail.com>
|
||
|
||
* testsuite/ver_test_8.sh: Accept .TOC. in lieu of
|
||
_GLOBAL_OFFSET_TABLE_. Allow zero count.
|
||
* testsuite/copy_test_relro_1.cc (c, q): New vars.
|
||
* testsuite/copy_test_relro.cc: Rewrite to test read-only
|
||
status of variables directly. Reference new vars in
|
||
read-only data.
|
||
|
||
2017-01-10 Alan Modra <amodra@gmail.com>
|
||
|
||
* options.h: Add --secure-plt option.
|
||
* powerpc.cc (Target_powerpc::Scan::local): Detect and error
|
||
on -fPIC -mbss-plt code.
|
||
(Target_powerpc::Scan::global): Likewise.
|
||
|
||
2017-01-09 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (Target_powerpc::make_plt_section): Point sh_info of
|
||
".rela.plt" at ".plt".
|
||
|
||
2017-01-07 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc: Use shorter equivalent elfcpp typedef for
|
||
Reltype and reloc_size throughout.
|
||
(Target_powerpc::symval_for_branch): Exclude dynamic symbols.
|
||
(Target_powerpc::Scan::local): Use local var r_sym.
|
||
(Target_powerpc::Scan::global: Likewise.
|
||
(Target_powerpc::Relocate::relocate): Delete shadowing r_sym.
|
||
|
||
2017-01-02 Alan Modra <amodra@gmail.com>
|
||
|
||
Update year range in copyright notice of all files.
|
||
|
||
For older changes see ChangeLog-2016
|
||
|
||
Copyright (C) 2017 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
End:
|