Asking for ppc32 plt call stubs to be aligned at 32 byte boundaries didn't quite work. For ld.bfd they were spaced 32 bytes apart, but only started on a 16 byte boundary. ld.gold also didn't get it right. Finding that bug made me check over the ppc64 plt stub alignment, where I found that negative values for alignment (meaning align to minimize boundary crossing) were not accepted. Since no one has complained about that, I guess I could have removed the feature from ld.bfd documentation, but I've opted instead to correct the code. I've also added an optional alignment paramenter for ppc32 --plt-align, for some consistency with gold and ppc64 ld.bfd. bfd/ * elf32-ppc.c (ppc_elf_create_glink): Correct alignment of .glink. * elf64-ppc.c (ppc64_elf_size_stubs): Handle negative plt_stub_align. (ppc64_elf_build_stubs): Likewise. gold/ * powerpc.cc (param_plt_align): New function supplying default --plt-align values. Use it.. (Stub_table::plt_call_align): ..here, and.. (Output_data_glink::global_entry_align): ..here. (Stub_table::stub_align): Correct 32-bit minimum alignment. ld/ * emultempl/ppc32elf.em: Support optional --plt-align arg. * emultempl/ppc64elf.em: Support negative --plt-align arg.
80 lines
2.5 KiB
Plaintext
80 lines
2.5 KiB
Plaintext
2018-01-18 Alan Modra <amodra@gmail.com>
|
||
|
||
* powerpc.cc (param_plt_align): New function supplying default
|
||
--plt-align values. Use it..
|
||
(Stub_table::plt_call_align): ..here, and..
|
||
(Output_data_glink::global_entry_align): ..here.
|
||
(Stub_table::stub_align): Correct 32-bit minimum alignment.
|
||
|
||
2018-01-17 Alan Modra <amodra@gmail.com>
|
||
|
||
* options.h (speculate_indirect_jumps): New option.
|
||
* powerpc.cc (beqctrm, beqctrlm, crseteq): New insn constants.
|
||
(output_bctr): New function.
|
||
(Stub_table::plt_call_size): Add space for speculation barrier.
|
||
(Stub_table::branch_stub_size): Likewise.
|
||
(Output_data_glink::pltresolve_size): Likewise.
|
||
(Stub_table::do_write): Output speculation barriers.
|
||
|
||
2018-01-17 Alan Modra <amodra@gmail.com>
|
||
|
||
* options.h (plt_align): Support for PowerPC32 too.
|
||
* powerpc.cc (Stub_table::stub_align): Heed --plt-align for 32-bit.
|
||
(Stub_table::plt_call_size, branch_stub_size): Tidy.
|
||
(Stub_table::plt_call_align): Implement using stub_align.
|
||
(Output_data_glink::global_entry_align): New function.
|
||
(Output_data_glink::global_entry_off): New function.
|
||
(Output_data_glink::global_entry_address): Use global_entry_off.
|
||
(Output_data_glink::pltresolve_size): New function, replacing
|
||
pltresolve_size_ constant. Update all uses.
|
||
(Output_data_glink::add_global_entry): Align offset.
|
||
(Output_data_glink::set_final_data_size): Use global_entry_align.
|
||
(Stub_table::do_write): Don't pad __glink_PLTrelsolve with nops.
|
||
Tidy stub output. Use global_entry_off.
|
||
|
||
2018-01-15 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
PR gold/22694
|
||
* options.h (-fuse-ld): Add correct helparg.
|
||
|
||
2018-01-15 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/uk.po: Updated Ukranian translation.
|
||
|
||
2018-01-13 Nick Clifton <nickc@redhat.com>
|
||
|
||
* po/gold.pot: Regenerated.
|
||
|
||
2018-01-13 Nick Clifton <nickc@redhat.com>
|
||
|
||
2.30 branch created.
|
||
|
||
2018-01-12 Cary Coutant <ccoutant@gmail.com>
|
||
|
||
* NEWS: Add new features in 1.15.
|
||
* version.cc (version_string): Bump to 1.15.
|
||
|
||
2018-01-12 Sterling Augustine <saugustine@google.com>
|
||
|
||
* cref.cc (Cref_inputs::Cref_table_compare::operator): Add
|
||
conditionals and calls to is_forwarder.
|
||
|
||
2018-01-03 Alan Modra <amodra@gmail.com>
|
||
|
||
Update year range in copyright notice of all files.
|
||
|
||
For older changes see ChangeLog-2017
|
||
|
||
Copyright (C) 2018 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:
|