68a23d11d51fc93c5647a558cefb370f9ae37bcf
[external/binutils.git] / bfd / ChangeLog
1 2016-08-29  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR ld/14961
4         PR ld/20515
5         * elf32-i386.c (elf_i386_check_relocs): Issue an error when
6         R_386_PC32 relocation is used to call IFUNC function in PIC
7         object.
8
9 2016-08-27  Alan Modra  <amodra@gmail.com>
10
11         PR 20520
12         * elf.c (_bfd_elf_setup_sections): Check that SHT_GROUP sections
13         have corresponding SHF_GROUP sections.
14         (bfd_elf_set_group_contents): Comment.
15
16 2016-08-27  Alan Modra  <amodra@gmail.com>
17
18         PR 20519
19         * elf64-ppc.c (pc_dynrelocs): New function.
20         (ppc64_elf_relocate_section): Use it and must_be_dyn_reloc to
21         handle pic dynamic relocs.
22
23 2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24
25         * bfd-in.h (struct elf32_arm_params): Define.
26         (bfd_elf32_arm_set_target_relocs): Rename into ...
27         (bfd_elf32_arm_set_target_params): This.  Use a struct
28         elf32_arm_params to pass all parameters but the bfd and bfd_link_info.
29         * bfd-in2.h: Regenerate.
30         * elf32-arm.c (bfd_elf32_arm_set_target_relocs): Rename into ...
31         (bfd_elf32_arm_set_target_params): This.  Pass all values via a struct
32         elf32_arm_params rather than as individual parameters.
33
34 2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35
36         * elf32-arm.c (elf32_arm_get_stub_entry): Assert that we don't access
37         passed the end of htab->stub_group array.
38         (elf32_arm_create_or_find_stub_sec): Likewise.
39         (elf32_arm_create_stub): Likewise.
40
41 2016-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
42
43         * elf32-arc.c (elf_arc_relocate_section): Changed. Set should_relocate
44         to TRUE for GOT and TLS relocs.
45
46 2016-08-26  Cupertino Miranda  <cmiranda@synospsys.com>
47
48         * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed.
49
50 2016-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
51
52         * elf-bfd.h: Added ARC_ELF_DATA to enum elf_target_id.
53         * elf32-arc.c (struct elf_arc_link_hash_entry): Added.
54         (struct elf_arc_link_hash_table): Likewise.
55         (elf_arc_link_hash_newfunc): Likewise.
56         (elf_arc_link_hash_table_free): Likewise.
57         (arc_elf_link_hash_table_create): Likewise.
58         (elf_arc_relocate_section): Fixed conditions related to dynamic
59         (elf_arc_check_relocs): Likewise.
60         (arc_elf_create_dynamic_sections): Added
61         (elf_arc_adjust_dynamic_symbol): Changed access to .rela.bss to be done
62         through the hash table.
63
64 2016-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
65
66         * arc-got.h (relocate_fix_got_relocs_for_got_info): Fixed addresses in
67         debug comments. Fixed address in .got related to TLS_IE_GOT dynamic
68         relocation.
69
70 2016-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
71
72         * reloc.c: Fixed type in ARC_SECTOFF relocations. Added ARC_SDA_12
73         relocation.
74         * bfd-in2.h: Regenerated from the previous changes.
75         * libbfd.h: Regenerated from the previous changes.
76
77 2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
78
79         * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add a new parameter for
80         the input import library bfd.
81         * bfd-in2.h: Regenerate.
82         * elf32-arm.c (struct elf32_arm_link_hash_table): New in_implib_bfd
83         and new_cmse_stub_offset fields.
84         (stub_hash_newfunc): Initialize stub_offset and stub_template_size to
85         -1.
86         (elf32_arm_add_stub): Likewise for stub_offset.
87         (arm_new_stubs_start_offset_ptr): New function.
88         (arm_build_one_stub): Only allocate a stub_offset if it is -1.  Allow
89         empty SG veneers to have zero relocations.
90         (arm_size_one_stub): Only initialize stub size and template
91         information for non empty veneers.  Do not update veneer section size
92         if veneer already has an offset.
93         (elf32_arm_create_stub): Return the stub entry pointer or NULL instead
94         of a boolean indicating success or failure.
95         (cmse_scan): Change stub_changed parameter into an integer pointer
96         parameter cmse_stub_created to count the number of stub created and
97         adapt to change of return value in elf32_arm_create_stub.
98         (cmse_entry_fct_p): New function.
99         (arm_list_new_cmse_stub): Likewise.
100         (set_cmse_veneer_addr_from_implib): Likewise.
101         (elf32_arm_size_stubs): Define cmse_stub_created, pass its address to
102         cmse_scan instead of that of cmse_stub_changed to compute the number
103         of stub created and use it to initialize stub_changed.  Call
104         set_cmse_veneer_addr_from_implib after all cmse_scan.  Adapt to change
105         of return value in elf32_arm_create_stub.  Use
106         arm_stub_section_start_offset () if not NULL to initialize size of
107         secure gateway veneers section.  Initialize stub_offset of Cortex-A8
108         erratum fix to -1.  Use ret to hold return value.
109         (elf32_arm_build_stubs): Use arm_stub_section_start_offset () if not
110         NULL to initialize size of secure gateway veneers section.  Adapt
111         comment to stress the importance of zeroing veneer section content.
112         (bfd_elf32_arm_set_target_relocs): Add new in_implib_bfd parameter to
113         initialize eponymous field in struct elf32_arm_link_hash_table.
114
115 2016-08-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
116
117         * elf32-s390.c (stdarg.h): New include.
118         (elf_s390_grok_psinfo): New function.
119         (elf_s390_write_core_note): New function.
120         (elf_backend_grok_psinfo): Declare backend hook.
121         (elf_backend_write_core_note): Likewise.
122         * elf64-s390.c (stdarg.h): New include.
123         (elf_s390_grok_prstatus): New function.
124         (elf_s390_grok_psinfo): New function.
125         (elf_s390_write_core_note): New function.
126         (elf_backend_grok_prstatus): Declare backend hook.
127         (elf_backend_grok_psinfo): Likewise.
128         (elf_backend_write_core_note): Likewise.
129
130 2016-08-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>
131
132         * elf32-s390.c (allocate_dynrelocs): Fix indentation.
133         (elf_s390_finish_ifunc_symbol): Likewise.
134         (elf_s390_finish_dynamic_symbol): Likewise.
135         (elf_s390_finish_dynamic_sections): Likewise.
136         (elf_s390_grok_prstatus): Likewise.
137         * elf64-s390.c (elf_s390_hash_table): Fix indentation.
138         (elf_s390_finish_dynamic_symbol): Likewise.
139
140 2016-08-24  Anton Kolesov  <Anton.Kolesov@synopsys.com>
141
142         * elf32-arc.c (elf32_arc_grok_prstatus): New function.
143
144 2016-08-23  Nick Clifton  <nickc@redhat.com>
145
146         * elf32-arm.c (elf32_arm_count_additional_relocs): Return zero if
147         there is no arm data associated with the section.
148
149 2016-08-23  Alan Modra  <amodra@gmail.com>
150
151         PR 20475
152         * elf32-or1k.c (or1k_elf_relocate_section): Offset from
153         _GLOBAL_OFFSET_TABLE_, not start of .got section.
154
155 2016-08-22  Nick Clifton  <nickc@redhat.com>
156
157         * doc/chew.c (main): Free the string buffer used to files as they
158         are parsed.
159
160 2016-08-22  Alan Modra  <amodra@gmail.com>
161
162         * elf32-ppc.c (ppc_elf_check_relocs): Move error for @local ifunc..
163         (ppc_elf_relocate_section): ..to here.  Comment.  Error on
164         detecting -mbss-plt -fPIC local ifuncs too.
165         (ppc_elf_size_dynamic_sections): Comment on unnecessary glink
166         branch table entries.
167
168 2016-08-19  Nick Clifton  <nickc@redhat.com>
169
170         * elf.c (assign_section_numbers): Assign number for the .shstrtab
171         section after the symbol table and string table sections.
172
173 2016-08-19  Alan Modra  <amodra@gmail.com>
174
175         * elf64-ppc.c (struct ppc_link_hash_entry): Add weakref.
176         (ppc64_elf_copy_indirect_symbol): Set weakref.  Don't merge
177         dyn_relocs for weakdefs.
178         (alias_readonly_dynrelocs): New function.
179         (ppc64_elf_adjust_dynamic_symbol): Use alias_readonly_dynrelocs.
180         (ppc64_elf_relocate_section): Simplify condition under which
181         dyn_relocs are emitted.
182
183 2016-08-19  Alan Modra  <amodra@gmail.com>
184
185         PR 20472
186         * elf64-ppc.c (ppc64_elf_before_check_relocs): Tweak abiversion test.
187         (readonly_dynrelocs): Comment fix.
188         (global_entry_stub): New function.
189         (ppc64_elf_adjust_dynamic_symbol): Tweak abiversion test.  Match
190         ELFv2 code deciding on dynamic relocs vs. global entry stubs to
191         that in size_global_entry_stubs, handling ifunc too.  Delete dead
192         weak sym code.
193         (allocate_dynrelocs): Ensure dyn_relocs field is cleared when no
194         dyn_relocs are needed.  Correct handling of ifunc dyn_relocs.
195         Tidy ELIMINATE_COPY_RELOCS code, only setting dynindx for
196         undefweak syms.  Expand and correct comments.
197         (size_global_entry_stubs): Ensure symbol is defined.
198         (ppc64_elf_relocate_section): Match condition under which
199         dyn_relocs are emitted to that in allocate_dynrelocs.
200
201 2016-08-12  Alan Modra  <amodra@gmail.com>
202
203         * elf-bfd.h (struct elf_link_hash_table): Add local_dynsymcount.
204         * elflink.c (_bfd_elf_link_renumber_dynsyms): Set local_dynsymcount.
205         (bfd_elf_final_link): Set .dynsym sh_info from local_dynsymcount.
206
207 2016-08-11  Alan Modra  <amodra@gmail.com>
208
209         * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't exit with
210         non_got_ref true in any case where we could have generated dynbss
211         copies but decide not to do so.
212
213 2016-08-10  Maciej W. Rozycki  <macro@imgtec.com>
214
215         * elfxx-mips.c (mips_elf_add_la25_stub): Clear the ISA bit of
216         the stub address retrieved if associated with a microMIPS
217         function.
218
219 2016-08-10  Maciej W. Rozycki  <macro@imgtec.com>
220
221         * elfxx-mips.c (mips_elf_create_stub_symbol): For a microMIPS
222         stub also add STO_MICROMIPS annotation.
223
224 2016-08-10  Maciej W. Rozycki  <macro@imgtec.com>
225
226         * elfxx-mips.c (mips_elf_calculate_relocation): Set the ISA bit
227         in microMIPS LA25 stub references.
228
229 2016-08-09  Jiaming Wei  <jmwei@hxgpt.com>
230
231         * elf64-alpha.c (elf64_alpha_copy_indirect_symbol): Fix thinko
232         adjusting the use_count of merged .got entries.
233
234 2016-08-08  Nick Clifton  <nickc@redhat.com>
235
236         * doc/chew.c (delete_string): Only free the string buffer if it is
237         there.  Mark the buffer as NULL after freeing.
238         (drop): Free the dropped string.
239         (free_words): New function: Frees the memory allocated to the
240         dictionary.
241         (add_instrinsic): Duplicate the name string, so that it can be
242         freed later on.
243         (compile): Free unused words.
244         (main): Free the dictionary and top level string buffers at the
245         end.
246
247 2016-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
248
249         * bfd-in.h (bfd_elf32_arm_set_target_relocs): Add one parameter.
250         * bfd-in2.h: Regenerate.
251         * elf32-arm.c (struct elf32_arm_link_hash_table): Declare new
252         cmse_implib field.
253         (bfd_elf32_arm_set_target_relocs): Add new parameter to initialize
254         cmse_implib field in struct elf32_arm_link_hash_table.
255         (elf32_arm_filter_cmse_symbols): New function.
256         (elf32_arm_filter_implib_symbols): Likewise.
257         (elf_backend_filter_implib_symbols): Define to
258         elf32_arm_filter_implib_symbols.
259
260 2016-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
261
262         * elf32-arm.c (CMSE_PREFIX): Define macro.
263         (elf32_arm_stub_cmse_branch_thumb_only): Define stub sequence.
264         (cmse_branch_thumb_only): Declare stub.
265         (struct elf32_arm_link_hash_table): Define cmse_stub_sec field.
266         (elf32_arm_get_plt_info): Add globals parameter.  Use it to return
267         FALSE if there is no PLT.
268         (arm_type_of_stub): Adapt to new elf32_arm_get_plt_info signature.
269         (elf32_arm_final_link_relocate): Likewise.
270         (elf32_arm_gc_sweep_hook): Likewise.
271         (elf32_arm_gc_mark_extra_sections): Mark sections holding ARMv8-M
272         secure entry functions.
273         (arm_stub_is_thumb): Add case for arm_stub_cmse_branch_thumb_only.
274         (arm_dedicated_stub_output_section_required): Change to a switch case
275         and add a case for arm_stub_cmse_branch_thumb_only.
276         (arm_dedicated_stub_output_section_required_alignment): Likewise.
277         (arm_stub_dedicated_output_section_name): Likewise.
278         (arm_stub_dedicated_input_section_ptr): Likewise and remove
279         ATTRIBUTE_UNUSED for htab parameter.
280         (arm_stub_required_alignment): Likewise.
281         (arm_stub_sym_claimed): Likewise.
282         (arm_dedicated_stub_section_padding): Likewise.
283         (cmse_scan): New function.
284         (elf32_arm_size_stubs): Call cmse_scan for ARM M profile targets.
285         Set stub_changed to TRUE if such veneers were created.
286         (elf32_arm_swap_symbol_in): Add detection code for CMSE special
287         symbols.
288
289 2016-08-02  Alan Modra  <amodra@gmail.com>
290
291         PR ld/20428
292         * elf64-ppc.c (ppc_get_stub_entry): Don't segfault on NULL group.
293
294 2016-08-02  Nick Clifton  <nickc@redhat.com>
295
296         PR ld/17739
297         * elf32-sh.c (sh_elf_gc_sweep_hook): Delete.
298         (elf_backend_sweep_hook): Delete.
299
300 2016-08-01  Andrew Jenner  <andrew@codesourcery.com>
301         Kwok Cheung Yeung  <kcy@codesourcery.com>
302
303         * elf32-ppc.c (is_branch_reloc): Recognise VLE branch relocations.
304         (ppc_elf_howto_raw): Fix dst_mask of R_PPC_VLE_REL15.
305         (ppc_elf_vle_split16): Clear field before inserting.
306
307 2016-08-01  Nick Clifton  <nickc@redhat.com>
308
309         * po/sv.po: Updated Swedish translation.
310
311 2016-07-27  Ozkan Sezer  <sezeroz@gmail.com>
312             Nick Clifton  <nickc@redhat.com>
313
314         PR ld/20401
315         * coffgen.c (fini_reloc_cookie_rels): Check for the extistence
316         of the coff_section_data before using it.
317
318 2016-07-26  Maciej W. Rozycki  <macro@imgtec.com>
319
320         * elfxx-mips.c (mips_elf_calculate_relocation): Handle branches
321         in PLT compression selection.
322         (_bfd_mips_elf_check_relocs): Likewise.
323
324 2016-07-22  Cupertino Miranda  <cmiranda@synopsys.com>
325
326         * arc-got.h (relocate_fix_got_relocs_for_got_info): Handle the
327         case where there's no elf_link_hash_entry while processing
328         GOT_NORMAL got entries.
329
330 2016-07-21  H.J. Lu  <hongjiu.lu@intel.com>
331
332         * version.m4 (BFD_VERSION): Set to 2.27.51.
333         * configure: Regenerated.
334
335 2016-07-21  Nick Clifton  <nickc@redhat.com>
336
337         * elf.c (_bfd_elf_filter_global_symbols): Skip local symbols.
338         (swap_out_syms): Return an error when not finding ELF output
339         section rather than asserting.
340
341 2016-07-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
342
343         * elflink.c (elf_output_implib): Call bfd_set_error on no symbols.
344
345 2016-07-20  John Baldwin  <jhb@FreeBSD.org>
346
347         * elf.c (elfcore_grok_freebsd_psinfo): Check for minimum note size
348         and handle pr_pid if present.
349
350 2016-07-20  H.J. Lu  <hongjiu.lu@intel.com>
351
352         PR ld/20376
353         * elf.c (assign_file_positions_for_load_sections): Also check
354         p_paddr for program header space.
355
356 2016-07-20  Alan Modra  <amodra@gmail.com>
357
358         * elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_PLTREL32>): Put
359         ppc64_elf_unhandled_reloc for special_function.
360         * elf32-ppc.c (ppc_elf_howto_raw): Similarly for lots of relocs.
361
362 2016-07-19  Maciej W. Rozycki  <macro@imgtec.com>
363
364         * elfxx-mips.c (mips_elf_perform_relocation): Convert cross-mode
365         BAL to JALX.
366         (_bfd_mips_elf_relocate_section) <bfd_reloc_outofrange>: Add a
367         corresponding error message.
368
369 2016-07-19  Maciej W. Rozycki  <macro@imgtec.com>
370
371         * elfxx-mips.c (b_reloc_p): Add R_MICROMIPS_PC16_S1,
372         R_MICROMIPS_PC10_S1 and R_MICROMIPS_PC7_S1.
373         (branch_reloc_p): New function.
374         (mips_elf_calculate_relocation): Handle ISA mode determination
375         for relocations against section symbols, against absolute
376         symbols and absolute relocations.  Also set `*cross_mode_jump_p'
377         for branches.
378         <R_MIPS16_26, R_MIPS_26, R_MICROMIPS_26_S1>: Suppress alignment
379         checks for weak undefined symbols.  Also check target alignment
380         within the same ISA mode.
381         <R_MIPS_PC16, R_MIPS_GNU_REL16_S2>: Handle cross-mode branches
382         in the alignment check.
383         <R_MICROMIPS_PC7_S1>: Add an alignment check.
384         <R_MICROMIPS_PC10_S1>: Likewise.
385         <R_MICROMIPS_PC16_S1>: Likewise.
386         (mips_elf_perform_relocation): Report a failure for unsupported
387         same-mode JALX instructions and cross-mode branches.
388         (_bfd_mips_elf_relocate_section) <bfd_reloc_outofrange>: Add
389         error messages for jumps to misaligned addresses.
390
391 2016-07-16  Alan Modra  <amodra@gmail.com>
392
393         * elflink.c: Include plugin-api.h.
394         * plugin.c (bfd_plugin_open_input): New function, extracted from..
395         (try_claim): ..here.
396         * plugin.h: Don't include bfd.h.
397         (bfd_plugin_open_input): Declare.
398
399 2016-07-16  Alan Modra  <amodra@gmail.com>
400
401         * targets.c (bfd_seach_for_target): Rename to..
402         (bfd_iterate_over_targets): ..this.  Rewrite doc.
403         * bfd-in2.h: Regenerate.
404
405 2016-07-16  Alan Modra  <amodra@gmail.com>
406
407         * archures.c (bfd_default_set_arch_mach): Make available in bfd.h.
408         * libbfd.h: Regenerate.
409         * bfd-in2.h: Regenerate.
410
411 2016-07-16  Alan Modra  <amodra@gmail.com>
412
413         * libbfd-in.h (BFD_ALIGN): Move to..
414         * bfd-in.h: ..here.
415         * elf32-ppc.h (struct ppc_elf_params): Add pagesize.
416         * elf32-ppc.c (default_params): Adjust init.
417         (ppc_elf_link_params): Set pagesize_p2.
418         * libbfd.h: Regenerate.
419         * bfd-in2.h: Regenerate.
420
421 2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
422
423         * elf-bfd.h (elf_backend_filter_implib_symbols): Declare backend hook.
424         (_bfd_elf_filter_global_symbols): Declare.
425         * elf.c (_bfd_elf_filter_global_symbols): New function.
426         * elflink.c (elf_filter_global_symbols): Likewise.
427         (elf_output_implib): Likewise.
428         (bfd_elf_final_link): Call above function, failing if it does.
429         * elfxx-target.h (elf_backend_filter_implib_symbols): Define macro and
430         default it to NULL.
431         (elf_backend_copy_indirect_symbol): Fix spacing.
432         (elf_backend_hide_symbol): Likewise.
433         (elfNN_bed): Initialize elf_backend_filter_implib_symbols backend hook.
434
435 2016-07-15  Andrew Burgess  <andrew.burgess@embecosm.com>
436             Nick Clifton  <nickc@redhat.com>
437
438         * elf32-arc.c (PR_DEBUG): Delete.
439         Fix printing of debug information.  Fix formatting of debug
440         statements.
441         (debug_arc_reloc): Handle symbols that are not from an input file.
442         (arc_do_relocation): Remove excessive exclamation points.
443
444         * arc-got.h: Fix formatting.  Fix printing of debug information.
445         (new_got_entry_to_list): Use xmalloc.
446         * config.bfd: use the big-endian arc vector as the default vector
447         for big-endian arc targets.
448
449 2016-07-15  Alan Modra  <amodra@gmail.com>
450
451         * cofflink.c (mark_relocs): Exclude relocs with -1 r_symndx
452         from marking sym_indices.
453
454 2016-07-14  Maciej W. Rozycki  <macro@imgtec.com>
455
456         * reloc.c (bfd_perform_relocation): Try the `howto' handler
457         first with relocations against absolute symbols.
458         (bfd_install_relocation): Likewise.
459
460 2016-07-12  H.J. Lu  <hongjiu.lu@intel.com>
461
462         * elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align
463         .got/.got.plt sections to 8 bytes.
464
465 2016-07-12  Nick Clifton  <nickc@redhat.com>
466
467         * binary.c (binary_set_section_contents): Second grammar fix.
468
469 2016-07-12  Douglas B Rupp  <rupp@adacore.com>
470
471         * binary.c (binary_set_section_contents): Fix grammar in warning
472         message.
473
474 2016-07-11  Cupertino Miranda  <cmiranda@synopsys.com>
475
476         * elf32-arc.c: made PR_DEBUG always defined.
477
478 2016-07-11  Cupertino Miranda  <cmiranda@synopsys.com>
479
480         * arc-got.h: Moved got related structures from elf32-arc.c to
481         this file. More precisely, tls_type_e, tls_got_entries, got_entry.
482         * (arc_get_local_got_ents, got_entry_for_type, new_got_entry_to_list,
483         tls_type_for_reloc, symbol_has_entry_of_type,
484         get_got_entry_list_for_symbol, arc_got_entry_type_for_reloc,
485         ADD_SYMBOL_REF_SEC_AND_RELOC, rc_fill_got_info_for_reloc,
486         relocate_fix_got_relocs_for_got_info,
487         create_got_dynrelocs_for_single_entry,
488         create_got_dynrelocs_for_got_info): Added to file.
489         * elf32-arc.c: Removed GOT & TLS related structs and functions to
490         arc-got.h.
491
492 2016-07-08  James Bowman  <james.bowman@ftdichip.com>
493
494         * elf32-ft32.c (ft32_reloc_map): Use R_FT32_32 for BFD_RELOC_32.
495
496 2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>
497
498         * elf32-arm.c (THUMB32_MOVT): New veneer macro.
499         (THUMB32_MOVW): Likewise.
500         (elf32_arm_stub_long_branch_thumb2_only_pure): New.
501         (DEF_STUBS): Define long_branch_thumb2_only_pure.
502         (arm_stub_is_thumb): Add new veneer stub.
503         (arm_type_of_stub): Use new veneer.
504         (arm_stub_required_alignment): Add new veneer.
505
506 2016-07-05  Andre Vieria  <andre.simoesdiasvieira@arm.com>
507
508         * bfd-in2.h (SEC_ELF_NOREAD): Rename to ...
509         (SEC_ELF_PURECODE): ... this.
510         * elf32-arm.c (elf32_arm_post_process_headers): Rename SEC_ELF_NOREAD
511         to SEC_ELF_NOREAD.
512         (elf32_arm_fake_sections): Likewise.
513         (elf_32_arm_section_flags): Likewise.
514         (elf_32_arm_lookup_section_flags): Likewise.
515         * section.c (SEC_ELF_NOREAD): Rename to ...
516         (SEC_ELF_PURECODE): ... this.
517
518 2016-07-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
519
520         * elf32-arm.c (using_thumb2_bl): New function.
521         (arm_type_of_stub): Declare thumb2 variable together and change type
522         to bfd_boolean.  Use using_thumb2_bl () to determine whether
523         THM_MAX_FWD_BRANCH_OFFSET or THM2_MAX_FWD_BRANCH_OFFSET should be
524         checked for BL range.
525         (elf32_arm_final_link_relocate): Use using_thumb2_bl () to determine
526         the bit size of BL offset.
527
528 2016-06-29  Nick Clifton  <nickc@redhat.com>
529
530         * elfnn-aarch64.c (is_aarch64_mapping_symbol): New function.
531         Returns TRUE for AArch64 mapping symbols.
532         (elfNN_aarch64_backend_symbol_processing): New function.  Marks
533         mapping symbols as precious in object files so that they will not
534         be stripped.
535         (elf_backend_symbol_processing): Define.
536
537         * elf32-arm.c (is_arm_mapping_symbol): New function.  Returns TRUE
538         for ARM mapping symbols.
539         (elf32_arm_backend_symbol_processing): Make use of the new function.
540
541 2016-06-28  H.J. Lu  <hongjiu.lu@intel.com>
542
543         PR ld/20306
544         * elflink.c (elf_link_check_versioned_symbol): Return false
545         for unreferenced undefined symbol.
546
547 2016-06-28  Nick Clifton  <nickc@redhat.com>
548
549         * elf32-bfin.c (bfin_adjust_dynamic_symbol): Fail if a COPY reloc
550         is needed.
551
552         * elf32-arm.c (elf32_arm_backend_symbol_processing): New
553         function.  Marks mapping symbols in object files as precious, so
554         that strip will not remove them.
555         (elf_backend_symbol_processing): Define.
556
557 2016-06-28  James Clarke  <jrtc27@jrtc27.com>
558
559         * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert
560         R_SPARC_32 to R_SPARC_RELATIVE if class is ELFCLASS64.
561
562 2016-06-28  Maciej W. Rozycki  <macro@imgtec.com>
563
564         * elf32-mips.c (elf_mips16_howto_table_rel): Add
565         R_MIPS16_PC16_S1.
566         (mips16_reloc_map): Likewise.
567         * elf64-mips.c (mips16_elf64_howto_table_rel): Likewise.
568         (mips16_elf64_howto_table_rela): Likewise.
569         (mips16_reloc_map): Likewise.
570         * elfn32-mips.c (elf_mips16_howto_table_rel): Likewise.
571         (elf_mips16_howto_table_rela): Likewise.
572         (mips16_reloc_map): Likewise.
573         * elfxx-mips.c (mips16_branch_reloc_p): New function.
574         (mips16_reloc_p): Handle R_MIPS16_PC16_S1.
575         (b_reloc_p): Likewise.
576         (mips_elf_calculate_relocation): Likewise.
577         (_bfd_mips_elf_check_relocs): Likewise.
578         * reloc.c (BFD_RELOC_MIPS16_16_PCREL_S1): New relocation.
579         * bfd-in2.h: Regenerate.
580         * libbfd.h: Regenerate.
581
582 2016-06-27  Alan Modra  <amodra@gmail.com>
583
584         PR ld/19264
585         * elf64-ppc.c (STUB_SHRINK_ITER): Define.
586         (ppc64_elf_size_stubs): Exit stub sizing loop past STUB_SHRINK_ITER
587         if shrinking stubs.
588         (ppc64_elf_size_stubs): Adjust to suit.
589
590 2016-06-27  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
591
592         * elf32-dlx.h: New file.
593         * elf32-dlx.c: Adjust.
594
595 2016-06-25  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
596
597         * elf32-xtensa.c (xtensa_make_property_section): Remove prototype.
598
599 2016-06-24  John Baldwin  <jhb@FreeBSD.org>
600
601         * elf.c (elfcore_grok_freebsd_note): Handle NT_FREEBSD_PROCSTAT_AUXV
602         notes.
603
604 2016-06-24  John Baldwin  <jhb@FreeBSD.org>
605
606         * elf.c (elfcore_grok_note): Remove handling of NT_X86_XSTATE for
607         FreeBSD.  Remove case for NT_FREEBSD_THRMISC.
608         (elfcore_grok_freebsd_psinfo): New function.
609         (elfcore_grok_freebsd_prstatus): New function.
610         (elfcore_grok_freebsd_note): New function.
611         (elf_parse_notes): Use "elfcore_grok_freebsd_note" for "FreeBSD"
612         notes.
613
614 2016-06-24  Joel Brobecker  <brobecker@adacore.com>
615
616         * elflink.c: Check the value of BFD_SUPPORTS_PLUGINS rather
617         than its existance.
618
619 2016-06-24  Alan Modra  <amodra@gmail.com>
620
621         * config.bfd: Delete mips vxworks patterns matched earlier.
622         Combine mips*-*-none with mips*-*-elf*.
623
624 2016-06-21  Maciej W. Rozycki  <macro@imgtec.com>
625
626         * elfxx-mips.c (mips_elf_perform_relocation): Call
627         `info->callbacks->einfo' rather than `*_bfd_error_handler' and
628         use the `%X%H' format for the cross-mode jump conversion error
629         message.  Remove the full stop from the end of the message.
630         Continue processing rather than returning failure.
631
632 2016-06-21  Graham Markall  <graham.markall@embecosm.com>
633
634         * archures.c: Remove bfd_mach_arc_nps400.
635         * bfd-in2.h: Likewise.
636         * cpu-arc.c (arch_info_struct): Likewise.
637         * elf32-arc.c (arc_elf_object_p, arc_elf_final_write_processing):
638         Likewise.
639
640 2016-06-20  H.J. Lu  <hongjiu.lu@intel.com>
641
642         PR ld/18250
643         PR ld/20267
644         * elflink.c: Include plugin.h if BFD_SUPPORTS_PLUGINS is
645         defined.
646         (elf_link_is_defined_archive_symbol): Call
647         bfd_link_plugin_object_p on unknown plugin object and use the
648         IR symbol table if the input is an IR object.
649         * plugin.c (bfd_link_plugin_object_p): New function.
650         * plugin.h (bfd_link_plugin_object_p): New prototype.
651
652 2016-06-20  H.J. Lu  <hongjiu.lu@intel.com>
653
654         PR ld/20276
655         * elflink.c (elf_link_add_object_symbols): Don't check alignment
656         on symbol from plugin dummy input.
657
658 2016-06-18  H.J. Lu  <hongjiu.lu@intel.com>
659
660         * bfd.c (bfd_plugin_format): Rename bfd_plugin_uknown to
661         bfd_plugin_unknown.
662         * bfd-in2.h: Regenerated.
663         * plugin.c (bfd_plugin_object_p): Replace bfd_plugin_uknown
664         with bfd_plugin_unknown.
665
666 2016-06-18  H.J. Lu  <hongjiu.lu@intel.com>
667
668         PR ld/20253
669         * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add an
670         bfd_boolean argument.
671         * elf-ifunc.c (_bfd_elf_create_ifunc_sections): Replace
672         "shared object" with "PIC object" in comments.
673         (_bfd_elf_allocate_ifunc_dyn_relocs): Updated.  Replace
674         "shared object" with "PIC object" in comments.  Avoid PLT if
675         requested.  Generate dynamic relocations for non-GOT references.
676         Make room for the special first entry in PLT and allocate PLT
677         entry only for PLT and PC-relative references.  Store dynamic
678         GOT relocations in .rel[a].iplt section for static executables.
679         If PLT isn't used, always use GOT for symbol value.  Don't
680         allocate GOT entry if it isn't used.
681         * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference
682         count only in the code section.  Allocate dynamic pointer
683         relocation against STT_GNU_IFUNC symbol in the non-code section.
684         (elf_i386_adjust_dynamic_symbol): Increment PLT reference count
685         only for PC-relative references.
686         (elf_i386_allocate_dynrelocs): Pass TRUE to
687         _bfd_elf_allocate_ifunc_dyn_relocs.
688         (elf_i386_relocate_section): Allow R_386_GOT32/R_386_GOT32X
689         relocations against STT_GNU_IFUNC symbols without PLT.  Generate
690         dynamic pointer relocation against STT_GNU_IFUNC symbol in
691         the non-code section and store it in the proper REL section.
692         Don't allow non-pointer relocation against STT_GNU_IFUNC symbol
693         without PLT.
694         (elf_i386_finish_dynamic_symbol): Generate dynamic
695         R_386_IRELATIVE and R_386_GLOB_DAT GOT relocations against
696         STT_GNU_IFUNC symbols without PLT.
697         (elf_i386_finish_dynamic_sections): Don't handle local
698         STT_GNU_IFUNC symbols here.
699         (elf_i386_output_arch_local_syms): Handle local STT_GNU_IFUNC
700         symbols here.
701         (elf_backend_output_arch_local_syms): New.
702         * elf32-x86-64.c (elf_i386_check_relocs): Increment PLT reference
703         count only in the code section.  Allocate dynamic pointer
704         relocation against STT_GNU_IFUNC symbol in the non-code section.
705         (elf_x86_64_adjust_dynamic_symbol): Increment PLT reference
706         count only for PC-relative references.
707         (elf_x86_64_allocate_dynrelocs): Pass TRUE to
708         _bfd_elf_allocate_ifunc_dyn_relocs.
709         (elf_x86_64_relocate_section): Allow R_X86_64_GOTPCREL,
710         R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX and
711         R_X86_64_GOTPCREL64 relocations against STT_GNU_IFUNC symbols
712         without PLT.  Generate dynamic pointer relocation against
713         STT_GNU_IFUNC symbol in the non-code section and store it in
714         the proper RELA section.  Don't allow non-pointer relocation
715         against STT_GNU_IFUNC symbol without PLT.
716         (elf_x86_64_finish_dynamic_symbol): Generate dynamic
717         R_X86_64_IRELATIVE and R_X86_64_GLOB_DAT GOT relocations against
718         STT_GNU_IFUNC symbols without PLT.
719         (elf_x86_64_finish_dynamic_sections): Don't handle local
720         STT_GNU_IFUNC symbols here.
721         (elf_x86_64_output_arch_local_syms): Handle local STT_GNU_IFUNC
722         symbols here.
723         (elf_backend_output_arch_local_syms): New.
724         * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs):
725         Pass FALSE to _bfd_elf_allocate_ifunc_dyn_relocs.
726
727 2016-06-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
728             Tony Wang  <tony.wang@arm.com>
729
730         * elf32-arm.c (elf32_arm_stub_long_branch_thumb2_only): Define stub
731         sequence.
732         (stub_long_branch_thumb2_only): Define stub.
733         (arm_stub_is_thumb): Add case for arm_stub_long_branch_thumb2_only.
734         (arm_stub_long_branch_thumb2_only): Likewise.
735         (arm_type_of_stub): Use arm_stub_long_branch_thumb2_only for Thumb-2
736         capable targets.
737
738 2016-06-17  Jose E. Marchesi  <jose.marchesi@oracle.com>
739
740         * archures.c (bfd_mach_sparc_v8plusc): Define.
741         (bfd_mach_sparc_v9c): Likewise.
742         (bfd_mach_sparc_v8plusd): Likewise.
743         (bfd_mach_sparc_v9d): Likewise.
744         (bfd_mach_sparc_v8pluse): Likewise.
745         (bfd_mach_sparc_v9e): Likewise.
746         (bfd_mach_sparc_v8plusv): Likewise
747         (bfd_mach_sparc_v9v): Likewise.
748         (bfd_mach_sparc_v8plusm): Likewise.
749         (bfd_mach_sparc_v9m): Likewise.
750         (bfd_mach_sparc_v9_p): Adapt to v8plusm and v9m.
751         (bfd_mach_sparc_64bit_p): Likewise.
752         * bfd-in2.h: Regenerate.
753         * cpu-sparc.c (arch_info_struct): Add entries for
754         bfd_mach_sparc_v8plus{c,d,e,v,m} and bfd_mach_sparc_v9{c,d,e,v,m}.
755         * aoutx.h (machine_type): Handle bfd_mach_sparc_v8plus{c,d,e,v,m}
756         and bfd_mach_sparc_v9{c,d,e,v,m}.
757         * elf32-sparc.c (elf32_sparc_final_write_processing): Likewise.
758         * elfxx-sparc.c (_bfd_sparc_elf_object_p): Likewise.
759
760 2016-06-16  H.J. Lu  <hongjiu.lu@intel.com>
761
762         * elf32-i386.c (elf_i386_check_relocs): Don't check undefined
763         symbols for relocations against IFUNC symbols.
764         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
765
766 2016-06-16  Marcin KoÅ›cielnicki  <koriakin@0x04.net>
767
768         * elf32-s390.c (elf_s390_finish_dynamic_sections): Include
769         .rela.iplt in DT_PLTRELSZ.
770         * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise,
771         for DT_PLTRELSZ and DT_RELASZ as well.
772
773 2016-06-16  H.J. Lu  <hongjiu.lu@intel.com>
774
775         * elf32-i386.c (elf_i386_check_relocs): Skip relocations in
776         non-loaded, non-alloced sections.
777         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
778
779 2016-06-15  H.J. Lu  <hongjiu.lu@intel.com>
780
781         * elf32-i386.c (elf_i386_check_relocs): Check SEC_ALLOC before
782         allocating dynamic relocation.
783         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
784
785 2016-06-14  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
786
787         PR ld/20254
788         * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust reloc
789         offsets until reloc_toaddr.
790
791 2016-06-14  H.J. Lu  <hongjiu.lu@intel.com>
792
793         * elf32-i386.c (elf_i386_reloc_type_class): Check R_386_IRELATIVE.
794         Don't check symbol type for STN_UNDEF symbol index.
795         * elf64-x86-64.c (elf_x86_64_reloc_type_class): Check
796         R_X86_64_IRELATIVE.  Don't check symbol type for STN_UNDEF symbol
797         index.
798
799 2016-06-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
800
801         * elf32-arm.c (using_thumb_only): Force review of arch check logic for
802         new architecture.
803         (using_thumb2): Try Tag_THUMB_ISA_use first and check
804         for exact arch value then.  Force review of arch check logic for new
805         architecture.
806         (arch_has_arm_nop): Update and fix arch check logic.  Force review of
807         that logic for new architecture.
808         (arch_has_thumb2_nop): Remove.
809         (elf32_arm_tls_relax): Use using_thumb2 instead of above function.
810         (elf32_arm_final_link_relocate): Likewise but using thumb2.
811
812 2016-06-14  Alan Modra  <amodra@gmail.com>
813
814         * bfd-in.h (bfd_my_archive): Delete.
815         * bfd-in2.h: Regenerate.
816
817 2016-06-14  Alan Modra  <amodra@gmail.com>
818
819         PR ld/20241
820         * archive.c (open_nested_file): Set my_archive.
821         * bfd.c (_bfd_default_error_handler <%B>): Exclude archive file name
822         for thin archives.
823         * bfdio.c (bfd_tell): Don't adjust origin for thin archives.
824         (bfd_seek): Likewise.
825         * bfdwin.c (bfd_get_file_window): Likewise.
826         * cache.c (cache_bmmap): Likewise.
827         (bfd_cache_lookup_worker): Don't look in my_archive for thin archives.
828         * mach-o.c (bfd_mach_o_follow_dsym): Don't open my_archive for
829         thin archives.
830         * plugin.c (try_claim): Likewise.
831         * xcofflink.c (xcoff_link_add_dynamic_symbols): Use import path of
832         file within thin archive, not the archive.
833
834 2016-06-13  H.J. Lu  <hongjiu.lu@intel.com>
835
836         PR ld/20244
837         * elf32-i386.c (elf_i386_relocate_section): Add the .got.plt
838         section address for R_386_GOT32/R_386_GOT32X relocations against
839         IFUNC symbols if there is no base register and return error for
840         PIC.
841
842 2016-06-13  H.J. Lu  <hongjiu.lu@intel.com>
843
844         * elf32-i386.c (elf_i386_relocate_section): Simplify IFUNC
845         GOT32 adjustment for static executables.
846
847 2016-06-13  Maciej W. Rozycki  <macro@imgtec.com>
848
849         * elf32-mips.c (elf_mips_gnu_pcrel32): Update comment.
850
851 2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
852
853         * elf32-arc.c (elf_arc_relocate_section): Fixed condition.
854
855 2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
856
857         * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed.
858
859 2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
860
861         * elf32-arc.c (arc_local_data, arc_local_data): Removed.
862         (SECTSTART): Changed.
863         (elf_arc_relocate_section): Fixed mistake in PIE related
864         condition.
865         (elf_arc_size_dynamic_sections): Changed DT_RELENT to DT_RELAENT.
866
867 2016-06-13  Cupertino Miranda  <cmiranda@synospsy.com>
868
869         * elf32-arc.c (elf32_arc_reloc_type_class): Defined function to
870         enable support for "-z combreloc" and DT_RELACOUNT.
871         (elf_backend_reloc_type_class): Likewise
872
873 2016-06-11  H.J. Lu  <hongjiu.lu@intel.com>
874
875         PR ld/20244
876         * elf32-i386.c (elf_i386_relocate_section): When relocating
877         R_386_GOT32, return error without a base register for PIC and
878         subtract the .got.plt section address only with a base register.
879
880 2016-06-10  Alan Modra  <amodra@gmail.com>
881
882         * elf-strtab.c (struct strtab_save): Use size_t for "size".
883         (struct elf_strtab_hash): Likewise for "size" and "alloced".
884         (_bfd_elf_strtab_init): Formatting.
885         (_bfd_elf_strtab_add): Return size_t rather than bfd_size_type.
886         (_bfd_elf_strtab_addref): Take size_t idx param.
887         (_bfd_elf_strtab_delref, _bfd_elf_strtab_refcount): Likewise.
888         (_bfd_elf_strtab_offset): Likewise.
889         (_bfd_elf_strtab_clear_all_refs): Use size_t idx.
890         (_bfd_elf_strtab_save): Use size_t "idx" and "size" vars.
891         (_bfd_elf_strtab_restore, _bfd_elf_strtab_emit): Similarly.
892         (_bfd_elf_strtab_finalize): Similarly.
893         * elf-bfd.h (_bfd_elf_strtab_add): Update prototypes.
894         (_bfd_elf_strtab_addref, _bfd_elf_strtab_delref): Likewise.
895         (_bfd_elf_strtab_refcount, _bfd_elf_strtab_offset): Likewise.
896         * elf.c (bfd_elf_get_elf_syms): Calculate symbol buffer size
897         using bfd_size_type.
898         (bfd_section_from_shdr): Delete amt.
899         (_bfd_elf_init_reloc_shdr): Likewise.
900         (_bfd_elf_link_assign_sym_version): Likewise.
901         (assign_section_numbers): Use size_t reloc_count.
902         * elflink.c (struct elf_symbuf_head): Use size_t "count".
903         (bfd_elf_link_record_dynamic_symbol): Use size_t for some vars.
904         (elf_link_is_defined_archive_symbol): Likewise.
905         (elf_add_dt_needed_tag): Likewise.
906         (elf_finalize_dynstr): Likewise.
907         (elf_link_add_object_symbols): Likewise.
908         (bfd_elf_size_dynamic_sections): Likewise.
909         (elf_create_symbuf): Similarly.
910         (bfd_elf_match_symbols_in_sections): Likewise.
911         (elf_link_swap_symbols_out): Likewise.
912         (elf_link_check_versioned_symbol): Likewise.
913         (bfd_elf_gc_record_vtinherit): Likewise.
914         (bfd_elf_gc_common_finalize_got_offsets): Likewise.
915
916 2016-06-08  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
917
918         PR ld/20221
919         * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust syms
920         and relocs only if shrinking occurred.
921
922 2016-06-08  H.J. Lu  <hongjiu.lu@intel.com>
923
924         * elf64-i386.c (elf_i386_link_hash_entry): Add tls_get_addr.
925         (elf_i386_link_hash_newfunc): Initialize tls_get_addr to 2.
926         (elf_i386_check_tls_transition): Check indirect call and direct
927         call with the addr32 prefix for general and local dynamic models.
928         Set the tls_get_addr feild.
929         (elf_i386_convert_load_reloc): Always use addr32 prefix for
930         indirect ___tls_get_addr call via GOT.
931         (elf_i386_relocate_section): Handle GD->LE, GD->IE and LD->LE
932         transitions with indirect call and direct call with the addr32
933         prefix.
934
935 2016-06-07  Marcin KoÅ›cielnicki  <koriakin@0x04.net>
936
937         * elf32-s390.c (elf_s390_finish_dynamic_symbol): Fix comment.
938         * elf64-s390.c (elf_s390x_plt_entry): Fix comment.
939         (elf_s390_relocate_section): Fix comment.
940         (elf_s390_finish_dynamic_sections): Fix initialization of fixed
941         .got.plt entries.
942
943 2016-06-07  Ulrich Weigand  <ulrich.weigand@de.ibm.com>
944
945         * elf64-s390.c (elf_s390_finish_dynamic_sections): Subtract plt
946         section offset when calculation the larl operand in the first PLT
947         entry.
948
949 2016-06-07  Alan Modra  <amodra@gmail.com>
950
951         * cpu-powerpc.c (powerpc_compatible): Allow bfd_mach_ppc_vle entry
952         to match other 32-bit archs.
953         * elf32-ppc.c (_bfd_elf_ppc_set_arch): New function.
954         (ppc_elf_object_p): Call it.
955         (ppc_elf_special_sections): Use APUINFO_SECTION_NAME.  Fix
956         overlong line.
957         (APUINFO_SECTION_NAME, APUINFO_LABEL): Don't define here.
958         * elf64-ppc.c (ppc64_elf_object_p): Call _bfd_elf_ppc_set_arch.
959         * bfd-in.h (_bfd_elf_ppc_at_tls_transform,
960         _bfd_elf_ppc_at_tprel_transform): Move to..
961         * elf-bfd.h: ..here.
962         (_bfd_elf_ppc_set_arch): Declare.
963         * bfd-in2.h: Regenerate.
964
965 2016-06-06  H.J. Lu  <hongjiu.lu@intel.com>
966
967         * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add tls_get_addr.
968         (elf_x86_64_link_hash_newfunc): Initialize tls_get_addr to 2.
969         (elf_x86_64_check_tls_transition): Check indirect call and
970         direct call with the addr32 prefix for general and local dynamic
971         models.  Set the tls_get_addr feild.
972         (elf_x86_64_convert_load_reloc): Always use addr32 prefix for
973         indirect __tls_get_addr call via GOT.
974         (elf_x86_64_relocate_section): Handle GD->LE, GD->IE and LD->LE
975         transitions with indirect call and direct call with the addr32
976         prefix.
977
978 2016-06-04  Christian Groessler  <chris@groessler.org>
979
980         * coff-z8k.c (extra_case): Fix range check for R_JR relocation.
981
982 2016-06-02  Nick Clifton  <nickc@redhat.com>
983
984         PR target/20088
985         * cpu-arm.c (processors): Add "arm_any" type to match any ARM
986         architecture.
987         (arch_info_struct): Likewise.
988         (architectures): Likewise.
989
990 2016-06-02  Vineet Gupta  <Vineet.Gupta1@synopsys.com>
991
992         * config.bfd: Replace -uclibc with *.
993
994 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
995
996         * elf64-x86-64.c: Replace data32 with data16 in comments.
997
998 2016-05-31  Alan Modra  <amodra@gmail.com>
999
1000         PR ld/20159
1001         PR ld/16467
1002         * elflink.c (_bfd_elf_merge_symbol): Revert PR16467 change.
1003         (_bfd_elf_add_default_symbol): Don't indirect to/from defined
1004         symbol given a version by a script different to the version
1005         of the symbol being added.
1006         (elf_link_add_object_symbols): Use _bfd_elf_strtab_save and
1007         _bfd_elf_strtab_restore.  Don't fudge dynstr references.
1008         * elf-strtab.c (_bfd_elf_strtab_restore_size): Delete.
1009         (struct strtab_save): New.
1010         (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): New functions.
1011         * elf-bfd.h (_bfd_elf_strtab_restore_size): Delete.
1012         (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): Declare.
1013
1014 2016-06-01  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
1015
1016         * elf32-hppa.h: Add extern "C".
1017         * elf32-nds32.h: Likewise.
1018         * elf32-tic6x.h: Likewise.
1019
1020 2016-06-01  Nick Clifton  <nickc@redhat.com>
1021
1022         * po/sr.po: New Serbian translation.
1023         * configure.ac (ALL_LINGUAS): Add sr.
1024         * configure: Regenerate.
1025
1026 2016-05-28  Maciej W. Rozycki  <macro@imgtec.com>
1027
1028         * elfxx-mips.c (b_reloc_p): New function.
1029         (_bfd_mips_elf_relocate_section) <bfd_reloc_outofrange>: Handle
1030         branch relocations.
1031
1032 2016-05-28  Maciej W. Rozycki  <macro@imgtec.com>
1033
1034         * elfxx-mips.c (mips_elf_calculate_relocation): <R_MIPS16_26>
1035         <R_MIPS_26, R_MICROMIPS_26_S1>: Drop the region bits of the
1036         reloc location from calculation, treat the addend as signed with
1037         local non-section symbols and enable overflow detection.
1038
1039 2016-05-28  Alan Modra  <amodra@gmail.com>
1040
1041         * aoutx.h: Adjust linker callback calls throughout file,
1042         removing dead code.
1043         * bout.c: Likewise.
1044         * coff-alpha.c: Likewise.
1045         * coff-arm.c: Likewise.
1046         * coff-h8300.c: Likewise.
1047         * coff-h8500.c: Likewise.
1048         * coff-i960.c: Likewise.
1049         * coff-mcore.c: Likewise.
1050         * coff-mips.c: Likewise.
1051         * coff-ppc.c: Likewise.
1052         * coff-rs6000.c: Likewise.
1053         * coff-sh.c: Likewise.
1054         * coff-tic80.c: Likewise.
1055         * coff-w65.c: Likewise.
1056         * coff-z80.c: Likewise.
1057         * coff-z8k.c: Likewise.
1058         * coff64-rs6000.c: Likewise.
1059         * cofflink.c: Likewise.
1060         * ecoff.c: Likewise.
1061         * elf-bfd.h: Likewise.
1062         * elf-m10200.c: Likewise.
1063         * elf-m10300.c: Likewise.
1064         * elf32-arc.c: Likewise.
1065         * elf32-arm.c: Likewise.
1066         * elf32-avr.c: Likewise.
1067         * elf32-bfin.c: Likewise.
1068         * elf32-cr16.c: Likewise.
1069         * elf32-cr16c.c: Likewise.
1070         * elf32-cris.c: Likewise.
1071         * elf32-crx.c: Likewise.
1072         * elf32-d10v.c: Likewise.
1073         * elf32-epiphany.c: Likewise.
1074         * elf32-fr30.c: Likewise.
1075         * elf32-frv.c: Likewise.
1076         * elf32-ft32.c: Likewise.
1077         * elf32-h8300.c: Likewise.
1078         * elf32-hppa.c: Likewise.
1079         * elf32-i370.c: Likewise.
1080         * elf32-i386.c: Likewise.
1081         * elf32-i860.c: Likewise.
1082         * elf32-ip2k.c: Likewise.
1083         * elf32-iq2000.c: Likewise.
1084         * elf32-lm32.c: Likewise.
1085         * elf32-m32c.c: Likewise.
1086         * elf32-m32r.c: Likewise.
1087         * elf32-m68hc1x.c: Likewise.
1088         * elf32-m68k.c: Likewise.
1089         * elf32-mep.c: Likewise.
1090         * elf32-metag.c: Likewise.
1091         * elf32-microblaze.c: Likewise.
1092         * elf32-moxie.c: Likewise.
1093         * elf32-msp430.c: Likewise.
1094         * elf32-mt.c: Likewise.
1095         * elf32-nds32.c: Likewise.
1096         * elf32-nios2.c: Likewise.
1097         * elf32-or1k.c: Likewise.
1098         * elf32-ppc.c: Likewise.
1099         * elf32-s390.c: Likewise.
1100         * elf32-score.c: Likewise.
1101         * elf32-score7.c: Likewise.
1102         * elf32-sh.c: Likewise.
1103         * elf32-sh64.c: Likewise.
1104         * elf32-spu.c: Likewise.
1105         * elf32-tic6x.c: Likewise.
1106         * elf32-tilepro.c: Likewise.
1107         * elf32-v850.c: Likewise.
1108         * elf32-vax.c: Likewise.
1109         * elf32-visium.c: Likewise.
1110         * elf32-xstormy16.c: Likewise.
1111         * elf32-xtensa.c: Likewise.
1112         * elf64-alpha.c: Likewise.
1113         * elf64-hppa.c: Likewise.
1114         * elf64-ia64-vms.c: Likewise.
1115         * elf64-mmix.c: Likewise.
1116         * elf64-ppc.c: Likewise.
1117         * elf64-s390.c: Likewise.
1118         * elf64-sh64.c: Likewise.
1119         * elf64-x86-64.c: Likewise.
1120         * elflink.c: Likewise.
1121         * elfnn-aarch64.c: Likewise.
1122         * elfnn-ia64.c: Likewise.
1123         * elfxx-mips.c: Likewise.
1124         * elfxx-sparc.c: Likewise.
1125         * elfxx-tilegx.c: Likewise.
1126         * linker.c: Likewise.
1127         * pdp11.c: Likewise.
1128         * pe-mips.c: Likewise.
1129         * reloc.c: Likewise.
1130         * reloc16.c: Likewise.
1131         * simple.c: Likewise.
1132         * vms-alpha.c: Likewise.
1133         * xcofflink.c: Likewise.
1134         * elf32-rl78.c (get_symbol_value, get_romstart, get_ramstart): Delete
1135         status param.  Adjust calls to these and linker callbacks throughout.
1136         * elf32-rx.c: (get_symbol_value, get_gp, get_romstart,
1137         get_ramstart): Delete status param.  Adjust calls to these and
1138         linker callbacks throughout.
1139
1140 2016-05-27  Maciej W. Rozycki  <macro@imgtec.com>
1141
1142         * elfxx-mips.c (mips_elf_calculate_relocation) <R_MIPS16_26>
1143         <R_MIPS_26, R_MICROMIPS_26_S1>: Include the addend in JALX's
1144         target alignment verification.
1145
1146 2016-05-27  Maciej W. Rozycki  <macro@imgtec.com>
1147
1148         * elfxx-mips.c (mips_elf_calculate_relocation): Also use the
1149         section name if `bfd_elf_string_from_elf_section' returns an
1150         empty string.
1151
1152 2016-05-26  Maciej W. Rozycki  <macro@imgtec.com>
1153
1154         * elfxx-mips.c (_bfd_mips_elf_relocate_section)
1155         <bfd_reloc_outofrange>: Use the `%X%H' rather than `%C' format
1156         for message.  Continue processing rather than returning failure.
1157
1158 2016-05-25  Maciej W. Rozycki  <macro@imgtec.com>
1159
1160         * elfxx-mips.c (_bfd_mips_elf_relocate_section)
1161         <bfd_reloc_outofrange>: Call `->einfo' rather than `->warning'.
1162         Call `bfd_set_error'.
1163
1164 2016-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1165
1166         PR binutils/14625
1167         * archive.c (bfd_slurp_armap): Replace
1168         bfd_elf64_archive_slurp_armap with
1169         _bfd_archive_64_bit_slurp_armap.
1170         (bsd_write_armap): Call _bfd_archive_64_bit_write_armap if
1171         BFD64 is defined and the archive is too big.
1172         (coff_write_armap): Likewise.
1173         * archive64.c (bfd_elf64_archive_slurp_armap): Renamed to ...
1174         (_bfd_archive_64_bit_slurp_armap): This.
1175         (bfd_elf64_archive_write_armap): Renamed to ...
1176         (_bfd_archive_64_bit_write_armap): This.
1177         * configure.ac: Add --enable-64-bit-archive.
1178         (want_64_bit_archive): New.  Set to true by default for 64-bit
1179         MIPS and s390 ELF targets.
1180         (USE_64_BIT_ARCHIVE): New AC_DEFINE.
1181         * config.in: Regenerated.
1182         * configure: Likewise.
1183         * elf64-mips.c (bfd_elf64_archive_functions): Removed.
1184         (bfd_elf64_archive_slurp_armap): Likewise.
1185         (bfd_elf64_archive_write_armap): Likewise.
1186         (bfd_elf64_archive_slurp_extended_name_table): Likewise.
1187         (bfd_elf64_archive_construct_extended_name_table): Likewise.
1188         (bfd_elf64_archive_truncate_arname): Likewise.
1189         (bfd_elf64_archive_read_ar_hdr): Likewise.
1190         (bfd_elf64_archive_write_ar_hdr): Likewise.
1191         (bfd_elf64_archive_openr_next_archived_file): Likewise.
1192         (bfd_elf64_archive_get_elt_at_index): Likewise.
1193         (bfd_elf64_archive_generic_stat_arch_elt): Likewise.
1194         (bfd_elf64_archive_update_armap_timestamp): Likewise.
1195         * elf64-s390.c (bfd_elf64_archive_functions): Removed.
1196         (bfd_elf64_archive_slurp_armap): Likewise.
1197         (bfd_elf64_archive_write_armap): Likewise.
1198         (bfd_elf64_archive_slurp_extended_name_table): Likewise.
1199         (bfd_elf64_archive_construct_extended_name_table): Likewise.
1200         (bfd_elf64_archive_truncate_arname): Likewise.
1201         (bfd_elf64_archive_read_ar_hdr): Likewise.
1202         (bfd_elf64_archive_write_ar_hdr): Likewise.
1203         (bfd_elf64_archive_openr_next_archived_file): Likewise.
1204         (bfd_elf64_archive_get_elt_at_index): Likewise.
1205         (bfd_elf64_archive_generic_stat_arch_elt): Likewise.
1206         (bfd_elf64_archive_update_armap_timestamp): Likewise.
1207         * elfxx-target.h (TARGET_BIG_SYM): Use _bfd_archive_64_bit on
1208         BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined and
1209         bfd_elfNN_archive_functions isn't defined.
1210         (TARGET_LITTLE_SYM): Likewise.
1211         * libbfd-in.h (_bfd_archive_64_bit_slurp_armap): New prototype.
1212         (_bfd_archive_64_bit_write_armap): Likewise.
1213         (_bfd_archive_64_bit_slurp_extended_name_table): New macro.
1214         (_bfd_archive_64_bit_construct_extended_name_table): Likewise.
1215         (_bfd_archive_64_bit_truncate_arname): Likewise.
1216         (_bfd_archive_64_bit_read_ar_hdr): Likewise.
1217         (_bfd_archive_64_bit_write_ar_hdr): Likewise.
1218         (_bfd_archive_64_bit_openr_next_archived_file): Likewise.
1219         (_bfd_archive_64_bit_get_elt_at_index): Likewise.
1220         (_bfd_archive_64_bit_generic_stat_arch_elt): Likewise.
1221         (_bfd_archive_64_bit_update_armap_timestamp): Likewise.
1222         * libbfd.h: Regenerated.
1223         * plugin.c (plugin_vec): Use _bfd_archive_64_bit on
1224         BFD_JUMP_TABLE_ARCHIVE if USE_64_BIT_ARCHIVE is defined.
1225
1226 2016-05-25  H.J. Lu  <hongjiu.lu@intel.com>
1227
1228         PR ld/20103
1229         * cofflink.c (coff_link_check_archive_element): Return TRUE if
1230         linker add_archive_element callback returns FALSE.
1231         * ecoff.c (ecoff_link_check_archive_element): Likewise.
1232         * elf64-ia64-vms.c (elf64_vms_link_add_archive_symbols): Skip
1233         archive element if linker add_archive_element callback returns
1234         FALSE.
1235         * elflink.c (elf_link_add_archive_symbols): Likewise.
1236         * pdp11.c (aout_link_check_ar_symbols): Likewise.
1237         * vms-alpha.c (alpha_vms_link_add_archive_symbols): Likewise.
1238         * xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Likewise.
1239         (xcoff_link_check_ar_symbols): Likewise.
1240
1241 2016-05-24  Maciej W. Rozycki  <macro@imgtec.com>
1242
1243         * elfxx-mips.c (_bfd_mips_elf_relocate_section)
1244         <bfd_reloc_outofrange>: Unify error reporting code.
1245
1246 2016-05-23  Jim Wilson  <jim.wilson@linaro.org>
1247
1248         * elfnn-aarch64.c: Unconditionally enable R_AARCH64_NULL and
1249         R_AARCH64_NONE.  Use HOWTO64 for R_AARCH64_NULL.
1250         * relocs.c: Add BFD_RELOC_AARCH64_NULL.
1251         * bfd-in2.h: Regenerate.
1252         * libbfd.h: Likewise.
1253
1254 2016-05-23  Kuba Sejdak  <jakub.sejdak@phoesys.com>
1255
1256         * config.bfd: Add entry for arm-phoenix.
1257
1258 2016-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1259
1260         * elf32-arm.c (arm_dedicated_stub_section_padding): New function.
1261         (elf32_arm_size_stubs): Declare stub_type in a more outer scope and
1262         account for padding for stub section requiring one.
1263         (elf32_arm_build_stubs): Add comment to stress the importance of
1264         zeroing veneer section content.
1265
1266 2016-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1267
1268         * bfd-in.h (bfd_elf32_arm_keep_private_stub_output_sections): Declare
1269         bfd hook.
1270         * bfd-in2.h: Regenerate.
1271         * elf32-arm.c (arm_dedicated_stub_output_section_required): New
1272         function.
1273         (arm_dedicated_stub_output_section_required_alignment): Likewise.
1274         (arm_dedicated_stub_output_section_name): Likewise.
1275         (arm_dedicated_stub_input_section_ptr): Likewise.
1276         (elf32_arm_create_or_find_stub_sec): Add stub type parameter and
1277         function description comment. Add support for dedicated output stub
1278         section to given stub types.
1279         (elf32_arm_add_stub): Add a stub type parameter and pass it down to
1280         elf32_arm_create_or_find_stub_sec.
1281         (elf32_arm_create_stub): Pass stub type down to elf32_arm_add_stub.
1282         (elf32_arm_size_stubs): Pass stub type when calling
1283         elf32_arm_create_or_find_stub_sec for Cortex-A8 erratum veneers.
1284         (bfd_elf32_arm_keep_private_stub_output_sections): New function.
1285
1286 2016-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1287
1288         * elf32-i386.c (elf_i386_check_relocs): Don't check R_386_GOT32
1289         when setting need_convert_load.
1290
1291 2016-05-20  Maciej W. Rozycki  <macro@imgtec.com>
1292
1293         * elfxx-mips.c (mips_elf_read_rel_addend): Adjust the addend for
1294         microMIPS JALX.
1295
1296 2016-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1297
1298         PR ld/20117
1299         * elf32-i386.c (elf_i386_convert_load_reloc): Don't check
1300         R_386_GOT32X.
1301         (elf_i386_convert_load): Don't convert R_386_GOT32.
1302
1303 2016-05-20  Alan Modra  <amodra@gmail.com>
1304
1305         PR gas/20118
1306         * elf.c (elf_fake_sections): Set sh_entsize for SHT_INIT_ARRAY,
1307         SHT_FINI_ARRAY, and SHT_PREINIT_ARRAY.
1308
1309 2016-05-19  Cupertino Miranda  <cmiranda@synopsys.com>
1310
1311         * elf32-arc.c (arc_elf_final_write_processing): Changed.
1312         (debug_arc_reloc): Likewise.
1313         (elf_arc_relocate_section): Likewise.
1314         (elf_arc_check_relocs): Likewise.
1315         (elf_arc_adjust_dynamic_symbol): Likewise.
1316         (elf_arc_add_symbol_hook): Likewise.
1317
1318 2016-05-19  Maciej W. Rozycki  <macro@imgtec.com>
1319
1320         * config.bfd: Remove `am34-*-linux*' support.
1321
1322 2016-05-19  Alan Modra  <amodra@gmail.com>
1323
1324         * elf64-ppc.c (allocate_dynrelocs): Allocate got and other dynamic
1325         relocs before plt relocs.
1326
1327 2016-05-19  Alan Modra  <amodra@gmail.com>
1328
1329         * elf64-ppc.c (ppc64_elf_branch_reloc): Check for NULL owner
1330         before dereferencing.
1331
1332 2016-05-18  Nick Clifton  <nickc@redhat.com>
1333
1334         * po/sv.po: Updated Swedish translation.
1335
1336 2016-05-18  Alan Modra  <amodra@gmail.com>
1337
1338         * elf32-arm.c (elf32_arm_size_stubs): Free or cache local syms
1339         for each BFD.  Don't goto error_ret_free_local from outside loop.
1340
1341 2016-05-17  Maciej W. Rozycki  <macro@imgtec.com>
1342
1343         * elf-s390-common.c (elf_s390_add_symbol_hook): Remove
1344         STB_GNU_UNIQUE handling.
1345         * elf32-arc.c (elf_arc_add_symbol_hook): Likewise.
1346         * elf32-arm.c (elf32_arm_add_symbol_hook): Likewise.
1347         * elf32-m68k.c (elf_m68k_add_symbol_hook): Likewise.
1348         * elf32-ppc.c (ppc_elf_add_symbol_hook): Likewise.
1349         * elf32-sparc.c (elf32_sparc_add_symbol_hook): Likewise.
1350         * elf64-ppc.c (ppc64_elf_add_symbol_hook): Likewise.
1351         * elf64-sparc.c (elf64_sparc_add_symbol_hook): Likewise.
1352         * elf64-x86-64.c (elf_x86_64_add_symbol_hook): Likewise.
1353         * elfxx-aarch64.c (_bfd_aarch64_elf_add_symbol_hook): Likewise.
1354         * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Likewise.
1355         * elf32-i386.c (elf_i386_add_symbol_hook): Remove function.
1356         (elf_backend_add_symbol_hook): Remove macro.
1357         * elflink.c (elf_link_add_object_symbols): Set `has_gnu_symbols'
1358         for STB_GNU_UNIQUE symbols.
1359
1360 2016-05-16  Maciej W. Rozycki  <macro@imgtec.com>
1361
1362         * elf32-v850.c (v850_elf_copy_notes): New function, factored out
1363         from...
1364         (v850_elf_copy_private_bfd_data): ... here.  Call the new
1365         function and `_bfd_elf_copy_private_bfd_data'.
1366
1367 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1368
1369         PR ld/20093
1370         * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Don't convert
1371         GOTPCREL relocation against large section.
1372
1373 2016-05-13  Alan Modra  <amodra@gmail.com>
1374
1375         * elf-m10300.c (_bfd_mn10300_elf_finish_dynamic_sections): Use
1376         linker dynamic sections in calculating size and address of
1377         dynamic tags rather than using output sections.  Remove asserts.
1378         * elf32-arm.c (elf32_arm_finish_dynamic_sections): Likewise.
1379         * elf32-cr16.c (_bfd_cr16_elf_finish_dynamic_sections): Likewise.
1380         * elf32-cris.c (elf_cris_finish_dynamic_sections): Likewise.
1381         * elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise.
1382         * elf32-lm32.c (lm32_elf_finish_dynamic_sections): Likewise.
1383         * elf32-m32r.c (m32r_elf_finish_dynamic_sections): Likewise.
1384         * elf32-m68k.c (elf_m68k_finish_dynamic_sections): Likewise.
1385         * elf32-metag.c (elf_metag_finish_dynamic_sections): Likewise.
1386         * elf32-microblaze.c (microblaze_elf_finish_dynamic_sections): Likewise.
1387         * elf32-nds32.c (nds32_elf_finish_dynamic_sections): Likewise.
1388         * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Likewise.
1389         * elf32-or1k.c (or1k_elf_finish_dynamic_sections): Likewise.
1390         * elf32-s390.c (elf_s390_finish_dynamic_sections): Likewise.
1391         * elf32-score.c (s3_bfd_score_elf_finish_dynamic_sections): Likewise.
1392         * elf32-score7.c (s7_bfd_score_elf_finish_dynamic_sections): Likewise.
1393         * elf32-vax.c (elf_vax_finish_dynamic_sections): Likewise.
1394         * elf32-xtensa.c (elf_xtensa_finish_dynamic_sections): Likewise.
1395         * elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Likewise.
1396         * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
1397         * elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise.
1398         * elflink.c (bfd_elf_final_link): Likewise.
1399         * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Likewise.
1400         * elfxx-sparc.c (sparc_finish_dyn): Likewise.  Adjust error message.
1401         * elf32-arc.c (GET_SYMBOL_OR_SECTION): Remove ASSERT arg and
1402         don't set doit.  Look up dynobj section.
1403         (elf_arc_finish_dynamic_sections): Adjust GET_SYMBOL_OR_SECTION
1404         invocation and dynamic tag vma calculation.  Don't test
1405         boolean var == TRUE.
1406         * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_sections): Fix
1407         DT_JMPREL calc.
1408
1409 2016-05-13  Alan Modra  <amodra@gmail.com>
1410
1411         * elflink.c (elf_link_sort_relocs): Wrap overlong lines.  Fix
1412         octets_per_byte.  Put dynamic .rela.plt last in link orders.
1413         Assign output_offset for reloc sections rather than writing
1414         sorted relocs from block corresponding to output_offset.
1415
1416 2016-05-12  Alan Modra  <amodra@gmail.com>
1417
1418         * elf-bfd.h (elf_reloc_type_class): Put reloc_class_plt last.
1419
1420 2016-05-11  Andrew Bennett  <andrew.bennett@imgtec.com>
1421
1422         * elfxx-mips.c (print_mips_ases): Add DSPR3.
1423
1424 2016-05-11  Alan Modra  <amodra@gmail.com>
1425
1426         * elf32-hppa.c (elf32_hppa_init_stub_bfd): New function.
1427         (elf32_hppa_check_relocs): Don't set dynobj.
1428         (elf32_hppa_size_stubs): Test !SEC_LINKER_CREATED for stub sections.
1429         (elf32_hppa_build_stubs): Likewise.
1430         * elf32-hppa.h (elf32_hppa_init_stub_bfd): Declare.
1431
1432 2016-05-11  Alan Modra  <amodra@gmail.com>
1433
1434         PR 20060
1435         * elf64-ppc.c (ppc64_elf_tls_setup): Clear forced_local.
1436         * elf32-ppc.c (ppc_elf_tls_setup): Likewise.
1437
1438 2016-05-10  Jiong Wang  <jiong.wang@arm.com>
1439
1440         * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Remove redundant
1441         aarch64_tls_transition check.
1442
1443 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1444
1445         * elf32-arm.c (enum elf32_arm_stub_type): New max_stub_type
1446         enumerator.
1447         (arm_stub_sym_claimed): New function.
1448         (elf32_arm_create_stub): Use veneered symbol name and section if
1449         veneer needs to claim its symbol, and keep logic unchanged otherwise.
1450         (arm_stub_claim_sym): New function.
1451         (arm_map_one_stub): Call arm_stub_claim_sym if veneer needs to claim
1452         veneered symbol, otherwise create local symbol as before.
1453
1454 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1455
1456         * elf32-arm.c (elf32_arm_size_stubs): Use new macros
1457         ARM_GET_SYM_BRANCH_TYPE and ARM_SET_SYM_BRANCH_TYPE to respectively get
1458         and set branch type of a symbol.
1459         (bfd_elf32_arm_process_before_allocation): Likewise.
1460         (elf32_arm_relocate_section): Likewise and fix identation along the
1461         way.
1462         (allocate_dynrelocs_for_symbol): Likewise.
1463         (elf32_arm_finish_dynamic_symbol): Likewise.
1464         (elf32_arm_swap_symbol_in): Likewise.
1465         (elf32_arm_swap_symbol_out): Likewise.
1466
1467 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1468
1469         * bfd-in.h (elf32_arm_size_stubs): Add an output section parameter.
1470         * bfd-in2.h: Regenerated.
1471         * elf32-arm.c (struct elf32_arm_link_hash_table): Add an output section
1472         parameter to add_stub_section callback.
1473         (elf32_arm_create_or_find_stub_sec): Get output section from link_sec
1474         and pass it down to add_stub_section.
1475         (elf32_arm_add_stub): Set section to stub_sec if NULL before using it
1476         for error message.
1477         (elf32_arm_size_stubs): Add output section parameter to
1478         add_stub_section function pointer parameter.
1479
1480 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1481
1482         * elf32-arm.c (elf32_arm_create_stub): New function.
1483         (elf32_arm_size_stubs): Use elf32_arm_create_stub for stub creation.
1484
1485 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1486
1487         * elf32-arm.c (enum elf32_arm_stub_type): Delete
1488         arm_stub_a8_veneer_lwm enumerator.
1489         (arm_stub_a8_veneer_lwm): New unsigned constant to replace
1490         aforementioned enumerator.
1491         (struct elf32_arm_stub_hash_entry): Delete target_addend
1492         field and add source_value.
1493         (struct a8_erratum_fix): Delete addend field and add target_offset.
1494         (stub_hash_newfunc): Initialize source_value field amd remove
1495         initialization for target_addend.
1496         (arm_build_one_stub): Stop special casing Thumb relocations: promote
1497         the else to being always executed, moving the
1498         arm_stub_a8_veneer_b_cond specific code in it.  Remove
1499         stub_entry->target_addend from points_to computation.
1500         (cortex_a8_erratum_scan): Store in a8_erratum_fix structure the offset
1501         to target symbol from start of section rather than the offset from the
1502         stub address.
1503         (elf32_arm_size_stubs): Set stub_entry's source_value and target_value
1504         fields from struct a8_erratum_fix's offset and target_offset
1505         respectively.
1506         (make_branch_to_a8_stub): Rename target variable to loc.  Compute
1507         veneered_insn_loc and loc using stub_entry's source_value.
1508
1509 2016-05-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1510
1511         (elf32_arm_merge_eabi_attributes): Add merging logic for
1512         Tag_DSP_extension.
1513
1514 2016-05-10  Pip Cet  <pipcet@gmail.com>
1515
1516         PR ld/20059
1517         * elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type):
1518         Define as _bfd_generic_copy_link_hash_symbol_type when using
1519         generic hash table.
1520
1521 2016-05-09  Nick Clifton  <nickc@redhat.com>
1522
1523         PR binutils/20063
1524         * elf.c (bfd_elf_get_elf_syms): Check for out of range sh_link
1525         field before accessing sections array.
1526
1527 2016-05-09  Christophe Monat  <christophe.monat@st.com>
1528
1529         PR ld/20030
1530         * elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding.
1531         (stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs
1532         to nb_words.
1533         (create_instruction_vldmia): Add is_dp to disambiguate SP/DP
1534         encoding.
1535         (create_instruction_vldmdb): Likewise.
1536         (stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding,
1537         uses it to re-encode.
1538
1539 2016-05-09  Nick Clifton  <nickc@redhat.com>
1540
1541         PR 19938
1542         * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Revert accidental
1543         commit.
1544
1545 2016-05-09  Alan Modra  <amodra@gmail.com>
1546
1547         * elf64-ppc.c (ppc64_elf_init_stub_bfd): Remove redundant NULL check.
1548
1549 2016-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1550
1551         PR ld/17550
1552         * elf-bfd.h (elf_link_hash_entry): Update comments for indx,
1553         documenting that indx == -3 if symbol is defined in a discarded
1554         section.
1555         * elflink.c (elf_link_add_object_symbols): Set indx to -3 if
1556         symbol is defined in a discarded section.
1557         (elf_link_output_extsym): Strip a global symbol defined in a
1558         discarded section.
1559
1560 2016-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1561
1562         * elf32-i386.c (elf_backend_add_symbol_hook): Defined for Intel
1563         MCU.
1564
1565 2016-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1566
1567         * elf32-i386.c (elf_i386_convert_load): Extract the GOT load
1568         conversion to ...
1569         (elf_i386_convert_load_reloc): This.  New function.
1570         * elf64-x86-64.c (elf_x86_64_convert_load): Extract the GOT load
1571         conversion to ...
1572         (elf_x86_64_convert_load_reloc): This.  New function.
1573
1574 2016-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1575
1576         * elf32-i386.c (elf_i386_check_tls_transition): Remove abfd.
1577         Don't check if contents == NULL.
1578         (elf_i386_tls_transition): Add from_relocate_section.  Check
1579         from_relocate_section instead of contents != NULL.  Update
1580         elf_i386_check_tls_transition call.
1581         (elf_i386_check_relocs): Cache the section contents if
1582         keep_memory is FALSE.  Pass FALSE as from_relocate_section to
1583         elf_i386_tls_transition.
1584         (elf_i386_relocate_section): Pass TRUE as from_relocate_section
1585         to elf_i386_tls_transition.
1586         (elf_backend_caches_rawsize): New.
1587         * elf64-x86-64.c (elf_x86_64_check_tls_transition): Don't check
1588         if contents == NULL.
1589         (elf_x86_64_tls_transition): Add from_relocate_section.  Check
1590         from_relocate_section instead of contents != NULL.
1591         (elf_x86_64_check_relocs): Cache the section contents if
1592         keep_memory is FALSE.  Pass FALSE as from_relocate_section to
1593         elf_x86_64_tls_transition.
1594         (elf_x86_64_relocate_section): Pass TRUE as from_relocate_section
1595         to elf_x86_64_tls_transition.
1596         (elf_backend_caches_rawsize): New.
1597
1598 2016-05-03  Maciej W. Rozycki  <macro@imgtec.com>
1599
1600         PR 10549
1601         * elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Handle
1602         STB_GNU_UNIQUE.
1603
1604 2016-05-03  Jiong Wang  <jiong.wang@arm.com>
1605
1606         * bfd-in.h (bfd_elf64_aarch64_set_options): Update prototype.
1607         * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise.
1608         * elfnn-aarch64.c (bfd_elfNN_aarch64_set_options): Initialize
1609         no_apply_dynamic_relocs.
1610         (elfNN_aarch64_final_link_relocate): Apply absolute relocations even though
1611         dynamic relocations generated.
1612
1613 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1614
1615         * elf32-i386.c (elf_i386_size_dynamic_sections): Move interp
1616         setting to ...
1617         (elf_i386_create_dynamic_sections): Here.
1618         * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Move
1619         interp setting to ...
1620         (elf_x86_64_create_dynamic_sections): Here.
1621
1622 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1623
1624         * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take GOT_RELOC
1625         and replace (EH)->has_got_reloc with GOT_RELOC.
1626         (elf_i386_fixup_symbol): Pass has_got_reloc to
1627         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
1628         (elf_i386_allocate_dynrelocs): Likewise.
1629         (elf_i386_relocate_section): Likewise.
1630         (elf_i386_finish_dynamic_symbol): Likewise.
1631         (elf_i386_convert_load): Pass TRUE to
1632         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
1633         * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): Take
1634         GOT_RELOC and replace (EH)->has_got_reloc with GOT_RELOC.
1635         (elf_x86_64_fixup_symbol): Pass has_got_reloc to
1636         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
1637         (elf_x86_64_allocate_dynrelocs): Likewise.
1638         (elf_x86_64_relocate_section): Likewise.
1639         (elf_x86_64_finish_dynamic_symbol): Likewise.
1640         (elf_x86_64_convert_load): Pass TRUE to
1641         UNDEFINED_WEAK_RESOLVED_TO_ZERO.
1642
1643 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1644
1645         * elf32-i386.c (check_relocs_failed): New.
1646         (elf_i386_check_relocs): Set check_relocs_failed on error.
1647         (elf_i386_relocate_section): Skip if check_relocs failed.
1648
1649 2016-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1650
1651         * elf64-x86-64.c (elf_x86_64_check_relocs): Set
1652         check_relocs_failed on error.
1653
1654 2016-04-29  Nick Clifton  <nickc@redhat.com>
1655
1656         PR 19938
1657         * elf-bfd.h (struct elf_backend_data): Rename
1658         elf_backend_set_special_section_info_and_link to
1659         elf_backend_copy_special_section_fields.
1660         * elfxx-target.h: Likewise.
1661         * elf.c (section_match): Ignore the SHF_INFO_LINK flag when
1662         comparing section flags.
1663         (copy_special_section_fields): New function.
1664         (_bfd_elf_copy_private_bfd_data): Copy the EI_ABIVERSION field.
1665         Perform two scans over special sections.  The first one looks for
1666         a direct mapping between the output section and an input section.
1667         The second scan looks for a possible match based upon section
1668         characteristics.
1669         * elf32-arm.c (elf32_arm_copy_special_section_fields): New
1670         function.  Handle setting the sh_link field of SHT_ARM_EXIDX
1671         sections.
1672         * elf32-i386.c (elf32_i386_set_special_info_link): Rename to
1673         elf32_i386_copy_solaris_special_section_fields.
1674         * elf32-sparc.c (elf32_sparc_set_special_section_info_link):
1675         Rename to elf32_sparc_copy_solaris_special_section_fields.
1676         * elf64-x86-64.c (elf64_x86_64_set_special_info_link): Rename to
1677         elf64_x86_64_copy_solaris_special_section_fields.
1678
1679 2016-04-28  Nick Clifton  <nickc@redhat.com>
1680
1681         * po/zh_CN.po: Updated Chinese (simplified) translation.
1682
1683 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1684
1685         PR ld/20006
1686         * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections
1687         when estimating distances between output sections.
1688
1689 2016-04-27  Alan Modra  <amodra@gmail.com>
1690
1691         * elflink.c (_bfd_elf_is_start_stop): New function.
1692         (_bfd_elf_gc_mark_rsec): Use it.
1693         * elf-bfd.h (_bfd_elf_is_start_stop): Declare.
1694
1695 2016-04-26  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
1696
1697         * elf32-rx.c (rx_set_section_contents): Avoid arithmetic on void *.
1698         * mmo.c (mmo_get_section_contents): Likewise.
1699         (mmo_set_section_contents): Likewise.
1700
1701 2016-04-26  H.J. Lu  <hongjiu.lu@intel.com>
1702
1703         * elf-bfd.h (elf_link_hash_table): Update comments for
1704         dynsymcount.
1705         * elflink.c (_bfd_elf_link_renumber_dynsyms): Always count for
1706         the unused NULL entry at the head of dynamic symbol table.
1707         (bfd_elf_size_dynsym_hash_dynstr): Remove dynsymcount != 0
1708         checks.
1709
1710 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
1711
1712         * elflink.c (_bfd_elf_link_create_dynstrtab): Exclude linker
1713         created file from dynobj.
1714
1715 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
1716
1717         * elflink.c (_bfd_elf_link_create_dynstrtab): Set dynobj to a
1718         normal input file if possible.
1719
1720 2016-04-21  Nick Clifton  <nickc@redhat.com>
1721
1722         * aout-adobe.c: Use _bfd_generic_link_check_relocs.
1723         * aout-target.h: Likewise.
1724         * aout-tic30.c: Likewise.
1725         * binary.c: Likewise.
1726         * bout.c: Likewise.
1727         * coff-alpha.c: Likewise.
1728         * coff-rs6000.c: Likewise.
1729         * coff64-rs6000.c: Likewise.
1730         * coffcode.h: Likewise.
1731         * i386msdos.c: Likewise.
1732         * i386os9k.c: Likewise.
1733         * ieee.c: Likewise.
1734         * ihex.c: Likewise.
1735         * libbfd-in.h: Likewise.
1736         * libecoff.h: Likewise.
1737         * mach-o-target.c: Likewise.
1738         * mmo.c: Likewise.
1739         * nlm-target.h: Likewise.
1740         * oasys.c: Likewise.
1741         * pef.c: Likewise.
1742         * plugin.c: Likewise.
1743         * ppcboot.c: Likewise.
1744         * som.c: Likewise.
1745         * srec.c: Likewise.
1746         * tekhex.c: Likewise.
1747         * versados.c: Likewise.
1748         * vms-alpha.c: Likewise.
1749         * xsym.c: Likewise.
1750         * elfxx-target.h: Use _bfd_elf_link_check_relocs.
1751         * linker.c (bfd_link_check_relocs): New function.
1752         (_bfd_generic_link_check_relocs): New function.
1753         * targets.c (BFD_JUMP_TABLE_LINK): Add initialization of
1754         _bfd_link_check_relocs field.
1755         (struct bfd_target)L Add _bfd_link_check_relocs field.
1756         * bfd-in2.h: Regenerate.
1757         * libbfd.h: Regenerate.
1758
1759 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1760
1761         * elf32-i386.c (elf_i386_gc_sweep_hook): Removed.
1762         (elf_backend_gc_sweep_hook): Likewise.
1763         * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise.
1764         (elf_backend_gc_sweep_hook): Likewise.
1765
1766 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1767
1768         * elflink.c (_bfd_elf_link_check_relocs): Don't check relocations
1769         in excluded sections
1770
1771 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1772
1773         PR ld/19969
1774         * elf64-x86-64.c (check_relocs_failed): New.
1775         (elf_x86_64_need_pic): Moved before elf_x86_64_check_relocs.
1776         Support relocation agaist local symbol.  Set check_relocs_failed.
1777         (elf_x86_64_check_relocs): Use elf_x86_64_need_pic.  Check
1778         R_X86_64_32 relocation overflow.
1779         (elf_x86_64_relocate_section): Skip if check_relocs failed.
1780         Update one elf_x86_64_need_pic and remove one elf_x86_64_need_pic.
1781
1782 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1783
1784         * elf32-i386.c (elf_i386_check_relocs): Call
1785         _bfd_elf_create_ifunc_sections only for STT_GNU_IFUNC symbol.
1786         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
1787
1788 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1789
1790         * elf-bfd.h (_bfd_elf_link_check_relocs): New.
1791         * elflink.c (_bfd_elf_link_check_relocs): New function.
1792         (elf_link_add_object_symbols): Call _bfd_elf_link_check_relocs
1793         if check_relocs_after_open_input is FALSE.
1794
1795 2016-04-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
1796
1797         * cache.c: Update old style function definitions.
1798         * elf32-m68k.c: Likewise.
1799         * elf64-mmix.c: Likewise.
1800         * stab-syms.c: Likewise.
1801
1802 2016-04-20  Trevor Saunders  <tbsaunde+binutils@tbsaunde.org>
1803
1804         * elf32-arm.c (put_thumb2_insn): Change argument type to bfd_byte *.
1805
1806 2016-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1807
1808         * Makefile.in: Regenerated with automake 1.11.6.
1809         * aclocal.m4: Likewise.
1810         * doc/Makefile.in: Likewise.
1811
1812 2016-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
1813
1814         * reloc.c: Add BFD_RELOC_ARC_NPS_CMEM16 entry.
1815         * bfd-in2.h: Regenerate.
1816         * libbfd.h: Regenerate.
1817         * elf32-arc.c: Add 'opcode/arc.h' include.
1818         (struct arc_relocation_data): Add symbol_name.
1819         (arc_special_overflow_checks): New function.
1820         (arc_do_relocation): Use arc_special_overflow_checks, reindent as
1821         required, add an extra comment.
1822         (elf_arc_relocate_section): Setup symbol_name in reloc_data.
1823
1824 2016-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
1825
1826         * elf32-arc.c (tls_got_entries): Add 'TLS_GOT_' prefix to all
1827         entries.
1828         (elf_arc_relocate_section): Update enum uses.
1829         (elf_arc_check_relocs): Likewise.
1830         (elf_arc_finish_dynamic_symbol): Likewise.
1831
1832 2016-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1833
1834         * elf.c (_bfd_elf_copy_private_bfd_data): Replace "link" with
1835         "sh_link".
1836
1837 2016-04-14  Nick Clifton  <nickc@redhat.com>
1838
1839         PR target/19938
1840         * elf-bbfd.h (struct elf_backend_data): New field:
1841         elf_strtab_flags.
1842         New field: elf_backend_set_special_section_info_and_link
1843         * elfxx-target.h (elf_backend_strtab_flags): Define if not already
1844         defined.
1845         (elf_backend_set_special_section_info_and_link): Define if not
1846         already defined.
1847         (elfNN_bed): Use elf_backend_set_special_section_info_and_link and
1848         elf_backend_strtab_flags macros to initialise fields in structure.
1849         * elf.c (_bfd_elf_make_section_from_shdr): Check for SHF_STRINGS
1850         being set even if SHF_MERGE is not set.
1851         (elf_fake_sections): Likewise.
1852         (section_match): New function.  Matches two ELF sections based
1853         upon fixed characteristics.
1854         (find_link): New function.  Locates a section in a BFD that
1855         matches a section in a different BFD.
1856         (_bfd_elf_copy_private_bfd_data): Copy the sh_info and sh_link
1857         fields of reserved sections.
1858         (bfd_elf_compute_section_file_positions): Set the flags for the
1859         .shstrtab section based upon the elf_strtab_flags field in the
1860         elf_backend_data structure.
1861         (swap_out_syms): Likewise for the .strtab section.
1862         * elflink.c (bfd_elf_final_link): Set the flags for the
1863         .strtab section based upon the elf_strtab_flags field in the
1864         elf_backend_data structure.
1865         * elf32-i386.c (elf32_i386_set_special_info_link): New function.
1866         (elf_backend_strtab_flags): Set to SHF_STRINGS for Solaris
1867         targets.
1868         (elf_backend_set_special_section_info_and_link): Define for
1869         Solaris targets.
1870         * elf32-sparc.c: Likewise.
1871         * elf64-x86-64.c: Likewise.
1872
1873 2016-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1874
1875         PR ld/19939
1876         * elf-bfd.h (_bfd_elf_allocate_ifunc_dyn_relocs): Add a pointer
1877         to bfd_boolean.
1878         * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Updated.
1879         Set *readonly_dynrelocs_against_ifunc_p to TRUE if dynamic reloc
1880         applies to read-only section.
1881         * elf32-i386.c (elf_i386_link_hash_table): Add
1882         readonly_dynrelocs_against_ifunc.
1883         (elf_i386_allocate_dynrelocs): Updated.
1884         (elf_i386_size_dynamic_sections): Issue an error for read-only
1885         segment with dynamic IFUNC relocations only if
1886         readonly_dynrelocs_against_ifunc is TRUE.
1887         * elf64-x86-64.c (elf_x86_64_link_hash_table): Add
1888         readonly_dynrelocs_against_ifunc.
1889         (elf_x86_64_allocate_dynrelocs): Updated.
1890         (elf_x86_64_size_dynamic_sections): Issue an error for read-only
1891         segment with dynamic IFUNC relocations only if
1892         readonly_dynrelocs_against_ifunc is TRUE.
1893         * elfnn-aarch64.c (elfNN_aarch64_allocate_ifunc_dynrelocs):
1894         Updated.
1895
1896 2016-04-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1897
1898         * elf32-arm.c (elf32_arm_size_stubs): Move error_ret_free_local to be
1899         a fall through from error_ret_free_internal.  Free local_syms in
1900         error_ret_free_local if allocated from bfd_elf_get_elf_syms ().
1901
1902 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
1903
1904         * elf32-arc.c (plt_do_relocs_for_symbol): Changed.
1905         (relocate_plt_for_entry): Likewise.
1906
1907 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
1908
1909         * elf32-arc.c (elf_arc_check_relocs): Changed
1910
1911 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
1912
1913         * elf32-arc.c (name_for_global_symbol): Changed assert.
1914         (get_replace_function): Created.:
1915         (struct arc_relocation_data): Changed to signed types.
1916         (defines S, L, P, PDATA): Casted to signed type.
1917         (defines SECTSTART, _SDA_BASE_, TLS_REL): Likewise.
1918         (PRINT_DEBUG_RELOC_INFO_BEFORE): Changed.
1919         (arc_do_relocation): Changed.
1920
1921 2016-04-05  Cupertino Miranda  <cmiranda@synopsys.com>
1922
1923         * elf32-arc.c (name_for_global_symbol): Added assert to check for
1924         symbol index.
1925         (elf_arc_relocate_section): Added and changed asserts, validating
1926         the synamic symbol index.
1927         (elf_arc_finish_dynamic_symbol): Do not fill the dynamic
1928         relocation if symbol has dynindx set to -1.
1929
1930 2016-04-05  Maciej W. Rozycki  <macro@imgtec.com>
1931
1932         * elflink.c (elf_link_add_object_symbols): Always turn hidden
1933         and internal symbols which have a dynamic index into local
1934         ones.
1935
1936 2016-04-04  Nick Clifton  <nickc@redhat.com>
1937
1938         PR 19872
1939         * dwarf2.c (parse_comp_unit): Skip warning about unrecognised
1940         version number if the version is zero.
1941
1942 2016-04-01  Alan Modra  <amodra@gmail.com>
1943
1944         PR 19886
1945         * elflink.c (on_needed_list): Recursively check needed status.
1946         (elf_link_add_object_symbols): Adjust.
1947
1948 2016-03-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1949
1950         * elf32-avr.c (avr_elf32_load_records_from_section): Free
1951         internal_relocs only if they aren't cached.
1952
1953 2016-03-29  Nick Clifton  <nickc@redhat.com>
1954
1955         PR 17334
1956         * elf32-bfin.c (elf32_bfinfdpic_finish_dynamic_sections): Relax
1957         assertion on the size of the got section to allow it to be bigger
1958         than the number of relocs.
1959
1960 2016-03-29  Toni Spets  <toni.spets@iki.fi>
1961
1962         PR 19878
1963         * coffcode.h (coff_write_object_contents): Revert accidental
1964         2014-11-10 change.
1965
1966 2016-03-22  Alan Modra  <amodra@gmail.com>
1967
1968         PR 19850
1969         * dwarf2.c (read_attribute_value): Skip info_ptr check for
1970         DW_FORM_flag_present.
1971
1972 2016-03-22  Nick Clifton  <nickc@redhat.com>
1973
1974         * cpu-v850_rh850.c (arch_info_struct): Restore v850-rh850 as an
1975         architecture name for backwards compatibility.
1976
1977         * peXXigen.c (_bfd_XXi_write_codeview_record): Fix possible
1978         unbounded stack use.
1979
1980         * warning.m4 (GCC_WARN_CFLAGS): Only add -Wstack-usage if using a
1981         sufficiently recent version of GCC.
1982         * configure: Regenerate.
1983
1984 2016-03-22  Alan Modra  <amodra@gmail.com>
1985
1986         PR 19851
1987         * plugin.c (try_load_plugin): Avoid -Wstack-usage warning.
1988
1989 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1990
1991         * archures.c (bfd_mach_arc_nps400): Define.
1992         * bfd-in2.h: Regenerate.
1993         * cpu-arc.c (arch_info_struct): New entry for nps400, renumber
1994         some existing entries to make space.
1995         * elf32-arc.c (arc_elf_object_p): Add nps400 case.
1996         (arc_elf_final_write_processing): Likewise.
1997
1998 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
1999
2000         * elf32-arc.c (arc_elf_print_private_bfd_data): Remove use of
2001         EF_ARC_CPU_GENERIC.
2002         (arc_elf_final_write_processing): Don't bother setting cpu field
2003         in e_flags, this will have been set elsewhere.
2004
2005 2016-03-21  Andrew Burgess  <andrew.burgess@embecosm.com>
2006
2007         * elf32-arc.c (arc_elf_final_write_processing): Switch to using
2008         EF_ARC_MACH_MSK.
2009
2010 2016-03-21  Nick Clifton  <nickc@redhat.com>
2011
2012         * warning.m4 (GCC_WARN_CFLAGS): Add -Wstack-usage=262144
2013         * configure: Regenerate.
2014         * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Replace use of
2015         alloca with call to xmalloc.
2016         * elf32-nds32.c: Likewise.
2017         * elf64-hppa.c: Likewise.
2018         * elfxx-mips.c: Likewise.
2019         * pef.c: Likewise.
2020         * pei-x86_64.c: Likewise.
2021         * som.c: Likewise.
2022         * xsym.c: Likewise.
2023
2024 2016-03-15  H.J. Lu  <hongjiu.lu@intel.com>
2025
2026         PR ld/19827
2027         * elf32-i386.c (elf_i386_check_relocs): Bind defined symbol
2028         locally in PIE.
2029         (elf_i386_relocate_section): Likewise.
2030         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
2031         (elf_x86_64_relocate_section): Likewise.
2032
2033 2016-03-15  H.J. Lu  <hongjiu.lu@intel.com>
2034
2035         PR ld/19807
2036         * elf64-x86-64.c (elf_x86_64_relocate_section): Check
2037         no_reloc_overflow_check to diable R_X86_64_32/R_X86_64_32S
2038         relocation overflow check.
2039
2040 2016-03-14  H.J. Lu  <hongjiu.lu@intel.com>
2041
2042         * bfd-in2.h: Regenerated.
2043
2044 2016-03-11  Dan Gissel  <dgisselq@ieee.org>
2045
2046         PR 19713
2047         * elf.c (_bfd_elf_section_offset): Ensure that the returned offset
2048         uses bytes not octets.
2049         * elflink.c (resolve_section): Likewise.
2050         Add a bfd parameter.
2051         (eval_section): Pass the input_bfd to resolve_section.
2052         (bfd_elf_perform_complex_relocation): Convert byte offset to
2053         octets before read and writing values.
2054         (elf_link_input_bfd): Add byte to octet conversions.
2055         (elf_reloc_link_order): Likewise.
2056         (elf_fixup_link_order): Likewise.
2057         (bfd_elf_final_link): Likewise.
2058         * reloc.c (_bfd_final_link_relocate): Likewise.
2059         * syms.c (_bfd_stab_section_find_nearest_line): Likewise.
2060
2061 2016-03-10  Nick Clifton  <nickc@redhat.com>
2062
2063         * config.bfd: Mark the i370 target as obsolete.
2064
2065 2016-03-09  Pedro Alves  <palves@redhat.com>
2066
2067         * cpu-v850.c (N): Append ":old-gcc-abi" instead of " (using old
2068         gcc ABI)" to printable name.
2069         * cpu-v850_rh850.c (bfd_v850_rh850_arch): Use "v850:rh850" instead
2070         of "v850-rh850" as printable name.
2071
2072 2016-03-09  Leon Winter  <winter-gcc@bfw-online.de>
2073
2074         PR ld/19623
2075         * cofflink.c (_bfd_coff_generic_relocate_section): Do not apply
2076         relocations against absolute symbols.
2077
2078 2016-03-09  Alan Modra  <amodra@gmail.com>
2079
2080         PR binutils/19775
2081         * coff-alpha.c (alpha_ecoff_openr_next_archived_file): Allow zero
2082         length elements in the archive.
2083
2084 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
2085
2086         PR ld/19789
2087         * elflink.c (elf_link_add_object_symbols): Create dynamic sections
2088         for -E/--dynamic-list only when not relocatable.
2089
2090 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
2091
2092         PR ld/19784
2093         * elf32-i386.c (elf_i386_check_relocs): Increment PLT reference
2094         count for locally defined local IFUNC symbols in shared object.
2095         * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
2096
2097 2016-03-08  H.J. Lu  <hongjiu.lu@intel.com>
2098
2099         PR ld/19579
2100         * elflink.c (_bfd_elf_merge_symbol): Group common symbol checking
2101         together.
2102
2103 2016-03-08  Cupertino Miranda  <Cupertino.Miranda@synopsys.com>
2104             Andrew Burgess  <andrew.burgess@embecosm.com>
2105
2106         * elf32-arc.c (arc_bfd_get_32): Becomes an alias for bfd_get_32.
2107         (arc_bfd_put_32): Becomes an alias for bfd_put_32.
2108         (arc_elf_howto_init): Added assert to validate relocations.
2109         (get_middle_endian_relocation): Delete.
2110         (middle_endian_convert): New function.
2111         (ME): Redefine, now does nothing.
2112         (IS_ME): New define.
2113         (arc_do_relocation): Extend the attached 'ARC_RELOC_HOWTO'
2114         definition to call middle_endian_convert.  Add a new local
2115         variable and make use of this throughout. Added call to
2116         arc_bfd_get_8 and arc_bfd_put_8 for 8 bit relocations.
2117
2118 2016-03-07  Nick Clifton  <nickc@redhat.com>
2119
2120         PR binutils/19775
2121         * archive.c (bfd_generic_openr_next_archived_file): Allow zero
2122         length elements in the archive.
2123
2124 2016-03-07  Jiong Wang  <jiong.wang@arm.com>
2125
2126         * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Always create .got
2127         section if the symbol "_GLOBAL_OFFSET_TABLE_" is referenced.
2128
2129 2016-03-04  H.J. Lu  <hongjiu.lu@intel.com>
2130
2131         PR ld/19579
2132         * elflink.c (_bfd_elf_merge_symbol): Treat common symbol in
2133         executable as definition if the new definition comes from a
2134         shared library.
2135
2136 2016-03-02  Alan Modra  <amodra@gmail.com>
2137
2138         * Makefile.in: Regenerate.
2139         * po/SRC-POTFILES.in: Regenerate.
2140
2141 2016-02-29  Cupertino Miranda  <cmiranda@synopsys.com>
2142
2143         * elf32-arc.c (elf_arc_relocate_section): Added rules to fix the
2144         relocation addend when sections get merged.
2145
2146 2016-02-29  Cupertino Miranda <Cupertino.Miranda@synopsys.com>
2147
2148         * elf32-arc.c (arc_elf_final_write_processing): Add condition to
2149         the flag change.
2150         (elf_arc_relocate_section): Fixes and conditions to support PIE.
2151         Assert for code sections dynamic relocs.
2152
2153 2016-02-26  Renlin Li  <renlin.li@arm.com>
2154
2155         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix signed overflow
2156         check for MOVW_SABS_G0, MOVW_SABS_G1, MOVW_SABS_G2.
2157
2158 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
2159
2160         PR ld/19609
2161         * elf32-i386.c (elf_i386_convert_load): Convert to R_386_32 for
2162         load with locally bound symbols if PIC is false or there is no
2163         base register.  Optimize branch to 0 if PIC is false.
2164         (elf_i386_relocate_section): Don't generate dynamic relocations
2165         against undefined weak symbols if PIC is false.
2166         * elf64-x86-64.c (elf_x86_64_convert_load): Disable optimization
2167         if we can't estimate relocation overflow with --no-relax.
2168         Convert to R_X86_64_32S/R_X86_64_32 for load with locally bound
2169         symbols if PIC is false.  Optimize branch to 0 if PIC is false.
2170         (elf_x86_64_relocate_section): Don't generate dynamic relocations
2171         against undefined weak symbols if PIC is false.
2172
2173 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
2174
2175         PR ld/19645
2176         * bfd.c (bfd): Change flags to 20 bits.
2177         (BFD_CONVERT_ELF_COMMON): New.
2178         (BFD_USE_ELF_STT_COMMON): Likewise.
2179         (BFD_FLAGS_SAVED): Add BFD_CONVERT_ELF_COMMON and
2180         BFD_USE_ELF_STT_COMMON.
2181         (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
2182         * configure.ac: Remove --enable-elf-stt-common.
2183         * elf.c (swap_out_syms): Choose STT_COMMON or STT_OBJECT for
2184         common symbol depending on BFD_CONVERT_ELF_COMMON and
2185         BFD_USE_ELF_STT_COMMON.
2186         * elfcode.h (elf_slurp_symbol_table): Set BSF_ELF_COMMON for
2187         STT_COMMON.
2188         * elflink.c (bfd_elf_link_mark_dynamic_symbol): Also check
2189         STT_COMMON.
2190         (elf_link_convert_common_type): New function.
2191         (elf_link_output_extsym): Choose STT_COMMON or STT_OBJECT for
2192         common symbol depending on BFD_CONVERT_ELF_COMMON and
2193         BFD_USE_ELF_STT_COMMON.  Set sym.st_info after sym.st_shndx.
2194         * elfxx-target.h (TARGET_BIG_SYM): Add BFD_CONVERT_ELF_COMMON
2195         and BFD_USE_ELF_STT_COMMON to object_flags.
2196         (TARGET_LITTLE_SYM): Likewise.
2197         * syms.c (BSF_KEEP_G): Renamed to ...
2198         (BSF_ELF_COMMON): This.
2199         * bfd-in2.h: Regenerated.
2200         * config.in: Likewise.
2201         * configure: Likewise.
2202
2203 2016-02-26  H.J. Lu  <hongjiu.lu@intel.com>
2204
2205         PR ld/19636
2206         PR ld/19704
2207         PR ld/19719
2208         * elf32-i386.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
2209         (elf_i386_link_hash_entry): Add has_got_reloc and
2210         has_non_got_reloc.
2211         (elf_i386_link_hash_table): Add interp.
2212         (elf_i386_link_hash_newfunc): Initialize has_got_reloc and
2213         has_non_got_reloc.
2214         (elf_i386_copy_indirect_symbol): Copy has_got_reloc and
2215         has_non_got_reloc.
2216         (elf_i386_check_relocs): Set has_got_reloc and has_non_got_reloc.
2217         (elf_i386_fixup_symbol): New function.
2218         (elf_i386_pie_finish_undefweak_symbol): Likewise.
2219         (elf_i386_allocate_dynrelocs): Don't allocate space for dynamic
2220         relocations and discard relocations against resolved undefined
2221         weak symbols in executable.  Don't make resolved undefined weak
2222         symbols in executable dynamic.  Keep dynamic non-GOT/non-PLT
2223         relocation against undefined weak symbols in PIE.
2224         (elf_i386_size_dynamic_sections): Set interp to .interp section.
2225         (elf_i386_relocate_section): Don't generate dynamic relocations
2226         against resolved undefined weak symbols in PIE, except for
2227         R_386_PC32.
2228         (elf_i386_finish_dynamic_symbol): Keep PLT/GOT entries without
2229         dynamic PLT/GOT relocations for resolved undefined weak symbols.
2230         Don't generate dynamic relocation against resolved undefined weak
2231         symbol in executable.
2232         (elf_i386_finish_dynamic_sections): Call
2233         elf_i386_pie_finish_undefweak_symbol on all symbols in PIE.
2234         (elf_backend_fixup_symbol): New.
2235         * elf64-x86-64.c (UNDEFINED_WEAK_RESOLVED_TO_ZERO): New.
2236         (elf_x86_64_link_hash_entry): Add has_got_reloc and
2237         has_non_got_reloc.
2238         (elf_x86_64_link_hash_table): Add interp.
2239         (elf_x86_64_link_hash_newfunc): Initialize has_got_reloc and
2240         has_non_got_reloc.
2241         (elf_x86_64_copy_indirect_symbol): Copy has_got_reloc and
2242         has_non_got_reloc.
2243         (elf_x86_64_check_relocs): Set has_got_reloc and
2244         has_non_got_reloc.
2245         (elf_x86_64_fixup_symbol): New function.
2246         (elf_x86_64_pie_finish_undefweak_symbol): Likewise.
2247         (elf_x86_64_allocate_dynrelocs): Don't allocate space for dynamic
2248         relocations and discard relocations against resolved undefined
2249         weak symbols in executable.  Don't make resolved undefined weak
2250         symbols in executable dynamic.
2251         (elf_x86_64_size_dynamic_sections): Set interp to .interp section.
2252         (elf_x86_64_relocate_section): Check relocation overflow for
2253         dynamic relocations against unresolved weak undefined symbols.
2254         Don't generate dynamic relocations against resolved weak
2255         undefined symbols in PIE.
2256         (elf_x86_64_finish_dynamic_symbol): Keep PLT/GOT entries without
2257         dynamic PLT/GOT relocations for resolved undefined weak symbols.
2258         Don't generate dynamic relocation against resolved undefined weak
2259         symbol in executable.
2260         (elf_x86_64_finish_dynamic_sections): Call
2261         elf_x86_64_pie_finish_undefweak_symbol on all symbols in PIE.
2262         (elf_backend_fixup_symbol): New.
2263
2264 2016-02-26  Alan Modra  <amodra@gmail.com>
2265
2266         * elf64-ppc.c (create_linkage_sections): Create sfpr when
2267         save_restore_funcs, rest of sections when not relocatable.
2268         (ppc64_elf_init_stub_bfd): Always call create_linkage_sections.
2269         (sfpr_define): Define all symbols on emitted code.
2270         (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created
2271         when relocatable.  Move sfpr_define loop earlier.
2272
2273 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
2274
2275         * elf64-x86-64.c (elf_x86_64_need_pic): New function.
2276         (elf_x86_64_relocate_section): Use it.  Replace
2277         x86_64_elf_howto_table[r_type] with howto.
2278
2279 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
2280
2281         PR ld/19698
2282         * elflink.c (bfd_elf_record_link_assignment): Set versioned if
2283         symbol version is unknown.
2284
2285 2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
2286
2287         * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
2288         to (bfd_vma) -1 when setting needs_plt to 0.
2289         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
2290
2291 2016-02-23  H.J. Lu  <hongjiu.lu@intel.com>
2292
2293         * elflink.c (bfd_elf_record_link_assignment): Check for shared
2294         library, instead of PIC, and don't check PDE when making linker
2295         assigned symbol dynamic.
2296
2297 2016-02-23  Faraz Shahbazker  <faraz.shahbazker@imgtec.com>
2298
2299         * bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment
2300         ABIVERSION for non-executable stack.
2301
2302 2016-02-23  Rich Felker  <bugdal@aerifal.cx>
2303
2304         PR target/19516
2305         * elf32-microblaze.c (microblaze_elf_finish_dynamic_symbol):
2306         Always produce a RELATIVE reloc for a local symbol.
2307
2308 2016-02-23  Hans-Peter Nilsson  <hp@axis.com>
2309
2310         Fix test-case ld-elf/pr19617b
2311         * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
2312         discard unused non-function symbols when --dynamic-list-data.
2313
2314 2016-02-22  H.J. Lu  <hongjiu.lu@intel.com>
2315
2316         * elflink.c (_bfd_elf_link_renumber_dynsyms): Always create the
2317         dynsym section, even if it is empty, with dynamic sections.
2318
2319 2016-02-22  H.J. Lu  <hongjiu.lu@intel.com>
2320
2321         * syms.c: Remove BSF_COMMON from comments.
2322         * bfd-in2.h: Regenerated.
2323
2324 2016-02-22  Jiong Wang  <jiong.wang@arm.com>
2325
2326         * elfnn-aarch64. (aarch64_type_of_stub): Remove redundation calcuation
2327         for destination.  Remove useless function parameters.
2328         (elfNN_aarch64_size_stubs): Update parameters for aarch64_type_of_stub.
2329
2330 2016-02-19  Nick Clifton  <nickc@redhat.com>
2331
2332         PR ld/19629
2333         * aoutx.h (aout_link_add_symbols): Check for out of range string
2334         table offsets.
2335
2336         PR ld/19628
2337         * reloc.c (bfd_generic_get_relocated_section_contents): Stop
2338         processing if we encounter a reloc without an associated symbol.
2339
2340 2016-02-18  H.J. Lu  <hongjiu.lu@intel.com>
2341
2342         PR ld/19617
2343         * elflink.c (elf_link_add_object_symbols): Always create dynamic
2344         sections for -E/--dynamic-list.
2345
2346 2016-02-17  H.J. Lu  <hongjiu.lu@intel.com>
2347
2348         * elf64-x86-64.c (elf_backend_omit_section_dynsym): New.  Defined
2349         to bfd_true.
2350
2351 2016-02-16  Joseph Myers  <joseph@codesourcery.com>
2352
2353         * plugin.c (plugin_vec): Set match priority to 255.
2354         * format.c (bfd_check_format_matches) [BFD_SUPPORTS_PLUGINS]: When
2355         matching against the plugin vector, take priority from there not
2356         from TEMP.
2357
2358 2016-02-15  Nick Clifton  <nickc@redhat.com>
2359
2360         * elf-bfd.h (struct bfd_elf_special_section): Use unsigned values
2361         for length and type fields.  Use a signed value for the
2362         suffix_length field.
2363
2364 2016-02-10  H.J. Lu  <hongjiu.lu@intel.com>
2365
2366         PR ld/19601
2367         * elf32-i386.c (elf_i386_relocate_section): Mask off the least
2368         significant bit in GOT offset for R_386_GOT32X.
2369
2370 2016-02-10  Nick Clifton  <nickc@redhat.com>
2371
2372         PR 19405
2373         * elf32-nios2.c (nios2_elf32_install_imm16): Allow for signed
2374         immediate values.
2375         * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Limit the
2376         number of messages about FDE encoding preventing .eh_frame_hdr
2377         generation.
2378
2379 2016-02-09  Nick Clifton  <nickc@redhat.com>
2380
2381         * oasys.c (oasys_archive_p): Fix indentation.
2382         * elf32-nds32.c (nds32_elf_relax_section): Use an unsigned
2383         constant for left shifting.
2384
2385         * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Add a more
2386         helpful warning message to explain why certain AArch64 relocs
2387         might overflow.
2388
2389 2016-02-05  Simon Marchi  <simon.marchi@ericsson.com>
2390
2391         * pe-mips.c (coff_mips_reloc): Fix formatting.
2392
2393 2016-02-05  Cupertino Miranda  <Cupertino.Miranda@synopsys.com>
2394
2395         * cpu-arc.c: Change default archure from bfd_mach_arc_arcv2
2396         to bfd_mach_arc_arc600.
2397
2398 2016-02-04  Alan Modra  <amodra@gmail.com>
2399
2400         * elf64-ppc.c (ppc64_elf_relocate_section): Adjust last patch
2401         for big-endian.
2402
2403 2016-02-02  H.J. Lu  <hongjiu.lu@intel.com>
2404
2405         PR ld/19542
2406         * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
2407         distances in the compressed_size field of the output section.
2408
2409 2016-02-02  Alan Modra  <amodra@gmail.com>
2410
2411         * elf64-ppc.c (ppc64_elf_relocate_section): Further restrict
2412         ELFv2 entry optimization.
2413
2414 2016-02-02  H.J. Lu  <hongjiu.lu@intel.com>
2415
2416         PR binutils/19547
2417         * elf.c (assign_section_numbers): Clear HAS_RELOC if there are
2418         no relocations in relocatable files.
2419
2420 2016-02-01  H.J. Lu  <hongjiu.lu@intel.com>
2421
2422         PR ld/19553
2423         * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
2424         if a symbol from a library loaded via DT_NEEDED doesn't match
2425         the symbol referenced by regular object.
2426
2427 2016-02-01  Nathaniel Smith  <njs@pobox.com>
2428
2429         * peicode.h (pe_ILF_build_a_bfd): Create an import symbol for both
2430         CODE and DATA.
2431
2432 2016-02-01  Alan Modra  <amodra@gmail.com>
2433
2434         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Don't abort on
2435         an out of range reloc_index.
2436         * elf32-i386.c (elf_i386_get_plt_sym_val): Likewise.
2437
2438 2016-02-01  Kamil Rytarowski  <n54@gmx.com>
2439
2440         * Makefile.am (OPTIONAL_BACKENDS): Add netbsd-core.lo.
2441         (OPTIONAL_BACKENDS_CFILES): Add netbsd-core.c.
2442         * Makefile.in: Regenerated.
2443
2444 2016-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
2445
2446         * elf64-s390.c (elf_s390_reloc_name_lookup): Fix indentation.
2447
2448 2016-01-31  John David Anglin  <danglin@gcc.gnu.org>
2449
2450         PR ld/19526
2451         * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output
2452         files.
2453         * elf64-hppa.c (elf32_hppa_final_link): Likewise.  Remove retval.
2454
2455 2016-01-30  H.J. Lu  <hongjiu.lu@intel.com>
2456
2457         PR ld/19539
2458         * elf32-i386.c (elf_i386_reloc_type_class): Check relocation
2459         against STT_GNU_IFUNC symbol only with dynamic symbols.
2460         * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
2461
2462 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
2463
2464         PR binutils/19523
2465         * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to
2466         decompress debug sections.
2467
2468 2016-01-25  Maciej W. Rozycki  <macro@imgtec.com>
2469
2470         * elf32-arc.c (elf_arc_finish_dynamic_symbol): Rename `index' to
2471         `dynindx'.
2472
2473 2016-01-25  Nick Clifton  <nickc@redhat.com>
2474
2475         PR target/19435
2476         * mach-o.c (bfd_mach_o_close_and_cleanup): Suppress code to free
2477         dsym filename buffer.
2478
2479 2016-01-24  Maciej W. Rozycki  <macro@imgtec.com>
2480
2481         * elfxx-mips.c (BZ16_REG_FIELD): Simplify calculation.
2482
2483 2016-01-24  Maciej W. Rozycki  <macro@imgtec.com>
2484
2485         * elfxx-mips.c (BZ16_REG): Correct calculation.
2486
2487 2016-01-21  Nick Clifton  <nickc@redhat.com>
2488
2489         * elf32-arc.c (ADD_RELA): Fix compile time warning errors by
2490         changing the type of _loc to be bfd_byte *.
2491         (elf_arc_finish_dynamic_symbol): Likewise.
2492
2493 2016-01-21  Nick Clifton  <nickc@redhat.com>
2494
2495         PR ld/19455
2496         * elf32-arm.c (elf32_arm_create_dynamic_sections): Set the ELF
2497         class of the linker stub bfd.
2498         (elf32_arm_check_relocs): Skip check for pic format after
2499         processing a vxWorks R_ARM_ABS12 reloc.
2500         * elflink.c (bfd_elf_final_link): Check for ELFCLASSNONE when
2501         reporting a class mismatch.
2502
2503 2016-01-21  Jiong Wang  <jiong.wang@arm.com>
2504
2505         * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
2506         veneer for sym_sec != input_sec.
2507         (elfNN_aarch64_size_stub): Support STT_SECTION symbol.
2508         (elfNN_aarch64_final_link_relocate): Take rela addend into account when
2509         calculation destination.
2510
2511 2016-01-21  Alan Modra  <amodra@gmail.com>
2512
2513         * elf-linux-core.h (swap_linux_prpsinfo32_out): New function.
2514         (swap_linux_prpsinfo64_out): New function.
2515         (LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
2516         (LINUX_PRPSINFO64_SWAP_FIELDS): Delete.
2517         * elf.c (elfcore_write_linux_prpsinfo32): Adjust.  Don't memset.
2518         (elfcore_write_linux_prpsinfo64): Likewise.
2519         * elf32-ppc.c (swap_ppc_linux_prpsinfo32_out): New function.
2520         (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): Delete.
2521         (elfcore_write_ppc_linux_prpsinfo32): Adjust.  Don't memset.
2522
2523 2016-01-21  Alan Modra  <amodra@gmail.com>
2524
2525         * elf-linux-core.h: Rename from elf-linux-psinfo.h.
2526         * elf.c: Adjust #include.
2527         * elf32-ppc.c: Don't #include elf-linux-psinfo.h
2528         * Makefile.am (SOURCE_HFILES): Update.
2529         * Makefile.in: Regenerate.
2530         * po/SRC-PORFILES.in: Regenerate.
2531
2532 2016-01-21  Alan Modra  <amodra@gmail.com>
2533
2534         * configure.ac: Move corefile selection later in file.  Move
2535         tdefaults code immediately after other target vector code.
2536         * configure: Regenerate.
2537
2538 2016-01-20  Mickael Guene  <mickael.guene@st.com>
2539
2540         * elf32-arm.c (elf32_arm_special_sections): Remove catch of noread
2541         section using '.text.noread' pattern.
2542
2543 2016-01-19  John Baldwin  <jhb@FreeBSD.org>
2544
2545         * elf.c (elfcore_grok_note): Recognize NT_FREEBSD_THRMISC notes.
2546
2547 2016-01-18  Miranda Cupertino  <Cupertino.Miranda@synopsys.com>
2548             Zissulescu Claudiu  <Claudiu.Zissulescu@synopsys.com>
2549
2550         * arc-plt.def: New file.
2551         * arc-plt.h: Likewise.
2552         * elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
2553                        elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
2554                        elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
2555                        elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
2556         (name_for_global_symbol): Added.
2557         (ADD_RELA): Helper to create dynamic relocs.
2558         (new_got_entry_to_list): Create a new got entry in linked list.
2559         (symbol_has_entry_of_type): Search for specific type of entry in
2560         list.
2561         (is_reloc_for_GOT): return FALSE for any TLS related relocs.
2562         (is_reloc_for_TLS, arc_elf_set_private_flags)
2563         (arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
2564         (arc_elf_merge_private_bfd_data): New functions.
2565         (debug_arc_reloc): Cleaned debug info printing.
2566         (PDATA reloc): Changed not to perform address alignment.
2567         (reverse_me): Added. Fix for ARC_32 relocs.
2568         (arc_do_relocation): Return bfd_reloc_of when no relocation should
2569         occur.
2570         (arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
2571         Changed function to access an array of list of GOT entries instead
2572         of just an array of offsets.
2573         (elf_arc_relocate_section): Added support for PIC and TLS related relocations.
2574         (elf_arc_check_relocs): Likewise.
2575         (elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
2576         (elf_arc_finish_dynamic_sections): Likewise
2577         (arc_create_dynamic_sections): Modified conditions to create
2578         dynamic sections.
2579         (ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
2580         (plt_do_relocs_for_symbol, relocate_plt_for_symbol)
2581         (relocate_plt_for_entry): Changed to support new way to define PLT
2582         related code.
2583         (add_symbol_to_plt): Likewise.
2584         (arc_elf_link_hash_table_create): New function.
2585
2586 2016-01-18  Nick Clifton  <nickc@redhat.com>
2587
2588         PR ld/19440
2589         * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external
2590         section number into internal section number.
2591         * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise.
2592         * coffswap.h (coff_swap_sym_in): Likewise.
2593         * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise.
2594         * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal
2595         section number field is big enough to hold the external value.
2596
2597 2016-01-17  Alan Modra  <amodra@gmail.com>
2598
2599         * configure: Regenerate.
2600
2601 2016-01-12  Yury Usishchev  <y.usishchev@samsung.com>
2602
2603         * elf32-arm.c (elf32_arm_fix_exidx_coverage): Insert cantunwind
2604         when address in first unwind entry does not match start of
2605         section.
2606
2607 2016-01-08  Richard Sandiford  <richard.sandiford@arm.com>
2608             Jiong Wang  <jiong.wang@arm.com>
2609
2610         PR ld/19368
2611         * elf32-arm.c (elf32_arm_reloc_type_class): Map R_ARM_IRELATIVE to
2612         reloc_class_ifunc.
2613
2614 2016-01-06  Andrew Burgess  <andrew.burgess@embecosm.com>
2615
2616         * elf32-arc.c (reloc_type_to_name): Change ARC_RELOC_HOWTO to
2617         place 'R_' before the reloc name returned.
2618         (elf_arc_howto_table): Change ARC_RELOC_HOWTO to place 'R_' before
2619         the relocation string.
2620
2621 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
2622
2623         * elfxx-mips.c (mips_elf_merge_obj_abiflags): New function,
2624         factored out from...
2625         (_bfd_mips_elf_merge_private_bfd_data): ... here.
2626
2627 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
2628
2629         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Move
2630         attribute check after ELF file header flag check.
2631
2632 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
2633
2634         * elfxx-mips.c (mips_elf_merge_obj_attributes): Propagate the
2635         return status from `_bfd_elf_merge_object_attributes'.
2636
2637 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
2638
2639         * elfxx-mips.c (mips_elf_merge_obj_e_flags): New function,
2640         factored out from...
2641         (_bfd_mips_elf_merge_private_bfd_data): ... here.
2642
2643 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
2644
2645         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Fold the
2646         handling of input MIPS ABI flags together.
2647
2648 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
2649
2650         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Suppress
2651         attribute checks for null input.
2652
2653 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
2654
2655         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Use local
2656         pointers to target data.
2657
2658 2016-01-04  Maciej W. Rozycki  <macro@imgtec.com>
2659
2660         * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
2661         an FP ABI warning.
2662
2663 2016-01-01  Alan Modra  <amodra@gmail.com>
2664
2665         Update year range in copyright notice of all files.
2666
2667 For older changes see ChangeLog-2015 and doc/ChangeLog-0415
2668 \f
2669 Copyright (C) 2016 Free Software Foundation, Inc.
2670
2671 Copying and distribution of this file, with or without modification,
2672 are permitted in any medium without royalty provided the copyright
2673 notice and this notice are preserved.
2674
2675 Local Variables:
2676 mode: change-log
2677 left-margin: 8
2678 fill-column: 74
2679 version-control: never
2680 End: