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