1 2019-11-19 Alan Modra <amodra@gmail.com>
4 * symtab.h (set_has_gnu_output, has_gnu_output_): New.
5 * symtab.cc (Symbol_table::Symbol_table): Init has_gnu_output_.
6 (Symbol_table::finalize): Set ELFOSABI_GNU when has_gnu_output_.
7 (Symbol_table::set_dynsym_indexes, Symbol_table::sized_finalize):
8 Call set_has_gnu_output for STT_GNU_IFUNC and STB_GNU_UNIQUE globals.
9 * object.cc (Sized_relobj_file::do_finalize_local_symbols): Call
10 set_has_gnu_output when STT_GNU_IFUNC locals will be output.
12 2019-11-11 Miguel Saldivar <saldivarcher@gmail.com>
15 * expression.cc (Trinary_expression::arg2_value): Use correct integer
16 expression when calling "eval_maybe_dot" method.
17 (Trinary_expression::arg3_value): Likewise.
19 2019-09-28 Alan Modra <amodra@gmail.com>
22 * i386.cc (Target_i386::Relocate::relocate <R_386_GOTOFF>): Don't
23 ignore addend, apply using pcrel32.
24 * x86_64.cc (Target_x86_64::Relocate::relocate <R_X86_64_GOTOFF64>):
25 Similarly use pcrel64.
27 2019-09-24 Nick Clifton <nickc@redhat.com>
29 * descriptors.cc: Include <string>
31 2019-09-23 Alan Modra <amodra@gmail.com>
33 * testsuite/plugin_new_section_layout.c (new_input_hook): Correct
34 return status enum values.
36 2019-09-20 Alan Modra <amodra@gmail.com>
39 * layout.cc (Layout::Layout): Init lto_slim_object_.
40 * object.cc (Sized_relobj_file::do_layout): Wrap overlong line.
41 Don't use C cast. Validate section size. Don't copy contents.
43 2019-09-20 Alan Modra <amodra@gmail.com>
45 * powerpc.cc (Target_powerpc::Scan::check_non_pic): Move REL24
48 2019-09-18 Simon Marchi <simon.marchi@polymtl.ca>
50 * testsuite/Makefile.in: Re-generate.
52 2019-09-09 Phil Blundell <pb@pbcl.net>
54 binutils 2.33 branch created.
56 2019-08-16 Martin Liska <mliska@suse.cz>
59 * object.cc (big_endian>::do_layout): Do not report error,
61 (big_endian>::do_add_symbols): Report error only for when
64 2019-08-02 Alan Modra <amodra@gmail.com>
66 * powerpc.cc (Target_powerpc::Scan::get_reference_flags): Set
67 flags for new relocations, and some missing older relocs.
68 (Target_powerpc::Scan::local): Handle new pcrel tls relocs.
69 Call set_has_static_tls for tprel relocs.
70 (Target_powerpc::Scan::global): Likewise.
71 (Target_powerpc::Relocate::relocate): Handle new pcrel tls relocs.
73 2019-08-02 Alan Modra <amodra@gmail.com>
75 * powerpc.cc (Powerpc_relocate_functions::rela, rela_ua): Perform
76 signed right shift for signed overflow check.
78 2019-07-29 Martin Liska <mliska@suse.cz>
81 * layout.h (class Layout): Add is_lto_slim_object and
83 * object.cc (struct lto_section): Add lto_slim_object_.
84 (big_endian>::do_layout): Parse content of
85 .gnu_lto_.lto section.
86 (big_endian>::do_add_symbols): Report error for a missing
89 2019-07-13 Alan Modra <amodra@gmail.com>
91 * powerpc.cc (xlate_pcrel_opt): New function.
92 (Target_powerpc::Relocate::relocate): Optimise PCREL34 and
93 GOT_PCREL34 sequences marked with PCREL_OPT.
95 2019-07-13 Alan Modra <amodra@gmail.com>
97 * powerpc.cc (Powerpc_relobj::make_got_relative): New function.
98 (relative_value_is_known): New functions.
99 (Target_powerpc::Relocate::relocate): Edit code using
100 GOT16_HA, GOT16_LO_DS, and GOT_PCREL34 relocs.
102 2019-07-13 Alan Modra <amodra@gmail.com>
104 * powerpc.cc (Target_powerpc): Add powerxx_stubs_ and accessor
106 (Target_powerpc::maybe_skip_tls_get_addr_call): Handle PLT_PCREL34
107 and PLT_PCREL34_NOTOC relocs.
108 (Powerpc_relocate_functions): Add addr34, addr34_hi, addr34_ha,
109 addr28, addr16_higher34, addr16_highera34, addr16_highest34,
110 addr16_highest34a functions.
111 (li_11_0, ori_11_11_0, sldi_11_11_34): Define.
112 (paddi_12_pc, pld_12_pc, pnop): Define.
113 (d34, ha34): New inline functions.
114 (Stub_table::add_plt_call_entry): Handle powerxx_stubs.
115 (Stub_table::add_eh_frame): Likewise.
116 (build_powerxx_offset): New function.
117 (Stub_table::plt_call_size): Handle powerxx_stubs.
118 (Stub_table::branch_stub_size): Likewise.
119 (Stub_table::do_write): Likewise.
120 (Target_powerpc::Scan::get_reference_flags): Handle new relocs.
121 (Target_powerpc::Scan::reloc_needs_plt_for_ifunc: Likewise.
122 (Target_powerpc::Scan::local, global, relocate): Likewise.
124 2019-07-13 Alan Modra <amodra@gmail.com>
126 * ehframe.cc (Fde::operator==): Delete.
127 (Cie::remove_fde): Delete.
128 (Eh_frame::remove_ehframe_for_plt): Delete fde_data and fde_length
129 parameters. Remove all post-map plt FDEs.
130 * ehframe.h (Fde:post_map): Make const, add variant to compare plt.
131 (Fde::operator==): Delete.
132 (Cie::remove_fde): Implement here.
133 (Cie::last_fde): New accessor.
134 (Eh_frame::remove_ehframe_for_plt): Update prototype.
135 * layout.cc (Layout::remove_eh_frame_for_plt): Delete fde_data and
136 fde_length parameters.
137 * layout.h (Layout::remove_eh_frame_for_plt): Update prototype.
138 * powerpc.cc (Stub_table::tls_get_addr_opt_bctrl_): Delete.
139 (Stub_table::plt_fde_len_, plt_fde_, init_plt_fde): Delete.
140 (Stub_table::add_plt_call_entry): Don't set tls_get_addr_opt_bctrl_.
141 (eh_advance): New function.
142 (stub_sort): New function.
143 (Stub_table::add_eh_frame): Emit eh_frame for notoc plt calls and
144 branches as well as __tls_get_addr_opt plt call stub.
145 (Stub_table::remove_eh_frame): Update to suit.
147 2019-07-13 Alan Modra <amodra@gmail.com>
149 * powerpc.cc (Target_powerpc::maybe_skip_tls_get_addr_call): Handle
151 (is_branch_reloc): Template on size. Return true for REL24_NOTOC.
153 (max_branch_delta): Likewise.
154 (Target_powerpc::Branch_info::make_stub): Add a stub for notoc
155 calls to functions needing a valid toc pointer.
156 (Target_powerpc::do_relax): Layout stubs again if any need resize.
157 (add_12_11_12, addi_12_11, addis_12_11, ldx_12_11_12, ori_12_12_0),
158 (oris_12_12_0, sldi_12_12_32): Define.
159 (Stub_table::Plt_stub_ent): Add notoc_ and iter_ fields.
160 (Stub_table::Branch_stub_key, Branch_stub_key_hash): Rename from
161 Branch_stub_ent and Branch_stub_ent hash. Remove save_res_ from key.
162 (Stub_table::Branch_stub_ent): New struct.
163 (class Stub_table): Add need_resize and resizing vars.
164 (Stub_table::need_resize, branch_size): New accessors.
165 (Stub_table::set_resizing): New function.
166 (Stub_table::add_plt_call_entry): Handle notoc calls and resizing
167 on seeing such or a tocsave stubs after a normal stub using the
169 (Stub_table::add_long_branch_entry): Similarly.
170 (Stub_table::find_long_branch_entry): Return a Branch_stub_ent*.
171 (Stub_table::define_stub_syms): Adjust
172 (Stub_table::build_tls_opt_head, build_tls_opt_tail): New functions.
173 (build_notoc_offset): New function.
174 (Stub_table::plt_call_size): Move out of line. Handle notoc calls.
175 (Stub_table::branch_stub_size): Similarly.
176 (Stub_table::do_write): Separate loop for ELFv2 stubs, handling
177 notoc calls. Simplify ELFv1 loop. Output notoc branch stubs.
178 Use build_tls_opt_head and build_tls_opt_tail.
179 (Target_powerpc::Scan::get_reference_flags): Handle REL24_NOTOC.
180 (Target_powerpc::Scan::reloc_needs_plt_for_ifunc): Likewise,
181 and PLTSEQ_NOTOC and PLTCALL_NOTOC.
182 (Target_powerpc::Scan::local, global, relocate): Likewise.
184 2019-06-28 Alan Modra <amodra@gmail.com>
186 * powerpc.cc (Target_powerpc::Relocate::relocate): Don't look
187 at next/previous reloc when relnum is -1.
189 2019-06-28 Alan Modra <amodra@gmail.com>
191 * powerpc.cc (Stub_table::plt_error): New function.
192 (Stub_table::do_write): Use it.
193 (Output_data_glink::do_write): Don't segfault emitting linkage
196 2019-06-28 Alan Modra <amodra@gmail.com>
198 * powerpc.cc (Target_powerpc::Scan::get_reference_flags): Handle
200 (Target_powerpc::Scan::local): Likewise.
201 (Target_powerpc::Scan::global): Likewise.
202 (Target_powerpc::Relocate::relocate): Likewise.
204 2019-06-10 Martin Liska <mliska@suse.cz>
206 * errors.h: Include string.
208 2019-05-10 Joshua Oreman <oremanj@hudson-trading.com>
211 * gc.h (gc_process_relocs): Track relocations in .eh_frame sections
212 when ICF is enabled, even though the .eh_frame sections themselves
214 * icf.cc (get_section_contents): Change arguments to permit operation
215 on just part of a section. Include extra identity regions in the
216 referring section's contents recursively.
217 (match_sections): Lock object here instead of in get_section_contents
218 so that get_section_contents can operate recursively.
219 (Icf::add_ehframe_links): New method.
220 (Icf::find_identical_sections): Pass .eh_frame sections to
221 add_ehframe_links(). Increase default iteration count from 2 to 3
222 because handling exception info typically requires one extra iteration.
223 * icf.h (Icf::extra_identity_list_): New data member with accessor.
224 (is_section_foldable_candidate): Include .gcc_except_table sections.
225 * options.h: Update documentation for new default ICF iteration count.
226 * testsuite/Makefile.am (icf_test_pr21066): New test case.
227 * testsuite/Makefile.in: Regenerate.
228 * testsuite/icf_test_pr21066.cc: New source file.
229 * testsuite/icf_test_pr21066.sh: New test script.
231 2019-02-19 Egeyar Bagcioglu <egeyar.bagcioglu@oracle.com>
234 * aarch64.cc (Target_aarch64::Scan::global): Check if a symbol with
235 R_AARCH64_MOVW_.ABS_* relocations requires a PLT entry.
236 * testsuite/Makefile.am: Add aarch64_pr23870 test case.
237 * testsuite/Makefile.in: Regenerate.
238 * testsuite/aarch64_pr23870_bar.c: New file.
239 * testsuite/aarch64_pr23870_foo.c: New file.
240 * testsuite/aarch64_pr23870_main.S: New file.
242 2019-02-12 Nick Clifton <nickc@redhat.com>
244 * po/fr.po: Updated French translation.
246 2019-01-21 Nick Clifton <nickc@redhat.com>
248 * po/uk.po: Updated Ukranian translation.
250 2019-01-19 Nick Clifton <nickc@redhat.com>
252 * po/gold.pot: Regenerate.
254 2018-06-24 Nick Clifton <nickc@redhat.com>
258 2019-01-09 Andrew Paprocki <andrew@ishiboo.com>
260 * configure: Regenerate.
262 2019-01-01 Alan Modra <amodra@gmail.com>
264 Update year range in copyright notice of all files.
266 For older changes see ChangeLog-2018
268 Copyright (C) 2019 Free Software Foundation, Inc.
270 Copying and distribution of this file, with or without modification,
271 are permitted in any medium without royalty provided the copyright
272 notice and this notice are preserved.
278 version-control: never