[GOLD] PowerPC function address in non-PIC
[external/binutils.git] / gold / ChangeLog
1 2017-09-20  Alan Modra  <amodra@gmail.com>
2
3         * powerpc.cc (Target_powerpc::Branch_info::make_stub): Put
4         stubs for ppc32 non-branch relocs in first stub table.
5         (Target_powerpc::Relocate::relocate): Resolve similarly.
6
7 2017-09-19  Alan Modra  <amodra@gmail.com>
8
9         * options.h (stub-group-multi): Default to true.  Add
10         --no-stub-group-multi.
11
12 2017-08-30  Alan Modra  <amodra@gmail.com>
13
14         * powerpc.cc (Target_powerpc::Relocate::relocate): Nop addis on
15         TPREL16_HA, and convert insn on TPREL16_LO and TPREL16_LO_DS
16         relocs to use r2/r13 when addis would add zero.
17
18 2017-08-29  Alan Modra  <amodra@gmail.com>
19
20         * options.h (tls_get_addr_optimize): New option.
21         * symtab.h (Symbol::clear_in_reg, clone): New functions.
22         (Sized_symbol::clone): New function.
23         (Symbol_table::clone): New function.
24         * resolve.cc (Symbol::clone, Sized_symbol::clone): New functions.
25         * powerpc.cc (Target_powerpc::has_tls_get_addr_opt_,
26         tls_get_addr_, tls_get_addr_opt_): New vars.
27         (Target_powerpc::tls_get_addr_opt, tls_get_addr,
28         is_tls_get_addr_opt, replace_tls_get_addr,
29         set_has_tls_get_addr_opt, stk_linker): New functions.
30         (Target_powerpc::Track_tls::maybe_skip_tls_get_addr_call): Add
31         target param.  Update callers.  Compare symbols rather than names.
32         (Target_powerpc::do_define_standard_symbols): Init tls_get_addr_
33         and tls_get_addr_opt_.
34         (Target_powerpc::Branch_info::mark_pltcall): Translate tls_get_addr
35         sym to tls_get_addr_opt.
36         (Target_powerpc::Branch_info::make_stub): Likewise.
37         (Stub_table::define_stub_syms): Likewise.
38         (Target_powerpc::Scan::global): Likewise.
39         (Target_powerpc::Relocate::relocate): Likewise.
40         (add_3_12_2, add_3_12_13, bctrl, beqlr, cmpdi_11_0, cmpwi_11_0,
41         ld_11_1, ld_11_3, ld_12_3, lwz_11_3, lwz_12_3, mr_0_3, mr_3_0,
42         mtlr_11, std_11_1): New constants.
43         (Stub_table::eh_frame_added_): Delete.
44         (Stub_table::tls_get_addr_opt_bctrl_, plt_fde_len_, plt_fde_): New vars.
45         (Stub_table::init_plt_fde): New functions.
46         (Stub_table::add_eh_frame, replace_eh_frame): Move definition out
47         of line.  Init and use plt_fde_.
48         (Stub_table::plt_call_size): Return size for tls_get_addr stub.
49         Extract alignment code to..
50         (Stub_table::plt_call_align): ..this new function.  Adjust all callers.
51         (Stub_table::add_plt_call_entry): Set has_tls_get_addr_opt and
52         tls_get_addr_opt_bctrl, and align after that.
53         (Stub_table::do_write): Write out tls_get_addr stub.
54         (Target_powerpc::do_finalize_sections): Emit DT_PPC_OPT
55         PPC_OPT_TLS/PPC64_OPT_TLS bit.
56         (Target_powerpc::Relocate::relocate): Don't check for or modify
57         nop following bl for tls_get_addr stub.
58
59 2017-08-29  Alan Modra  <amodra@gmail.com>
60
61         * symtab.h (Symbol): Split u_ into u1_ and u2_.  Adjust accessors
62         to suit.  Move plt_offset_ before got_offsets_.
63         * symtab.cc (Symbol::init_fields): Adjust for union change.
64         (Symbol::init_base_output_data): Likewise.
65         (Symbol::init_base_output_segment): Likewise.
66         (Symbol::allocate_base_common): Likewise.
67         (Symbol::output_section): Likewise.
68         (Symbol::set_output_section): Likewise.
69         (Symbol::set_output_segment): Likewise.
70         * resolve.cc (Symbol::override_base): Likewise.
71         (Symbol::override_base_with_special): Likewise.
72
73 2017-08-28  Igor Kudrin  <ikudrin@accesssoftek.com>
74
75         * aarch64.cc (Target_aarch64::Relocate::relocate_tls):
76         Make got_tlsdesc_offset signed and fix its calculation.
77         * testsuite/Makefile.am (aarch64_tlsdesc): New test.
78         * testsuite/Makefile.in: Regenerate.
79         * testsuite/aarch64_tlsdesc.s: New test source file.
80         * testsuite/aarch64_tlsdesc.sh: New test script.
81         * testsuite/aarch64_tlsdesc.t: New test linker script.
82
83 2017-08-28  Alan Modra  <amodra@gmail.com>
84
85         PR 21847
86         * powerpc.cc (Target_powerpc::is_elfv2_localentry0): Test
87         non_zero_localentry.
88         (Target_powerpc::resolve): New function.
89         (powerpc_info): Set has_resolve for 64-bit.
90         * target.h (Sized_target::resolve): Return bool.
91         * resolve.cc (Symbol_table::resolve): Continue with normal
92         processing when target resolve returns false.
93         * symtab.h (Symbol::non_zero_localentry, set_non_zero_localentry):
94         New accessors.
95         (Symbol::non_zero_localentry_): New flag bit.
96         * symtab.cc (Symbol::init_fields): Init non_zero_localentry_.
97
98 2017-08-08  Romain Geissler  <romain.geissler@gmail.com>
99             Alan Modra  <amodra@gmail.com>
100
101         * configure.ac: Add --enable-default-hash-style option.
102         * options.h (hash_style): Use DEFAULT_HASH_STYLE as default value.
103         * configure: Regenerate.
104         * config.in: Regenerate.
105
106 2017-08-03  James Clarke  <jrtc27@jrtc27.com>
107
108         * options.h (General_options): Set a non-NULL second help string
109         argument for relax to allow --no-relax.
110
111 2017-08-01  Alan Modra  <amodra@gmail.com>
112
113         * ehframe.cc (Fde::operator==): New.
114         (Cie::remove_fde, Eh_frame::remove_ehframe_for_plt): New.
115         * ehframe.h (Fde::operator==): Declare.
116         (Cie::remove_fde, Eh_frame::remove_ehframe_for_plt): Likewise.
117         * layout.cc (Layout::remove_eh_frame_for_plt): New.
118         * layout.h (Layout::remove_eh_frame_for_plt): Declare.
119         * powerpc.cc (Target_powerpc::do_relax): Remove old eh_frame FDEs.
120         (Stub_table::add_eh_frame): Delete eh_frame_added_ condition.
121         Don't add eh_frame for empty stub section.
122         (Stub_table::remove_eh_frame): New.
123
124 2017-07-31  Alan Modra  <amodra@gmail.com>
125
126         * options.h (no_tls_optimize): New powerpc option.
127         * powerpc.cc (Target_powerpc::abiversion, set_abiversion): Formatting.
128         (Target_powerpc::stk_toc): Formatting, fix comment.
129         (Target_powerpc::Track_tls::tls_get_addr_state): Rename from
130         tls_get_addr.
131         (Target_powerpc::optimize_tls_gd, optimize_tls_ld, optimize_tls_ie):
132         Return TLSOPT_NONE when !tls_optimize.
133         (Target_powerpc::add_global_pair_with_rel): Check
134         for existing reloc before reserving.
135         (Target_powerpc::add_local_tls_pair): Likewise.
136
137 2017-07-31  Alan Modra  <amodra@gmail.com>
138
139         PR 21847
140         * powerpc.cc (Target_powerpc::scan_relocs): Warn on --plt-localentry
141         without ld.so checks.
142
143 2017-07-29  Alan Modra  <amodra@gmail.com>
144
145         PR 21847
146         * powerpc.cc (Target_powerpc::scan_relocs): Default to
147         --no-plt-localentry.
148
149 2017-07-28  H.J. Lu  <hongjiu.lu@intel.com>
150
151         PR gold/21857
152         * compressed_output.cc (Output_compressed_section::set_final_data_size):
153         Call put_ch_reserved to clear the reserved field for 64-bit ELF.
154
155 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
156
157         * mips.cc (Mips_relocate_functions): Add "llu" suffix to
158         0x800080008000.
159
160 2017-07-23  Alan Modra  <amodra@gmail.com>
161
162         * powerpc.cc (glink_eh_frame_fde_64v2): Correct advance to
163         restore of LR.
164         (glink_eh_frame_fde_64v1): Advance to restore of LR at latest
165         possible insn.
166
167 2017-07-18  Nick Clifton  <nickc@redhat.com>
168
169         PR 21775
170         * aarch64.cc: Fix spelling typos.
171         * arm.cc: Likewise.
172         * layout.cc: Likewise.
173         * powerpc.cc: Likewise.
174         * x86_64.cc: Likewise.
175
176 2017-07-12  Alan Modra  <amodra@gmail.com>
177
178         * po/es.po: Update from translationproject.org/latest/gold/.
179         * po/fi.po: Likewise.
180         * po/fr.po: Likewise.
181         * po/id.po: Likewise.
182         * po/it.po: Likewise.
183         * po/vi.po: Likewise.
184         * po/zh_CN.po: Likewise.
185         * po/ja.po: New file from translationproject.org.
186         * po/sv.po: Likewise.
187         * po/uk.po: Likewise.
188
189 2017-07-06  Han Shen  <shenhan@google.com>
190
191         PR gold/21491
192         * aarch64.cc (Erratum_stub::invalidate_erratum_stub): New method.
193         (Erratum_stub::is_invalidated_erratum_stub): New method.
194         (Stub_table::relocate_reloc_stub): Renamed from "relocate_stub".
195         (Stub_table::relocate_reloc_stubs): Renamed from "relocate_stubs".
196         (Stub_table::relocate_erratum_stub): New method.
197         (AArch64_relobj::fix_errata_and_relocate_erratum_stubs): Renamed from
198         "fix_errata".
199         (Target_aarch64::relocate_reloc_stub): Renamed from "relocate_stub".
200
201 2017-06-23  Alan Modra  <amodra@gmail.com>
202
203         * options.h (General_options): Add plt_localentry.
204         * powerpc.cc (Target_powerpc::st_other): New function.
205         (Target_powerpc::plt_localentry0_, plt_localentry0_init_,
206         has_localentry0_): New vars.
207         (Target_powerpc::plt_localentry0, set_has_localentry0,
208         is_elfv2_localentry0): New functions.
209         (Target_powerpc::Branch_info::mark_pltcall): Don't set tocsave or
210         return true for localentry:0 calls.
211         (Stub_table::Plt_stub_ent::localentry0_): New var.
212         (Stub_table::add_plt_call_entry): Set localentry0_ and has_localentry0_.
213         Don't set r2save_ for localentry:0 calls.
214         (Output_data_glink::do_write): Save r2 in __glink_PLTresolve for elfv2.
215         (Target_powerpc::scan_relocs): Default plt_localentry0_.
216         (Target_powerpc::do_finalize_sections): Set DT_PPC64_OPT.
217         (Target_powerpc::Relocate::relocate): Don't require nop following
218         calls for localentry:0 plt calls, and don't change nop.
219
220 2017-06-23  Alan Modra  <amodra@gmail.com>
221
222         * powerpc.cc (Target_powerpc::tocsave_loc_): New var.
223         (Target_powerpc::mark_pltcall, add_tocsave, tocsave_loc): New functions.
224         (Target_powerpc::Branch_info::tocsave_): New var.
225         (Target_powerpc::Branch_info::mark_pltcall): New function.
226         (Target_powerpc::Branch_info::make_stub): Pass tocsave_ to
227         add_plt_call_entry.
228         (Stub_table::Plt_stub_ent): Make public.  Add r2save_.
229         (Stub_table::add_plt_call_entry): Add bool tocsave_ param.  Set
230         r2save_.
231         (Stub_table::find_plt_call_entry): Return Plt_stub_ent*.  Adjust
232         use throughout.
233         (Stub_table::do_write): Conditionally output r2 save in plt stubs.
234         (Target_powerpc::Scan::local): Handle R_PPC64_TOCSAVE.
235         (Target_powerpc::Scan::global): Likewise.
236         (Target_powerpc::Relocate::relocate): Skip r2 save in plt call stub
237         with tocsave reloc.  Replace header tocsave nop with r2 save.
238         * symtab.h (struct Symbol_location_hash): Make public.
239
240 2017-06-21  Alan Modra  <amodra@gmail.com>
241
242         * powerpc.cc (Plt_stub_key): Rename from Plt_stub_ent.  Remove indx_.
243         (Plt_stub_key_hash): Rename from Plt_stub_ent_hash.
244         (struct Plt_stub_ent): New.
245         (Plt_stub_entries): Map from Plt_stub_key to Plt_stub_ent.  Adjust
246         use throughout file.
247
248 2017-06-20  Eric Christopher  <echristo@gmail.com>
249
250         * aarch64.cc (scan_reloc_for_stub): Use plt_address_for_global to
251         calculate the symbol value.
252         (scan_reloc_section_for_stubs): Allow stubs to be created for
253         section symbols.
254         (maybe_apply_stub): Handle creating stubs for weak symbols to
255         match the code in scan_reloc_for_stub.
256
257 2017-06-20  James Clarke  <jrtc27@jrtc27.com>
258
259         * powerpc.cc (Stub_table::define_stub_syms): Always include object's
260         uniq_ value.
261
262 2017-06-15  Eric Christopher  <echristo@gmail.com>
263
264         * aarch64.cc: Fix a few typos and grammar-os.
265
266 2017-06-15  Jiong Wang  <jiong.wang@arm.com>
267
268         * aarch64.cc (Insn_utilities::is_mrs_tpidr_el0): New method.
269         (AArch64_relobj<size, big_endian>::try_fix_erratum_843419_optimized):
270         Return ture for some TLS relaxed sequences.
271
272 2017-06-07  Eric Christopher  <echristo@gmail.com>
273
274         * aarch64.cc (maybe_apply_stub): Add debug logging for looking
275         up stubs to undefined symbols and early return rather than
276         fail to look them up.
277         (scan_reloc_for_stub): Add debug logging for no stub creation
278         for undefined symbols.
279
280 2017-05-23  Alan Modra  <amodra@gmail.com>
281
282         PR 21503
283         * options.h: Add --emit-stub-syms option.
284         * powerpc.cc (object_id): New.
285         (Powerpc_relobj): Add uniq_ and accessor.  Sort variables for
286         better packing.
287         (Powerpc_dynobj): Sort variables for better packing.
288         (Target_powerpc::define_local): New function.
289         (Target_powerpc::group_sections): Pass stub table size to
290         Stub_table constructor.
291         (Target_powerpc::do_relax): Define stub and glink symbols.
292         (Stub_table): Add uniq_ variable, and id param to constructor.
293         (Stub_table::Plt_stub_ent): Add indx_ variable.
294         (Stub_table::Branch_stub_entries): Move typedef earlier.
295         (Stub_table::branch_stub_size): Replace "to" parameter with a
296         Branch_stub_entries iterator.
297         (Stub_table::add_long_branch_entry): Adjust to suit.
298         (Stub_table::add_plt_call_entry): Set indx_.
299         (Stub_table::define_stub_syms): New function.
300
301 2017-05-15  Eric Christopher <echristo@gmail.com>
302
303         * layout.cc (Layout::segment_precedes): Add a case for testing
304         pointer equality when determining which segment precedes
305         another.
306
307 2017-05-13  James Clarke  <jrtc27@jrtc27.com>
308
309         PR gold/21444
310         * gold.cc (Target_sparc::Relocate::relocate_tls): Local
311         variables are final for position-independent executables. This
312         has to be consistent with Target_sparc::Scan::local otherwise
313         they will disagree as to whether local-exec is used.
314
315 2017-05-12  Igor Kudrin  <ikudrin@accesssoftek.com>
316
317         PR gold/21430
318         * aarch64.cc
319         (AArch64_relobj::convert_input_section_to_relaxed_section):
320         Set the section offset to -1ULL.
321         (Target_aarch64::relocate_section): Adjust the view in case
322         of a relaxed input section.
323         * testsuite/Makefile.am (pr21430): New test.
324         * testsuite/Makefile.in: Regenerate
325         * testsuite/pr21430.s: New test source file.
326         * testsuite/pr21430.sh: New test script.
327
328 2017-04-27  Alan Modra  <amodra@gmail.com>
329
330         * testsuite/plugin_section_order.c (onload): Add missing break.
331
332 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
333
334         * mips.cc (Mips_got_entry::hash()): Shift addend to reduce
335         possibility of collisions.
336         (Mips_got_entry::equals): Fix case for GOT_TLS_LDM
337         entries.
338
339 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
340
341         * mips.cc (Mips_relobj::merge_processor_specific_data_): New data
342         member.
343         (Mips_relobj::merge_processor_specific_data): New method.
344         (Mips_relobj::do_read_symbols): Set merge_processor_specific_data_
345         to false, only if the input file is a binary or if object has no
346         contents except the section name string table and an empty symbol
347         table with the undefined symbol.
348         (Target_mips::do_finalize_sections): Refactor.  Skip empty object files
349         for merging processor-specific data.
350
351 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
352
353         * mips.cc (Target_mips::Relocate::calculated_value_): New data
354         member.
355         (Target_mips::Relocate::calculate_only_): Likewise.
356         (Target_mips::Relocate::relocate): Handle multiple consecutive
357         relocations with the same offset.
358
359 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
360
361         * mips.cc (Target_mips::Relocate::relocate): Remove redundant
362         checks for relocatable link.
363         (Mips_relocate_functions::reljalr): Likewise.
364
365 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
366
367         * mips.cc (class Mips_output_section_options): New class.
368         (Target_mips::do_make_output_section): New method.
369
370 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
371
372         * mips.cc (Mips_relocate_functions::rel26): Don't print relocation
373         overflow error message.
374         (Target_mips::relocate_special_relocatable): Improve relocation
375         overflow error message.
376         (Target_mips::Relocate::relocate): Likewise.
377
378 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
379
380         * mips.cc (symbol_refs_local): Return false if a symbol
381         is from a dynamic object.
382         (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN.
383         (Target_mips::set_gp): Refactor.  Make _gp STT_NOTYPE and
384         STB_LOCAL.
385         (Target_mips::do_finalize_sections): Set _gp after all the checks
386         for creating .got are done.
387         (Target_mips::Scan::global): Remove unused code.
388
389 2017-02-22  Alan Modra  <amodra@gmail.com>
390
391         * powerpc.cc (Target_powerpc::make_iplt_section): Check that
392         output_section exists before attempting add_output_section_data.
393         (Target_powerpc::make_brlt_section): Likewise.
394
395 2017-02-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
396
397         * mips.cc (Target_mips::Scan::get_reference_flags): Remove
398         gold_unreachable from default case.
399
400 2017-02-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
401
402         PR gold/21111
403         * mips.cc (Mips_relocate_functions::relhigher): New method.
404         (Mips_relocate_functions::relhighest): Likewise.
405         (mips_get_size_for_reloc): Add support for relocs: R_MIPS_HIGHER and
406         R_MIPS_HIGHEST.
407         (Target_mips::Scan::local): Add support for relocs: R_MIPS_HIGHER,
408         R_MIPS_HIGHEST, R_MICROMIPS_HIGHER and R_MICROMIPS_HIGHEST.
409         (Target_mips::Scan::global): Likewise.
410         (Target_mips::Scan::get_reference_flags): Likewise.
411         (Target_mips::Relocate::relocate): Call static methods for resolving
412         HIGHER and HIGHEST relocations.
413
414 2017-02-03  Rahul Chaudhry  <rahulchaudhry@google.com>
415
416         * x86_64.cc (Target_x86_64::do_can_check_for_function_pointers):
417         Return true even when building pie binaries.
418         (Target_x86_64::possible_function_pointer_reloc): Check opcode
419         for R_X86_64_PC32 relocations.
420         (Target_x86_64::local_reloc_may_be_function_pointer): Pass
421         extra arguments to local_reloc_may_be_function_pointer.
422         (Target_x86_64::global_reloc_may_be_function_pointer): Likewise.
423         * gc.h (gc_process_relocs): Add check for STT_FUNC.
424         * testsuite/Makefile.am (icf_safe_pie_test): New test case.
425         * testsuite/Makefile.in: Regenerate.
426         * testsuite/icf_safe_pie_test.sh: New shell script.
427
428 2017-02-03  Alan Modra  <amodra@gmail.com>
429
430         * powerpc.cc (Powerpc_relobj::make_toc_relative): Don't crash
431         when no .toc section exists.
432
433 2017-01-31  Cary Coutant  <ccoutant@gmail.com>
434
435         PR gold/21090
436         * x86_64.cc (Target_x86_64::can_convert_mov_to_lea): Add check
437         for predefined symbol.
438         (Target_x86_64::Relocate::relocate): Fix formatting.
439
440 2017-01-23  Rahul Chaudhry  <rahulchaudhry@google.com>
441
442         * testsuite/icf_safe_so_test.sh: Use "set -e".
443         * testsuite/icf_safe_test.sh: Likewise.
444         * testsuite/icf_test.sh: Likewise.
445
446 2017-01-23  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
447
448         * mips.cc (Mips_output_data_plt::rel_plt): Remove const from return
449         type.
450         (Target_mips::make_plt_entry): Make the sh_info field of .rel.plt
451         point to .plt.
452
453 2017-01-23  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
454
455         PR gold/21054
456         * mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol
457         to the dynamic symbol table if it is forced to local visibility.
458         (Target_mips::do_finalize_sections): Don't add __RLD_MAP symbol to the
459         dynamic symbol table if it is forced to local visibility.
460
461 2017-01-20  Nick Clifton  <nickc@redhat.com>
462
463         * aarch64.cc (Stub_template_repertoire): Change ST_E_835769_INSNS
464         from a pointer to an array.
465
466 2017-01-13  H.J. Lu  <hongjiu.lu@intel.com>
467
468         PR gold/21040
469         * powerpc.cc (Powerpc_relobj<size, big_endian>::make_toc_relative):
470         Cast 0x80008000 to uint64_t.
471
472 2017-01-12  Cary Coutant  <ccoutant@gmail.com>
473
474         * object.cc (Sized_relobj_file): Fix byte counts for calls to memmem.
475
476 2017-01-11  Cary Coutant  <ccoutant@gmail.com>
477
478         PR gold/21040
479         * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry):
480         Remove unnecessary 'typename' keyword.
481         (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise.
482         (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise.
483         (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise.
484         (Output_data_plt_x86_64_bnd::do_write): Likewise.
485
486 2017-01-11  Cary Coutant  <ccoutant@gmail.com>
487
488         PR gold/21040
489         * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry):
490         Remove unnecessary 'typename' keyword.
491         (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise.
492         (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise.
493         (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise.
494         * testsuite/copy_test_relro_1.cc (p, b, c, q): Add separate extern
495         declarations.
496
497 2017-01-11  Cary Coutant  <ccoutant@gmail.com>
498
499         PR gold/21039
500         * testsuite/script_test_13.sh: Adjust patterns to work for i386.
501         * testsuite/script_test_15a.sh: Likewise.
502         * testsuite/script_test_15b.sh: Likewise.
503         * testsuite/script_test_15c.sh: Likewise.
504
505 2017-01-11  Alan Modra  <amodra@gmail.com>
506
507         * powerpc.cc (class Powerpc_copy_relocs): New.
508         (Powerpc_copy_relocs::emit): New function.
509         (Powerpc_relobj::relatoc_, toc_, no_toc_opt_): New variables.
510         (Powerpc_relobj::toc_shndx, set_no_toc_opt, no_toc_opt): New inlines.
511         (Powerpc_relobj::do_relocate_sections): New function.
512         (Powerpc_relobj::make_toc_relative): Likewise.
513         (Powerpc_relobj::do_find_special_sections): Stash away .rela.toc
514         and .toc too.
515         (ok_lo_toc_insn): Move earlier, and handle more insns.
516         (Target_powerpc::Scan::local): If optimizing toc accesses, set
517         no_toc_opt for entries we can't edit.  Check insn validity.
518         Emit "toc optimization is not supported" warning, downgraded
519         from error.
520         (Target_powerpc::Scan::global): Likewise.
521         (Target_powerpc::Relocate::relocate): Edit TOC indirect code
522         to TOC relative.  Don't emit "toc optimization is not supported"
523         error here.
524
525 2017-01-10  Cary Coutant  <ccoutant@gmail.com>
526
527         * aarch64.cc (AArch64_relobj::do_relocate_sections): Call
528         Sized_relobj_file::relocate_section_range().
529         * arm.cc (Arm_relobj::do_relocate_sections): Likewise.
530         * object.h (Sized_relobj_file::relocate_section_range): New method.
531         * reloc.cc (Sized_relobj_file::do_relocate_sections): Move
532         implementation...
533         (Sized_relobj_file::relocate_section_range): ...to new method.
534
535 2017-01-10  Alan Modra  <amodra@gmail.com>
536
537         * testsuite/ver_test_8.sh: Accept .TOC. in lieu of
538         _GLOBAL_OFFSET_TABLE_.  Allow zero count.
539         * testsuite/copy_test_relro_1.cc (c, q): New vars.
540         * testsuite/copy_test_relro.cc: Rewrite to test read-only
541         status of variables directly.  Reference new vars in
542         read-only data.
543
544 2017-01-10  Alan Modra  <amodra@gmail.com>
545
546         * options.h: Add --secure-plt option.
547         * powerpc.cc (Target_powerpc::Scan::local): Detect and error
548         on -fPIC -mbss-plt code.
549         (Target_powerpc::Scan::global): Likewise.
550
551 2017-01-09  Alan Modra  <amodra@gmail.com>
552
553         * powerpc.cc (Target_powerpc::make_plt_section): Point sh_info of
554         ".rela.plt" at ".plt".
555
556 2017-01-07  Alan Modra  <amodra@gmail.com>
557
558         * powerpc.cc: Use shorter equivalent elfcpp typedef for
559         Reltype and reloc_size throughout.
560         (Target_powerpc::symval_for_branch): Exclude dynamic symbols.
561         (Target_powerpc::Scan::local): Use local var r_sym.
562         (Target_powerpc::Scan::global: Likewise.
563         (Target_powerpc::Relocate::relocate): Delete shadowing r_sym.
564
565 2017-01-02  Alan Modra  <amodra@gmail.com>
566
567         Update year range in copyright notice of all files.
568
569 For older changes see ChangeLog-2016
570 \f
571 Copyright (C) 2017 Free Software Foundation, Inc.
572
573 Copying and distribution of this file, with or without modification,
574 are permitted in any medium without royalty provided the copyright
575 notice and this notice are preserved.
576
577 Local Variables:
578 mode: change-log
579 left-margin: 8
580 fill-column: 74
581 version-control: never
582 End: