x86-64: Generate branch with PLT32 relocation
[external/binutils.git] / bfd / ChangeLog
1 2018-02-13  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR gas/22791
4         * elf64-x86-64.c (is_32bit_relative_branch): Removed.
5         (elf_x86_64_relocate_section): Check PIC relocations in PIE.
6         Remove is_32bit_relative_branch usage.  Disallow PC32 reloc
7         against protected function in shared object.
8
9 2018-02-13  Sergei Trofimovich  <slyfox@inbox.ru>
10
11         PR 22828
12         * po/ru.po: Fix typo in Russian translation.
13
14 2018-02-13  Maciej W. Rozycki  <macro@mips.com>
15
16         * wasm-module.c (wasm_scan_name_function_section): Rename
17         `index' local variable to `idx'.
18
19 2018-02-13  Nick Clifton  <nickc@redhat.com>
20
21         PR 22823
22         Fix compile time warnings generated by gcc version 8.
23         * libbfd-in.h: Remove extraneous text from prototypes.
24         Add prototypes for bfd_false_any, bfd_true_any,
25         bfd_nullvoidptr_any, bfd_0_any, bfd_0u_any, bfd_0l_any,
26         bfd_n1_any, bfd_void_any.
27         (_bfd_generic_bfd_copy_private_bfd_data): Use vararg based dummy
28         function.
29         (_bfd_generic_bfd_merge_private_bfd_data): Likewise.
30         (_bfd_generic_bfd_set_private_flags): Likewise.
31         (_bfd_generic_bfd_copy_private_section_data): Likewise.
32         (_bfd_generic_bfd_copy_private_symbol_data): Likewise.
33         (_bfd_generic_bfd_copy_private_header_data): Likewise.
34         (_bfd_generic_bfd_print_private_bfd_data): Likewise.
35         (_bfd_noarchive_construct_extended_name_table): Likewise.
36         (_bfd_noarchive_truncate_arname): Likewise.
37         (_bfd_noarchive_write_ar_hdr): Likewise.
38         (_bfd_noarchive_get_elt_at_index): Likewise.
39         (_bfd_nosymbols_canonicalize_symtab): Likewise.
40         (_bfd_nosymbols_print_symbol): Likewise.
41         (_bfd_nosymbols_get_symbol_info): Likewise.
42         (_bfd_nosymbols_get_symbol_version_string): Likewise.
43         (_bfd_nosymbols_bfd_is_local_label_name): Likewise.
44         (_bfd_nosymbols_bfd_is_target_special_symbol): Likewise.
45         (_bfd_nosymbols_get_lineno): Likewise.
46         (_bfd_nosymbols_find_nearest_line): Likewise.
47         (_bfd_nosymbols_find_line): Likewise.
48         (_bfd_nosymbols_find_inliner_info): Likewise.
49         (_bfd_nosymbols_bfd_make_debug_symbol): Likewise.
50         (_bfd_nosymbols_read_minisymbols): Likewise.
51         (_bfd_nosymbols_minisymbol_to_symbol): Likewise.
52         (_bfd_norelocs_bfd_reloc_type_lookup): Likewise.
53         (_bfd_norelocs_bfd_reloc_name_lookup): Likewise.
54         (_bfd_nowrite_set_arch_mach): Likewise.
55         (_bfd_nowrite_set_section_contents): Likewise.
56         (_bfd_nolink_sizeof_headers): Likewise.
57         (_bfd_nolink_bfd_get_relocated_section_contents): Likewise.
58         (_bfd_nolink_bfd_relax_section): Likewise.
59         (_bfd_nolink_bfd_gc_sections): Likewise.
60         (_bfd_nolink_bfd_lookup_section_flags): Likewise.
61         (_bfd_nolink_bfd_merge_sections): Likewise.
62         (_bfd_nolink_bfd_is_group_section): Likewise.
63         (_bfd_nolink_bfd_discard_group): Likewise.
64         (_bfd_nolink_bfd_link_hash_table_create): Likewise.
65         (_bfd_nolink_bfd_link_add_symbols): Likewise.
66         (_bfd_nolink_bfd_link_just_syms): Likewise.
67         (_bfd_nolink_bfd_copy_link_hash_symbol_type): Likewise.
68         (_bfd_nolink_bfd_final_link): Likewise.
69         (_bfd_nolink_bfd_link_split_section): Likewise.
70         (_bfd_nolink_section_already_linked): Likewise.
71         (_bfd_nolink_bfd_define_common_symbol): Likewise.
72         (_bfd_nolink_bfd_define_start_stop): Likewise.
73         (_bfd_nodynamic_canonicalize_dynamic_symtab): Likewise.
74         (_bfd_nodynamic_get_synthetic_symtab): Likewise.
75         (_bfd_nodynamic_get_dynamic_reloc_upper_bound _bfd_): Likewise.
76         (_bfd_nodynamic_canonicalize_dynamic_reloc): Likewise.
77         * libbfd.c (bfd_false_any): New function.  Like bfd_false but
78         accepts one or more arguments.
79         (bfd_true_any): Likewise.
80         (bfd_nullvoidptr_any): Likewise.
81         (bfd_0_any): Likewise.
82         (bfd_0u_any): Likewise.
83         (bfd_0l_any): Likewise.
84         (_bfd_n1_any): Likewise.
85         (bfd_void_any): Likewise.
86         * libbfd.h (extern): Regenerate
87         * aout-target.h (MY_bfd_is_target_special_symbol): Use vararg
88         based dummy function.
89         * aout-tic30.c (tic30_aout_set_arch_mach): Likewise.
90         * binary.c (binary_get_symbol_info): Likewise.
91         * coff-alpha.c (alpha_ecoff_backend_data): Likewise.
92         * coff-mips.c (mips_ecoff_backend_data): Likewise.
93         * coffcode.h (coff_set_alignment_hook): Likewise.
94         (symname_in_debug_hook): Likewise.
95         (bfd_coff_backend_data bigobj_swap_table): Likewise.
96         * elf-m10300.c (elf_backend_omit_section_dynsym): Likewise.
97         * elf32-cr16.c (elf_backend_omit_section_dynsym): Likewise.
98         * elf32-lm32.c (elf_backend_omit_section_dynsym): Likewise.
99         * elf32-m32r.c (elf_backend_omit_section_dynsym): Likewise.
100         * elf32-metag.c (elf_backend_omit_section_dynsym): Likewise.
101         * elf32-score.c (elf_backend_omit_section_dynsym): Likewise.
102         * elf32-score7.c (elf_backend_omit_section_dynsym): Likewise.
103         * elf32-xstormy16.c (elf_backend_omit_section_dynsym): Likewise.
104         * elf32-xtensa.c (elf_backend_omit_section_dynsym): Likewise.
105         * elf64-alpha.c (elf_backend_omit_section_dynsym): Likewise.
106         * elf64-hppa.c (elf_backend_omit_section_dynsym): Likewise.
107         * elf64-ia64-vms.c (elf_backend_omit_section_dynsym): Likewise.
108         * elf64-mmix.c (elf_backend_omit_section_dynsym): Likewise.
109         * elf64-sh64.c (elf_backend_omit_section_dynsym): Likewise.
110         * elfnn-ia64.c (elf_backend_omit_section_dynsym): Likewise.
111         * elfxx-target.h (bfd_elfNN_bfd_debug_info_accumulate): Likewise.
112         (bfd_elfNN_bfd_make_debug_symbol): Likewise.
113         (bfd_elfNN_bfd_merge_private_bfd_data): Likewise.
114         (bfd_elfNN_bfd_set_private_flags): Likewise.
115         (bfd_elfNN_bfd_is_target_special_symbol): Likewise.
116         (elf_backend_init_index_section): Likewise.
117         (elf_backend_allow_non_load_phdr): Likewise.
118         * elfxx-x86.h (elf_backend_omit_section_dynsym): Likewise.
119         * i386msdos.c (msdos_bfd_is_target_special_symbol): Likewise.
120         * ieee.c (ieee_construct_extended_name_table): Likewise.
121         (ieee_write_armap): Likewise.
122         (ieee_write_ar_hdr): Likewise.
123         (ieee_bfd_is_target_special_symbol): Likewise.
124         * ihex.c (ihex_canonicalize_symtab): Likewise.
125         (ihex_bfd_is_target_special_symbol): Likewise.
126         * libaout.h (aout_32_bfd_is_target_special_symbol): Likewise.
127         * libecoff.h (_bfd_ecoff_bfd_is_target_special_symbol): Likewise.
128         (_bfd_ecoff_set_alignment_hook): Likewise.
129         * mach-o-target.c (bfd_mach_o_bfd_is_target_special_symbol): Likewise.
130         * mmo.c (mmo_bfd_is_target_special_symbol): Likewise.
131         * nlm-target.h (nlm_bfd_is_target_special_symbol): Likewise.
132         * oasys.c (oasys_construct_extended_name_table): Likewise.
133         (oasys_write_armap): Likewise.
134         (oasys_write_ar_hdr): Likewise.
135         (oasys_bfd_is_target_special_symbol): Likewise.
136         * pef.c (bfd_pef_bfd_is_target_special_symbol): Likewise.
137         * plugin.c (bfd_plugin_bfd_is_target_special_symbol): Likewise.
138         * ppcboot.c (ppcboot_bfd_is_target_special_symbol): Likewise.
139         * som.c (som_bfd_is_target_special_symbol): Likewise.
140         * srec.c (srec_bfd_is_target_special_symbol): Likewise.
141         * tekhex.c (tekhex_bfd_is_target_special_symbol): Likewise.
142         * verilog.c (verilog_bfd_is_target_special_symbol): Likewise.
143         * versados.c (versados_bfd_is_target_special_symbol): Likewise.
144         (versados_bfd_reloc_name_lookup): Likewise.
145         * vms-alpha.c (vms_bfd_is_target_special_symbol): Likewise.
146         (vms_bfd_define_start_stop): Likewise.
147         (alpha_vms_bfd_is_target_special_symbol): Likewise.
148         * wasm-module.c (wasm_bfd_is_target_special_symbol): Likewise.
149         * xsym.c (bfd_sym_bfd_is_target_special_symbol): Likewise.
150         * elf32-arc.c (get_replace_function): Assign replacement function
151         to func pointer.
152         * elf32-i370.c (i370_noop): Update prototype.
153
154 2018-02-13  Alan Modra  <amodra@gmail.com>
155
156         PR 22836
157         * elf.c (_bfd_elf_fixup_group_sections): Account for removed
158         relocation sections.  If size reduces to just the flag word,
159         remove that too and mark with SEC_EXCLUDE.
160         * elflink.c (bfd_elf_final_link): Strip empty group sections.
161
162 2018-02-13  Alan Modra  <amodra@gmail.com>
163
164         PR 22829
165         * elf.c (assign_file_positions_for_non_load_sections): Rewrite
166         PT_GNU_RELRO setup.
167
168 2018-02-12  Zebediah Figura  <z.figura12@gmail.com>
169
170         * i386msdos.c (msdos_mkobject); New function.
171         (msdos_object_p): New function.
172         (i386_msdos_vec): Use msdos_object_p as the check_format
173         function.
174         * peicode.h: Rename external_PEI_DOS_hdr, DOSMAGIC, and
175         NT_SIGNATURE to external_DOS_hdr, IMAGE_DOS_SIGNATURE, and
176         IMAGE_NT_SIGNATURE.
177         * peXXigen.c: Likewise.
178         * coff-ia64.c: Likewise.
179
180 2018-02-12  Nick Clifton  <nickc@redhat.com>
181
182         * elf32-nds32.c (nds32_elf_relax_longjump3): Remove redundant
183         assignment.
184         * elf32-arc.c (elf_arc_relocate_section): Likewise.
185
186 2018-02-09  Eric Botcazou  <ebotcazou@adacore.com>
187
188         * elfxx-sparc.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Reorder conditions.
189         (sparc_elf_append_rela): Assert that there is enough room in section.
190         (_bfd_sparc_elf_copy_indirect_symbol): Fix formatting.
191         (_bfd_sparc_elf_adjust_dynamic_symbol): Minor tweak.
192         (allocate_dynrelocs): Remove outdated comments and reorder conditions.
193         For a symbol subject to a GOT relocation, reserve a slot in the
194         relocation section if the symbol isn't dynamic and we are in PIC mode.
195         (_bfd_sparc_elf_relocate_section) <R_SPARC_GOTDATA_OP>: If relocation
196         is relaxed and a slot was reserved, generate a R_SPARC_NONE relocation.
197         <R_SPARC_GOTDATA_OP_HIX22>: Adjust comments.
198         <R_SPARC_PC10>: Reorder conditions.  Remove always-false assertion.
199         (_bfd_sparc_elf_finish_dynamic_symbol): Rename local_undefweak into
200         resolved_to_zero.  Do not generate a dynamic GOT relocation for an
201         undefined weak symbol with non-default visibility.  Remove superfluous
202         'else' and fix formatting.
203
204 2018-02-09  H.J. Lu  <hongjiu.lu@intel.com>
205
206         * elf32-i386.c (elf_i386_get_synthetic_symtab): Also handle
207         is_solaris.
208         (i386_elf32_sol2_vec): Don't declare.
209         (elf_i386_link_setup_gnu_properties): Also handle is_solaris.
210         Don't set need_global_offset_table.
211         (elf_i386_solaris_arch_bed): New.
212         (elf_backend_arch_data): Set to elf_i386_solaris_arch_bed for
213         Solaris.
214         * elf64-x86-64.c (elf_x86_64_get_synthetic_symtab): Check
215         target_os != is_nacl instead of target_os == is_normal.
216         (x86_64_elf64_sol2_vec): Don't declare.
217         (elf_x86_64_link_setup_gnu_properties): Check target_os !=
218         is_nacl instead of target_os == is_normal.  Don't set
219         need_global_offset_table.
220         (elf_x86_64_solaris_arch_bed): New.
221         (elf_backend_arch_data): Set to elf_x86_64_solaris_arch_bed for
222         Solaris.
223         * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Keep
224         _GLOBAL_OFFSET_TABLE_ for Solaris.
225         (_bfd_x86_elf_link_setup_gnu_properties): Don't copy
226         need_global_offset_table.
227         * elfxx-x86.h (elf_x86_target_os): Add is_solaris.
228         (elf_x86_link_hash_table): Remove need_global_offset_table.
229         (elf_x86_init_table): Likewise.
230
231 2018-02-08  H.J. Lu  <hongjiu.lu@intel.com>
232
233         * elf32-i386.c (elf32_i386_copy_solaris_special_section_fields):
234         Remove prototype.
235         (i386_elf32_sol2_vec): Declared.
236         (elf_i386_link_setup_gnu_properties): Set
237         need_global_offset_table with info->output_bfd->xvec.
238         * elf64-x86-64.c (elf64_x86_64_copy_solaris_special_section_fields):
239         Remove prototype.
240         (x86_64_elf64_sol2_vec): Declared.
241         (elf_x86_64_link_setup_gnu_properties): Set
242         need_global_offset_table with info->output_bfd->xvec.
243
244 2018-02-08  H.J. Lu  <hongjiu.lu@intel.com>
245
246         * elf32-i386.c (elf32_i386_copy_solaris_special_section_fields):
247         New prototype.
248         (elf_i386_link_setup_gnu_properties): Set need_global_offset_table
249         for Solaris.
250         * elf64-x86-64.c (elf64_x86_64_copy_solaris_special_section_fields):
251         New prototype.
252         (elf_x86_64_link_setup_gnu_properties): Set
253         need_global_offset_table for Solaris.
254         * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Keep the
255         unused _GLOBAL_OFFSET_TABLE_ for Solaris.
256         (_bfd_x86_elf_link_setup_gnu_properties): Copy
257         need_global_offset_table.
258         * elfxx-x86.h (elf_x86_link_hash_table): Add
259         need_global_offset_table.
260         (elf_x86_init_table): Likewise.
261
262 2018-02-08  Jim Wilson  <jimw@sifive.com>
263
264         * elfnn-riscv.c (riscv_elf_relocate_section): Add comment for previous
265         change.
266
267 2018-02-08  Nick Clifton  <nickc@redhat.com>
268
269         PR 22788
270         * elf.c (elf_parse_notes): Reject notes with excessuively large
271         alignments.
272
273 2018-02-07  Alan Modra  <amodra@gmail.com>
274
275         Revert 2018-01-17  Alan Modra  <amodra@gmail.com>
276         * elf32-ppc.c: Remove speculation barrier support.
277         * elf32-ppc.h: Likewise.
278         * elf64-ppc.c: Likewise.
279         * elf64-ppc.h: Likewise.
280
281 2018-02-06  Jim Wilson  <jimw@sifive.com>
282
283         * elfnn-riscv.c (riscv_elf_relocate_section): Return TRUE if used
284         callback to report an error.
285
286 2018-02-06  Eric Botcazou  <ebotcazou@adacore.com>
287
288         PR ld/22263
289         * elfxx-sparc.c (sparc_elf_tls_transition): Turn call to bfd_link_pic
290         into call to !bfd_link_executable and tidy up.
291         (_bfd_sparc_elf_check_relocs): Fix formatting and tidy up.
292         <R_SPARC_TLS_LE_HIX22>: Turn call to bfd_link_pic into call to
293         !bfd_link_executable.
294         <R_SPARC_TLS_IE_HI22>: Likewise.
295         <GOT relocations>: Remove useless code, tidy and merge related blocks.
296         <R_SPARC_TLS_GD_CALL>: Turn call to bfd_link_pic into call to
297         !bfd_link_executable.
298         <R_SPARC_WPLT30>: Tidy up.
299         (_bfd_sparc_elf_gc_mark_hook): Turn call to bfd_link_pic into call to
300         !bfd_link_executable.
301         (allocate_dynrelocs): Likewise.
302         (_bfd_sparc_elf_relocate_section): Fix formatting and tidy up.
303         <R_SPARC_TLS_GD_HI22>: Merge into...
304         <R_SPARC_TLS_GD_LO10>: ...this.  Adjust 4th argument in call to
305         sparc_elf_tls_transition and remove redundant code.
306         <R_SPARC_TLS_LDM_HI22>: Turn call to bfd_link_pic into call to
307         !bfd_link_executable.
308         <R_SPARC_TLS_LDO_HIX22>: Likewise.
309         <R_SPARC_TLS_LE_HIX22>: Likewise.  Tidy up.
310         <R_SPARC_TLS_LDM_CALL>: Likewise.
311         <R_SPARC_TLS_GD_CALL>: Likewise.  Tidy up.
312         <R_SPARC_TLS_GD_ADD>: Likewise.
313         <R_SPARC_TLS_LDM_ADD>: Likewise.
314         <R_SPARC_TLS_LDO_ADD>: Likewise.
315         <R_SPARC_TLS_IE_LD>: Likewise.
316
317 2018-02-06  MiloÅ¡ Stojanović  <milos.stojanovic@rt-rk.com>
318
319         PR 22789
320         * elfxx-mips.c (_bfd_mips_elf_find_nearest_line): If the dwarf
321         functions failed to find the function name, try the generic elf
322         find function instead.
323
324 2018-02-06  Sergio Durigan Junior  <sergiodj@redhat.com>
325
326         * coff-rs6000.c (xcoff_write_archive_contents_old): Use
327         'memcpy' instead of 'strncpy' when writing the magic number.
328
329 2018-02-06  Nick Clifton  <nickc@redhat.com>
330
331         PR 22794
332         * opncls.c (bfd_get_debug_link_info_1): Check the size of the
333         section before attempting to read it in.
334         (bfd_get_alt_debug_link_info): Likewise.
335
336 2018-02-06  Paul Carroll  <pcarroll@codesourcery.com>
337
338         * bfd/dwarf2.c (find_abstract_name): Modified to return file and
339         line information in addition to name, if they can be found.
340
341 2018-02-05  Renlin Li  <renlin.li@arm.com>
342
343         PR ld/22764
344         * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Relax the
345         R_AARCH64_ABS32 and R_AARCH64_ABS16 for absolute symbol. Apply the
346         check for writeable section as well.
347
348 2018-02-05  H.J. Lu  <hongjiu.lu@intel.com>
349
350         PR ld/22782
351         * elf32-i386.c (elf_i386_check_relocs): Set got_referenced if
352         _GLOBAL_OFFSET_TABLE_ is referenced or GOT is needed to resolve
353         undefined weak symbol to 0.
354         * elf64-x86-64.c (elf_x86_64_check_relocs): Set got_referenced
355         if _GLOBAL_OFFSET_TABLE_ is referenced.
356         * elfxx-x86.c (_bfd_x86_elf_size_dynamic_sections): Check
357         got_referenced instead of ref_regular_nonweak.  Remove the
358         unused _GLOBAL_OFFSET_TABLE_ from symbol table.
359         * elfxx-x86.h (elf_x86_link_hash_table): Add got_referenced.
360
361 2018-02-05  Maciej W. Rozycki  <macro@mips.com>
362
363         * elfnn-riscv.c (_bfd_riscv_relax_pc): Use `memset' to
364         initialize `hi_reloc'.
365
366 2018-02-05  Maciej W. Rozycki  <macro@mips.com>
367
368         * elfxx-mips.c (_bfd_mips_elf_section_processing): For
369         SHT_MIPS_REGINFO sections don't assert the correct size and
370         report an error instead.
371
372 2018-02-05  Maciej W. Rozycki  <macro@mips.com>
373
374         * elf.c (_bfd_elf_write_object_contents): Propagate a failure
375         status from `->elf_backend_section_processing'.
376
377 2018-02-02  Jim Wilson  <jimw@sifive.com>
378
379         PR ld/22756
380         * elfnn-riscv.c (riscv_relax_delete_bytes): New parameter link_info.
381         If link_info->wrap_hash, check for a duplicate symbol and ignore.
382         (_bfd_riscv_relax_call, bfd_riscv_relax_lui, _bfd_riscv_relax_tls_le):
383         Pass new argument to riscv_relax_delete_bytes.
384         (_bfd_riscv_relax_align, _bfd_riscv_relax_delete): Likewise.  Remove
385         ATTRIBUTE_UNUSED from link_info parameter.
386
387 2018-02-02  Alan Modra  <amodra@gmail.com>
388
389         * elf64-ppc.c (ppc64_elf_relocate_section): Don't relocate nops
390         emitted for toc sequence optimization.  Set and use "howto" later.
391
392 2018-02-01  Simon Marchi  <simon.marchi@ericsson.com>
393
394         * elf64-ppc.c (ppc64_elf_archive_symbol_lookup): Avoid pointer
395         arithmetic on NULL pointer.
396         * elflink.c (_bfd_elf_archive_symbol_lookup,
397         elf_link_add_archive_symbols): Likewise.
398
399 2018-01-31  Michael Matz  <matz@suse.de>
400
401         * elflink.c (bfd_elf_define_start_stop): Fix check of
402         def_dynamic.
403
404 2018-01-31  H.J. Lu  <hongjiu.lu@intel.com>
405
406         PR ld/21964
407         * elflink.c (bfd_elf_define_start_stop): Check if __start and
408         __stop symbols are referenced by shared objects.
409
410 2018-01-30  Alan Modra  <amodra@gmail.com>
411
412         PR 22758
413         * elf.c (_bfd_elf_map_sections_to_segments): Don't start a new
414         segment when demand paged with lma on the same page.  Test this
415         before load/non-load, executable/non-executable,
416         writable/non-writable tests and simplify.  Delete bogus relro
417         condition in writable/non-writable test.  Delete outdated
418         comment.  Formatting.
419
420 2018-01-30  Alan Modra  <amodra@gmail.com>
421
422         * elflink.c (bfd_elf_define_start_stop): Make __start and __stop
423         symbols dynamic.
424
425 2018-01-29  Alan Modra  <amodra@gmail.com>
426
427         PR 22741
428         * coffgen.c (coff_pointerize_aux): Ensure auxent tagndx is in
429         range before converting to a symbol table pointer.
430
431 2018-01-27  Nick Clifton  <nickc@redhat.com>
432
433         * po/ru.po: Updated Russian translation.
434
435 2018-01-26  Alan Modra  <amodra@gmail.com>
436
437         * elflink.c (bfd_elf_define_start_stop): Override symbols when
438         they are defined dynamically.
439
440 2018-01-26  Alan Modra  <amodra@gmail.com>
441
442         * elf64-ppc.c (ppc64_elf_size_stubs): Iterate sizing when
443         .branch_lt changes size.
444
445 2018-01-25  Alan Modra  <amodra@gmail.com>
446
447         PR 22746
448         * elfcode.h (elf_object_p): Avoid integer overflow.
449
450 2018-01-25  Eric Botcazou  <ebotcazou@adacore.com>
451
452         PR ld/22727
453         * elfxx-sparc.c (_bfd_sparc_elf_check_relocs) <R_SPARC_TLS_GD_CALL>:
454         Do a mere lookup of the __tls_get_addr symbol instead of adding it.
455
456         Revert
457         2017-10-19  H.J. Lu  <hongjiu.lu@intel.com>
458
459         PR ld/22263
460         * elfxx-sparc.c (sparc_elf_tls_transition): Replace
461         bfd_link_pic with !bfd_link_executable, !bfd_link_pic with
462         bfd_link_executable for TLS check.
463         (_bfd_sparc_elf_check_relocs): Likewise.
464         (allocate_dynrelocs): Likewise.
465         (_bfd_sparc_elf_relocate_section): Likewise.
466
467 2018-01-24  Renlin Li  <renlin.li@arm.com>
468
469         * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Add support for
470         BFD_RELOC_AARCH64_MOVW_PREL_G0, BFD_RELOC_AARCH64_MOVW_PREL_G0_NC,
471         BFD_RELOC_AARCH64_MOVW_PREL_G1, BFD_RELOC_AARCH64_MOVW_PREL_G1_NC,
472         BFD_RELOC_AARCH64_MOVW_PREL_G2, BFD_RELOC_AARCH64_MOVW_PREL_G2_NC,
473         BFD_RELOC_AARCH64_MOVW_PREL_G3.
474         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
475         (_bfd_aarch64_elf_resolve_relocation): Likewise.
476
477 2018-01-24  Renlin Li  <renlin.li@arm.com>
478
479         * reloc.c: Add BFD_RELOC_AARCH64_MOVW_PREL_G0,
480         BFD_RELOC_AARCH64_MOVW_PREL_G0_NC, BFD_RELOC_AARCH64_MOVW_PREL_G1,
481         BFD_RELOC_AARCH64_MOVW_PREL_G1_NC, BFD_RELOC_AARCH64_MOVW_PREL_G2,
482         BFD_RELOC_AARCH64_MOVW_PREL_G2_NC, BFD_RELOC_AARCH64_MOVW_PREL_G3.
483         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Add entries for
484         BFD_RELOC_AARCH64_MOVW_PREL_G0, BFD_RELOC_AARCH64_MOVW_PREL_G0_NC,
485         BFD_RELOC_AARCH64_MOVW_PREL_G1, BFD_RELOC_AARCH64_MOVW_PREL_G1_NC,
486         BFD_RELOC_AARCH64_MOVW_PREL_G2, BFD_RELOC_AARCH64_MOVW_PREL_G2_NC,
487         BFD_RELOC_AARCH64_MOVW_PREL_G3.
488         * bfd-in2.h: Regenerate.
489         * libbfd.h: Regenerate.
490
491 2018-01-23  Maciej W. Rozycki  <macro@mips.com>
492
493         * elfxx-mips.c (_bfd_mips_elf_final_link): Update a stale
494         `mips_elf32_section_processing' comment reference.
495
496 2018-01-20  H.J. Lu  <hongjiu.lu@intel.com>
497
498         PR ld/22721
499         * elfxx-x86.c (_bfd_x86_elf_link_check_relocs): Check the
500         versioned __tls_get_addr symbol.
501
502 2018-01-19  Nick Clifton  <nickc@redhat.com>
503
504         * po/fr.po: Updated French translation.
505
506 2018-01-18  Alan Modra  <amodra@gmail.com>
507
508         * elf32-ppc.c (ppc_elf_create_glink): Correct alignment of .glink.
509         * elf64-ppc.c (ppc64_elf_size_stubs): Handle negative plt_stub_align.
510         (ppc64_elf_build_stubs): Likewise.
511
512 2018-01-17  Nick Clifton  <nickc@redhat.com>
513
514         * po/ru.po: Updated Russian translation.
515         * po/uk/po: Updated Ukranian translation.
516
517 2018-01-17  Alan Modra  <amodra@gmail.com>
518
519         * elf64-ppc.c (ppc64_elf_build_stubs): Silence gcc warning.
520
521 2018-01-17  Alan Modra  <amodra@gmail.com>
522
523         * elf32-ppc.c (GLINK_ENTRY_SIZE): Handle speculation barrier.
524         (CRSETEQ, BEQCTRM): Define.
525         (is_nonpic_glink_stub): Don't check bctr.
526         (ppc_elf_link_hash_table_create): Init new ppc_elf_params field.
527         (ppc_elf_relax_section): Size speculation barrier.
528         (output_bctr): New function.
529         (write_glink_stub): Use output_bctr.
530         (ppc_elf_relocate_section): Use output_bctr for long branch stub.
531         (ppc_elf_finish_dynamic_symbol): Likewise.
532         (ppc_elf_finish_dynamic_sections): Use output_bctr.
533         * elf32-ppc.h (struct ppc_elf_params): Add speculate_indirect_jumps.
534         * elf64-ppc.c (CRSETEQ, BEQCTRM, BEQCTRLM): Define.
535         (GLINK_PLTRESOLVE_SIZE): Size speculation barrier.
536         (size_global_entry_stubs): Handle speculation barrier sizing.
537         (plt_stub_size): Likewise.
538         (output_bctr): New function.
539         (build_plt_stub, build_tls_get_addr_stub): Output speculation
540         barrier.
541         (ppc_build_one_stub): Likewise for ppc_stub_plt_branch.
542         (ppc_size_one_stub): Size speculation barrier in ppc_stub_plt_branch.
543         (build_global_entry_stubs): Output speculation barrier.
544         (ppc64_elf_build_stubs): Likewise in __glink_PLTresolve stub.
545         * elf64-ppc.h (struct ppc64_elf_params): Add speculate_indirect_jumps.
546
547 2018-01-17  Alan Modra  <amodra@gmail.com>
548
549         * elf32-ppc.c (GLINK_ENTRY_SIZE): Add parameters, handle
550         __tls_get_addr_opt, and alignment sizing.
551         (TLS_GET_ADDR_GLINK_SIZE): Delete.
552         (is_nonpic_glink_stub): Don't use GLINK_ENTRY_SIZE.
553         (ppc_elf_get_synthetic_symtab): Recognize stubs spaced at 4, 6,
554         or 8 insns.
555         (ppc_elf_link_hash_table_create): Init new ppc_elf_params field.
556         (allocate_dynrelocs): Use new GLINK_ENTRY_SIZE.
557         (ppc_elf_size_dynamic_sections): Likewise.  Size branch table
558         by PLT reloc count.
559         (write_glink_stub): Handle __tls_get_addr_opt stub.
560         Pad out to size given by GLINK_ENTRY_SIZE.
561         (ppc_elf_relocate_section): Adjust write_glink_stub call.
562         (ppc_elf_finish_dynamic_symbol): Likewise.
563         (ppc_elf_finish_dynamic_sections): Write PLTresolve without using
564         insn array since so many need rewriting.
565         * elf32-ppc.h (struct ppc_elf_params): Add plt_stub_align.
566         * elf64-ppc.c (GLINK_PLTRESOLVE_SIZE): Rename from
567         GLINK_CALL_STUB_SIZE.  Add htab param and evaluate to size without
568         nops.  Adjust all uses.
569         (ppc64_elf_get_synthetic_symtab): Don't use GLINK_CALL_STUB_SIZE
570         in glink_vma calculation.
571         (struct ppc_link_hash_table): Add global_entry section pointer.
572         (create_linkage_sections): Create separate section for global
573         entry stubs.
574         (PPC_LO, PPC_HI, PPC_HA): Move earlier.
575         (size_global_entry_stubs): Handle sizing for aligned stubs.
576         (ppc64_elf_size_dynamic_sections): Handle global_entry alloc,
577         and don't stash end of glink branch table in rawsize.
578         (ppc_build_one_stub): Rewrite stub size calculations.
579         (build_global_entry_stubs): Use new section.
580         (ppc64_elf_build_stubs): Don't pad __glink_PLTresolve with nops.
581         Build lazy link stubs out to end of section.  Build global entry
582         stubs in new section.
583
584 2018-01-15  Nick Clifton  <nickc@redhat.com>
585
586         * po/uk.po: Updated Ukranian translation.
587
588 2018-01-13  Nick Clifton  <nickc@redhat.com>
589
590         * po/bfd.pot: Regenerated.
591
592 2018-01-13  Nick Clifton  <nickc@redhat.com>
593
594         * version.m4: Bump version to 2.30.51
595         * configure: Regenerate.
596
597 2018-01-13  Nick Clifton  <nickc@redhat.com>
598
599         2.30 branch created.
600
601 2018-01-12  Jens Widell  <jl@opera.com>
602
603         * elf.c (setup_group): Optimize search for group by remembering
604         last found group and restarting search at that index.
605         * elf-bfd.h (struct elf_obj_tdata): Add group_search_offset field.
606
607 2018-01-12  Gunther Nikl  <gnikl@users.sourceforge.net>
608
609         * aoutx.h (aout_link_check_ar_symbols): Remove default and handle
610         bfd_link_common_skip_none in switch.
611
612 2018-01-12  Alan Modra  <amodra@gmail.com>
613
614         PR ld/22649
615         * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Ignore dynamic
616         references on forced local symbols.
617
618 2018-01-12  Vlad Ivanov  <vlad@ivanov.email>
619
620         * elfxx-mips.c (_bfd_mips_elf_final_link): Notify user when
621         .reginfo section has wrong size.
622
623 2018-01-11  H.J. Lu  <hongjiu.lu@intel.com>
624
625         PR ld/22393
626         * elf.c (_bfd_elf_map_sections_to_segments): When generating
627         separate code and read-only data LOAD segments, create a new
628         LOAD segment if the previous section contains text and the
629         current section doesn't or vice versa.  Don't put a writable
630         section in a read-only segment if there is a RELRO segment.
631
632 2018-01-11  H.J. Lu  <hongjiu.lu@intel.com>
633
634         PR ld/22649
635         * elflink.c (bfd_elf_gc_mark_dynamic_ref_symbol): Ignore dynamic
636         references on forced local symbols.
637
638 2018-01-11  H.J. Lu  <hongjiu.lu@intel.com>
639
640         PR ld/22677
641         * elflink.c (bfd_elf_gc_sections): Keep all PREINIT_ARRAY,
642         INIT_ARRAY as well as FINI_ARRAY sections for ld -r --gc-section.
643
644 2017-09-27  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
645
646         PR 22662
647         * elf32-nds32.c (nds32_elf_relax_loadstore): Fix a typographical error.
648
649 2018-01-03  John Baldwin  <jhb@FreeBSD.org>
650
651         * elf.c (elfcore_grok_freebsd_note): Handle
652         NT_FREEBSD_PROCSTAT_PROC, NT_FREEBSD_PROCSTAT_FILES, and
653         NT_FREEBSD_PROCSTAT_VMMAP.
654
655 2018-01-03  Alan Modra  <amodra@gmail.com>
656
657         Update year range in copyright notice of all files.
658
659 For older changes see ChangeLog-2017
660 \f
661 Copyright (C) 2018 Free Software Foundation, Inc.
662
663 Copying and distribution of this file, with or without modification,
664 are permitted in any medium without royalty provided the copyright
665 notice and this notice are preserved.
666
667 Local Variables:
668 mode: change-log
669 left-margin: 8
670 fill-column: 74
671 version-control: never
672 End: