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