mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
fa40fbe484
Calling non-pcrel functions from pcrel code requires a stub to set up r2. Gold created the stub, but an "optimisation" made the stub jump to the function local entry, ie. r2 was not initialised. This patch fixes that long branch stub problem, and another that might occur for plt call stubs to local functions. bfd/ * elf64-ppc.c (write_plt_relocs_for_local_syms): Don't do local entry offset optimisation. gold/ * powerpc.cc (Powerpc_relobj::do_relocate_sections): Don't do local entry offset optimisation for lplt_section. (Target_powerpc::Branch_info::make_stub): Don't add local entry offset to long branch dest passed to add_long_branch_entry. Do pass st_other bits. (Stub_table::Branch_stub_ent): Add "other_" field. (Stub_table::add_long_branch_entry): Add "other" param, and save. (Stub_table::branch_stub_size): Adjust long branch offset. (Stub_table::do_write): Likewise. (Target_powerpc::Relocate::relocate): Likewise.
316 lines
10 KiB
Plaintext
316 lines
10 KiB
Plaintext
2020-10-09 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (Powerpc_relobj::do_relocate_sections): Don't do
|
||
local entry offset optimisation for lplt_section.
|
||
(Target_powerpc::Branch_info::make_stub): Don't add local
|
||
entry offset to long branch dest passed to
|
||
add_long_branch_entry. Do pass st_other bits.
|
||
(Stub_table::Branch_stub_ent): Add "other_" field.
|
||
(Stub_table::add_long_branch_entry): Add "other" param, and
|
||
save.
|
||
(Stub_table::branch_stub_size): Adjust long branch offset.
|
||
(Stub_table::do_write): Likewise.
|
||
(Target_powerpc::Relocate::relocate): Likewise.
|
||
|
||
2020-10-09 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (is_got_reloc): New function.
|
||
(Target_powerpc::Relocate::relocate): Use it here, exclude GOT
|
||
relocs when looking for stubs.
|
||
|
||
2020-10-08 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* testsuite/split_i386.sh: Updated for --split-stack-adjust-size
|
||
default change.
|
||
* testsuite/split_x86_64.sh: Likewise.
|
||
|
||
2020-10-08 Alan Modra <amodra@gmail.com>
|
||
|
||
* options.h (split_stack_adjust_size): Default to 0x100000.
|
||
|
||
2020-09-26 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (Target_powerpc): Rename power10_stubs_ to
|
||
power10_relocs_.
|
||
(Target_powerpc::set_power10_relocs): New accessor.
|
||
(Target_powerpc::set_power10_stubs): Delete.
|
||
(Target_powerpc::power10_stubs): Adjust.
|
||
(Target_powerpc::has_localentry0): New accessor.
|
||
(ld_0_11): New constant.
|
||
(glink_eh_frame_fde_64v1, glink_eh_frame_fde_64v2): Adjust.
|
||
(glink_eh_frame_fde_64v2_localentry0): New.
|
||
(Output_data_glink::pltresolve_size): Update.
|
||
(Output_data_glink::add_eh_frame): Use localentry0 version eh_frame.
|
||
(Output_data_glink::do_write): Move r2 save to start of ELFv2 stub
|
||
and only emit for has_localentry0. Don't use r2 in the stub.
|
||
(Target_powerpc::Scan::local, global): Adjust for
|
||
set_power10_relocs renaming.
|
||
(Target_powerpc::scan_relocs): Warn and reset plt_localentry0_.
|
||
|
||
2020-09-24 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (Target_powerpc::Relocate::relocate): Don't skip
|
||
first insn of __tls_get_addr_opt stub.
|
||
|
||
2020-08-24 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (Target_powerpc): Add tprel_opt_ and accessors.
|
||
(Target_powerpc::Scan::local): Sanity check tprel high relocs.
|
||
(Target_powerpc::Scan::global): Likewise.
|
||
(Target_powerpc::Relocate::relocate): Control tprel optimisation
|
||
with tprel_opt_ and enable for 32-bit.
|
||
|
||
2020-08-12 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/sr.po: Updated Serbian translation.
|
||
|
||
2020-07-27 Alan Modra <amodra@gmail.com>
|
||
|
||
* options.h (DEFINE_enum): Add optional_arg__ param, adjust
|
||
all uses.
|
||
(General_options): Add --power10-stubs and --no-power10-stubs.
|
||
* options.cc (General_options::parse_no_power10_stubs): New.
|
||
(General_options::finalize): Handle --power10-stubs.
|
||
* powerpc.cc (set_power10_stubs): Don't set when --power10-stubs=no.
|
||
(power10_stubs_auto): New.
|
||
(struct Plt_stub_ent): Add toc_ and tocoff_. Don't use a bitfield
|
||
for indx_.
|
||
(struct Branch_stub_ent): Add toc_and tocoff_. Use bitfields for
|
||
iter_, notoc_ and save_res_.
|
||
(add_plt_call_entry): Set toc_. Adjust resizing conditions for
|
||
--power10-stubs=auto.
|
||
(add_long_branch_entry): Set toc_.
|
||
(add_eh_frame, define_stub_syms): No longer use const_iterators
|
||
for plt and long branch stub iteration.
|
||
(build_tls_opt_head, build_tls_opt_tail): Change parameters and
|
||
return value. Move tests for __tls_get_addr to callers.
|
||
(plt_call_size): Handle --power10-stubs=auto.
|
||
(branch_stub_size): Likewise.
|
||
(Stub_table::do_write): Likewise.
|
||
(relocate): Likewise.
|
||
|
||
2020-07-19 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* testsuite/bnd_ifunc_1.sh: Updated.
|
||
* testsuite/bnd_plt_1.sh: Likewise.
|
||
* testsuite/split_x32.sh: Likewise.
|
||
* testsuite/split_x86_64.sh: Likewise.
|
||
* testsuite/x86_64_indirect_call_to_direct.sh: Likewise.
|
||
|
||
2020-07-08 Nick Clifton <nickc@redhat.com>
|
||
|
||
* testsuite/script_test_7.sh: Adjust expected address of the .bss
|
||
section.
|
||
* testsuite/script_test_9.sh: Do not expect the .init section to
|
||
immediately follow the .text section in the mapping of sections to
|
||
segments.
|
||
|
||
2020-07-07 Nick Clifton <nickc@redhat.com>
|
||
|
||
* target-reloc.h: (Default_comdat_behaviour:get): Ignore discarded
|
||
relocs that refer to the .gnu.build.attributes section.
|
||
|
||
2020-07-06 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/fr.po: Updated French translation.
|
||
* po/uk.po: Updated Ukranian translation.
|
||
|
||
2020-07-04 Nick Clifton <nickc@redhat.com>
|
||
|
||
Binutils 2.35 branch created.
|
||
|
||
2020-07-03 Alan Modra <amodra@gmail.com>
|
||
|
||
PR 26028
|
||
* testsuite/Makefile.am (file_in_many_sections.stdout): Add -W
|
||
to readelf options.
|
||
* testsuite/Makefile.in: Regenerate.
|
||
|
||
2020-06-26 Nick Alcock <nick.alcock@oracle.com>
|
||
|
||
* configure.ac: Check for bswap_16, bswap_32, and bswap_64 decls.
|
||
* configure: Regenerated.
|
||
* config.h.in: Likewise.
|
||
|
||
2020-06-24 Nick Clifton <nickc@redhat.com>
|
||
|
||
* target-reloc.h (issue_discarded_error): Initialise the
|
||
key_symndx variable.
|
||
|
||
2020-06-23 Roland McGrath <mcgrathr@google.com>
|
||
|
||
PR 22843
|
||
* options.h (class General_options): Add --dependency-file option.
|
||
* fileread.cc (File_read::files_read): New static variable.
|
||
(File_read::open): Add the file to the files_read list.
|
||
(File_read::record_file_read): New static member function.
|
||
(File_read::write_dependency_file): New static member function.
|
||
* fileread.h (class File_read): Declare them.
|
||
* layout.cc (Layout::read_layout_from_file): Call record_file_read.
|
||
(Close_task_runner::run): Call write_dependency_file if
|
||
--dependency-file was passed.
|
||
|
||
2020-06-18 Fangrui Song <i@maskray.me>
|
||
|
||
PR gold/26039
|
||
* layout.cc (Layout::finish_dynamic_section): Set DF_1_PIE.
|
||
|
||
2020-06-16 Alan Modra <amodra@gmail.com>
|
||
|
||
* testsuite/discard_locals_test.c: Replace uses of asm with __asm__.
|
||
* testsuite/discard_locals_relocatable_test.c: Likewise.
|
||
|
||
2020-06-16 Alan Modra <amodra@gmail.com>
|
||
|
||
* testsuite/Makefile.am (export_dynamic_plugin.o): Use CXXCOMPILE.
|
||
(plugin_test_wrap_symbols_1.o): Likewise.
|
||
(plugin_test_wrap_symbols_2.o): Likewise.
|
||
* testsuite/Makefile.in: Regenerate.
|
||
|
||
2020-06-15 Roland McGrath <mcgrathr@google.com>
|
||
|
||
Implement -z start-stop-visibility=... option.
|
||
* options.h (class General_options): Handle -z start-stop-visibility=.
|
||
(General_options::start_stop_visibility_enum): New public method.
|
||
(General_options::set_start_stop_visibility_enum): New private method.
|
||
(General_options::start_stop_visibility_enum_): New private member.
|
||
* options.cc (General_options::General_options): Add initializer.
|
||
(General_options::finalize): Set this->start_stop_visibility_enum_
|
||
from string value.
|
||
* layout.cc (Layout::define_section_symbols): Use option setting.
|
||
|
||
2020-06-06 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc: Update throughout for reloc renaming.
|
||
|
||
2020-05-22 Alan Modra <amodra@gmail.com>
|
||
|
||
PR 25882
|
||
* powerpc.cc (merge_object_attributes): Replace name param with
|
||
obj param. Update callers. Don't init FP attributes from shared
|
||
libraries, and do not emit an error if they don't match.
|
||
|
||
2020-05-15 Nikita Ermakov <coffe92@gmail.com>
|
||
|
||
* powerpc.cc (do_gc_mark_symbol): Don't segfault on plugin symbols.
|
||
|
||
2020-05-14 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/sr.po: New Serbian translation.
|
||
|
||
2020-05-11 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc: Rename powerxx to power10 throughout.
|
||
|
||
2020-05-02 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR gold/25904
|
||
* testsuite/Makefile.am (COMMON_TEST_C_CFLAGS): New.
|
||
(common_test_1.o): New rule.
|
||
(common_test_2.o): Likewise.
|
||
(common_test_3.o): Likewise.
|
||
(plugin_common_test_1.o): Likewise.
|
||
(plugin_common_test_2.o): Likewise.
|
||
(common_test_1_v1.o): Likewise.
|
||
(common_test_1_v2.o): Likewise.
|
||
(common_test_2_pic.o): Compile with $(COMMON_TEST_C_CFLAGS).
|
||
(common_test_3_pic.o): Likewise.
|
||
* testsuite/Makefile.in: Regenerated.
|
||
|
||
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR gold/25426
|
||
* x86_64.cc (Target_x86_64<size>::Relocate::tls_desc_gd_to_ie):
|
||
For x32, relax "rex leal foo@tlsdesc(%rip), %reg" to
|
||
"rex movl foo@gottpoff(%rip), %eax" and relax ""call *(%eax)"
|
||
to "nopl (%rax)".
|
||
(Target_x86_64<size>::Relocate::tls_desc_gd_to_le): For x32,
|
||
relax "rex leal foo@tlsdesc(%rip), %reg" to
|
||
"rex movl foo@tpoff, %eax" and relax "call *foo@tlscall(%eax)"
|
||
to "nopl (%rax)".
|
||
* testsuite/Makefile.am (tls_test_gnu2.o): Depend on
|
||
gcctestdir/as.
|
||
(tls_test_file2_gnu2.o): Likewise.
|
||
(tls_test_c_gnu2.o): Likewise.
|
||
* testsuite/Makefile.in: Regenerated.
|
||
|
||
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR gold/25473
|
||
* x86_64.cc (Target_x86_64<size>::Relocate::tls_desc_gd_to_ie):
|
||
Properly check r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
|
||
(Target_x86_64<size>::Relocate::tls_desc_gd_to_le): Properly
|
||
relax r8 - r15 in "lea foo@TLSDESC(%rip), %reg".
|
||
* testsuite/Makefile.am (check_SCRIPTS): Add x86_64_gd_to_le.sh.
|
||
(check_DATA): Add x86_64_gd_to_le.stdout.
|
||
(MOSTLYCLEANFILES): Add x86_64_gd_to_le.
|
||
(x86_64_gd_to_le.o): New target.
|
||
(x86_64_gd_to_le): Likewise.
|
||
(x86_64_gd_to_le.stdout): Likewise.
|
||
* testsuite/Makefile.in: Regenerated.
|
||
* testsuite/x86_64_gd_to_le.s: New file.
|
||
* testsuite/x86_64_gd_to_le.sh: Likewise.
|
||
|
||
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* testsuite/odr_violation2.cc (Ordering::operator()): Make
|
||
expression even more complex.
|
||
|
||
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* testsuite/ver_test_pr16504.sh: Updated.
|
||
|
||
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR gold/25872
|
||
* x86_64.cc (Output_data_plt_x86_64_bnd::do_write): Increment
|
||
plt_offset after setting the reserved TLSDESC PLT entry.
|
||
(Output_data_plt_x86_64_ibt<size>::do_write): Likewise.
|
||
|
||
2020-05-01 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR gold/25872
|
||
* x86_64.cc (Output_data_plt_x86_64_bnd::do_address_for_local):
|
||
Handle local IFUNC symbol.
|
||
(Output_data_plt_x86_64_ibt::do_address_for_local): Likewise.
|
||
|
||
2020-03-19 Fangrui Song <maskray@google.com>
|
||
|
||
* options.h (General_options): Add --no-rosegment option.
|
||
|
||
2020-02-24 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/fr.po: Update French translation.
|
||
|
||
2020-01-20 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/uk.po: Updated Ukranian translation.
|
||
|
||
2020-01-18 Nick Clifton <nickc@redhat.com>
|
||
|
||
* configure: Regenerate.
|
||
* po/gold.pot: Regenerate.
|
||
|
||
2020-01-18 Nick Clifton <nickc@redhat.com>
|
||
|
||
Binutils 2.34 branch created.
|
||
|
||
2020-01-01 Alan Modra <amodra@gmail.com>
|
||
|
||
Update year range in copyright notice of all files.
|
||
|
||
For older changes see ChangeLog-2019
|
||
|
||
Copyright (C) 2020 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:
|