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