[GOLD] PowerPC relocations for prefix insns
[deliverable/binutils-gdb.git] / gold / ChangeLog
CommitLineData
e4dff765
AM
12019-07-13 Alan Modra <amodra@gmail.com>
2
3 * powerpc.cc (Target_powerpc): Add powerxx_stubs_ and accessor
4 functions.
5 (Target_powerpc::maybe_skip_tls_get_addr_call): Handle PLT_PCREL34
6 and PLT_PCREL34_NOTOC relocs.
7 (Powerpc_relocate_functions): Add addr34, addr34_hi, addr34_ha,
8 addr28, addr16_higher34, addr16_highera34, addr16_highest34,
9 addr16_highest34a functions.
10 (li_11_0, ori_11_11_0, sldi_11_11_34): Define.
11 (paddi_12_pc, pld_12_pc, pnop): Define.
12 (d34, ha34): New inline functions.
13 (Stub_table::add_plt_call_entry): Handle powerxx_stubs.
14 (Stub_table::add_eh_frame): Likewise.
15 (build_powerxx_offset): New function.
16 (Stub_table::plt_call_size): Handle powerxx_stubs.
17 (Stub_table::branch_stub_size): Likewise.
18 (Stub_table::do_write): Likewise.
19 (Target_powerpc::Scan::get_reference_flags): Handle new relocs.
20 (Target_powerpc::Scan::reloc_needs_plt_for_ifunc: Likewise.
21 (Target_powerpc::Scan::local, global, relocate): Likewise.
22
220f9906
AM
232019-07-13 Alan Modra <amodra@gmail.com>
24
25 * ehframe.cc (Fde::operator==): Delete.
26 (Cie::remove_fde): Delete.
27 (Eh_frame::remove_ehframe_for_plt): Delete fde_data and fde_length
28 parameters. Remove all post-map plt FDEs.
29 * ehframe.h (Fde:post_map): Make const, add variant to compare plt.
30 (Fde::operator==): Delete.
31 (Cie::remove_fde): Implement here.
32 (Cie::last_fde): New accessor.
33 (Eh_frame::remove_ehframe_for_plt): Update prototype.
34 * layout.cc (Layout::remove_eh_frame_for_plt): Delete fde_data and
35 fde_length parameters.
36 * layout.h (Layout::remove_eh_frame_for_plt): Update prototype.
37 * powerpc.cc (Stub_table::tls_get_addr_opt_bctrl_): Delete.
38 (Stub_table::plt_fde_len_, plt_fde_, init_plt_fde): Delete.
39 (Stub_table::add_plt_call_entry): Don't set tls_get_addr_opt_bctrl_.
40 (eh_advance): New function.
41 (stub_sort): New function.
42 (Stub_table::add_eh_frame): Emit eh_frame for notoc plt calls and
43 branches as well as __tls_get_addr_opt plt call stub.
44 (Stub_table::remove_eh_frame): Update to suit.
45
32f59844
AM
462019-07-13 Alan Modra <amodra@gmail.com>
47
48 * powerpc.cc (Target_powerpc::maybe_skip_tls_get_addr_call): Handle
49 notoc calls.
50 (is_branch_reloc): Template on size. Return true for REL24_NOTOC.
51 Update all callers.
52 (max_branch_delta): Likewise.
53 (Target_powerpc::Branch_info::make_stub): Add a stub for notoc
54 calls to functions needing a valid toc pointer.
55 (Target_powerpc::do_relax): Layout stubs again if any need resize.
56 (add_12_11_12, addi_12_11, addis_12_11, ldx_12_11_12, ori_12_12_0),
57 (oris_12_12_0, sldi_12_12_32): Define.
58 (Stub_table::Plt_stub_ent): Add notoc_ and iter_ fields.
59 (Stub_table::Branch_stub_key, Branch_stub_key_hash): Rename from
60 Branch_stub_ent and Branch_stub_ent hash. Remove save_res_ from key.
61 (Stub_table::Branch_stub_ent): New struct.
62 (class Stub_table): Add need_resize and resizing vars.
63 (Stub_table::need_resize, branch_size): New accessors.
64 (Stub_table::set_resizing): New function.
65 (Stub_table::add_plt_call_entry): Handle notoc calls and resizing
66 on seeing such or a tocsave stubs after a normal stub using the
67 same sym.
68 (Stub_table::add_long_branch_entry): Similarly.
69 (Stub_table::find_long_branch_entry): Return a Branch_stub_ent*.
70 (Stub_table::define_stub_syms): Adjust
71 (Stub_table::build_tls_opt_head, build_tls_opt_tail): New functions.
72 (build_notoc_offset): New function.
73 (Stub_table::plt_call_size): Move out of line. Handle notoc calls.
74 (Stub_table::branch_stub_size): Similarly.
75 (Stub_table::do_write): Separate loop for ELFv2 stubs, handling
76 notoc calls. Simplify ELFv1 loop. Output notoc branch stubs.
77 Use build_tls_opt_head and build_tls_opt_tail.
78 (Target_powerpc::Scan::get_reference_flags): Handle REL24_NOTOC.
79 (Target_powerpc::Scan::reloc_needs_plt_for_ifunc): Likewise,
80 and PLTSEQ_NOTOC and PLTCALL_NOTOC.
81 (Target_powerpc::Scan::local, global, relocate): Likewise.
82
f60c61e6
AM
832019-06-28 Alan Modra <amodra@gmail.com>
84
85 * powerpc.cc (Target_powerpc::Relocate::relocate): Don't look
86 at next/previous reloc when relnum is -1.
87
f073a3e8
AM
882019-06-28 Alan Modra <amodra@gmail.com>
89
90 * powerpc.cc (Stub_table::plt_error): New function.
91 (Stub_table::do_write): Use it.
92 (Output_data_glink::do_write): Don't segfault emitting linkage
93 table error.
94
c432bbba
AM
952019-06-28 Alan Modra <amodra@gmail.com>
96
97 * powerpc.cc (Target_powerpc::Scan::get_reference_flags): Handle
98 REL16_HIGH* relocs.
99 (Target_powerpc::Scan::local): Likewise.
100 (Target_powerpc::Scan::global): Likewise.
101 (Target_powerpc::Relocate::relocate): Likewise.
102
a3972330
ML
1032019-06-10 Martin Liska <mliska@suse.cz>
104
105 * errors.h: Include string.
106
e173ea00
JO
1072019-05-10 Joshua Oreman <oremanj@hudson-trading.com>
108
109 PR gold/21066
110 * gc.h (gc_process_relocs): Track relocations in .eh_frame sections
111 when ICF is enabled, even though the .eh_frame sections themselves
112 are not foldable.
113 * icf.cc (get_section_contents): Change arguments to permit operation
114 on just part of a section. Include extra identity regions in the
115 referring section's contents recursively.
116 (match_sections): Lock object here instead of in get_section_contents
117 so that get_section_contents can operate recursively.
118 (Icf::add_ehframe_links): New method.
119 (Icf::find_identical_sections): Pass .eh_frame sections to
120 add_ehframe_links(). Increase default iteration count from 2 to 3
121 because handling exception info typically requires one extra iteration.
122 * icf.h (Icf::extra_identity_list_): New data member with accessor.
123 (is_section_foldable_candidate): Include .gcc_except_table sections.
124 * options.h: Update documentation for new default ICF iteration count.
125 * testsuite/Makefile.am (icf_test_pr21066): New test case.
126 * testsuite/Makefile.in: Regenerate.
127 * testsuite/icf_test_pr21066.cc: New source file.
128 * testsuite/icf_test_pr21066.sh: New test script.
129
7ae39e2d
EB
1302019-02-19 Egeyar Bagcioglu <egeyar.bagcioglu@oracle.com>
131
132 PR gold/23870
133 * aarch64.cc (Target_aarch64::Scan::global): Check if a symbol with
134 R_AARCH64_MOVW_.ABS_* relocations requires a PLT entry.
135 * testsuite/Makefile.am: Add aarch64_pr23870 test case.
136 * testsuite/Makefile.in: Regenerate.
137 * testsuite/aarch64_pr23870_bar.c: New file.
138 * testsuite/aarch64_pr23870_foo.c: New file.
139 * testsuite/aarch64_pr23870_main.S: New file.
140
e4865945
NC
1412019-02-12 Nick Clifton <nickc@redhat.com>
142
143 * po/fr.po: Updated French translation.
144
375cd423
NC
1452019-01-21 Nick Clifton <nickc@redhat.com>
146
147 * po/uk.po: Updated Ukranian translation.
148
f48dfe41
NC
1492019-01-19 Nick Clifton <nickc@redhat.com>
150
151 * po/gold.pot: Regenerate.
152
f974f26c
NC
1532018-06-24 Nick Clifton <nickc@redhat.com>
154
155 2.32 branch created.
156
3107326d
AP
1572019-01-09 Andrew Paprocki <andrew@ishiboo.com>
158
159 * configure: Regenerate.
160
82704155
AM
1612019-01-01 Alan Modra <amodra@gmail.com>
162
163 Update year range in copyright notice of all files.
164
d5c04e1b 165For older changes see ChangeLog-2018
3499769a 166\f
d5c04e1b 167Copyright (C) 2019 Free Software Foundation, Inc.
3499769a
AM
168
169Copying and distribution of this file, with or without modification,
170are permitted in any medium without royalty provided the copyright
171notice and this notice are preserved.
172
173Local Variables:
174mode: change-log
175left-margin: 8
176fill-column: 74
177version-control: never
178End:
This page took 0.169399 seconds and 4 git commands to generate.