gold: Add put_ch_reserved to 64-bit Chdr_write
[external/binutils.git] / gold / ChangeLog
1 2017-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR gold/21857
4         * compressed_output.cc (Output_compressed_section::set_final_data_size):
5         Call put_ch_reserved to clear the reserved field for 64-bit ELF.
6
7 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
8
9         * mips.cc (Mips_relocate_functions): Add "llu" suffix to
10         0x800080008000.
11
12 2017-07-23  Alan Modra  <amodra@gmail.com>
13
14         * powerpc.cc (glink_eh_frame_fde_64v2): Correct advance to
15         restore of LR.
16         (glink_eh_frame_fde_64v1): Advance to restore of LR at latest
17         possible insn.
18
19 2017-07-18  Nick Clifton  <nickc@redhat.com>
20
21         PR 21775
22         * aarch64.cc: Fix spelling typos.
23         * arm.cc: Likewise.
24         * layout.cc: Likewise.
25         * powerpc.cc: Likewise.
26         * x86_64.cc: Likewise.
27
28 2017-07-12  Alan Modra  <amodra@gmail.com>
29
30         * po/es.po: Update from translationproject.org/latest/gold/.
31         * po/fi.po: Likewise.
32         * po/fr.po: Likewise.
33         * po/id.po: Likewise.
34         * po/it.po: Likewise.
35         * po/vi.po: Likewise.
36         * po/zh_CN.po: Likewise.
37         * po/ja.po: New file from translationproject.org.
38         * po/sv.po: Likewise.
39         * po/uk.po: Likewise.
40
41 2017-07-06  Han Shen  <shenhan@google.com>
42
43         PR gold/21491
44         * aarch64.cc (Erratum_stub::invalidate_erratum_stub): New method.
45         (Erratum_stub::is_invalidated_erratum_stub): New method.
46         (Stub_table::relocate_reloc_stub): Renamed from "relocate_stub".
47         (Stub_table::relocate_reloc_stubs): Renamed from "relocate_stubs".
48         (Stub_table::relocate_erratum_stub): New method.
49         (AArch64_relobj::fix_errata_and_relocate_erratum_stubs): Renamed from
50         "fix_errata".
51         (Target_aarch64::relocate_reloc_stub): Renamed from "relocate_stub".
52
53 2017-06-23  Alan Modra  <amodra@gmail.com>
54
55         * options.h (General_options): Add plt_localentry.
56         * powerpc.cc (Target_powerpc::st_other): New function.
57         (Target_powerpc::plt_localentry0_, plt_localentry0_init_,
58         has_localentry0_): New vars.
59         (Target_powerpc::plt_localentry0, set_has_localentry0,
60         is_elfv2_localentry0): New functions.
61         (Target_powerpc::Branch_info::mark_pltcall): Don't set tocsave or
62         return true for localentry:0 calls.
63         (Stub_table::Plt_stub_ent::localentry0_): New var.
64         (Stub_table::add_plt_call_entry): Set localentry0_ and has_localentry0_.
65         Don't set r2save_ for localentry:0 calls.
66         (Output_data_glink::do_write): Save r2 in __glink_PLTresolve for elfv2.
67         (Target_powerpc::scan_relocs): Default plt_localentry0_.
68         (Target_powerpc::do_finalize_sections): Set DT_PPC64_OPT.
69         (Target_powerpc::Relocate::relocate): Don't require nop following
70         calls for localentry:0 plt calls, and don't change nop.
71
72 2017-06-23  Alan Modra  <amodra@gmail.com>
73
74         * powerpc.cc (Target_powerpc::tocsave_loc_): New var.
75         (Target_powerpc::mark_pltcall, add_tocsave, tocsave_loc): New functions.
76         (Target_powerpc::Branch_info::tocsave_): New var.
77         (Target_powerpc::Branch_info::mark_pltcall): New function.
78         (Target_powerpc::Branch_info::make_stub): Pass tocsave_ to
79         add_plt_call_entry.
80         (Stub_table::Plt_stub_ent): Make public.  Add r2save_.
81         (Stub_table::add_plt_call_entry): Add bool tocsave_ param.  Set
82         r2save_.
83         (Stub_table::find_plt_call_entry): Return Plt_stub_ent*.  Adjust
84         use throughout.
85         (Stub_table::do_write): Conditionally output r2 save in plt stubs.
86         (Target_powerpc::Scan::local): Handle R_PPC64_TOCSAVE.
87         (Target_powerpc::Scan::global): Likewise.
88         (Target_powerpc::Relocate::relocate): Skip r2 save in plt call stub
89         with tocsave reloc.  Replace header tocsave nop with r2 save.
90         * symtab.h (struct Symbol_location_hash): Make public.
91
92 2017-06-21  Alan Modra  <amodra@gmail.com>
93
94         * powerpc.cc (Plt_stub_key): Rename from Plt_stub_ent.  Remove indx_.
95         (Plt_stub_key_hash): Rename from Plt_stub_ent_hash.
96         (struct Plt_stub_ent): New.
97         (Plt_stub_entries): Map from Plt_stub_key to Plt_stub_ent.  Adjust
98         use throughout file.
99
100 2017-06-20  Eric Christopher  <echristo@gmail.com>
101
102         * aarch64.cc (scan_reloc_for_stub): Use plt_address_for_global to
103         calculate the symbol value.
104         (scan_reloc_section_for_stubs): Allow stubs to be created for
105         section symbols.
106         (maybe_apply_stub): Handle creating stubs for weak symbols to
107         match the code in scan_reloc_for_stub.
108
109 2017-06-20  James Clarke  <jrtc27@jrtc27.com>
110
111         * powerpc.cc (Stub_table::define_stub_syms): Always include object's
112         uniq_ value.
113
114 2017-06-15  Eric Christopher  <echristo@gmail.com>
115
116         * aarch64.cc: Fix a few typos and grammar-os.
117
118 2017-06-15  Jiong Wang  <jiong.wang@arm.com>
119
120         * aarch64.cc (Insn_utilities::is_mrs_tpidr_el0): New method.
121         (AArch64_relobj<size, big_endian>::try_fix_erratum_843419_optimized):
122         Return ture for some TLS relaxed sequences.
123
124 2017-06-07  Eric Christopher  <echristo@gmail.com>
125
126         * aarch64.cc (maybe_apply_stub): Add debug logging for looking
127         up stubs to undefined symbols and early return rather than
128         fail to look them up.
129         (scan_reloc_for_stub): Add debug logging for no stub creation
130         for undefined symbols.
131
132 2017-05-23  Alan Modra  <amodra@gmail.com>
133
134         PR 21503
135         * options.h: Add --emit-stub-syms option.
136         * powerpc.cc (object_id): New.
137         (Powerpc_relobj): Add uniq_ and accessor.  Sort variables for
138         better packing.
139         (Powerpc_dynobj): Sort variables for better packing.
140         (Target_powerpc::define_local): New function.
141         (Target_powerpc::group_sections): Pass stub table size to
142         Stub_table constructor.
143         (Target_powerpc::do_relax): Define stub and glink symbols.
144         (Stub_table): Add uniq_ variable, and id param to constructor.
145         (Stub_table::Plt_stub_ent): Add indx_ variable.
146         (Stub_table::Branch_stub_entries): Move typedef earlier.
147         (Stub_table::branch_stub_size): Replace "to" parameter with a
148         Branch_stub_entries iterator.
149         (Stub_table::add_long_branch_entry): Adjust to suit.
150         (Stub_table::add_plt_call_entry): Set indx_.
151         (Stub_table::define_stub_syms): New function.
152
153 2017-05-15  Eric Christopher <echristo@gmail.com>
154
155         * layout.cc (Layout::segment_precedes): Add a case for testing
156         pointer equality when determining which segment precedes
157         another.
158
159 2017-05-13  James Clarke  <jrtc27@jrtc27.com>
160
161         PR gold/21444
162         * gold.cc (Target_sparc::Relocate::relocate_tls): Local
163         variables are final for position-independent executables. This
164         has to be consistent with Target_sparc::Scan::local otherwise
165         they will disagree as to whether local-exec is used.
166
167 2017-05-12  Igor Kudrin  <ikudrin@accesssoftek.com>
168
169         PR gold/21430
170         * aarch64.cc
171         (AArch64_relobj::convert_input_section_to_relaxed_section):
172         Set the section offset to -1ULL.
173         (Target_aarch64::relocate_section): Adjust the view in case
174         of a relaxed input section.
175         * testsuite/Makefile.am (pr21430): New test.
176         * testsuite/Makefile.in: Regenerate
177         * testsuite/pr21430.s: New test source file.
178         * testsuite/pr21430.sh: New test script.
179
180 2017-04-27  Alan Modra  <amodra@gmail.com>
181
182         * testsuite/plugin_section_order.c (onload): Add missing break.
183
184 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
185
186         * mips.cc (Mips_got_entry::hash()): Shift addend to reduce
187         possibility of collisions.
188         (Mips_got_entry::equals): Fix case for GOT_TLS_LDM
189         entries.
190
191 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
192
193         * mips.cc (Mips_relobj::merge_processor_specific_data_): New data
194         member.
195         (Mips_relobj::merge_processor_specific_data): New method.
196         (Mips_relobj::do_read_symbols): Set merge_processor_specific_data_
197         to false, only if the input file is a binary or if object has no
198         contents except the section name string table and an empty symbol
199         table with the undefined symbol.
200         (Target_mips::do_finalize_sections): Refactor.  Skip empty object files
201         for merging processor-specific data.
202
203 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
204
205         * mips.cc (Target_mips::Relocate::calculated_value_): New data
206         member.
207         (Target_mips::Relocate::calculate_only_): Likewise.
208         (Target_mips::Relocate::relocate): Handle multiple consecutive
209         relocations with the same offset.
210
211 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
212
213         * mips.cc (Target_mips::Relocate::relocate): Remove redundant
214         checks for relocatable link.
215         (Mips_relocate_functions::reljalr): Likewise.
216
217 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
218
219         * mips.cc (class Mips_output_section_options): New class.
220         (Target_mips::do_make_output_section): New method.
221
222 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
223
224         * mips.cc (Mips_relocate_functions::rel26): Don't print relocation
225         overflow error message.
226         (Target_mips::relocate_special_relocatable): Improve relocation
227         overflow error message.
228         (Target_mips::Relocate::relocate): Likewise.
229
230 2017-03-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
231
232         * mips.cc (symbol_refs_local): Return false if a symbol
233         is from a dynamic object.
234         (Target_mips::got_section): Make _GLOBAL_OFFSET_TABLE_ STV_HIDDEN.
235         (Target_mips::set_gp): Refactor.  Make _gp STT_NOTYPE and
236         STB_LOCAL.
237         (Target_mips::do_finalize_sections): Set _gp after all the checks
238         for creating .got are done.
239         (Target_mips::Scan::global): Remove unused code.
240
241 2017-02-22  Alan Modra  <amodra@gmail.com>
242
243         * powerpc.cc (Target_powerpc::make_iplt_section): Check that
244         output_section exists before attempting add_output_section_data.
245         (Target_powerpc::make_brlt_section): Likewise.
246
247 2017-02-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
248
249         * mips.cc (Target_mips::Scan::get_reference_flags): Remove
250         gold_unreachable from default case.
251
252 2017-02-15  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
253
254         PR gold/21111
255         * mips.cc (Mips_relocate_functions::relhigher): New method.
256         (Mips_relocate_functions::relhighest): Likewise.
257         (mips_get_size_for_reloc): Add support for relocs: R_MIPS_HIGHER and
258         R_MIPS_HIGHEST.
259         (Target_mips::Scan::local): Add support for relocs: R_MIPS_HIGHER,
260         R_MIPS_HIGHEST, R_MICROMIPS_HIGHER and R_MICROMIPS_HIGHEST.
261         (Target_mips::Scan::global): Likewise.
262         (Target_mips::Scan::get_reference_flags): Likewise.
263         (Target_mips::Relocate::relocate): Call static methods for resolving
264         HIGHER and HIGHEST relocations.
265
266 2017-02-03  Rahul Chaudhry  <rahulchaudhry@google.com>
267
268         * x86_64.cc (Target_x86_64::do_can_check_for_function_pointers):
269         Return true even when building pie binaries.
270         (Target_x86_64::possible_function_pointer_reloc): Check opcode
271         for R_X86_64_PC32 relocations.
272         (Target_x86_64::local_reloc_may_be_function_pointer): Pass
273         extra arguments to local_reloc_may_be_function_pointer.
274         (Target_x86_64::global_reloc_may_be_function_pointer): Likewise.
275         * gc.h (gc_process_relocs): Add check for STT_FUNC.
276         * testsuite/Makefile.am (icf_safe_pie_test): New test case.
277         * testsuite/Makefile.in: Regenerate.
278         * testsuite/icf_safe_pie_test.sh: New shell script.
279
280 2017-02-03  Alan Modra  <amodra@gmail.com>
281
282         * powerpc.cc (Powerpc_relobj::make_toc_relative): Don't crash
283         when no .toc section exists.
284
285 2017-01-31  Cary Coutant  <ccoutant@gmail.com>
286
287         PR gold/21090
288         * x86_64.cc (Target_x86_64::can_convert_mov_to_lea): Add check
289         for predefined symbol.
290         (Target_x86_64::Relocate::relocate): Fix formatting.
291
292 2017-01-23  Rahul Chaudhry  <rahulchaudhry@google.com>
293
294         * testsuite/icf_safe_so_test.sh: Use "set -e".
295         * testsuite/icf_safe_test.sh: Likewise.
296         * testsuite/icf_test.sh: Likewise.
297
298 2017-01-23  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
299
300         * mips.cc (Mips_output_data_plt::rel_plt): Remove const from return
301         type.
302         (Target_mips::make_plt_entry): Make the sh_info field of .rel.plt
303         point to .plt.
304
305 2017-01-23  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
306
307         PR gold/21054
308         * mips.cc (Mips_got_info::record_global_got_symbol): Don't add symbol
309         to the dynamic symbol table if it is forced to local visibility.
310         (Target_mips::do_finalize_sections): Don't add __RLD_MAP symbol to the
311         dynamic symbol table if it is forced to local visibility.
312
313 2017-01-20  Nick Clifton  <nickc@redhat.com>
314
315         * aarch64.cc (Stub_template_repertoire): Change ST_E_835769_INSNS
316         from a pointer to an array.
317
318 2017-01-13  H.J. Lu  <hongjiu.lu@intel.com>
319
320         PR gold/21040
321         * powerpc.cc (Powerpc_relobj<size, big_endian>::make_toc_relative):
322         Cast 0x80008000 to uint64_t.
323
324 2017-01-12  Cary Coutant  <ccoutant@gmail.com>
325
326         * object.cc (Sized_relobj_file): Fix byte counts for calls to memmem.
327
328 2017-01-11  Cary Coutant  <ccoutant@gmail.com>
329
330         PR gold/21040
331         * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry):
332         Remove unnecessary 'typename' keyword.
333         (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise.
334         (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise.
335         (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise.
336         (Output_data_plt_x86_64_bnd::do_write): Likewise.
337
338 2017-01-11  Cary Coutant  <ccoutant@gmail.com>
339
340         PR gold/21040
341         * x86_64.cc (Output_data_plt_x86_64_bnd::do_fill_first_plt_entry):
342         Remove unnecessary 'typename' keyword.
343         (Output_data_plt_x86_64_bnd::do_fill_plt_entry): Likewise.
344         (Output_data_plt_x86_64_bnd::do_fill_tlsdesc_entry): Likewise.
345         (Output_data_plt_x86_64_bnd::fill_aplt_entry): Likewise.
346         * testsuite/copy_test_relro_1.cc (p, b, c, q): Add separate extern
347         declarations.
348
349 2017-01-11  Cary Coutant  <ccoutant@gmail.com>
350
351         PR gold/21039
352         * testsuite/script_test_13.sh: Adjust patterns to work for i386.
353         * testsuite/script_test_15a.sh: Likewise.
354         * testsuite/script_test_15b.sh: Likewise.
355         * testsuite/script_test_15c.sh: Likewise.
356
357 2017-01-11  Alan Modra  <amodra@gmail.com>
358
359         * powerpc.cc (class Powerpc_copy_relocs): New.
360         (Powerpc_copy_relocs::emit): New function.
361         (Powerpc_relobj::relatoc_, toc_, no_toc_opt_): New variables.
362         (Powerpc_relobj::toc_shndx, set_no_toc_opt, no_toc_opt): New inlines.
363         (Powerpc_relobj::do_relocate_sections): New function.
364         (Powerpc_relobj::make_toc_relative): Likewise.
365         (Powerpc_relobj::do_find_special_sections): Stash away .rela.toc
366         and .toc too.
367         (ok_lo_toc_insn): Move earlier, and handle more insns.
368         (Target_powerpc::Scan::local): If optimizing toc accesses, set
369         no_toc_opt for entries we can't edit.  Check insn validity.
370         Emit "toc optimization is not supported" warning, downgraded
371         from error.
372         (Target_powerpc::Scan::global): Likewise.
373         (Target_powerpc::Relocate::relocate): Edit TOC indirect code
374         to TOC relative.  Don't emit "toc optimization is not supported"
375         error here.
376
377 2017-01-10  Cary Coutant  <ccoutant@gmail.com>
378
379         * aarch64.cc (AArch64_relobj::do_relocate_sections): Call
380         Sized_relobj_file::relocate_section_range().
381         * arm.cc (Arm_relobj::do_relocate_sections): Likewise.
382         * object.h (Sized_relobj_file::relocate_section_range): New method.
383         * reloc.cc (Sized_relobj_file::do_relocate_sections): Move
384         implementation...
385         (Sized_relobj_file::relocate_section_range): ...to new method.
386
387 2017-01-10  Alan Modra  <amodra@gmail.com>
388
389         * testsuite/ver_test_8.sh: Accept .TOC. in lieu of
390         _GLOBAL_OFFSET_TABLE_.  Allow zero count.
391         * testsuite/copy_test_relro_1.cc (c, q): New vars.
392         * testsuite/copy_test_relro.cc: Rewrite to test read-only
393         status of variables directly.  Reference new vars in
394         read-only data.
395
396 2017-01-10  Alan Modra  <amodra@gmail.com>
397
398         * options.h: Add --secure-plt option.
399         * powerpc.cc (Target_powerpc::Scan::local): Detect and error
400         on -fPIC -mbss-plt code.
401         (Target_powerpc::Scan::global): Likewise.
402
403 2017-01-09  Alan Modra  <amodra@gmail.com>
404
405         * powerpc.cc (Target_powerpc::make_plt_section): Point sh_info of
406         ".rela.plt" at ".plt".
407
408 2017-01-07  Alan Modra  <amodra@gmail.com>
409
410         * powerpc.cc: Use shorter equivalent elfcpp typedef for
411         Reltype and reloc_size throughout.
412         (Target_powerpc::symval_for_branch): Exclude dynamic symbols.
413         (Target_powerpc::Scan::local): Use local var r_sym.
414         (Target_powerpc::Scan::global: Likewise.
415         (Target_powerpc::Relocate::relocate): Delete shadowing r_sym.
416
417 2017-01-02  Alan Modra  <amodra@gmail.com>
418
419         Update year range in copyright notice of all files.
420
421 For older changes see ChangeLog-2016
422 \f
423 Copyright (C) 2017 Free Software Foundation, Inc.
424
425 Copying and distribution of this file, with or without modification,
426 are permitted in any medium without royalty provided the copyright
427 notice and this notice are preserved.
428
429 Local Variables:
430 mode: change-log
431 left-margin: 8
432 fill-column: 74
433 version-control: never
434 End: