Fix compile time warnings generated when compiling with clang.
[external/binutils.git] / bfd / ChangeLog
1 2015-09-23  Nick Clifton  <nickc@redhat.com>
2
3         * bout.c (b_out_slurp_reloc_table): Cast constant to unsigned in
4         order to avoid problems with left shifting negative values.
5         (abs32code): Likewise.
6         * mach-o.c (FILE_ALIGN): Likewise.
7         * coff-rs6000.c (xcoff_debug_sections): Delete unused static
8         array.
9         * elf32-visium.c (visium_reloc_map): Likewise.
10         * elf32-arm.c (elf32_arm_final_link_relocate): Remove useless
11         calls to abs function.
12         * elf32-frv.c (_frvfdpic_relax_tls_entries): Likewise.
13         * elf32-score.c (score_elf_final_link_relocate): Likewise.
14         * elf32-score7.c (score_elf_final_link_relocate): Likewise.
15         * elf32-i860.c (i860_howto_pc26_reloc): Use multiplication instead
16         of shifting to create a negative mask.
17         * elf32-msp430.c (elf_backend_special_sections): Define.
18         * elfxx-mips.c (got_ofst_reloc_p): Delete unused function.
19         (got_hi16_reloc_p): Delete unused function.
20         * ppcboot.c (ppcboot_bfd_print_private_bfd_data): Fix test of
21         partition name.
22
23 2015-09-23  Nick Clifton  <nickc@redhat.com>
24
25         PR binutils/15835
26         * elf-bfd.h (struct elf_section_list): New structure.
27         (struct elf_obj_tdata): Replace symtab_shndx_hdr with
28         symtab_shndx_list.  Delete symtab_shndx_section.
29         (elf_symtab_shndx): Replace macro with elf_symtab_shndx_list.
30         * elf.c (bfd_elf_get_syms): If symtab index sections are present,
31         scan them for the section that matches the provided symbol table.
32         (bfd_section_from_shdr): Record all SHT_SYMTAB_SHNDX sections.
33         (assign_section_numbers): Use the first symtab index table in the
34         list.
35         (_bfd_elf_compute_section_file_positions): Replace use of
36         symtab_shndx_hdr with use of symtab_shndx_list.
37         (find_section_in_list): New function.
38         (assign_file_postions_except_relocs): Use new function.
39         (_bfd_elf_copy_private_symbol_data): Likewise.
40         (swap_out_syms): Handle multiple symbol table index sections.
41         * elf32-m32c.c (m32c_elf_relax_section): Replace use of
42         symtab_shndx_hdr with use of symtab_shndx_list.
43         * elf32-rl78.c (rl78_elf_relax_section): Likewise.
44         * elf32-rx.c (rx_relax_section): Likewise.
45         * elf32-v850.c (v850_elf_relax_delete_bytes): Likewise.
46         * elflink.c (bfd_elf_final_link): Likewise.
47
48 2015-09-21  H.J. Lu  <hongjiu.lu@intel.com>
49
50         * bfd.c (bfd_update_compression_header): Use bfd_put_32 on
51         ch_type.
52         (bfd_check_compression_header): Use bfd_get_32 on ch_type.
53         (bfd_convert_section_contents): Use bfd_get_32 and bfd_put_32
54         on ch_type.
55
56 2015-09-20  Rich Felker  <dalias@libc.org>
57
58         * elflink.c (_bfd_elf_link_create_dynamic_sections): Don't create
59         .interp when info->nointerp.
60         (bfd_elf_size_dynamic_sections): Adjust assert.
61         * elf32-arm.c (elf32_arm_size_dynamic_sections): Don't size .interp
62         when info->nointerp.
63         * elf32-bfin.c (elf32_bfinfdpic_size_dynamic_sections): Likewise.
64         * elf32-cr16.c (_bfd_cr16_elf_size_dynamic_sections): Likewise.
65         * elf32-cris.c (elf_cris_size_dynamic_sections): Likewise.
66         * elf32-frv.c (elf32_frvfdpic_size_dynamic_sections): Likewise.
67         * elf32-hppa.c (elf32_hppa_size_dynamic_sections): Likewise.
68         * elf32-i370.c (i370_elf_size_dynamic_sections): Likewise.
69         * elf32-i386.c (elf_i386_size_dynamic_sections): Likewise.
70         * elf32-lm32.c (lm32_elf_size_dynamic_sections): Likewise.
71         * elf32-m32r.c (m32r_elf_size_dynamic_sections): Likewise.
72         * elf32-m68k.c (elf_m68k_size_dynamic_sections): Likewise.
73         * elf32-metag.c (elf_metag_size_dynamic_sections): Likewise.
74         * elf32-nds32.c (nds32_elf_size_dynamic_sections): Likewise.
75         * elf32-nios2.c (nios2_elf32_size_dynamic_sections): Likewise.
76         * elf32-or1k.c (or1k_elf_size_dynamic_sections): Likewise.
77         * elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
78         * elf32-s390.c (elf_s390_size_dynamic_sections): Likewise.
79         * elf32-score.c (s3_bfd_score_elf_size_dynamic_sections): Likewise.
80         * elf32-score7.c (s7_bfd_score_elf_size_dynamic_sections): Likewise.
81         * elf32-sh.c (sh_elf_size_dynamic_sections): Likewise.
82         * elf32-tic6x.c (elf32_tic6x_size_dynamic_sections): Likewise.
83         * elf32-tilepro.c (tilepro_elf_size_dynamic_sections): Likewise.
84         * elf32-vax.c (elf_vax_size_dynamic_sections): Likewise.
85         * elf32-xtensa.c (elf_xtensa_size_dynamic_sections): Likewise.
86         * elf64-alpha.c (elf64_alpha_size_dynamic_sections): Likewise.
87         * elf64-hppa.c (elf64_hppa_size_dynamic_sections): Likewise.
88         * elf64-ppc.c (ppc64_elf_size_dynamic_sections): Likewise.
89         * elf64-s390.c (elf_s390_size_dynamic_sections): Likewise.
90         * elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.
91         * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Likewise.
92         * elfnn-aarch64.c (elfNN_aarch64_size_dynamic_sections): Likewise.
93         * elfnn-ia64.c (elfNN_ia64_size_dynamic_sections): Likewise.
94         * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections): Likewise.
95         * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Likewise.
96         * elfxx-tilegx.c (tilegx_elf_size_dynamic_sections): Likewise.
97
98 2015-09-18  Doug Evans  <xdje42@gmail.com>
99
100         * targets.c (enum bfd_flavour): Add comment.
101         (bfd_flavour_name): New function.
102         * bfd-in2.h: Regenerate.
103
104 2015-09-18  Alan Modra  <amodra@gmail.com>
105
106         * elf64-ppc.h (struct ppc64_elf_params <tls_get_addr_opt>): Rename
107         from no_tls_get_addr_opt.
108         * elf64-ppc.c: Update for rename and inversion of tls_get_addr_opt.
109         (ppc64_elf_tls_setup): Set tls_get_addr_opt to 0 only when at
110         default of -1.
111
112 2015-09-17  Alan Modra  <amodra@gmail.com>
113
114         PR 18867
115         * elflink.c (elf_link_adjust_relocs): Correct start of insertion
116         sort main loop.
117
118 2015-09-16  Alan Modra  <amodra@gmail.com>
119
120         PR 18867
121         * elflink.c (elf_link_adjust_relocs): Modify insertion sort to
122         insert a run.  Return status in case of malloc failure.
123         Adjust callers.
124
125 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
126
127         * elf32-xtensa.c (elf_xtensa_be_plt_entry)
128         (elf_xtensa_le_plt_entry): Emit 'entry' instruction only for
129         windowed ABI.
130         (elf_xtensa_create_plt_entry): Generate 'l32r' offsets and fix
131         up instructions according to ABI.
132
133 2015-09-14  Rich Felker  <dalias@libc.org>
134
135         * elf32-sh.c (sh_elf_relocate_section): Set EF_SH_PIC flag
136         instead of clearing it on cross-section relocations.
137         (sh_elf_merge_private_data): Clear EF_SH_PIC flag by default.
138
139 2015-09-12  Helge Deller  <deller@gmx.de>
140
141         PR ld/18514
142         * elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Set .plt entry
143         size to 0.
144
145 2015-09-09  Jiong Wang  <jiong.wang@arm.com>
146
147         * elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): Sort alphabetically.
148
149 2015-09-09  Jiong Wang  <jiong.wang@arm.com>
150
151         * elfnn-aarch64.c (aarch64_tls_transition_without_check): Support three
152         TLS local dynamic traditional relocations types.
153         (elfNN_aarch64_tls_relax): Support TLS local dynamic traditional to
154         local executable relaxation.
155
156 2015-09-03  H.J. Lu  <hongjiu.lu@intel.com>
157
158         * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Remove
159         convert_mov_to_lea.
160
161 2015-09-02  H.J. Lu  <hongjiu.lu@intel.com>
162
163         * elf32-i386.c (R_386_irelative): Renamed to ...
164         (R_386_ext2): This.
165         (R_386_vt_offset): Updated.
166         (elf_i386_rtype_to_howto): Likewise.
167         (elf_i386_relocate_section): Likewise.
168
169 2015-09-01  H.J. Lu  <hongjiu.lu@intel.com>
170
171         PR ld/18900
172         * elf32-i386.c (elf_i386_link_hash_entry): Add
173         func_pointer_refcount.
174         (elf_i386_link_hash_newfunc): Clear func_pointer_refcount.
175         (elf_i386_get_local_sym_hash): Likewise.
176         (elf_i386_copy_indirect_symbol): Also copy
177         func_pointer_refcount.
178         (elf_i386_check_relocs): Increment func_pointer_refcount.
179         (elf_i386_gc_sweep_hook): Decrement func_pointer_refcount.
180         (elf_i386_allocate_dynrelocs): Don't create the PLT entry if
181         there are only function pointer relocations which can be
182         resolved at run-time.  Keep dynanamic relocations for run-time
183         function pointer initialization.
184         (elf_i386_relocate_section): Copy dynamic function pointer
185         relocations.
186         * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add
187         func_pointer_refcount.
188         (elf_x86_64_link_hash_newfunc): Clear func_pointer_refcount.
189         (elf_x86_64_get_local_sym_hash): Likewise.
190         (elf_x86_64_copy_indirect_symbol): Also copy
191         func_pointer_refcount.
192         (elf_x86_64_check_relocs): Increment func_pointer_refcount.
193         (elf_x86_64_gc_sweep_hook): Decrement func_pointer_refcount.
194         (elf_x86_64_allocate_dynrelocs): Don't create the PLT entry if
195         there are only function pointer relocations which can be
196         resolved at run-time.  Keep dynanamic relocations for run-time
197         function pointer initialization.
198         (elf_x86_64_relocate_section): Copy dynamic function pointer
199         relocations.
200
201 2015-09-01  Alan Modra  <amodra@gmail.com>
202
203         * elf64-ppc.c (ppc64_elf_maybe_function_sym): Adjust symbol value
204         if .opd section has been edited.
205
206 2015-09-01  Alan Modra  <amodra@gmail.com>
207
208         PR 18878
209         * elf64-ppc.c (ARRAY_SIZE): Define.  Use throughout.
210         (enum ppc_stub_type): Add ppc_stub_save_res.
211         (struct map_stub): Add "next" and "needs_save_res".
212         (struct ppc_link_hash_entry): Add "save_res" flag.
213         (struct ppc_link_hash_table): Add "group".
214         (sfpr_define): Add stub_sec param.  Define symbol in stub_sec if
215         stub_sec is non-null.  Set "save_res".
216         (save_res_funcs): Make file scope, rename from funcs.  Adjust uses.
217         (ppc64_elf_adjust_dynamic_symbol): Prohibit plt call to save_res syms.
218         (ppc_build_one_stub): Handle ppc_stub_save_res.
219         (ppc_size_one_stub): Set stub type to ppc_size_one_stub on finding
220         stub for linker defined save_res sym.
221         (group_sections): Init new fields of struct map_stub.
222         (ppc64_elf_size_stubs): Reserve space for save/restore func copy.
223         (ppc64_elf_build_stubs): Copy save/restore funcs to groups.  Emit
224         alias syms too.
225         (ppc64_elf_relocate_section): Set destination for ppc_stub_save_res.
226
227 2015-08-31  Alan Modra  <amodra@gmail.com>
228
229         * elf64-ppc.c (get_r2off): Return -1 on error.
230         (ppc_build_one_stub): Adjust for get_r2off change.  Don't emit
231         addi r2,r2,0 on r2off stubs when the low 16-bit delta is zero.
232         (ppc_size_one_stub): Corresponding size changes for r2off stubs.
233         Add condition in test for -R objects.
234
235 2015-08-31  Alan Modra  <amodra@gmail.com>
236
237         * section.c (section_id): Make file scope.
238         (bfd_get_next_section_id): New function.
239         * elf64-ppc.c (struct map_stub): Remove toc_off field.  Move decl.
240         (struct ppc_stub_hash_entry): Delete stub_sec and id_sec.  Add
241         group.  Update all uses.
242         (struct ppc_link_hash_table): Delete top_id, top_index, and
243         input_list.  Add sec_info_arr_size.  Rename stub_group to
244         sec_info, and make group info indirect.  Update stub_group refs
245         throughout file.
246         (ppc_add_stub): Don't look for stub_sec on link_sec stub_group
247         entry.
248         (ppc_build_one_stub): Delete FIXME.
249         (ppc64_elf_setup_section_lists): Size htab->sec_info for all
250         sections, not just input sections.  Don't create htab->input_list.
251         (ppc64_elf_next_input_section): Update to use sec_info union as
252         list pointer.
253         (PREV_SEC): Delete.
254         (group_sections): Pass "info" param rather than "htab".  Iterate
255         over output sections rather than input_list.  Use sec_info union
256         as list pointers.  Alloc atruct map_stub, and return fail status.
257         * bfd-in2.h: Regenerate.
258
259 2015-08-31  Alan Modra  <amodra@gmail.com>
260
261         * elflink.c (elf_sort_symbol): Use correctly sized type for
262         calculating signed section->id difference.
263         (elf_link_add_object_symbols): Likewise.
264         * pef.c (bfd_pef_scan_start_address): Warning fix.
265         * vms-alpha.c (vms_new_section_hook): Likewise.
266
267 2015-08-31  Alan Modra  <amodra@gmail.com>
268
269         * elf32-nds32.c (nds32_convert_32_to_16_alu1): Warning fix.
270         (find_relocs_at_address_addr): Make "reloc_type" an enum.
271         (nds32_elf_relax_delete_blanks): Warning fix.
272         (nds32_elf_relax_loadstore): Correct loop bound.
273
274 2015-08-31  Alan Modra  <amodra@gmail.com>
275
276         * section.c (struct bfd_section): Make "id" and "index" unsigned.
277         * coff-rs6000.c (_bfd_xcoff_sizeof_headers): Adjust local var to suit.
278         * elf.c (elf_map_symbols): Likewise.
279         * elf64-ppc.c (sym_exists_at): Make "id" param unsigned.
280         (struct ppc_link_hash_table): Make "top_id" and "top_index" unsigned.
281         (ppc64_elf_setup_section_lists): Ditto for local vars.
282         * elf32-arm.c: Similarly to elf64-ppc.c.
283         * elf32-avr.c: Likewise.
284         * elf32-hppa.c: Likewise.
285         * elf32-m68hc1x.c: Likewise.
286         * elf32-metag.c: Likewise.
287         * elf32-nios2.c: Likewise.
288         * elfnn-aarch64.c: Likewise.
289         * simple.c (struct saved_offsets): Make "section_count" unsigned.
290         * bfd-in2.h: Regenerate.
291
292 2015-08-27  Alan Modra  <amodra@gmail.com>
293
294         PR 18867
295         * elf64-alpha.c (elf64_alpha_sort_relocs_p): New function.
296         (elf_backend_sort_relocs_p): Define.
297
298 2015-08-26  Alan Modra  <amodra@gmail.com>
299
300         PR 18867
301         * elflink.c (cmp_ext32l_r_offset, cmp_ext32b_r_offset): Delete.
302         (cmp_ext64l_r_offset, cmp_ext64b_r_offset): Delete.
303         (ext32l_r_offset, ext32b_r_offset, ext64l_r_offset, ext64b_r_offset):
304         New functions.
305         (elf_link_adjust_relocs): Use an insertion sort to sort relocs.
306
307 2015-08-26  Matthew Fortune  <matthew.fortune@imgtec.com>
308
309         PR ld/18401
310         * elfxx-mips.c (bfd_mips_isa_ext_mach): New function: Converts an
311         ISA value to a bfd machine number.
312         (bfd_mips_isa_ext): Update the ISA level and revision if
313         necessary.  Use mips_mach_extends_p to decide if the ISA extension
314         needs to be set.
315         (_bfd_mips_elf_merge_private_bfd_data): Allow the ISA extension to
316         be inferred from the ABI setting.  Set the ISA level from the
317         maximum of the incoming and outgoing ISA levels.
318
319 2015-08-25  Nick Clifton  <nickc@redhat.com>
320
321         PR binutils/18854
322         * elf.c (bfd_section_from_shdr): Replace assertions with warnings
323         about multiple symbol tables.
324
325 2015-08-25  Renlin Li  <renlin.li@arm.com>
326
327         * reloc.c (BFD_RELOC_AARCH64_LD64_GOTOFF_LO15): Use LP64 instead of
328         ILP64.
329         * bfd-in2.h: Regenerate.
330
331 2015-08-22  Alan Modra  <amodra@gmail.com>
332
333         * elf.c (_bfd_elf_slurp_version_tables): Always init vd_nodename.
334         Don't copy fields not set by _bfd_elf_swap_verdef_in.
335
336 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
337
338         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC): Recognize new relocation
339         types, including BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12,
340         BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC,
341         BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12,
342         BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC,
343         BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12,
344         BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC,
345         BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12,
346         BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC.
347         (elfNN_aarch64_final_link_relocate): Likewise.
348         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
349         (_bfd_aarch64_elf_resolve_relocation): Likewise.
350
351 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
352
353         * reloc.c (BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12,
354         BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC,
355         BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12,
356         BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC,
357         BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12,
358         BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC.
359         BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12,
360         BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC): New entries.
361         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Likewise.
362         * bfd-in2.h: Regenerate.
363         * libbfd.h: Regenerate.
364
365 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
366
367         PR ld/18276
368         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC): Recognize new relocation
369         types, including BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12,
370         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0,
371         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC,
372         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1,
373         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC,
374         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2.
375         (elfNN_aarch64_final_link_relocate): Likewise.
376         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
377         (_bfd_aarch64_elf_resolve_relocation): Likewise.
378
379 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
380
381         * reloc.c (BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12,
382         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0,
383         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC,
384         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1,
385         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC,
386         BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2): New entries.
387         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Likewise.
388         * bfd-in2.h: Regenerate.
389         * libbfd.h: Regenerate.
390
391 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
392
393         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC): Recognize
394         BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC.
395         (aarch64_reloc_got_type): Likewise.
396         (elfNN_aarch64_final_link_relocate): Likewise.
397         (elfNN_aarch64_relocate_section): Likewise.
398         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
399         (_bfd_aarch64_elf_resolve_relocation): Likewise.
400
401 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
402
403         * reloc.c (BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC): New entry.
404         * bfd-in2.h: Regenerate.
405         * libbfd.h: Regenerate.
406         * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
407         BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC.
408
409 2015-08-19  Alan Modra  <amodra@gmail.com>
410
411         * elf-s390-common.c: Simplify expressions using
412         bfd_linke_executable, bfd_link_pie and bfd_link_pic.
413         * elf32-arm.c: Likewise.
414         * elf32-bfin.c: Likewise.
415         * elf32-frv.c: Likewise.
416         * elf32-m68k.c: Likewise.
417         * elf32-nios2.c: Likewise.
418         * elf32-ppc.c: Likewise.
419         * elf32-s390.c: Likewise.
420         * elf32-sh.c: Likewise.
421         * elf64-alpha.c: Likewise.
422         * elf64-ppc.c: Likewise.
423         * elf64-s390.c: Likewise.
424         * elflink.c: Likewise.
425
426 2015-08-18  Jiong Wang  <jiong.wang@arm.com>
427
428         * elfnn-aarch64.c (aarch64_reloc_got_type): Delete useless check.
429         (elfNN_aarch64_relocate_section): Likewise.
430         (elfNN_aarch64_gc_sweep_hook): Likewise.
431         (elfNN_aarch64_check_relocs): Likewise.
432
433 2015-08-18  H.J. Lu  <hongjiu.lu@intel.com>
434
435         PR ld/18841
436         * elf-bfd.h (elf_link_hash_table): Add dynsym.
437         * elf32-i386.c (elf_i386_reloc_type_class): Return
438         reloc_class_ifunc for relocation against STT_GNU_IFUNC symbol.
439         * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
440         * elflink.c (_bfd_elf_link_create_dynamic_sections): Set dynsym.
441         (bfd_elf_size_dynsym_hash_dynstr): Use dynsym.
442         (elf_final_link_info): Remove dynsym_sec.
443         (elf_link_output_extsym): Replace dynsym_sec with dynsym.
444         (bfd_elf_final_link): Remove reference to dynsym_sec.  Replace
445         dynsym_sec with dynsym.
446
447 2015-08-18  H.J. Lu  <hongjiu.lu@intel.com>
448
449         * bfd/aoutx.h: Replace shared, executable, relocatable and pie
450         fields with bfd_link_executable, bfd_link_dll,
451         bfd_link_relocatable, bfd_link_pic and bfd_link_pie.
452         * bfd/bout.c: Likewise.
453         * bfd/coff-alpha.c: Likewise.
454         * bfd/coff-arm.c: Likewise.
455         * bfd/coff-i386.c: Likewise.
456         * bfd/coff-i960.c: Likewise.
457         * bfd/coff-m68k.c: Likewise.
458         * bfd/coff-mcore.c: Likewise.
459         * bfd/coff-mips.c: Likewise.
460         * bfd/coff-ppc.c: Likewise.
461         * bfd/coff-rs6000.c: Likewise.
462         * bfd/coff-sh.c: Likewise.
463         * bfd/coff-tic80.c: Likewise.
464         * bfd/coff-x86_64.c: Likewise.
465         * bfd/coff64-rs6000.c: Likewise.
466         * bfd/coffgen.c: Likewise.
467         * bfd/cofflink.c: Likewise.
468         * bfd/ecoff.c: Likewise.
469         * bfd/ecofflink.c: Likewise.
470         * bfd/elf-bfd.h: Likewise.
471         * bfd/elf-eh-frame.c: Likewise.
472         * bfd/elf-ifunc.c: Likewise.
473         * bfd/elf-m10200.c: Likewise.
474         * bfd/elf-m10300.c: Likewise.
475         * bfd/elf-s390-common.c: Likewise.
476         * bfd/elf-vxworks.c: Likewise.
477         * bfd/elf.c: Likewise.
478         * bfd/elf32-arm.c: Likewise.
479         * bfd/elf32-avr.c: Likewise.
480         * bfd/elf32-bfin.c: Likewise.
481         * bfd/elf32-cr16.c: Likewise.
482         * bfd/elf32-cr16c.c: Likewise.
483         * bfd/elf32-cris.c: Likewise.
484         * bfd/elf32-crx.c: Likewise.
485         * bfd/elf32-d10v.c: Likewise.
486         * bfd/elf32-dlx.c: Likewise.
487         * bfd/elf32-epiphany.c: Likewise.
488         * bfd/elf32-fr30.c: Likewise.
489         * bfd/elf32-frv.c: Likewise.
490         * bfd/elf32-ft32.c: Likewise.
491         * bfd/elf32-h8300.c: Likewise.
492         * bfd/elf32-hppa.c: Likewise.
493         * bfd/elf32-i370.c: Likewise.
494         * bfd/elf32-i386.c: Likewise.
495         * bfd/elf32-i860.c: Likewise.
496         * bfd/elf32-ip2k.c: Likewise.
497         * bfd/elf32-iq2000.c: Likewise.
498         * bfd/elf32-lm32.c: Likewise.
499         * bfd/elf32-m32c.c: Likewise.
500         * bfd/elf32-m32r.c: Likewise.
501         * bfd/elf32-m68hc11.c: Likewise.
502         * bfd/elf32-m68hc1x.c: Likewise.
503         * bfd/elf32-m68k.c: Likewise.
504         * bfd/elf32-mcore.c: Likewise.
505         * bfd/elf32-mep.c: Likewise.
506         * bfd/elf32-metag.c: Likewise.
507         * bfd/elf32-microblaze.c: Likewise.
508         * bfd/elf32-moxie.c: Likewise.
509         * bfd/elf32-msp430.c: Likewise.
510         * bfd/elf32-mt.c: Likewise.
511         * bfd/elf32-nds32.c: Likewise.
512         * bfd/elf32-nios2.c: Likewise.
513         * bfd/elf32-or1k.c: Likewise.
514         * bfd/elf32-ppc.c: Likewise.
515         * bfd/elf32-rl78.c: Likewise.
516         * bfd/elf32-rx.c: Likewise.
517         * bfd/elf32-s390.c: Likewise.
518         * bfd/elf32-score.c: Likewise.
519         * bfd/elf32-score7.c: Likewise.
520         * bfd/elf32-sh-symbian.c: Likewise.
521         * bfd/elf32-sh.c: Likewise.
522         * bfd/elf32-sh64.c: Likewise.
523         * bfd/elf32-spu.c: Likewise.
524         * bfd/elf32-tic6x.c: Likewise.
525         * bfd/elf32-tilepro.c: Likewise.
526         * bfd/elf32-v850.c: Likewise.
527         * bfd/elf32-vax.c: Likewise.
528         * bfd/elf32-visium.c: Likewise.
529         * bfd/elf32-xc16x.c: Likewise.
530         * bfd/elf32-xstormy16.c: Likewise.
531         * bfd/elf32-xtensa.c: Likewise.
532         * bfd/elf64-alpha.c: Likewise.
533         * bfd/elf64-hppa.c: Likewise.
534         * bfd/elf64-ia64-vms.c: Likewise.
535         * bfd/elf64-mmix.c: Likewise.
536         * bfd/elf64-ppc.c: Likewise.
537         * bfd/elf64-s390.c: Likewise.
538         * bfd/elf64-sh64.c: Likewise.
539         * bfd/elf64-x86-64.c: Likewise.
540         * bfd/elflink.c: Likewise.
541         * bfd/elfnn-aarch64.c: Likewise.
542         * bfd/elfnn-ia64.c: Likewise.
543         * bfd/elfxx-mips.c: Likewise.
544         * bfd/elfxx-sparc.c: Likewise.
545         * bfd/elfxx-tilegx.c: Likewise.
546         * bfd/i386linux.c: Likewise.
547         * bfd/linker.c: Likewise.
548         * bfd/m68klinux.c: Likewise.
549         * bfd/pdp11.c: Likewise.
550         * bfd/pe-mips.c: Likewise.
551         * bfd/peXXigen.c: Likewise.
552         * bfd/reloc.c: Likewise.
553         * bfd/reloc16.c: Likewise.
554         * bfd/sparclinux.c: Likewise.
555         * bfd/sunos.c: Likewise.
556         * bfd/vms-alpha.c: Likewise.
557         * bfd/xcofflink.c: Likewise.
558
559 2015-08-18  Alan Modra  <amodra@gmail.com>
560
561         PR 18667
562         * Makefile.am: Use $(SED) in place of sed throughout.
563         * Makefile.in: Regenerate.
564
565 2015-08-18  Alan Modra  <amodra@gmail.com>
566
567         * elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't redefine .TOC.
568         if already defined, and set linker_def.
569         (ppc64_elf_set_toc): Use .TOC. value if defined other than by
570         the backend.
571
572 2015-08-14  Alan Modra  <amodra@gmail.com>
573
574         PR ld/18759
575         * elf32-or1k.c: Revert 2015-08-11 change.
576
577 2015-08-13  H.J. Lu  <hongjiu.lu@intel.com>
578
579         PR ld/18801
580         * elf32-i386.c (elf_i386_size_dynamic_sections): Issue an error
581         for read-only segment with dynamic IFUNC relocations.
582         * elf64-x86-64.c (elf_x86_64_size_dynamic_sections): Likewise.
583
584 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
585
586         * elfxx-mips.c (STUB_MOVE): Change to use 'or' only.
587         (mips_o32_exec_plt0_entry, mips_n32_exec_plt0_entry,
588         mips_n64_exec_plt0_entry, micromips_insn32_o32_exec_plt0_entry):
589         Update to use 'or' instead of 'addu/daddu'.
590         (_bfd_mips_elf_finish_dynamic_symbol): Update usage of STUB_MOVE.
591         (move_insns_32): Reorder table.
592
593 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
594
595         * elf32-i386.c (elf_i386_relocate_section): Properly skip IFUNC
596         relocations in debug sections.
597         * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
598
599 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
600
601         * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Improve warning
602         message for R_AARCH64_LD64_GOTPAGE_LO15/R_AARCH64_LD32_GOTPAGE_LO14.
603
604 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
605
606         * elfnn-aarch64.c (IS_AARCH64_TLS_RELAX_RELOC): New.
607         (aarch64_can_relax_tls): Use the new IS_AARCH64_TLS_RELAX_RELOC.
608
609 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
610
611         * bfd/elfnn-aarch64.c (aarch64_type_of_stub): New parameter "sym_sec".
612         Loose the check for symbol from ABS section.
613         (elfNN_aarch64_size_stubs): Pass sym_sec.
614
615 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
616
617         PR ld/18668
618         * elfnn-aarch64.c (aarch64_type_of_stub): Update destination for
619         calls go through plt stub.
620         (elfNN_aarch64_final_link_relocate): Adjust code logic for CALL26,
621         JUMP26 relocation to support inserting veneer for call to plt stub.
622
623 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
624
625         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC): Recognize
626         BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.
627         (aarch64_reloc_got_type): Likewise.
628         (elfNN_aarch64_final_link_relocate): Likewise.
629         (elfNN_aarch64_relocate_section): Likewise.
630         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
631         (_bfd_aarch64_elf_resolve_relocation): Likewise.
632
633 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
634
635         * reloc.c (BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12): New entry.
636         * bfd-in2.h: Regenerate.
637         * libbfd.h: Regenerate.
638         * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
639         BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.
640
641 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
642
643         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC): Recognize
644         BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC.
645         (aarch64_reloc_got_type): Likewise.
646         (elfNN_aarch64_final_link_relocate): Likewise.
647         (elfNN_aarch64_relocate_section): Likewise.
648         (elfNN_aarch64_gc_sweep_hook): Likewise.
649         (elfNN_aarch64_check_relocs): Likewise.
650         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
651         (_bfd_aarch64_elf_resolve_relocation): Likewise.
652
653 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
654
655         * reloc.c (BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC): New entry.
656         * bfd-in2.h: Regenerate.
657         * libbfd.h: Regenerate.
658         * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
659         BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC.
660
661 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
662
663         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC): Recognize
664         BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.
665         (aarch64_reloc_got_type): Likewise.
666         (elfNN_aarch64_final_link_relocate): Likewise.
667         (elfNN_aarch64_relocate_section): Likewise.
668         (elfNN_aarch64_gc_sweep_hook): Likewise.
669         (elfNN_aarch64_check_relocs): Likewise.
670         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
671         (_bfd_aarch64_elf_resolve_relocation): Likewise.
672
673 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
674
675         * reloc.c (BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21): New entry.
676         * bfd-in2.h: Regenerate.
677         * libbfd.h: Regenerate.
678         * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
679         BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.
680
681 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
682
683         PR ld/18808
684         * elf32-i386.c (elf_i386_relocate_section): Skip IFUNC
685         relocations in debug sections.
686         * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
687
688 2015-08-11  Peter Zotov  <whitequark@whitequark.org>
689
690         PR ld/18759
691         * elf32-or1k.c (R_OR1K_32_PCREL): Set pcrel_offset to TRUE.
692         (R_OR1K_16_PCREL): Likewise.
693         (R_OR1K_8_PCREL): Likewise.
694
695 2015-08-11  Nick Clifton  <nickc@redhat.com>
696
697         PR binutils/18747
698         * coff-sh.c (_bfd_sh_align_load_span): Fix typo when setting
699         opcode count.
700
701         PR binutils/18758
702         * elf.c (_bfd_elf_setup_sections): Add checks for corrupt section
703         group information.
704         * peicode.h (pe_ILF_make_a_section): Ensure alignment of the
705         used_by_bfd pointer.
706         (pe_ILF_build_a_bfd): Ensure alignment of vars.data pointer.
707
708 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
709
710         * elf.c (_bfd_elf_copy_private_bfd_data): Fix a typo.
711
712 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
713
714         * elf-bfd.h (elf_symbol_version): New enum.
715         (elf_link_hash_entry): Replace hidden with versioned.
716         * elflink.c (_bfd_elf_merge_symbol): Don't look for symbol
717         version if the symbol is unversioned.  Initialize versioned.
718         (_bfd_elf_add_default_symbol): Don't look for symbol version
719         if the symbol is unversioned or hidden.  Initialize versioned.
720         (elf_collect_hash_codes): Don't look for symbol version if the
721         symbol is unversioned.
722         (elf_collect_gnu_hash_codes): Likewise.
723         (bfd_elf_gc_mark_dynamic_ref_symbol): Likewise.
724         (_bfd_elf_link_hash_copy_indirect): Check versioned instead of
725         hidden.
726         (elf_link_output_extsym): Likewise.
727
728 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
729
730         PR binutils/18785
731         * elf.c (_bfd_elf_copy_private_bfd_data): When copying the
732         sh_link and sh_info fields in stripped section headers, we also
733         check if the sh_type, sh_flags, sh_addralign and sh_entsize
734         fields of the output section match the output.  Since
735         --only-keep-debug turns all non-debug sections into SHT_NOBITS
736         sections, the output SHT_NOBITS type matches any input type.
737
738 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
739
740         PR ld/18720
741         * elflink.c (_bfd_elf_merge_symbol): Add a parameter to indicate
742         if the new symbol matches the existing one.  The new hidden
743         versioned symbol matches the existing symbol if they have the
744         same symbol version. Update the existing symbol only if they
745         match.
746         (_bfd_elf_add_default_symbol): Update call to
747         _bfd_elf_merge_symbol.
748         (_bfd_elf_link_assign_sym_version): Don't set the hidden field
749         here.
750         (elf_link_add_object_symbols): Override a definition only if the
751         new symbol matches the existing one.
752         (_bfd_elf_link_hash_copy_indirect): Don't copy any references to
753         the hidden versioned symbol.
754         (elf_link_output_extsym): Bind a symbol locally when linking
755         executable if it is locally defined, hidden versioned, not
756         referenced by shared library and not exported.  Turn on
757         VERSYM_HIDDEN only if the hidden versioned symbol is defined
758         locally.
759
760 2015-08-05  Nick Clifton  <nickc@redhat.com>
761
762         * elf.c (_bfd_elf_copy_private_bfd_data): Copy the sh_link and
763         sh_info fields of sections whose type has been changed to
764         SHT_NOBITS.
765
766 2015-08-04  Yuriy M. Kaminskiy"  <yumkam@gmail.com>
767             Tyler Hicks  <tyhicks@canonical.com>
768
769         PR binutils/18750
770         * ihex.c (ihex_scan): Fixes incorrect escape sequence in error message
771         and stack overflow when char is signed and \200-\376 was in place of hex
772         digit; also fixes \377 was handled as EOF instead of "incorrect character".
773         (ihex_read_section): Changed for consistency.
774         (ihex_bad_byte): Prevent (now impossible to trigger) stack
775         overflow and incorrect escape sequence handling.
776         * srec.c (srec_bad_byte): Likewise.
777
778 2015-08-03  Hans-Peter Nilsson  <hp@axis.com>
779
780         * elf32-cris.c (cris_elf_relocate_section)
781         (elf_cris_finish_dynamic_symbol, cris_elf_check_relocs)
782         (elf_cris_discard_excess_dso_dynamics): Use SYMBOLIC_BIND, not
783         just link_info->symbolic, to check if a symbol should be bound
784         symbolically.
785
786 2015-07-30  H.J. Lu  <hongjiu.lu@intel.com>
787
788         PR ld/18735
789         * elflink.c (_bfd_elf_add_default_symbol): Add the default
790         symbol if not performing a relocatable link.
791         (elf_link_add_object_symbols): Adjust the default symbol if
792         not performing a relocatable link.
793
794 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
795
796         * elflink.c (elf_link_add_object_symbols): Remove
797         !info->relocatable check for info->executable.  Add
798         !info->relocatable check for !info->executable.
799         (elf_link_output_extsym): Remove
800         !info->relocatable check for info->executable.
801
802 2015-07-29  Hans-Peter Nilsson  <hp@bitrange.com>
803
804         * mmo.c (mmo_write_symbols_and_terminator): Skip symbol-type
805         assignment loop for bfd plugin objects.
806
807 2015-07-28  Alan Modra  <amodra@gmail.com>
808
809         * elf.c (_bfd_elf_map_sections_to_segments): Do not make a new
810         segment for loaded sections after nonloaded sections if the
811         sections are on the same page.
812
813 2015-07-28  Iain Buclaw  <ibuclaw@gdcproject.org>
814
815         * configure.in: Add asprintf and vasprintf to AC_CHECK_DECLS.
816         * config.in, configure: Regenerate.
817
818 2015-07-27  H.J. Lu  <hongjiu.lu@intel.com>
819
820         * configure: Regenerated.
821
822 2015-07-27  Nick Clifton  <nickc@redhat.com>
823
824         * elf32-msp430.c (uses_large_model): New function.
825         (msp430_elf_eh_frame_address_size): New function.
826         (elf_backend_eh_frame_address_size): Define.
827
828 2015-07-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>
829
830         PR ld/18705
831         * elfnn-aarch64.c (elf_backend_extern_protected_data): Define.
832
833 2015-07-27  Szabolcs Nagy  <szabolcs.nagy@arm.com>
834
835         PR ld/18705
836         * elf32-arm.c (elf_backend_extern_protected_data): Define.
837
838 2015-07-25  H.J. Lu  <hongjiu.lu@intel.com>
839
840         PR ld/18718
841         * elflink.c (elf_link_output_extsym): Check symbol version
842         section check only if not linking executable, the symbol is
843         referenced by shared library or not locally defined.
844
845 2015-07-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
846
847         * elf32-arm.c (elf32_arm_final_link_relocate): Use SYMBOLIC_BIND to
848         check if a symbol should be bound symbolically.
849         * elf32-hppa.c (elf32_hppa_check_relocs,
850         elf32_hppa_adjust_dynamic_symbol, elf32_hppa_relocate_section,
851         elf32_hppa_finish_dynamic_symbol): Likewise.
852         * elf32-m68k.c (elf_m68k_check_relocs,
853         elf_m68k_relocate_section): Likewise.
854         * elf32-nios2.c (nios2_elf32_relocate_section,
855         nios2_elf32_check_relocs, allocate_dynrelocs): Likewise.
856         * elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol,
857         elf32_tic6x_relocate_section): Likewise.
858
859 2015-07-24  Alan Modra  <amodra@gmail.com>
860
861         * elf.c (_bfd_elf_assign_file_positions_for_non_load): Use .rela
862         prefix for reloc section corresponding to rela section associated
863         with renamed debug section.
864
865 2015-07-24  Alan Modra  <amodra@gmail.com>
866
867         * section.c (bfd_get_section_by_name_if): Iterate over entire hash
868         chain.
869
870 2015-07-23  Joseph Myers  <joseph@codesourcery.com>
871
872         * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections)
873         <DT_MIPS_RLD_MAP_REL>: Add target address to host address
874         difference, not to host pointer.
875
876 2015-07-22  Alan Modra  <amodra@gmail.com>
877
878         * elf64-ppc.c (opd_entry_value): Remove assertion.  Instead,
879         return -1 if symbol referenced is not defined.  Tidy.
880
881 2015-07-20  Alan Modra  <amodra@gmail.com>
882
883         * po/SRC-POTFILES.in: Regenerate.
884
885 2015-07-17  Jiong Wang  <jiong.wang@arm.com>
886
887         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC): Sort alphabetically.
888         (IS_AARCH64_TLSDESC_RELOC): Sort alphabetically.
889
890 2015-07-16  Jiong Wang  <jiong.wang@arm.com>
891
892         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC): Recognize
893         BFD_RELOC_AARCH64_TLSLD_ADR_PREL21.
894         (aarch64_reloc_got_type): Ditto.
895         (elfNN_aarch64_final_link_relocate): Ditto.
896         (elfNN_aarch64_relocate_section): Ditto.
897         (elfNN_aarch64_gc_sweep_hook): Ditto.
898         (elfNN_aarch64_check_relocs): Ditto.
899         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Ditto.
900         (_bfd_aarch64_elf_resolve_relocation): Ditto.
901
902 2015-07-16  Jiong Wang  <jiong.wang@arm.com>
903
904         * reloc.c (BFD_RELOC_AARCH64_TLSLD_ADR_PREL21): New entry.
905         * bfd-in2.h: Regenerate.
906         * libbfd.h: Regenerate.
907         * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
908         BFD_RELOC_AARCH64_TLSLD_ADR_PREL21.
909
910 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
911
912          PR binutils/18656
913          * bfd.c (bfd_convert_section_size): New function.
914          (bfd_convert_section_contents): Likewise.
915          * bfd-in2.h: Regenerated.
916
917 2015-07-09  Catherine Moore  <clm@codesourcery.com>
918
919         * elflink.c (bfd_elf_size_dynamic_sections): Call to
920         _bfd_elf_maybe_strip_eh_frame_hdr should be before
921         bed->elf_backend_size_dynamic_sections.
922
923 2015-07-08  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
924
925         * elf32-avr.c: Add 32 bit PC relative relocation for AVR target.
926
927 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
928
929         * elf64-ppc.c (toc_adjusting_stub_needed): Use the symbol value
930         plus addend rather than the original st_value when looking up
931         entries in opd->adjust.
932
933 2015-07-03   Kai Tietz  <ktietz@redhat.com>
934              Nick Clifton  <nickc@redhat.com>
935
936         PR ld/11539
937         * coffcode.h (coff_bfd_gc_sections): Define default
938         to bfd_coff_gc_sections function.
939         (coff_gc_mark_hook_fn): New type.
940         * coffgen.c (init_reloc_cookie): Copy and adjust coff
941         related code about gc-sections from elflink.c to here.
942         (fini_reloc_cookie): Likewise.
943         (init_reloc_cookie_rels): Likewise.
944         (fini_reloc_cookie_rels): Likewise.
945         (init_reloc_cookie_for_section): Likewise.
946         (fini_reloc_cookie_for_section): Likewise.
947         (_bfd_coff_gc_mark_hook): Likewise.
948         (_bfd_coff_gc_mark_rsec): Likewise.
949         (_bfd_coff_gc_mark_reloc): Likewise.
950         (_bfd_coff_gc_mark): Likewise.
951         (_bfd_coff_gc_mark_extra_sections): Likewise.
952         (coff_gc_sweep_symbol_info): Likewise.
953         (coff_gc_sweep_symbol): Likewise.
954         (gc_sweep_hook_fn): Likewise.
955         (coff_gc_sweep): Likewise.
956         (bfd_coff_gc_sections): Likewise.
957         (_bfd_coff_gc_keep): Likewise.
958         * libcoff-in.h (coff_reloc_cookie): New struct.
959         (bfd_coff_gc_sections): New prototype.
960         * libcoff.h: Regenerate.
961
962 2015-07-01  Sandra Loosemore  <sandra@codesourcery.com>
963             Cesar Philippidis  <cesar@codesourcery.com>
964
965         * bfd-in2.h: Regenerated.
966         * elf32-nios2.c (elf_nios2_howto_table_rel): Rename to...
967         (elf_nios2_r1_howto_table_rel): This.
968         (elf_nios2_r2_howto_table_rel): New.
969         (BFD_IS_R2): New.
970         (lookup_howto): Add ABFD parameter.  Adjust to look up in either
971         the R1 or R2 relocation table, as determined by ABFD.
972         (nios2_reloc_map): Add R2 relocations.
973         (nios2_elf32_bfd_reloc_type_lookup): Do lookup using lookup_howto.
974         Pass it the ABFD parameter.
975         (nios2_elf32_bfd_reloc_name_lookup): Use ABFD to decide whether to
976         return an R1 or R2 relocation.
977         (nios2_elf32_info_to_howto): Do lookup using lookup_howto.
978         Pass it the ABFD parameter.
979         (nios2_elf32_do_call26_relocate): Check for alignment on a 4-byte
980         boundary.
981         (nios2_elf32_relocate_section): Adjust call to lookup_howto.
982         * libbfd.h: Regenerated.
983         * reloc.c (BFD_RELOC_NIOS2_R2_S12): New.
984         (BFD_RELOC_NIOS2_R2_I10_1_PCREL): New.
985         (BFD_RELOC_NIOS2_R2_T1I7_1_PCREL): New.
986         (BFD_RELOC_NIOS2_R2_T1I7_2): New.
987         (BFD_RELOC_NIOS2_R2_T2I4): New.
988         (BFD_RELOC_NIOS2_R2_T2I4_1): New.
989         (BFD_RELOC_NIOS2_R2_T2I4_2): New.
990         (BFD_RELOC_NIOS2_R2_X1I7_2): New.
991         (BFD_RELOC_NIOS2_R2_X2L5): New.
992         (BFD_RELOC_NIOS2_R2_F1I5_2): New.
993         (BFD_RELOC_NIOS2_R2_L5I4X1): New.
994         (BFD_RELOC_NIOS2_R2_T1X1I6): New.
995         (BFD_RELOC_NIOS2_R2_T1X1I6_2): New.
996
997 2015-07-01  Sandra Loosemore  <sandra@codesourcery.com>
998             Cesar Philippidis  <cesar@codesourcery.com>
999
1000         * archures.c (bfd_mach_nios2r1, bfd_mach_nios2r2): New.
1001         * bfd-in2.h: Regenerated.
1002         * cpu-nios2.c (nios2_compatible): New.
1003         (N): Use nios2_compatible instead of bfd_default_compatible.
1004         (NIOS2R1_NEXT, NIOS2R2_NEXT): Define.
1005         (arch_info_struct): New.
1006         (bfd_nios2_arch): Chain to NIOS2R1_NEXT.
1007         * elf32-nios2.c (is_nios2_elf): New.
1008         (nios2_elf32_merge_private_bfd_data): New.
1009         (nios2_elf32_object_p): New.
1010         (bfd_elf32_bfd_merge_private_bfd_data): Define.
1011         (elf_backend_object_p): Define.
1012
1013 2015-07-01  H.J. Lu  <hongjiu.lu@intel.com>
1014
1015         * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Refactor.
1016
1017 2015-06-30  Nick Clifton  <nickc@redhat.com>
1018
1019         PR binutils/18570
1020         * elf-attrs.c (obj_attr_size): Use an unsigned int type for the tag.
1021         (write_obj_attribute): Likewise.
1022         (elf_new_obj_attr): Likewise.
1023         (bfd_elf_get_obj_attr_int): Likewise.
1024         (bfd_elf_add_obj_attr_int): Likewise.
1025         (bfd_elf_add_obj_attr_string): Likewise.
1026         (bfd_elf_add_obj_attr_int_string): Likewise.
1027         (gnu_obj_attrs_arg_type): Likewise.
1028         (_bfd_elf_obj_attrs_arg_type): Likewise.
1029         (_bfd_elf_parse_attributes): Likewise.
1030         (_bfd_elf_merge_unknown_attribute_list): Likewise.
1031         * elf-bfd.h (struct obj_attribute_list): Likewise.
1032         Update prototypes.
1033
1034 2015-06-28  H.J. Lu  <hongjiu.lu@intel.com>
1035
1036         * bfd-in.h (compressed_debug_section_type): Remove
1037         COMPRESS_DEBUG_ZLIB.
1038         * bfd-in2.h : Regenerated.
1039
1040 2015-06-26  Matthew Fortune  <matthew.fortune@imgtec.com>
1041
1042         * elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Use executable
1043         instead of !shared to indicate an application vs shared library.
1044         (_bfd_mips_elf_size_dynamic_sections): Likewise.
1045         (_bfd_mips_elf_finish_dynamic_sections): Handle DT_MIPS_RLD_MAP_REL.
1046         (_bfd_mips_elf_get_target_dtag): Likewise.
1047
1048 2015-06-25  DJ Delorie  <dj@redhat.com>
1049
1050         * elf32-msp430.c (msp430_final_link_relocate): Fix comments.  Fix
1051         REL loads to match RELA stores.
1052
1053 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
1054
1055         * elf.c (_bfd_elf_compute_section_file_positions): Don't
1056         initialize sh_size for .shstrtab here.
1057
1058 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
1059
1060         PR gas/18451
1061         * elf-bfd.h (elf_sym_strtab): New.
1062         (elf_link_hash_table): Add strtabcount, strtabsize and
1063         strtab.
1064         (_bfd_elf_stringtab_init): Removed.
1065         * elf.c (_bfd_elf_stringtab_init): Removed.
1066         (_bfd_elf_compute_section_file_positions): Replace
1067         bfd_strtab_hash/_bfd_elf_stringtab_init/_bfd_stringtab_free/
1068         _bfd_stringtab_size with
1069         elf_strtab_hash/_bfd_elf_strtab_init/_bfd_elf_strtab_free/
1070         _bfd_elf_strtab_size.  Use _bfd_elf_strtab_add,
1071         _bfd_elf_strtab_finalize and _bfd_elf_strtab_offset to get
1072         st_name.
1073         (swap_out_syms): Likewise.
1074         * elflink.c (elf_final_link_info): Replace bfd_strtab_hash
1075         with elf_strtab_hash.  Remove symbuf, symbuf_count,
1076         symbuf_size and shndxbuf_size.
1077         (elf_link_flush_output_syms): Removed.
1078         (elf_link_output_sym): Renamed to ...
1079         (elf_link_output_symstrtab): This.  Replace _bfd_stringtab_add
1080         with _bfd_elf_strtab_add.  Don't flush symbols to the file nor
1081         swap out symbols.
1082         (elf_link_swap_symbols_out): New.
1083         (elf_link_output_extsym): Replace elf_link_output_sym with
1084         elf_link_output_symstrtab.
1085         (elf_link_input_bfd): Likewise.
1086         (elf_final_link_free): Replace _bfd_stringtab_free with
1087         _bfd_elf_strtab_free.  Remove symbuf.
1088         (bfd_elf_final_link): Replace _bfd_elf_stringtab_init with
1089         _bfd_elf_strtab_init.  Don't set symbuf, symbuf_count,
1090         symbuf_size nor shndxbuf_size.  Initialize strtabsize and
1091         strtab.  Initialize symshndxbuf to -1 when number of sections
1092         >= 64K.  Replace elf_link_output_sym/elf_link_output_sym with
1093         elf_link_output_symstrtab/elf_link_output_symstrtab. Don't
1094         call elf_link_flush_output_syms.  Call _bfd_elf_strtab_finalize
1095         and elf_link_swap_symbols_out.  Replace _bfd_stringtab_size
1096         and _bfd_stringtab_emit with _bfd_elf_strtab_size and
1097         _bfd_elf_strtab_emit.
1098
1099 2015-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1100
1101         * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Silence older
1102         GCC warning.
1103
1104 2015-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1105
1106         * elf32-i386.c (elf_i386_allocate_dynrelocs): Always allocate
1107         space for the first .plt entry.
1108         (elf_i386_size_dynamic_sections): Always add DT_PLTGOT for .plt
1109         section.  Add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL only if
1110         there are PLT relocations.
1111         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Always
1112         allocate space for the first .plt entry.
1113         (elf_x86_64_size_dynamic_sections): Always add DT_PLTGOT for
1114         .plt section.  Add DT_PLTRELSZ, DT_PLTREL and DT_JMPREL only if
1115         there are PLT relocations.
1116
1117 2015-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1118
1119         PR ld/18591
1120         * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Don't convert
1121         R_X86_64_GOTPCREL to R_X86_64_PC32 if it will cause relocation
1122         overflow.
1123
1124 2015-06-23  Jiong Wang  <jiong.wang@arm.com>
1125
1126         * elfnn-aarch64.c (aarch64_readonly_dynrelocs): New function.
1127         (elfNN_aarch64_size_dynamic_sections): Traverse hash table to check
1128         relocations against read-only sections.
1129
1130 2015-06-18  Nick Clifton  <nickc@redhat.com>
1131
1132         PR 18481
1133         * elf32-arm.c (R_ARM_TLS_LE32): Set the special function to NULL.
1134
1135 2015-06-15  Jon Turney  <jon.turney@dronecode.org.uk>
1136
1137         * bfd.c: Change struct bfd_build_id to use bfd_size_type.
1138         * bfd-in2.h : Regenerate.
1139
1140 2015-06-16  Alan Modra  <amodra@gmail.com>
1141
1142         * elf32-ppc.c (ppc_elf_relocate_section): Correct binary search of
1143         dynamic relocs.
1144
1145 2015-06-10  Jon Turney  <jon.turney@dronecode.org.uk>
1146
1147         * elf-bfd.h : Remove struct elf_build_id.
1148         * bfd.c : Add struct bfd_build_id.
1149         * bfd-in2.h: Regenerate.
1150         * elf.c (elfobj_grok_gnu_build_id): Update to use bfd_build_id.
1151         * libpei.h: Add protoype and macros for
1152         bfd_XXi_slurp_codeview_record.
1153         * peXXigen.c (_bfd_XXi_slurp_codeview_record): Make public
1154         * peicode.h (pe_bfd_read_buildid): Add.
1155         (pe_bfd_object_p): Use pe_bfd_read_buildid().
1156
1157 2015-06-15  Renlin Li  <renlin.li@arm.com>
1158
1159         * reloc.c (BFD_RELOC_AARCH64_LD64_GOTOFF_LO15): New entry.
1160         * bfd-in2.h: Regenerate.
1161         * libbfd.h: Regenerate.
1162         * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
1163         BFD_RELOC_AARCH64_LD64_GOTOFF_LO15.
1164
1165 2015-06-15  Alan Modra  <amodra@gmail.com>
1166
1167         * cofflink.c (_bfd_coff_generic_relocate_section): Revert
1168         2014-03-26 change.  Call _bfd_clear_contents for relocs against
1169         local and global symbols defined in discarded input sections.
1170
1171 2015-06-05  Nick Clifton  <nickc@redhat.com>
1172
1173         * elf32-msp430.c (rl78_sym_diff_handler): New function.
1174         (msp430_howto_table): Use the new function for the SYM_DIFF reloc.
1175         (msp430x_howto_table): Likewise.
1176
1177 2015-06-05  Alan Modra  <amodra@gmail.com>
1178
1179         * elf64-ppc.c (ppc_elf_relocate_section): Move dynamic text
1180         relocs with insns moved by --ppc476-workaround.  Correct
1181         output of REL16 relocs.
1182
1183 2015-06-01  Jiong Wang  <jiong.wang@arm.com>
1184
1185         * elfnn-aarch64.c (aarch64_reloc_got_type): Support
1186         BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14.
1187         (elfNN_aarch64_final_link_relocate): Ditto.
1188         (elfNN_aarch64_gc_swap_hook): Ditto.
1189         (elfNN_aarch64_check_relocs): Ditto.
1190         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Ditto.
1191
1192 2015-06-01  Jiong Wang  <jiong.wang@arm.com>
1193
1194         * reloc.c (BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14): New entry.
1195         * bfd-in2.h: Regenerate.
1196         * libbfd.h: Regenerate.
1197         * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
1198         BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14.
1199
1200 2015-06-01  Jiong Wang  <jiong.wang@arm.com>
1201
1202         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Set overflow type to
1203         complain_overflow_unsigned for BFD_RELOC_AARCH64_TLSLE_ADD_LO12.
1204         * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Don't use
1205         PGOFF for BFD_RELOC_AARCH64_TLSLE_ADD_LO12.
1206
1207 2015-06-01  Jiong Wang  <jiong.wang@arm.com>
1208
1209         * elfnn-aarch64.c (aarch64_reloc_got_type): Support
1210         BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15.
1211         (elfNN_aarch64_final_link_relocate): Ditto.
1212         (elfNN_aarch64_gc_swap_hook): Ditto.
1213         (elfNN_aarch64_check_relocs): Ditto.
1214         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Ditto.
1215
1216 2015-06-01  Jiong Wang  <jiong.wang@arm.com>
1217
1218         * reloc.c (BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15): New entry.
1219         * bfd-in2.h: Regenerate.
1220         * libbfd.h: Regenerate.
1221         * elfnn-aarch64.c (elfNN_aarch64_howto_table): New entry for
1222         BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15.
1223
1224 2015-05-28  Catherine Moore  <clm@codesourcery.com>
1225             Bernd Schmidt <bernds@codesourcery.com>
1226             Paul Brook <paul@codesourcery.com>
1227
1228         bfd/
1229         * bfd-in2.h: Regenerated.
1230         * elf-bfd.h (DWARF2_EH_HDR, COMPACT_EH_HDR): Define.
1231         (COMPACT_EH_CANT_UNWIND_OPCODE): Define.
1232         (dwarf_eh_frame_hdr_info): Move dwarf-specific fields from
1233         eh_frame_hdr_info.
1234         (compact_eh_frame_hdr_info): Declare.
1235         (eh_frame_hdr_info):  Redeclare with union for dwarf-specific
1236         fields and compact-eh fields.
1237         (elf_backend_data): Add cant_unwind_opcode and compact_eh_encoding.
1238         (bfd_elf_section_data): Add eh_frame_entry_field.
1239         (elf_section_eh_frame_entry): Define.
1240         (bfd_elf_parse_eh_frame_entries): Declare.
1241         (_bfd_elf_parse_eh_frame_entry): Declare.
1242         (_bfd_elf_end_eh_frame_parsing): Declare.
1243         (_bfd_elf_write_section_eh_frame_entry): Declare.
1244         (_bfd_elf_eh_frame_entry_present): Declare.
1245         (_bfd_elf_section_for_symbol): Declare.
1246         * elf-eh-frame.c (bfd_elf_discard_eh_frame_entry): New function.
1247         (bfd_elf_record_eh_frame_entry): New function.
1248         (_bfd_elf_parse_eh_frame_entry): New function.
1249         (_bfd_elf_parse_eh_frame): Update hdr_info field references.
1250         (cmp_eh_frame_hdr): New function.
1251         (add_eh_frame_hdr_terminator): New function.
1252         (_bfd_elf_end_eh_frame_parsing): New function.
1253         (find_merged_cie): Update hdr_info field references.
1254         (_bfd_elf_discard_section_eh_frame): Likewise.
1255         (_bfd_elf_discard_section_eh_frame_hdr): Add Compact EH support.
1256         (_bfd_elf_eh_frame_entry_present): New function.
1257         (_bfd_elf_maybe_strip_eh_frame_hdr): Add Compact EH support.
1258         (_bfd_elf_write_section_eh_frame_entry): New function.
1259         (_bfd_elf_write_section_eh_frame): Update hdr_info field references.
1260         (_bfd_elf_fixup_eh_frame_hdr): New function.
1261         (write_compact_eh_frame_hdr): New function.
1262         (write_dwarf_eh_frame_hdr): New function.
1263         (_bfd_elf_write_section_eh_frame_hdr): Add Compact EH support.
1264         * elflink.c (_bfd_elf_section_for_symbol): New function.
1265         (elf_section_ignore_discarded_relocs): Add Compact EH support.
1266         (elf_link_input_bfd): Likewise.
1267         (bfd_elf_final_link): Likewise.
1268         (_bfd_elf_gc_mark): Likewise.
1269         (bfd_elf_parse_eh_frame_entries): New function.
1270         (bfd_elf_gc_sections): Add Compact EH support.
1271         (bfd_elf_discard_info): Likewise.
1272         * elfxx-mips.c: Include dwarf2.h.
1273         (_bfd_mips_elf_compact_eh_encoding): New function.
1274         (_bfd_mips_elf_cant_unwind_opcode): New function.
1275         * elfxx-mips.h (_bfd_mips_elf_compact_eh_encoding): Declare.
1276         (_bfd_mips_elf_cant_unwind_opcode): Declare.
1277         (elf_backend_compact_eh_encoding): Define.
1278         (elf_backend_cant_unwind_opcode): Define.
1279         * elfxx-target.h (elf_backend_compact_eh_encoding): Provide default.
1280         (elf_backend_cant_unwind_opcode): Provide default.
1281         (elf_backend_data elfNN_bed): Add elf_backend_compact_eh_encoding and
1282         elf_backend_cant_unwind_opcode.
1283         * section.c (SEC_INFO_TYPE_EH_FRAME_ENTRY): Add definition.
1284
1285 2015-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1286
1287         PR binutils/18458
1288         * elf32-i386.c (elf_i386_check_relocs): Create .plt.got section
1289         for now binding only if pointer equality isn't needed.
1290         (elf_i386_allocate_dynrelocs): Use .plt.got section for now
1291         binding only if pointer equality isn't needed.
1292         * elf64-x86-64.c (elf_x86_64_check_relocs): Create .plt.got
1293         section for now binding only if pointer equality isn't needed.
1294         (elf_x86_64_allocate_dynrelocs): Use .plt.got section for now
1295         binding only if pointer equality isn't needed.
1296
1297 2015-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1298
1299         PR binutils/18437
1300         * elf32-i386.c (elf_i386_get_plt_sym_val): Skip extra relocations
1301         in .rel.plt/.rela.plt.
1302         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
1303
1304 2015-05-19  Jiong Wang  <jiong.wang@arm.com>
1305
1306         * elfnn-aarch64.c (aarch64_tls_transition_without_check): Sort
1307         relocation case labels alphabetically.
1308         (elfNN_aarch64_final_link_relocate): Ditto.
1309         (elfNN_aarch64_tls_relax): Ditto.
1310         (elfNN_aarch64_relocate_section): Ditto.
1311         (elfNN_aarch64_gc_sweep_hook): Ditto.
1312         (elfNN_aarch64_check_relocs): Ditto.
1313         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Ditto.
1314         (_bfd_aarch64_elf_resolve_relocation): Ditto.
1315
1316 2015-05-18  Jiong Wang  <jiong.wang@arm.com>
1317
1318         * elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol): Rewrite
1319         comments.
1320
1321 2015-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1322
1323         * elf32-i386.c (elf_i386_check_relocs): Create .plt.got section
1324         for now binding.
1325         (elf_i386_allocate_dynrelocs): Use .plt.got section for now
1326         binding.
1327         * elf64-x86-64.c (elf_x86_64_check_relocs): Create .plt.got
1328         section for now binding.
1329         (elf_x86_64_allocate_dynrelocs): Use .plt.got section for now
1330         binding.
1331
1332 2015-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1333
1334         * bfd.c (bfd_update_compression_header): Also write the zlib
1335         header if the SHF_COMPRESSED bit cleared..
1336         (bfd_check_compression_header): Return the uncompressed size.
1337         * compress.c (decompress_contents): Don't skip the zlib header.
1338         (bfd_compress_section_contents): Properly handle ELFCOMPRESS_ZLIB,
1339         which doesn't have the zlib header.
1340         (bfd_init_section_decompress_status): Likewise.
1341         (bfd_get_full_section_contents): Updated.
1342         (bfd_is_section_compressed): Likewise.
1343         (bfd_is_section_compressed_with_header): Return the uncompressed
1344         size.
1345         * elf.c (_bfd_elf_make_section_from_shdr): Updated.
1346         * bfd-in2.h: Regenerated.
1347
1348 2015-05-14  Jiong Wang  <jiong.wang@arm.com>
1349
1350         * elfnn-aarch64.c (elfNN_aarch64_relocate_section): Remove overflow
1351         check restrictions.
1352
1353 2015-05-14  Max Filippov  <jcmvbkbc@gmail.com>
1354
1355         * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Treat PLT reference
1356         as GOT reference when plt.refcount is not positive.
1357
1358 2015-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1359
1360         * elf32-i386.c (elf_i386_allocate_dynrelocs): Allocate space
1361         for the first .plt entry only if needed.
1362         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
1363
1364 2015-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1365
1366         * Makefile.am (ALL_MACHINES): Add cpu-iamcu.lo.
1367         (ALL_MACHINES_CFILES): Likewise.
1368         * archures.c (bfd_mach_iamcu): New.
1369         (bfd_mach_i386_iamcu): Likewise.
1370         (bfd_mach_i386_iamcu_intel_syntax): Likewise.
1371         (bfd_iamcu_arch): Likewise.
1372         (bfd_archures_list): Add &bfd_iamcu_arch.
1373         * config.bfd (targ_selvecs): Add iamcu_elf32_vec to
1374         i386_elf32_vec.
1375         (targ_archs): Add bfd_iamcu_arch if needed.
1376         * configure.ac: Support iamcu_elf32_vec.
1377         * cpu-iamcu.c: New file.
1378         * elf32-i386.c (elf32_iamcu_elf_object_p): New function.
1379         Add support for iamcu_elf32_vec and elf32_iamcu_bed.
1380         * targets.c (iamcu_elf32_vec): New.
1381         (_bfd_target_vector): Add iamcu_elf32_vec.
1382         * Makefile.in: Regenerated.
1383         * bfd-in2.h: Likewise.
1384         * configure: Likewise.
1385
1386 2015-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1387
1388         * elfcode.h (elf_object_p): Replace EM_486 with EM_IAMCU.
1389
1390 2015-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1391
1392         * elf32-i386.c (elf_i386_convert_mov_to_lea): Replace input_bfd
1393         and output_bfd with abfd.
1394         * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise.
1395
1396 2015-05-06  Toni Spets  <toni.spets@iki.fi>
1397
1398         PR ld/18372
1399         * peXXigen.c (rsrc_process_section): Skip discarded resource
1400         sections.
1401
1402 2015-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1403
1404         * config.bfd: Support i[3-7]86-*-elf*.
1405
1406 2015-04-30  H.J. Lu  <hongjiu.lu@intel.com>
1407
1408         * elf32-i386.c (elf_backend_post_process_headers): Undef for
1409         Solaris 2.
1410
1411 2015-04-30  Nick Clifton  <nickc@redhat.com>
1412
1413         PR 18317
1414         * elf32-mep.c (MEPREL): Use bfd_elf_generic_reloc instead of
1415         mep_reloc.
1416         (mep_reloc): Delete unused function.
1417
1418 2015-04-29  Nick Clifton  <nickc@redhat.com>
1419
1420         PR 17099
1421         * coff-i386.c (coff_i386_rtype_to_howto): Allow absolute PCRLONG
1422         relocs.
1423
1424 2015-04-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1425
1426         * elf-s390-common.c (elf_s390_merge_obj_attributes): New function.
1427         * elf32-s390.c (elf32_s390_merge_private_bfd_data): Call
1428         elf_s390_merge_obj_attributes.
1429         * elf64-s390.c (elf64_s390_merge_private_bfd_data): New function.
1430
1431 2015-04-24  Jiong Wang  <jiong.wang@arm.com>
1432
1433         PR ld/18270
1434         * elfnn-aarch64.c (elfNN_aarch64_size_dynamic): Count local symbol for
1435         GOT_NORMAL for both sgot/srelgot section.
1436         (elfNN_aarch64_final_link_relocate): Relocate against GOT entry address
1437         and generate necessary runtime relocation for GOT entry.
1438
1439 2015-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1440
1441         PR binutils/18209
1442         * archive.c (_bfd_get_elt_at_filepos): Copy is_linker_input.
1443
1444 2015-04-24  Jiong Wang  <jiong.wang@arm.com>
1445
1446         * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Reject
1447         PC-relative relocation for external symbol.
1448
1449 2015-04-24  Nick Clifton  <nickc@redhat.com>
1450
1451         PR 18313
1452         * compress.c (decompress_contents): Zero initialse the z_stream
1453         structure.
1454
1455 2015-04-24  Nick Clifton  <nickc@redhat.com>
1456
1457         * elf.c (_bfd_elf_is_local_label_name): Extend test for assembler
1458         local labels to include local labels with a numeric suffix and
1459         fake symbols.
1460
1461 2015-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1462
1463         PR binutils/18316
1464         * section.c (SEC_MEP_VLIW): New.
1465         * bfd-in2.h: Regenerated.
1466
1467 2015-04-23  H.J. Lu  <hongjiu.lu@intel.com>
1468
1469         PR ld/18277
1470         * compress.c (bfd_compress_section_contents): Remove the
1471         write_compress argument.
1472         (bfd_init_section_compress_status): Updated.
1473         (bfd_compress_section): Likewise.
1474         * elf.c (_bfd_elf_set_reloc_sh_name): New.
1475         (_bfd_elf_init_reloc_shdr): Add delay_st_name_p.  Set sh_name
1476         to (unsigned int) -1 if delay_st_name_p is TRUE.  Use
1477         _bfd_elf_set_reloc_sh_name.
1478         (elf_fake_sections): Don't rename DWARF debug section for
1479         linker output if it will be compressed.  Instead, set
1480         delay_st_name_p to TRUE and pass it to _bfd_elf_init_reloc_shdr.
1481         (assign_section_numbers): Call _bfd_elf_strtab_addref only if
1482         sh_name != (unsigned int) -1.  Don't finalize nor assign
1483         shstrtab section here.  Delay setting output section names to
1484         _bfd_elf_write_object_contents.
1485         (_bfd_elf_compute_section_file_positions): Update comments on
1486         sh_offset for shstrtab section.
1487         (assign_file_positions_for_non_load_sections): Set sh_offset to
1488         -1 for shstrtab section.
1489         (assign_file_positions_except_relocs): Likewise.
1490         (_bfd_elf_assign_file_positions_for_non_load): Set up sh_name
1491         when compressing DWARF debug sections.  Place shstrtab section
1492         after DWARF debug sections have been compressed.
1493         (_bfd_elf_write_object_contents): Setting sh_name for output
1494         sections.
1495
1496 2015-04-23  H.J. Lu  <hongjiu.lu@intel.com>
1497
1498         PR binutils/18209
1499         * bfd.c (bfd): Add is_linker_input.
1500         * elf.c (convert_debug_to_zdebug): New.
1501         (convert_zdebug_to_debug): Likewise.
1502         (_bfd_elf_make_section_from_shdr): Don't convert .debug_* to
1503         .zdebug_* here.  Use convert_zdebug_to_debug.  Set SEC_ELF_RENAME.
1504         (_bfd_elf_init_reloc_shdr): Pass a pointer to section name
1505         instead of a pointer to section.
1506         (elf_fake_sections): Rename the section name if SEC_ELF_RENAME
1507         is set.
1508         * section.c (SEC_ELF_RENAME): New.
1509         * bfd-in2.h: Regenerated.
1510
1511 2015-04-23  Alan Modra  <amodra@gmail.com>
1512
1513         * elf64-ppc.c (TOC_BASE_ALIGN): Define.
1514         (ppc64_elf_next_toc_section): Align multi-got toc base.
1515         (ppc64_elf_set_toc): Likewise initial toc base and .TOC. symbol.
1516
1517 2015-04-22  H.J. Lu  <hongjiu.lu@intel.com>
1518
1519         PR ld/18289
1520         * elf32-i386.c (elf_i386_link_hash_entry): Add gotoff_ref.
1521         (elf_i386_link_hash_newfunc): Initialize gotoff_ref to 0.
1522         (elf_i386_create_dynamic_sections): Always allow copy relocs for
1523         building executables.
1524         (elf_i386_copy_indirect_symbol): Also copy gotoff_ref.
1525         (elf_i386_check_relocs): Set gotoff_ref for R_386_GOTOFF.
1526         (elf_i386_adjust_dynamic_symbol): Also allocate copy relocs for
1527         PIE and R_386_GOTOFF.
1528         (elf_i386_relocate_section): Allow R_386_GOTOFF in executable.
1529
1530 2015-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1531
1532         * elf.c (assign_section_numbers): Always set up sh_name.
1533
1534 2015-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1535
1536         * elf.c (assign_file_positions_for_non_load_sections): Iterate
1537         sections by pointer.
1538         (_bfd_elf_assign_file_positions_for_non_load): Likewise.
1539
1540 2015-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1541
1542         * bfd-in.h (compressed_debug_section_type): New.
1543         * compress.c (bfd_compress_section_contents): Add an argument
1544         for linker write compression and always generate .zdebug_*
1545         section when linking.
1546         (bfd_init_section_compress_status): Pass FALSE to
1547         bfd_compress_section_contents.
1548         (bfd_compress_section): New function.
1549         * elf.c (elf_fake_sections): For linking, set SEC_ELF_COMPRESS
1550         on DWARF debug sections if COMPRESS_DEBUG is set and rename
1551         section if COMPRESS_DEBUG_GABI_ZLIB isn't set.
1552         (assign_file_positions_for_non_load_sections): Set sh_offset
1553         to -1 if SEC_ELF_COMPRESS is set.
1554         (assign_file_positions_except_relocs): Likwise.
1555         (_bfd_elf_assign_file_positions_for_relocs): Renamed to ...
1556         (_bfd_elf_assign_file_positions_for_non_load): This.  Change
1557         return time to bfd_boolean.  Compress the section if
1558         SEC_ELF_COMPRESS is set.
1559         (_bfd_elf_write_object_contents): Updated.
1560         (_bfd_elf_set_section_contents): Write section contents to
1561         the buffer if SEC_ELF_COMPRESS is set.
1562         * merge.c: Include "elf-bfd.h".
1563         (sec_merge_emit): Add arguments for contents and offset.  Write
1564         to contents with offset if contents isn't NULL.
1565         (_bfd_write_merged_section): Write section contents to the
1566         buffer if SEC_ELF_COMPRESS is set.  Pass contents and
1567         output_offset to sec_merge_emit.
1568         * elflink.c (bfd_elf_final_link): Allocate the buffer for
1569         output section contents if SEC_ELF_COMPRESS is set.
1570         * section.c (SEC_ELF_COMPRESS): New.
1571         * bfd-in2.h: Regenerated.
1572
1573 2015-04-15  Alan Modra  <amodra@gmail.com>
1574
1575         * elf32-rl78.c (rl78_elf_relocate_section): Typo fix.
1576
1577 2015-04-14  Nick Clifton  <nickc@redhat.com>
1578
1579         * elf32-rl78.c (RL78_OP_REL): New macro.
1580         (rl78_elf_howto_table): Use it for complex relocs.
1581         (get_symbol_value): Handle the cases when the info or status
1582         arguments are NULL.
1583         (get_romstart): Cache the status returned by get_symbol_value.
1584         (get_ramstart): Likewise.
1585         (RL78_STACK_PUSH): Generate an error message if the stack
1586         overflows.
1587         (RL78_STACK_POP): Likewise for underflows.
1588         (rl78_compute_complex_reloc): New function.  Contains the basic
1589         processing code for all RL78 complex relocs.
1590         (rl78_special_reloc): New function.  Provides special reloc
1591         handling for complex relocs.
1592         (rl78_elf_relocate_section): Use rl78_compute_complex_reloc.
1593         (rl78_offset_for_reloc): Likewise.
1594
1595 2015-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1596
1597         PR ld/pr17709
1598         * elflink.c (_bfd_elf_adjust_dynamic_copy): Check
1599         info->extern_protected_data when warning copy relocs against
1600         protected symbols.
1601         (_bfd_elf_symbol_refs_local_p): Check info->extern_protected_data
1602         when checking protected non-function symbols.
1603
1604 2015-04-13  John Baldwin  <jhb@FreeBSD.org>
1605
1606         * elf.c (elfcore_grok_note): Recognize NT_X86_XSTATE on
1607         FreeBSD.
1608         (elfcore_write_xstatereg): Use correct note name on FreeBSD.
1609
1610 2015-04-13  H.J. Lu  <hongjiu.lu@intel.com>
1611
1612         PR ld/18250
1613         * elflink.c (elf_link_is_defined_archive_symbol): Return FALSE
1614         if the object has been claimed by plugin.
1615
1616 2015-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1617
1618         * elf32-i386.c (elf_i386_relocate_section): Replace SYMBOLIC_BIND
1619         with SYMBOL_REFERENCES_LOCAL when checking R_386_GOTOFF against
1620         protected data symbol when building shared library.
1621         * elf64-x86-64.c (elf_x86_64_relocate_section): Check
1622         R_X86_64_GOTOFF64 against undefined symbol and replace
1623         SYMBOLIC_BIND with SYMBOL_REFERENCES_LOCAL when checking
1624         R_X86_64_GOTOFF64 against protected data symbol when building
1625         shared library.
1626
1627 2015-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1628
1629         PR ld/pr17709
1630         * elf32-i386.c (elf_i386_relocate_section): Also check R_386_GOTOFF
1631         against protected data symbol when building shared library.
1632         * elf64-x86-64.c (elf_x86_64_relocate_section): Also check
1633         R_X86_64_GOTOFF64 against protected data symbol when building
1634         shared library.
1635
1636 2015-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1637
1638         PR ld/pr15228
1639         PR ld/pr17709
1640         * elf-bfd.h (elf_backend_data): Add extern_protected_data.
1641         * elf32-i386.c (elf_backend_extern_protected_data): New.
1642         Defined to 1.
1643         * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
1644         * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't error on
1645         copy relocs against protected symbols if extern_protected_data
1646         is true.
1647         (_bfd_elf_symbol_refs_local_p): Don't return true on protected
1648         non-function symbols if extern_protected_data is true.
1649         * elfxx-target.h (elf_backend_extern_protected_data): New.
1650         Default to 0.
1651         (elfNN_bed): Initialize extern_protected_data with
1652         elf_backend_extern_protected_data.
1653
1654 2015-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1655
1656         * compress.c (bfd_compress_section_contents): Replace bfd_malloc
1657         and free with bfd_alloc and bfd_release on compressed buffer.
1658         Release buffer if compressed section isn't smaller.
1659
1660 2015-04-10  Alan Modra  <amodra@gmail.com>
1661
1662         PR ld/18222
1663         * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't report an error
1664         on adding a protected visibility variable to .dynbss.
1665
1666 2015-04-10  Alan Modra  <amodra@gmail.com>
1667
1668         Revert 2015-03-05  H.J. Lu  <hongjiu.lu@intel.com>
1669         PR ld/pr15228
1670         PR ld/pr17709
1671         * elf-bfd.h (elf_backend_data): Delete extern_protected_data.
1672         * elf32-i386.c (elf_backend_extern_protected_data): Delete.
1673         * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
1674         * elflink.c (_bfd_elf_adjust_dynamic_copy): Remove
1675         extern_protected_data test.
1676         (_bfd_elf_symbol_refs_local_p): Likewise.
1677         * elfxx-target.h (elf_backend_extern_protected_data): Delete.
1678         (elfNN_bed): Delete elf_backend_extern_protected_data init.
1679
1680 2015-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1681
1682         * compress.c (bfd_compress_section_contents): Update comments.
1683         (bfd_init_section_decompress_status): Likewise.
1684         (bfd_init_section_compress_status): Likewise.
1685
1686 2015-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1687
1688         * elfxx-target.h (TARGET_BIG_SYM): Add BFD_COMPRESS_GABI to
1689         object_flags.
1690         (TARGET_LITTLE_SYM): Likewise.
1691
1692 2015-04-09  Max Filippov  <jcmvbkbc@gmail.com>
1693
1694         * elf32-xtensa.c (splay-tree.h): include header.
1695         (text_action_struct): drop next pointer.
1696         (text_action_list_struct): drop head pointer, add count and
1697         tree fields.
1698         (find_fill_action): instead of linear search in text_action_list
1699         search in the tree.
1700         (text_action_compare, action_first, action_next): new functions.
1701         (text_action_add, text_action_add_literal): instead of linear
1702         search and insertion insert new node into the tree.
1703         (removed_by_actions): pass additional parameter: action_list,
1704         use it to traverse the tree.
1705         (offset_with_removed_text): pass additional action_list parameter
1706         to removed_by_actions.
1707         (map_action_fn_context): new typedef.
1708         (map_action_fn_context_struct): new structure.
1709         (map_action_fn): new function.
1710         (map_removal_by_action): use splay_tree_foreach to build map.
1711         (find_insn_action): replace linear search in text_action_list
1712         with series of splay_tree_lookups.
1713         (print_action, print_action_list_fn): new functions.
1714         (print_action_list): use splay_tree_foreach.
1715         (init_xtensa_relax_info): drop action_list.head initialization.
1716         Initialize the tree.
1717         (compute_text_actions): use non-zero action_list_count instead of
1718         non-NULL action list.
1719         (xlate_map_context): new typedef.
1720         (xlate_map_context_struct): new structure.
1721         (xlate_map_fn): new function.
1722         (build_xlate_map): use splay_tree_foreach to build map.
1723         (action_remove_bytes_fn): new function.
1724         (relax_section): use zero action_list_count instead of NULL
1725         action list. Use splay_tree_foreach to count final section size.
1726         Drop unused variable 'removed'.
1727
1728 2015-04-09  Max Filippov  <jcmvbkbc@gmail.com>
1729
1730         * elf32-xtensa.c (removed_literal_map_entry): new typedef.
1731         (removed_literal_map_entry_struct): new structure.
1732         (removed_literal_list_struct): add new fields: n_map and map.
1733         (map_removed_literal, removed_literal_compare): new functions.
1734         (find_removed_literal): build index array for literals ordered
1735         by VMA, use binary search to find removed literal.
1736
1737 2015-04-09  Max Filippov  <jcmvbkbc@gmail.com>
1738
1739         * elf32-xtensa.c (removal_by_action_entry_struct,
1740         removal_by_action_map_struct): new structures.
1741         (removal_by_action_entry, removal_by_action_map): new typedefs.
1742         (text_action_list_struct): add new field: map.
1743         (map_removal_by_action, removed_by_actions_map,
1744         offset_with_removed_text_map): new functions.
1745         (relax_section): replace offset_with_removed_text with
1746         offset_with_removed_text_map.
1747         (translate_reloc, relax_property_section, relax_section_symbols):
1748         replace removed_by_actions with removed_by_actions_map.
1749
1750 2015-04-09  Max Filippov  <jcmvbkbc@gmail.com>
1751
1752         * elf32-xtensa.c (reloc_range_list, reloc_range_list_entry,
1753         reloc_range): new typedef.
1754         (reloc_range_list_struct, reloc_range_list_entry_struct,
1755         reloc_range_struct): new structures.
1756         (reloc_range_compare, build_reloc_ranges,
1757         reloc_range_list_append, reloc_range_list_remove,
1758         reloc_range_list_update_range, free_reloc_range_list): new
1759         functions.
1760         (compute_text_actions): precompute relocation opcodes before the
1761         loop. Add relevant_relocs variable, initialize it before the
1762         loop, pass it to the check_section_ebb_pcrels_fit.
1763         (check_section_ebb_pcrels_fit): add new parameter:
1764         relevant_relocs. Update address range in the relevant_relocs if
1765         it's non-NULL and iterate only over relevant relocations.
1766
1767 2015-04-09  Nick Clifton  <nickc@redhat.com>
1768
1769         * elf32-rx.c (describe_flags): Report the settings of the string
1770         insn using bits.
1771         (rx_elf_merge_private_bfd_data): Handle merging of the string insn
1772         using bits.
1773
1774 2015-04-08  H.J. Lu  <hongjiu.lu@intel.com>
1775
1776         * compress.c (bfd_compress_section_contents): Work around a GCC
1777         uninitialized warning bug fixed in GCC 4.7.
1778
1779 2015-04-08  H.J. Lu  <hongjiu.lu@intel.com>
1780
1781         * archive.c (_bfd_get_elt_at_filepos): Also copy BFD_COMPRESS_GABI
1782         bit.
1783         * bfd.c (bfd::flags): Increase size to 18 bits.
1784         (BFD_COMPRESS_GABI): New.
1785         (BFD_FLAGS_SAVED): Add BFD_COMPRESS_GABI.
1786         (BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
1787         (bfd_update_compression_header): New fuction.
1788         (bfd_check_compression_header): Likewise.
1789         (bfd_get_compression_header_size): Likewise.
1790         (bfd_is_section_compressed_with_header): Likewise.
1791         * compress.c (MAX_COMPRESSION_HEADER_SIZE): New.
1792         (bfd_compress_section_contents): Return the uncompressed size if
1793         the full section contents is compressed successfully.  Support
1794         converting from/to .zdebug* sections.
1795         (bfd_get_full_section_contents): Call
1796         bfd_get_compression_header_size to get compression header size.
1797         (bfd_is_section_compressed): Renamed to ...
1798         (bfd_is_section_compressed_with_header): This.  Add a pointer
1799         argument to return compression header size.
1800         (bfd_is_section_compressed): Use it.
1801         (bfd_init_section_decompress_status): Call
1802         bfd_get_compression_header_size to get compression header size.
1803         Return FALSE if uncompressed section size is 0.
1804         * elf.c (_bfd_elf_make_section_from_shdr): Support converting
1805         from/to .zdebug* sections.
1806         * bfd-in2.h: Regenerated.
1807
1808 2015-04-07  Alan Modra  <amodra@gmail.com>
1809
1810         * elf.c (_bfd_elf_get_reloc_section): Allow for .got.plt being
1811         mapped to output .got section.
1812
1813 2015-04-07  Alan Modra  <amodra@gmail.com>
1814
1815         * elf32-ppc.c (struct ppc_elf_link_hash_entry): Add has_addr16_ha
1816         and has_addr16_lo.  Make has_sda_refs a bitfield.
1817         (ppc_elf_check_relocs): Set new flags.
1818         (ppc_elf_link_hash_table_create): Update default_params.
1819         (ppc_elf_adjust_dynamic_symbol): Clear protected_def in cases
1820         where we won't be making .dynbss entries or editing code.  Set
1821         params->pic_fixup when we'll edit code for protected var access.
1822         (allocate_dynrelocs): Allocate got entry for edited code and
1823         discard dyn_relocs.
1824         (struct ppc_elf_relax_info): Add picfixup_size.
1825         (ppc_elf_relax_section): Rename struct one_fixup to struct
1826         one_branch_fixup.  Rename fixups to branch_fixups.  Size space for
1827         pic fixups.
1828         (ppc_elf_relocate_section): Edit non-PIC accessing protected
1829         visibility variables to PIC.  Don't emit dyn_relocs for code
1830         we've edited.
1831         * elf32-ppc.h (struct ppc_elf_params): Add pic_fixup.
1832
1833 2015-04-07  Nick Clifton  <nickc@redhat.com>
1834
1835         * elf.c (_bfd_elf_is_local_label_name): Treat assembler generated
1836         local labels as local.
1837
1838 2015-04-06  H.J. Lu  <hongjiu.lu@intel.com>
1839
1840         * compress.c (get_uncompressed_size): Removed.
1841         (bfd_compress_section_contents): Use bfd_putb64 to write
1842         uncompressed section size.
1843         (bfd_init_section_decompress_status): Replace
1844         get_uncompressed_size with bfd_getb64.
1845
1846 2015-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1847
1848         * elf.c (_bfd_elf_init_private_section_data): Also preserve the
1849         SHF_COMPRESSED bit if not decompress.
1850
1851 2015-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1852
1853         * compress.c (get_uncompressed_size): New.  Extracted from ...
1854         (bfd_init_section_decompress_status): This.  Use it.
1855
1856 2015-04-02  Andrew Turner  <andrew@freebsd.org>
1857
1858         * config.bfd: Add aarch64-*-freebsd* target triple.
1859
1860 2015-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1861
1862         * configure: Regenerated.
1863
1864 2015-04-01  Tejas Belagod  <tejas.belagod@arm.com>
1865             Marcus Shawcroft  <marcus.shawcroft@arm.com>
1866             Jiong Wang  <jiong.wang@arm.com>
1867
1868         * bfd-in.h (bfd_elf64_aarch64_set_options)
1869         (bfd_elf32_aarch64_set_options): Add parameter.
1870         * bfd-in2.h: Regenerated.
1871         * elfnn-aarch64.c (aarch64_erratum_843419_stub)
1872         (_bfd_aarch64_adrp_p, _bfd_aarch64_erratum_843419_sequence_p)
1873         (_bfd_aarch64_erratum_843419_stub_name)
1874         (_bfd_aarch64_erratum_843419_fixup)
1875         (_bfd_aarch64_erratum_843419_scan)
1876         (_bfd_aarch64_erratum_843419_branch_to_stub)
1877         (_bfd_aarch64_erratum_843419_p): Define.
1878         (enum elf_aarch64_stub_type): Define
1879         aarch64_stub_erratum_843419_veneer.
1880         (struct elf_aarch64_stub_hash_entry): Define adrp_offset.
1881         (struct elf_aarch64_link_hash_table): Define fix_erratum_843419
1882         and fix_erratum_843419_adr.
1883         (stub_hash_newfunc): Initialize adrp_offset;
1884         (_bfd_aarch64_add_stub_entry_after): Define.
1885         (aarch64_map_one_stub, aarch64_build_one_stub)
1886         (aarch64_size_one_stub): Handle
1887         aarch64_stub_erratum_843419_veneer.
1888         (_bfd_aarch64_resize_stubs): Round stub section size.
1889         (elfNN_aarch64_size_stubs): Add scan for 843419.
1890         (bfd_elfNN_aarch64_set_options): Add parameter. Initialize
1891         fix_erratum_843419 and fix_erratum_843419_adr.
1892         (struct erratum_835769_branch_to_stub_data): Add info.
1893         (elfNN_aarch64_write_section): Initialise info.  Handle 843419.
1894         (elfNN_aarch64_size_dynamic_sections): Handle 843419.
1895         * elfxx-aarch64.c (_bfd_aarch64_decode_adrp_imm)
1896         (_bfd_aarch64_sign_extend): Define.
1897         (reencode_adr_imm): Remove static. Rename to:
1898         (_bfd_aarch64_reencode_adr_imm): Define.
1899         (_bfd_aarch64_elf_put_addend): Call _bfd_aarch64_reencode_adr_imm.
1900         * elfxx-aarch64.h (AARCH64_ADR_OP, AARCH64_ADRP_OP)
1901         (AARCH64_ADRP_OP_MASK, _bfd_aarch64_sign_extend)
1902         (_bfd_aarch64_decode_adrp_imm, _bfd_aarch64_reencode_adr_imm):
1903         Define.
1904
1905 2015-04-01  H.J. Lu  <hongjiu.lu@intel.com>
1906
1907         * configure: Regenerated.
1908
1909 2015-03-31  Ed Schouten  <ed@nuxi.nl>
1910
1911         * config.bfd (targ_defvec): Set to x86_64_elf64_cloudabi_vec
1912         for x86_64-*-cloudabi*.
1913         * configure.ac: Handle x86_64_elf64_cloudabi_vec.
1914         * configure: Regenerated.
1915         * elf64-x86-64.c (TARGET_LITTLE_SYM): Support x86_64-*-cloudabi*.
1916         (TARGET_LITTLE_NAME): Likewise.
1917         (ELF_OSABI): Likewise.
1918         (elf64_bed): Likewise.
1919         * targets.c (x86_64_elf64_cloudabi_vec): New.
1920         (_bfd_target_vector): Add x86_64_elf64_cloudabi_vec.
1921
1922 2015-03-31  H.J. Lu  <hongjiu.lu@intel.com>
1923
1924         * configure.ac: Revert the AM_ZLIB change.
1925         * Makefile.in: Regenerated.
1926         * aclocal.m4: Likewise.
1927         * configure: Likewise.
1928         * doc/Makefile.in: Likewise.
1929
1930 2015-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1931
1932         PR ld/18169
1933         * elf-bfd.h (elf_backend_data): Add get_reloc_section.
1934         (_bfd_elf_get_reloc_section): New.
1935         * elf.c (_bfd_elf_get_reloc_section): Likewise.
1936         (assign_section_numbers): Call get_reloc_section to look up the
1937         section the relocs apply.
1938         * elfxx-target.h (elf_backend_get_reloc_section): Likewise.
1939         (elfNN_bed): Initialize get_reloc_section with
1940         elf_backend_get_reloc_section.
1941
1942 2015-03-29  H.J. Lu  <hongjiu.lu@intel.com>
1943
1944         * Makefile.am (ZLIB): New.
1945         (ZLIBINC): Likewise.
1946         (AM_CFLAGS): Add $(ZLIBINC).
1947         (libbfd_la_LIBADD): Add $(ZLIB).
1948         * compress.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
1949         (decompress_contents): Don't check HAVE_ZLIB_H.
1950         (bfd_compress_section_contents): Likewise.
1951         (bfd_get_full_section_contents): Likewise.
1952         (bfd_init_section_decompress_status): Likewise.
1953         (bfd_init_section_compress_status): Likewise.
1954         * configure.ac (AM_ZLIB): Removed.
1955         (zlibdir): New.  AC_SUBST.
1956         (zlibinc): Likewise.
1957         Add --with-system-zlib.
1958         * Makefile.in: Regenerated.
1959         * acinclude.m4: Likewise.
1960         * config.in: Likewise.
1961         * configure: Likewise.
1962         * doc/Makefile.in: Likewise.
1963
1964 2015-03-27  Alan Modra  <amodra@gmail.com>
1965
1966         PR ld/15228
1967         PR ld/18167
1968         * elflink.c (elf_merge_st_other): Add "sec" parameter.  Don't set
1969         protected_def when symbol section is read-only.  Adjust all calls.
1970         * elf-bfd.h (struct elf_link_hash_entry): Update protected_def comment.
1971
1972 2015-03-26  Tejas Belagod  <tejas.belagod@arm.com>
1973
1974         * elfnn-aarch64.c (aarch64_build_one_stub): Replace the call to generic
1975         _bfd_final_link_relocate with aarch64_relocate.
1976
1977 2015-03-26  H.J. Lu  <hongjiu.lu@intel.com>
1978
1979         PR ld/18160
1980         * elflink.c (elf_gc_sweep): Skip if relocation is incompatible.
1981         (bfd_elf_gc_sections): Likewise.
1982
1983 2015-03-25  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1984
1985         * elfnn-aarch64.c (_bfd_aarch64_resize_stubs): Adjust stub section
1986         size for initial branch.
1987         (elfNN_aarch64_build_stubs): Write initial branch.
1988         _bfd_aarch64_decode_(elfNN_aarch64_output_arch_local_syms): Write
1989         mapping symbol on initial branch.
1990
1991 2015-03-25  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1992
1993         * elfnn-aarch64.c (_bfd_aarch64_erratum_835769_scan):
1994         Update erratum count.
1995
1996 2015-03-25  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1997
1998         * elflink.c (_bfd_elf_gc_mark_extra_sections): Don't break on
1999         first matching debug section.
2000
2001 2015-03-24  H.J. Lu  <hongjiu.lu@intel.com>
2002
2003         PR gas/18087
2004         * compress.c (bfd_compress_section_contents): Don't write the
2005         zlib header and set contents as well as compress_status if
2006         compression didn't make the section smaller.
2007         (bfd_init_section_compress_status): Don't check compression
2008         size here.
2009
2010 2015-03-24  Nick Clifton  <nickc@redhat.com>
2011
2012         PR binutils/17512
2013         * coffgen.c (coff_get_normalized_symtab): Fix test for out of
2014         range auxillary sections.
2015
2016 2015-03-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2017
2018         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor
2019         code into:
2020         (_bfd_aarch64_get_stub_for_link_section): Define.
2021
2022 2015-03-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2023
2024         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Adjust
2025         update of section_group[].stub_sec.
2026
2027 2015-03-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2028
2029         * elfnn-aarch64.c (struct aarch64_erratum_835769_fix) Remove.
2030         (erratum_835769_scan) Drop fix_table_size_p and fixes_p arguments.
2031         Delete fixes, fix_table_size and associated code.  Call
2032         _bfd_aarch64_add_stub_entry_in_group. Rename to...
2033         (bfd_aarch64_erratum_835769_scan): Define.
2034         (elfNN_aarch64_size_stubs): Delete erratum_835769_fixes,
2035         erratum_835769_fix_table_size, i and associated code.  Relocate
2036         call to _bfd_aarch64_erratum_835769_scan.  Delete adhoc stub size
2037         correction.  Delete construction of stub entry from
2038         erratum_835769_fixes array.
2039
2040 2015-03-24  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2041
2042         * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Use
2043         _bfd_aarch64_add_stub_entry_in_group.
2044
2045 2015-03-24  Alan Modra  <amodra@gmail.com>
2046
2047         * elf64-ppc.c (ppc64_elf_relocate_section): Report overflow to
2048         stubs, even those for undefined weak symbols.  Otherwise, don't
2049         report relocation overflow on branches to undefined strong
2050         symbols.  Fix memory leak.
2051         * elf32-ppc.c (ppc_elf_relocate_section): Don't report relocation
2052         overflow on branches to undefined strong symbols.
2053
2054 2015-03-23  Keith Seitz  <keiths@redhat.com>
2055
2056         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Add
2057         missing ';'.
2058
2059 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2060
2061         * elfnn-aarch64.c (erratum_835769_scan): Factor stub name
2062         construction into...
2063         (_bfd_aarch64_erratum_835769_stub_name): Define.
2064
2065 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2066
2067         * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Factor out
2068         stub resize code into...
2069         (bfd_aarch64_resize_stubs): Define.
2070
2071 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2072
2073         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor stub
2074         creation code into...
2075         (bfd_aarch64_create_stub_section): Define.
2076
2077 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2078
2079         * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Rename
2080         from elf_aarch64_create_or_find_stub_sec.
2081         (_bfd_aarch64_add_stub_entry_in_group): Rename from
2082         elfNN_aarch64_add_stub.  Call
2083         _bfd_aarch64_create_or_find_stub_sec.
2084         (elfNN_aarch64_size_stubs, elfNN_aarch64_size_stubs): Call
2085         _bfd_aarch64_add_stub_entry_in_group.
2086
2087 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2088
2089         * elfnn-aarch64.c (erratum_835769_scan) Add comment.  Reverse
2090         sense of boolean return.
2091         (elfNN_aarch64_size_stubs): Adjust for above.
2092
2093 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2094
2095         * elfnn-aarch64.c (elf_aarch64_create_or_find_stub_sec):
2096         Remove unused parameter.
2097         (elfNN_aarch64_size_stubs): Adjust for above.
2098
2099 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2100
2101         * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Remove bfd_indx.
2102
2103 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2104
2105         * elfnn-aarch64.c (aarch64_erratum_835769_fixes)
2106         (num_aarch64_erratum_835769_fixes): Remove.
2107         (elfNN_aarch64_size_stubs): Remove assignments to above.
2108
2109 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2110
2111         * elfnn-aarch64.c (aarch64_mem_op_p): Update comment. Rename rtn
2112         to rt2.
2113         (aarch64_erratum_seqeunce): Rename rtn to rt2.
2114
2115 2015-03-23  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2116
2117         * elfnn-aarch64.c (elfNN_aarch64_write_section): Adjust layout.
2118
2119 2015-03-19  Nick Clifton  <nickc@redhat.com>
2120
2121         * elf32-rl78.c (rl78_cpu_name): New function.  Prints the name of
2122         the RL78 core based upon the flags.
2123         (rl78_elf_merge_private_bfd_data): Handle merging of G13 and G14
2124         flags.
2125         (rl78_elf_print_private_bfd_data): Use rl78_cpu_name.
2126         (elf32_rl78_machine): Always return bfd_mach_rl78.
2127
2128 2015-03-19  Nick Clifton  <nickc@redhat.com>
2129
2130         PR 18078
2131         * compress.c (bfd_compress_section_contents): Do not define this
2132         function if it is not used.
2133
2134 2015-03-18  H.J. Lu  <hongjiu.lu@intel.com>
2135
2136         * compress.c (bfd_compress_section_contents): Make it static.
2137         * bfd/bfd-in2.h: Regenerated.
2138
2139 2015-03-18  Eric Youngdale  <eyoungdale@ptc.com>
2140
2141         PR ld/16598
2142         * peicode.h (pe_ILF_build_a_bfd): Add support for creating relocs
2143         suitable for the AMD64.
2144
2145 2015-03-18  Jon Turney  <jon.turney@dronecode.org.uk>
2146             Nick Clifton  <nickc@redhat.com>
2147
2148         PR binutils/18087
2149         * coffgen.c (make_a_section_from_file): Only prepend a z to a
2150         debug section's name if the section was actually compressed.
2151         * elf.c (_bfd_elf_make_section_from_shdr): Likewise.
2152         * compress.c (bfd_init_section_compress_status): Do not compress
2153         the section if doing so would make it bigger.  In such cases leave
2154         the section alone and return COMPRESS_SECTION_NONE.
2155
2156 2015-03-17  Alan Modra  <amodra@gmail.com>
2157
2158         * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Return count of 0
2159         on nothing to do, before malloc of returned symbol array.
2160
2161 2015-03-16  Nick Clifton  <nickc@redhat.com>
2162
2163         * elf32-rx.c (elf32_rx_relax_delete_bytes): If the relocs are not
2164         stored in the elf_section_data structure then load them as
2165         necessary.
2166
2167 2015-03-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2168
2169         * elf-s390-common.c (elf_s390_elf_sort_relocs_p): Don't sort
2170         relocs against code sections.
2171         * elf32-s390.c: Define elf_backend_sort_relocs_p.
2172         * elf64-s390.c: Likewise.
2173
2174 2015-03-11  Alan Modra  <amodra@gmail.com>
2175
2176         * elf32-ppc.c (ppc_elf_get_synthetic_symtab): Examine stubs in
2177         reverse order.  Account for larger size of __tls_get_addr_opt stub.
2178
2179 2015-03-10  Yuri Gribov  <y.gribov@samsung.arm>
2180
2181         PR ld/16572
2182         * elf32-arm.c (elf32_arm_final_link_relocate): Remove support for
2183         ELF_ARM_HASENTRY.
2184         (elf32_arm_print_private_bfd_data): Likewise.
2185
2186 2015-03-06  Nick Clifton  <nickc@redhat.com>
2187
2188         PR binutils/17765
2189         * elflink.c (put_value): Like previous delta, but for the 32-bit
2190         case.
2191
2192 2015-03-05  Nick Clifton  <nickc@redhat.com>
2193
2194         PR binutils/17765
2195         * elflink.c (put_value): Avoid using an undefined shift
2196         operation.
2197
2198 2015-03-05  H.J. Lu  <hongjiu.lu@intel.com>
2199
2200         PR ld/pr15228
2201         PR ld/pr17709
2202         * elf-bfd.h (elf_backend_data): Add extern_protected_data.
2203         * elf32-i386.c (elf_backend_extern_protected_data): New.
2204         Defined to 1.
2205         * elf64-x86-64.c (elf_backend_extern_protected_data): Likewise.
2206         * elflink.c (_bfd_elf_adjust_dynamic_copy): Don't error on
2207         copy relocs against protected symbols if extern_protected_data
2208         is true.
2209         (_bfd_elf_symbol_refs_local_p): Don't return true on protected
2210         non-function symbols if extern_protected_data is true.
2211         * elfxx-target.h (elf_backend_extern_protected_data): New.
2212         Default to 0.
2213         (elfNN_bed): Initialize extern_protected_data with
2214         elf_backend_extern_protected_data.
2215
2216 2015-03-05  Nick Clifton  <nickc@redhat.com>
2217
2218         PR binutils/18025
2219         * coffgen.c (coff_find_nearest_line_with_names): If the dwarf2
2220         lookup fails, check for an address bias in the dwarf info, and if
2221         one exists, retry the lookup with the biased value.
2222         * dwarf2.c (_bfd_dwarf2_find_symbol_bias): New function.
2223         Determines if a bias exists bewteen the addresses of functions
2224         based on DWARF information vs symbol table information.
2225         * libbfd-in.h (_bfd_dwarf2_find_symbol_bias): Prototype.
2226         * libbfd.h: Regenerate.
2227
2228 2015-03-04  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2229
2230         * elfxx-aarch64.c (decode_add_imm, decode_movw_imm)
2231         (decode_tst_branch_ofs_14, decode_ld_lit_ofs_19)
2232         (decode_cond_branch_ofs_19, decode_branch_ofs_26): Remove.
2233
2234 2015-03-04  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2235
2236         * elfnn-aarch64.c (aarch64_build_one_stub): Call abort.
2237         (aarch64_size_one_stub): Likewise.
2238         (aarch64_map_one_stub): Likewise.
2239
2240 2015-03-04  Andreas Arnez  <arnez@linux.vnet.ibm.com>
2241
2242         * cpu-s390.c (N): New macro.
2243         (bfd_s390_31_arch): New.  Define only if default target word size
2244         is 64 bits.  Otherwise define...
2245         (bfd_390_64_arch): ...this.  Make static.
2246         (bfd_s390_arch): Define according to the default target word size.
2247         Let the 'next' field point to the alternate arch.
2248
2249 2015-03-04  Richard Sandiford  <richard.sandiford@arm.com>
2250
2251         PR gas/17843
2252         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Expect
2253         R_AARCH64_TLSLE_MOVW_TPREL_G0_NC and R_AARCH64_TLSLE_MOVW_TPREL_G1_NC
2254         to be used with MOVK rather than MOVZ.
2255
2256 2015-03-03  DJ Delorie  <dj@redhat.com>
2257
2258         * elf32-rl78.c (rl78_elf_relax_section): Only relax ADDR16's if
2259         there's a symbol.
2260
2261 2015-02-28  Alan Modra  <amodra@gmail.com>
2262
2263         * elf32-ppc.c (ppc_elf_tls_setup): Set no_tls_get_addr_opt if
2264         not PLT_NEW.
2265
2266 2015-02-27  H.J. Lu  <hongjiu.lu@intel.com>
2267
2268         * elf32-i386.c (need_convert_mov_to_lea): New.
2269         (elf_i386_check_relocs): Set need_convert_mov_to_lea if needed.
2270         (elf_i386_convert_mov_to_lea): Return TRUE if
2271         need_convert_mov_to_lea is unset.
2272         * elf64-x86-64.c (need_convert_mov_to_lea): New.
2273         (elf_x86_64_check_relocs): Set need_convert_mov_to_lea if needed.
2274         (elf_x86_64_convert_mov_to_lea): Return TRUE if
2275         need_convert_mov_to_lea is unset.
2276
2277 2015-02-27  Nick Clifton  <nickc@redhat.com>
2278
2279         PR binutils/17910
2280         * coffgen.c (_bfd_coff_internal_syment_name): Only check for
2281         string length overflow when the string table length is actually
2282         set.
2283
2284 2015-02-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2285
2286         * bfd/bfd-in2.h: Regenerate.
2287         * bfd/libbfd.h: Regenerate.
2288
2289 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2290
2291         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Fix
2292         TLSDESC_LD_PREL19 field width and masks.
2293         (aarch64_tls_transition_without_check)
2294         (aarch64_reloc_got_type, elfNN_aarch64_final_link_relocate)
2295         (elfNN_aarch64_tls_relax, elfNN_aarch64_relocate_section)
2296         (elfNN_aarch64_gc_sweep_hook, elfNN_aarch64_check_relocs): Handle
2297         BFD_RELOC_AARCH64_TLSDESC_LD_PREL19.
2298         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend)
2299         (_bfd_aarch64_elf_resolve_relocation): Likewise.
2300
2301 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2302
2303         * elfnn-aarch64.c (IS_AARCH64_TLSDESC_RELOC): Reorder R_TYPE
2304         tests.
2305         (aarch64_tls_transition_without_check)
2306         (aarch64_reloc_got_type, elfNN_aarch64_final_link_relocate)
2307         (elfNN_aarch64_tls_relax, elfNN_aarch64_relocate_section)
2308         (elfNN_aarch64_gc_sweep_hook, elfNN_aarch64_check_relocs): Handle
2309         BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21.
2310         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend)
2311         (_bfd_aarch64_elf_resolve_relocation): Likewise.
2312         * reloc.c (BFD_RELOC_AARCH64_TLSGD_ADR_PREL21): Define.
2313
2314 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2315
2316         * elfnn-aarch64.c (IS_AARCH64_TLS_RELOC)
2317         (elfNN_aarch64_howto_table, aarch64_tls_transition_without_check)
2318         (aarch64_reloc_got_type, elfNN_aarch64_final_link_relocate)
2319         (elfNN_aarch64_tls_relax, elfNN_aarch64_relocate_section)
2320         (elfNN_aarch64_gc_sweep_hook, elfNN_aarch64_check_relocs): Handle
2321         BFD_RELOC_AARCH64_TLSGD_ADR_PREL21.
2322         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend)
2323         (_bfd_aarch64_elf_resolve_relocation): Likewise.
2324         * reloc.c (BFD_RELOC_AARCH64_TLSGD_ADR_PREL21): Define.
2325
2326 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2327
2328         * elfnn-aarch64.c: (TLSIE_LD_GOTTREL_PREL19): Fix HOWTO bit field width.
2329         (aarch64_tls_transition_without_check, aarch64_reloc_got_type)
2330         (elfNN_aarch64_final_link_relocate, elfNN_aarch64_tls_relax)
2331         (elfNN_aarch64_relocate_section, elfNN_aarch64_gc_sweep_hook)
2332         (elfNN_aarch64_check_relocs): Handle
2333         BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19.
2334
2335         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend)
2336         (_bfd_aarch64_elf_resolve_relocation): Likewise.
2337
2338 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2339
2340         * elfnn-aarch64.c: (TLSDESC_CALL): Fix HOWTO bit field width.
2341
2342 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2343
2344         * elfnn-aarch64.c (TLSLE_MOVW_TPREL_G2)
2345         (TLSLE_MOVW_TPREL_G1, TLSLE_MOVW_TPREL_G1_NC)
2346         (TLSLE_MOVW_TPREL_G0, TLSLE_MOVW_TPREL_G0_NC): Fix bit field
2347         width.
2348
2349 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2350
2351         * elfnn-aarch64.c: (TLSIE_MOVW_GOTTPREL_G0_NC): Fix HOWTO bit
2352         field width.
2353
2354 2015-02-26  Nick Clifton  <nickc@redhat.com>
2355
2356         PR binutils/17512
2357         * coffcode.h (coff_compute_section_file_positions): Report
2358         negative page sizes.
2359         * elf.c (elf_fake_sections): Handle excessive alignmment powers.
2360         (assign_file_positions_for_non_load_sections): Replace assertion
2361         with an error message.
2362         (rewrite_elf_program_header): Handle excessive segment
2363         alignments.
2364         * mach-o.c (bfd_mach_o_read_section_32): Likewise.
2365         (bfd_mach_o_read_section_64): Likewise.
2366         * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Use %B to
2367         print a bfd name, not %A.
2368
2369 2015-02-26  Alan Modra  <amodra@gmail.com>
2370
2371         * elf64-ppc.c (plt_stub_size, build_plt_stub): Don't build
2372         thread-safe stubs for iplt.
2373         (build_tls_get_addr_stub): Restore r2 immediately after call.
2374
2375 2015-02-26  Terry Guo  <terry.guo@arm.com>
2376
2377         * elf32-arm.c (elf32_arm_merge_eabi_attributes): Update how we
2378         merge Tag_ABI_HardFP_use.
2379
2380 2015-02-26  Alan Modra  <amodra@gmail.com>
2381
2382         * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Heed -z nocopyreloc.
2383         Use text relocs rather than giving an error on trying to use
2384         .dynbss for protected shared lib vars.
2385         * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
2386
2387 2015-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
2388
2389         * elf32-avr.c (struct elf_avr_section_data): New structure.
2390         (struct avr_relax_info): New structure.
2391         (elf_avr_new_section_hook): New function.
2392         (struct elf_avr_section_data): Add relax_info.
2393         (get_avr_relax_info): New function.
2394         (init_avr_relax_info): New function.
2395         (elf32_avr_relax_delete_bytes): Find next property record before
2396         deleting bytes.  When deleting don't move bytes beyond the next
2397         property record.
2398         (avr_elf32_assign_records_to_section): New function.
2399         (avr_property_record_compare): New function.
2400         (avr_load_all_property_sections): New function.
2401         (elf32_avr_relax_section): Load property data.  After relaxing the
2402         section, move any .align directives that have enough deleted bytes
2403         before them.
2404         (bfd_elf32_new_section_hook): Define.
2405
2406 2015-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
2407
2408         * elf32-avr.h (struct avr_property_header): New strucure.
2409         (avr_elf32_load_property_records): Declare.
2410         (avr_elf32_property_record_name): Declare.
2411         * elf32-avr.c: Add bfd_stdint.h include.
2412         (retrieve_local_syms): New function.
2413         (get_elf_r_symndx_section): New function.
2414         (get_elf_r_symndx_offset): New function.
2415         (internal_reloc_compare): New function.
2416         (struct avr_find_section_data): New structure.
2417         (avr_is_section_for_address): New function.
2418         (avr_find_section_for_address): New function.
2419         (avr_elf32_load_records_from_section): New function.
2420         (avr_elf32_load_property_records): New function.
2421         (avr_elf32_property_record_name): New function.
2422
2423 2015-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
2424
2425         * elf32-avr.h (AVR_PROPERTY_RECORD_SECTION_NAME): Define.
2426         (AVR_PROPERTY_RECORDS_VERSION): Define.
2427         (AVR_PROPERTY_SECTION_HEADER_SIZE): Define.
2428         (struct avr_property_record): New structure.
2429
2430 2015-02-24  Nick Clifton  <nickc@redhat.com>
2431
2432         * elf32-v850.c (v850_set_note): New function.  Creates a Renesas
2433         style note entry.
2434         (v850_elf_make_note_section): New function.  Creates a note
2435         section.
2436         (v850_elf_create_sections): New function.  Create a note section
2437         if one is not already present.
2438         (v850_elf_set_note): New function.  Adds a note to a bfd.
2439         (v850_elf_copy_private_bfd_data): New function.  Copies V850
2440         notes.
2441         (v850_elf_merge_notes): New function.  Merges V850 notes.
2442         (print_v850_note): New function.  Displays a V850 note.
2443         (v850_elf_print_notes): New function. Displays all notes attached
2444         to a bfd.
2445         (v850_elf_merge_private_bfd_data): Call v850_elf_merge_notes.
2446         (v850_elf_print_private_bfd_data): Call v850_elf_print_notes.
2447         (v850_elf_fake_sections): Set the type of the V850 note section.
2448         * bfd-in.h (v850_elf_create_sections): Add prototype.
2449         (v850_elf_set_note): Add prototype.
2450         * bfd-in2.h: Regenerate.
2451
2452 2015-02-24  Nick Clifton  <nickc@redhat.com>
2453
2454         * configure.ac (AC_CHECK_HEADERS): Add wctype.h.
2455         * configure: Regenerate.
2456         * config.in: Regenerate.
2457         * peXXigen.c: Include wctype.h if HAVE_WCTYPE_H is defined.
2458         (u16_mbtowc): Use wint_t types if HAVE_WCTYPE_H is defined.
2459         (rsrc_cmp): Use towlower instead of wcsncasecmp if HAVE_WCTYPE_H
2460         is defined.
2461
2462 2015-02-24  Nick Clifton  <nickc@redhat.com>
2463
2464         * pdp11.c (set_section_contents): Pad the .text and .data sections
2465         to their aligned sizes.
2466
2467 2015-02-23  Yoshinori Sato <ysato@users.sourceforge.jp>
2468
2469         * config.bfd: Add h8300-*-linux.
2470         * configure.ac: Add h8300_elf32_linux_vec.
2471         * configure: Regenerate.
2472         * elf32-h8300.c: Likewise.
2473         * targets.c(_bfd_target_vector): Likewise.
2474
2475 2015-02-23  Nick Clifton  <nickc@redhat.com>
2476
2477         PR 17914
2478         * cpu-w65.c: Correct typos in license notice.
2479
2480         PR 17940
2481         * elf32-msp430.c (msp430_elf_relax_delete_bytes): Adjust debug
2482         symbols at end of sections.  Adjust function sizes.
2483
2484 2015-02-20  Andreas Arnez  <arnez@linux.vnet.ibm.com>
2485
2486         * elf-bfd.h (elfcore_write_s390_vxrs_low): Add prototype.
2487         (elfcore_write_s390_vxrs_high): Likewise.
2488         * elf.c (elfcore_grok_s390_vxrs_low): New function.
2489         (elfcore_grok_s390_vxrs_high): New function.
2490         (elfcore_grok_note): Call them.
2491         (elfcore_write_s390_vxrs_low): New function.
2492         (elfcore_write_s390_vxrs_high): New function.
2493         (elfcore_write_register_note): Call them.
2494
2495 2015-02-19  Branko Drevensek  <branko.drevensek@gmail.com>
2496
2497         PR 17995
2498         * verilog.c (verilog_write_record): Correct buffer size.
2499
2500 2015-02-19  Alan Modra  <amodra@gmail.com>
2501
2502         * elflink.c (_bfd_elf_define_linkage_sym): Set 'bed' earlier.
2503
2504 2015-02-19  Alan Modra  <amodra@gmail.com>
2505
2506         PR ld/4317
2507         * elflink.c (elf_link_input_bfd): Drop undefined local syms.
2508         (elf_link_output_extsym): Drop local and global undefined syms.
2509         Tidy.  Expand comment.
2510
2511 2015-02-17  Alan Modra  <amodra@gmail.com>
2512
2513         PR ld/17975
2514         * elflink.c (struct elf_outext_info): Remove need_second_pass
2515         and second_pass.
2516         (elf_link_output_extsym): Delete code handling second forced
2517         local pass.  Move code emitting NULL STT_FILE symbol later, so
2518         that it can be omitted if forced local is stripped.  Don't
2519         emit the NULL STT_FILE if no file symbols have been output.
2520         (bfd_elf_final_link): Remove second forced local pass.
2521         * elf32-ppc.c (add_stub_sym): Set linker_def on linker syms.
2522         (ppc_elf_size_dynamic_sections): Likewise.
2523         * elf64-ppc.c (ppc_build_one_stub): Likewise.
2524         (build_global_entry_stubs): Likewise.
2525         (ppc64_elf_build_stubs): Likewise.
2526
2527 2015-02-16  H.J. Lu  <hongjiu.lu@intel.com>
2528
2529         PR ld/17975
2530         * elflink.c (elf_link_output_extsym): Only check filesym_count
2531         when outputting a NULL FILE symbol.  Set second_pass_sym to
2532         h->forced_local && !h->root.linker_def.
2533
2534 2015-02-15  H.J. Lu  <hongjiu.lu@intel.com>
2535
2536         * elf32-i386.c (elf_i386_always_size_sections): Set root.linker_def
2537         on _TLS_MODULE_BASE_.
2538         * elf64-x86-64.c (elf_x86_64_always_size_sections): Likewise.
2539
2540 2015-02-15  Alan Modra  <amodra@gmail.com>
2541
2542         * dwarf2.c (read_rangelist): Correct buffer overflow check
2543         Whitespace throughout file.
2544
2545 2015-02-14  Alan Modra  <amodra@gmail.com>
2546
2547         PR ld/17973
2548         * bfd.c (struct bfd): Add lto_output.
2549         * linker.c (_bfd_handle_already_linked): Explicitly test for
2550         objects added by the lto plugin.
2551         * opncls.c (_bfd_new_bfd_contained_in): Copy lto_output and
2552         no_export flags from archive.
2553         * archive.c (open_nested_file): New function, setting lto_output
2554         and no_export, extracted from..
2555         (find_nested_archive): ..here.  Flip params.  Rename from
2556         _bfd_find_nested_archive.
2557         (_bfd_get_elt_at_filepos): Correct var typo.  Use open_nested_file.
2558         (_bfd_look_for_bfd_in_cache): Copy no_export.
2559         * elflink.c (elf_link_add_object_symbols): Remove now unnecessary
2560         my_archive->no_export test.
2561         (elf_link_input_bfd): Drop existing lto_output STT_FILE syms.
2562         Don't use the file name when adding lto_output STT_FILE sym.
2563         * bfd-in2.h: Regenerate.
2564
2565 2015-02-13  Alan Modra  <amodra@gmail.com>
2566
2567         PR binutils/17512
2568         * elf64-ppc.c (opd_entry_value): Tighten offset check.  Remove
2569         now redundant assert.
2570
2571 2015-02-12  Nick Clifton  <nickc@redhat.com>
2572
2573         PR binutils/17512
2574         * dwarf.c (read_1_byte, read_1_signed_byte, read_2_bytes)
2575         (read_4_bytes, read_8_bytes, read_n_bytes, read_string)
2576         (read_indirect_string, read_alt_indirect_string)
2577         (read_alt_indirect_ref, read_address, read_abbrevs)
2578         (read_attribute_value, read_attribute, decode_line_info)
2579         (find_abstract_instance_name, read_rangelist)
2580         (scan_unit_for_symbols, parse_comp_unit)
2581         (_bfd_dwarf2_find_nearest_line): Harden DWARF reading code.  Pass
2582         end pointers to reading functions and check for offsets taking
2583         pointers out of range.  Replace calls to read_*_leb128 with calls
2584         to safe_read_leb128.
2585
2586         (* elf64-ppc.c (opd_entry_value): Add a check for an overlarge
2587         offset.
2588         * syms.c (_bfd_stab_section_find_nearest_line): Add checks for
2589         computed file_name address being before the start of the string
2590         table.
2591
2592 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
2593
2594         PR ld/17878
2595         * bfd.c (bfd_plugin_format): New.
2596         (bfd): Add plugin_format and plugin_dummy_bfd.
2597         * plugin.c (try_load_plugin): Take a pointer to bfd_boolean
2598         argument to return TRUE if any plugin is found.  Set plugin_format.
2599         (has_plugin): New.
2600         (bfd_plugin_target_p): New.
2601         (bfd_plugin_specified_p): Likewise.
2602         (bfd_plugin_target_p): Likewise.
2603         (register_ld_plugin_object_p): Likewise.
2604         (bfd_plugin_set_plugin): Set has_plugin.
2605         (load_plugin): Cache try_load_plugin result.
2606         (bfd_plugin_object_p): Try ld_plugin_object_p first.  Check
2607         plugin_format.
2608         * plugin.h (bfd_plugin_target_p): New.
2609         (bfd_plugin_specified_p): Likewise.
2610         (register_ld_plugin_object_p): Likewise.
2611         * bfd-in2.h: Regenerated.
2612
2613 2015-02-11  Pedro Alves  <palves@redhat.com>
2614
2615         * libbfd-in.h [__cplusplus]: Open extern "C" scope.
2616         * libcoff-in.h [__cplusplus]: Open extern "C" scope.
2617         * libbfd.h: Regenerate.
2618         * libcoff.h: Regenerate.
2619
2620         * elf-bfd.h [__cplusplus]: Wrap in extern "C".
2621         * mach-o.h [__cplusplus]: Wrap in extern "C".
2622         * som.h [__cplusplus]: Wrap in extern "C".
2623
2624 2015-02-10  Nick Clifton  <nickc@redhat.com>
2625
2626         PR binutils/17512
2627         * coffcode.h (styp_to_sec_flags): Use an unsigned long type to
2628         hold the flag bits.
2629         * peXXigen.c (pe_print_reloc): Use unsigned types to hold the
2630         size and number of relocs.
2631         (pe_print_debugdata): Use a 32-bit aligned buffer to store the
2632         codeview record.
2633         * versados.c (process_otr): Check the esdid value before using it
2634         to access the EDATA.
2635
2636 2015-02-09  Ed Maste  <emaste@freebsd.org>
2637
2638         * elf32-i386.c (elf_i386_get_plt_sym_val): Avoid incrementing
2639         uninitialized and unused variable.
2640         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
2641
2642 2015-02-09  Alan Modra  <amodra@gmail.com>
2643
2644         * elf32-ppc.c (ppc_elf_relocate_section): Don't segfault on NULL
2645         tls_sec.
2646         * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
2647         * elflink.c (elf_link_output_extsym): Don't assert on NULL tls_sec.
2648
2649 2015-02-09  Alan Modra  <amodra@gmail.com>
2650
2651         * elflink.c: Whitespace, formatting fixes.
2652         (elf_link_input_bfd): Clarify comment.
2653         (elf_link_output_extsym): Exclude symbols in linker created
2654         sections when testing for plugin symbols.
2655
2656 2015-02-07  H.J. Lu  <hongjiu.lu@intel.com>
2657
2658         PR ld/17935
2659         * elf32-i386.c (elf_i386_readonly_dynrelocs): Also issue a
2660         warning for relocation in readonly section for -z text.
2661         (elf_i386_size_dynamic_sections): Likewise.
2662         * elf64-x86-64.c (elf_x86_64_readonly_dynrelocs): Likewise.
2663         (elf_x86_64_size_dynamic_sections): Likewise.
2664
2665 2015-02-06  H.J. Lu  <hongjiu.lu@intel.com>
2666
2667         PR ld/12365
2668         PR ld/14272
2669         * elflink.c (_bfd_elf_fix_symbol_flags): Revert the last change.
2670         (elf_link_input_bfd): Mark the plugin symbol undefined if it is
2671         referenced from a non-IR file.
2672
2673 2015-02-06  Nick Clifton  <nickc@redhat.com>
2674
2675         PR binutils/17512
2676         * peXXigen.c (rsrc_print_resource_entries): Add range check for
2677         addresses that wrap around the address space.
2678         (rsrc_parse_entry): Likewise.
2679
2680 2015-02-03  H.J. Lu  <hongjiu.lu@intel.com>
2681
2682         PR ld/12365
2683         PR ld/14272
2684         * elflink.c (_bfd_elf_fix_symbol_flags): Mark the plugin symbol
2685         undefined if it is referenced from a non-IR file.
2686
2687 2015-02-03  Nick Clifton  <nickc@redhat.com>
2688
2689         PR binutils/17512
2690         * ecoff.c: Use bfd_alloc2 to allocate space for structure arrays.
2691         (_bfd_ecoff_slurp_symbol_table): Check for a negative symbol
2692         index or an out of range fdr index.
2693         * elf-m10300.c (mn10300_info_to_howto): Fix typo in error message.
2694         * elf32-arc.c (arc_info_to_howto_rel): Likewise.
2695         * elf32-avr.c (avr_info_to_howto_rela): Likewise.
2696         * elf32-cr16.c (elf_cr16_info_to_howto): Likewise.
2697         * elf32-cr16c.c (elf_cr16c_info_to_howto_rel): Likewise.
2698         * elf32-cris.c (cris_info_to_howto_rela): Likewise.
2699         * elf32-crx.c (elf_crx_info_to_howto): Likewise.
2700         * elf32-d10v.c (d10v_info_to_howto_rel): Likewise.
2701         * elf32-d30v.c (d30v_info_to_howto_rel): Likewise.
2702         * elf32-epiphany.c (epiphany_info_to_howto_rela): Likewise.
2703         * elf32-fr30.c (fr30_info_to_howto_rela): Likewise.
2704         * elf32-frv.c (frv_info_to_howto_rela): Likewise.
2705         * elf32-i370.c (i370_elf_info_to_howto): Likewise.
2706         * elf32-i960.c (elf32_i960_info_to_howto_rel): Likewise.
2707         * elf32-ip2k.c (ip2k_info_to_howto_rela): Likewise.
2708         * elf32-iq2000.c (iq2000_info_to_howto_rela): Likewise.
2709         * elf32-lm32.c (lm32_info_to_howto_rela): Likewise.
2710         * elf32-m32c.c (m32c_info_to_howto_rela): Likewise.
2711         * elf32-m32r.c (m32r_info_to_howto_rel): Likewise.
2712         * elf32-m68hc11.c (m68hc11_info_to_howto_rel): Likewise.
2713         * elf32-m68hc12.c (m68hc11_info_to_howto_rel): Likewise.
2714         * elf32-mcore.c (mcore_elf_info_to_howto): Likewise.
2715         * elf32-mep.c (mep_info_to_howto_rela): Likewise.
2716         * elf32-metag.c (metag_info_to_howto_rela): Likewise.
2717         * elf32-microblaze.c (microblaze_elf_info_to_howto): Likewise.
2718         * elf32-moxie.c (moxie_info_to_howto_rela): Likewise.
2719         * elf32-msp430.c (msp430_info_to_howto_rela): Likewise.
2720         * elf32-mt.c (mt_info_to_howto_rela): Likewise.
2721         * elf32-nds32.c (nds32_info_to_howto_rel): Likewise.
2722         * elf32-or1k.c (or1k_info_to_howto_rela): Likewise.
2723         * elf32-pj.c (pj_elf_info_to_howto): Likewise.
2724         * elf32-ppc.c (ppc_elf_info_to_howto): Likewise.
2725         * elf32-rl78.c (rl78_info_to_howto_rela): Likewise.
2726         * elf32-rx.c (rx_info_to_howto_rela): Likewise.
2727         * elf32-sh.c (sh_elf_info_to_howto): Likewise.
2728         * elf32-spu.c (spu_elf_info_to_howto): Likewise.
2729         * elf32-v850.c (v850_elf_perform_relocation): Likewise.
2730         * elf32-vax.c (rtype_to_howto): Likewise.
2731         * elf32-visium.c (visium_info_to_howto_rela): Likewise.
2732         * elf32-xgate.c (xgate_info_to_howto_rel): Likewise.
2733         * elf32-xtensa.c (elf_xtensa_info_to_howto_rela): Likewise.
2734         * elf64-alpha.c (elf64_alpha_info_to_howto): Likewise.
2735         * elf64-mmix.c (mmix_info_to_howto_rela): Likewise.
2736         * mach-o.c: Use bfd_alloc2 to allocate space for structure arrays.
2737         (bfd_mach_o_canonicalize_one_reloc): Fix check on out
2738         of range symbol indicies.
2739         (bfd_mach_o_canonicalize_relocs): Check for out of range alloc.
2740         (bfd_mach_o_canonicalize_dynamic_reloc): Likewise.
2741         (bfd_mach_o_build_dysymtab): Likewise.
2742         (bfd_mach_o_write_symtab_content): Set the string table size to
2743         zero upon error.
2744         (bfd_mach_o_read_symtab_symbols): Reset the nsyms value if the
2745         read fails.
2746         * peXXigen.c (pe_print_edata):  Check for numeric overflow in edt
2747         fields.
2748         * tekhex.c (first_phase): Check for src pointer reaching end of
2749         buffer.
2750
2751 2015-02-03  Will Newton  <will.newton@linaro.org>
2752
2753         * elfnn-aarch64.c (elfNN_aarch64_finish_dynamic_symbol):
2754         Set st_value to zero for undefined symbols if the reference
2755         is weak or pointer_equality_needed is FALSE.
2756
2757         * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Improve
2758           comment discussing why we clear st_value for some symbols.
2759
2760 2015-02-02  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
2761
2762         * elf32-nds32.c (nds32_get_section_contents): Add one more argument.
2763         (nds32_elf_relocate_section): Do not relocate R_NDS32_LONGJUMP7.
2764
2765 2015-01-29  Alan Modra  <amodra@gmail.com>
2766
2767         * elf64-ppc.c (ppc64_elf_relocate_section): Correct GOT_TLSLD
2768         optimization.  Tidy mask for GOT_TLSGD optimization.
2769         * elf32-ppc.c (ppc_elf_relocate_section): Likewise.  Correct
2770         location of nop zapping high insn too.
2771
2772 2015-01-28  Alan Modra  <amodra@gmail.com>
2773
2774         * elf64-ppc.h (struct ppc64_elf_params): Add "object_in_toc".
2775         * elf64-ppc.c (ppc64_elf_add_symbol_hook): Assume that global symbols
2776         in .toc indicate xlc compiled code that might require a rw .toc.
2777
2778 2015-01-28  James Bowman  <james.bowman@ftdichip.com>
2779
2780         * Makefile.am: Add FT32 files.
2781         * archures.c (enum bfd_architecture): Add bfd_arch_ft32.
2782         (bfd_mach_ft32): Define.
2783         (bfd_ft32_arch): Declare.
2784         (bfd_archures_list): Add bfd_ft32_arch.
2785         * config.bfd: Handle FT32.
2786         * configure.ac: Likewise.
2787         * cpu-ft32.c: New file.
2788         * elf32-ft32.c: New file.
2789         * reloc.c (BFD_RELOC_FT32_10, BFD_RELOC_FT32_20, BFD_RELOC_FT32_17,
2790         BFD_RELOC_FT32_18): Define.
2791         * targets.c (_bfd_target_vector): Add ft32_elf32_vec.
2792         * bfd-in2.h: Regenerate.
2793         * libbfd.h: Regenerate.
2794         * Makefile.in: Regenerate.
2795         * configure: Regenerate.
2796         * po/SRC-POTFILES.in: Regenerate.
2797
2798 2015-01-27  Nick Clifton  <nickc@redhat.com>
2799
2800         PR binutils/17512
2801         * pdp11.c (aout_get_external_symbols): Return false if there are
2802         no symbols.
2803
2804         * dwarf2.c (concat_filename): Check for an empty directory table.
2805         (scan_unit_for_symbols): Check for reading off the end of the
2806         unit.
2807         (parse_comp_unit): Check for a DW_AT_comp_dir attribute with a
2808         non-string form.
2809         * elf64-ppc.c (opd_entry_value): Fail if there are no relocs
2810         available.
2811
2812 2015-01-26  Kuan-Lin Chen  <kuanlinchentw@gmail.com>
2813
2814         * elf32-nds32.c (nds32_elf_pick_relax): Fix again setting.
2815
2816 2015-01-22  DJ Delorie  <dj@redhat.com>
2817
2818         * elf32-m32c.c (m32c_apply_reloc_24): New.
2819         (m32c_elf_howto_table): Use it for R_M32C_24.
2820         (m32c_elf_relocate_section): Handle R_M32C_24 specially.
2821
2822 2015-01-22  Nick Clifton  <nickc@redhat.com>
2823
2824         PR binutils/17512
2825         * coffcode.h (handle_COMDAT): When searching for the section
2826         symbol, make sure that there is space left in the symbol table.
2827         * vms-alpha.c (_bfd_vms_slurp_ehdr): Add range checks.
2828
2829 2015-01-21  Nick Clifton  <nickc@redhat.com>
2830
2831         PR binutils/17512
2832         * coffcode.h (coff_set_arch_mach_hook): Check return value from
2833         bfd_malloc.
2834         (coff_slurp_line_table): Return FALSE if the line number
2835         information was corrupt.
2836         (coff_slurp_symbol_table): Return FALSE if the symbol information
2837         was corrupt.
2838         * mach-o.c (bfd_mach_o_bfd_copy_private_header_data): Always
2839         initialise the fields of the dyld_info structure.
2840         (bfd_mach_o_build_exec_seg_command): Replace assertion with an
2841         error message and a return value.
2842         (bfd_mach_o_layout_commands): Change the function to boolean.
2843         Return FALSE if the function fails.
2844         (bfd_mach_o_build_commands): Fail if bfd_mach_o_layout_commands
2845         fails.
2846         (bfd_mach_o_read_command): Fail if an unrecognised command is
2847         encountered.
2848         * peXXigen.c (_bfd_XXi_swap_aouthdr_in): Set bfd_error if the
2849         read fails.
2850         (slurp_symtab): Check the return from bfd_malloc.
2851         (_bfd_XX_bfd_copy_private_bfd_data_common): Fail if the copy
2852         encountered an error.
2853         (_bfd_XXi_final_link_postscript): Fail if a section could not be
2854         copied.
2855         * peicode.h (pe_bfd_object_p): Fail if the header could not be
2856         swapped in.
2857         * tekhex.c (first_phase): Fail if the section is too big.
2858         * versados.c (struct esdid): Add content_size field.
2859         (process_otr): Use and check the new field.
2860         (versados_get_section_contents): Check that the section exists and
2861         that the requested data is available.
2862
2863 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
2864
2865         * elf32-nios2.c (elf_backend_default_execstack): Define as 0.
2866
2867 2015-01-20  Alan Modra  <amodra@gmail.com>
2868
2869         PR ld/17615
2870         * elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Don't drop
2871         ELF_COMMON_DEF syms.
2872
2873 2015-01-19  Alan Modra  <amodra@gmail.com>
2874
2875         PR ld/17615
2876         * elf-bfd.h (ELF_COMMON_DEF_P): Note that this might be true for
2877         linker script assignments too.
2878         * elflink.c (elf_gc_sweep_symbol): Don't drop ELF_COMMON_DEF syms.
2879         (bfd_elf_gc_mark_dynamic_ref_symbol): Similarly.
2880
2881 2015-01-19  Alan Modra  <amodra@gmail.com>
2882
2883         * elf32-bfin.c (bfin_bfd_reloc_type_lookup): Correct loop iteration
2884         to allow return of first howto.
2885         * elf32-fr30.c (fr30_reloc_type_lookup): Likewise.
2886         * elf32-m32c.c (m32c_reloc_type_lookup): Likewise.
2887         * elf32-moxie.c (moxie_reloc_type_lookup): Likewise.
2888         * elf32-or1k.c (or1k_reloc_type_lookup): Likewise.
2889         * elf32-rl78.c (rl78_reloc_type_lookup): Likewise.
2890         * elf32-rx.c (rx_reloc_type_lookup): Likewise.
2891         * elf32-tilepro.c (tilepro_reloc_type_lookup): Likewise.
2892         * elf32-xstormy16.c (xstormy16_reloc_type_lookup): Likewise.
2893         * elfxx-tilegx.c (tilegx_reloc_type_lookup): Likewise.
2894         * elf32-nios2.c (nios2_reloc_map): Add mapping for R_NIOS2_NONE.
2895         * elf32-spu.c (spu_elf_bfd_to_reloc_type): Allow return of R_SPU_NONE.
2896         (spu_elf_reloc_type_lookup): Adjust to suit.
2897
2898 2015-01-19  Alan Modra  <amodra@gmail.com>
2899
2900         * bfd-in.h (bfd_get_section_limit_octets): New define, extracted from..
2901         (bfd_get_section_limit): ..here.
2902         * reloc.c (bfd_perform_relocation): Correct bfd_reloc_outofrange check.
2903         (bfd_install_relocation, _bfd_final_link_relocate): Add same check here.
2904         * elf32-sh.c (sh_elf_reloc): Correct bfd_reloc_outofrange check.
2905         * elf32-ppc.c (ppc_elf_addr16_ha_reloc): Remove duplicated
2906         bfd_reloc_outofrange check.
2907         * bfd-in2.h: Regenerate.
2908
2909         * cpu-ns32k.c (_bfd_do_ns32k_reloc_contents): Return bfd_reloc_ok
2910         on zero size relocs.
2911         * ecoff.c (ecoff_reloc_link_order): Likewise.
2912         * elf32-nds32.c (nds32_relocate_contents): Likewise.
2913         * elfxx-aarch64.c (_bfd_aarch64_elf_put_addend): Likewise.
2914
2915         * reloc.c (_bfd_relocate_contents): Don't bomb on zero size relocs.
2916         (_bfd_clear_contents): Likewise.
2917         * elfxx-mips.c (mips_elf_obtain_contents): Likewise.
2918         (mips_elf_perform_relocation): Likewise.
2919
2920         * aoutx.h (aout_link_reloc_link_order): Allow for NULL return
2921         from malloc on zero size alloc.
2922         * cofflink.c (_bfd_coff_reloc_link_order): Likewise.
2923         * elflink.c (elf_reloc_link_order): Likewise.
2924         * linker.c (_bfd_generic_reloc_link_order): Likewise.
2925         * pdp11.c (aout_link_reloc_link_order): Likewise.
2926         * xcofflink.c (xcoff_reloc_link_order): Likewise.
2927
2928         * aoutx.h (howto_table_ext): Ensure NONE relocs have size 3,
2929         bitsize 0, and complain_overflow_dont.
2930         * coff-sparc.c (coff_sparc_howto_table): Likewise.
2931         * elf-hppa.h (elf_hppa_howto_table): Likewise.
2932         * elf-m10200.c (elf_mn10200_howto_table): Likewise.
2933         * elf-m10300.c (elf_mn10300_howto_table): Likewise.
2934         * elf32-arc.c (elf_arc_howto_table): Likewise.
2935         * elf32-arm.c (elf32_arm_howto_table_1): Likewise.
2936         * elf32-avr.c (elf_avr_howto_table): Likewise.
2937         * elf32-bfin.c (bfin_howto_table): Likewise.
2938         * elf32-cr16.c (cr16_elf_howto_table): Likewise.
2939         * elf32-cris.c (cris_elf_howto_table): Likewise.
2940         * elf32-crx.c (crx_elf_howto_table): Likewise.
2941         * elf32-d10v.c (elf_d10v_howto_table): Likewise.
2942         * elf32-d30v.c (elf_d30v_howto_table): Likewise.
2943         * elf32-dlx.c (dlx_elf_howto_table): Likewise.
2944         * elf32-epiphany.c (epiphany_elf_howto_table): Likewise.
2945         * elf32-fr30.c (fr30_elf_howto_table): Likewise.
2946         * elf32-frv.c (elf32_frv_howto_table): Likewise.
2947         * elf32-h8300.c (h8_elf_howto_table): Likewise.
2948         * elf32-i370.c (i370_elf_howto_raw): Likewise.
2949         * elf32-i386.c (elf_howto_table): Likewise.
2950         * elf32-i860.c (elf32_i860_howto_table): Likewise.
2951         * elf32-i960.c (elf32_i960_relocate): Likewise.
2952         * elf32-ip2k.c (ip2k_elf_howto_table): Likewise.
2953         * elf32-iq2000.c (iq2000_elf_howto_table): Likewise.
2954         * elf32-lm32.c (lm32_elf_howto_table): Likewise.
2955         * elf32-m32c.c (m32c_elf_howto_table): Likewise.
2956         * elf32-m32r.c (m32r_elf_howto_table): Likewise.
2957         * elf32-m68hc11.c (elf_m68hc11_howto_table): Likewise.
2958         * elf32-m68hc12.c (elf_m68hc11_howto_table): Likewise.
2959         * elf32-m68k.c (howto_table): Likewise.
2960         * elf32-mcore.c (mcore_elf_howto_raw): Likewise.
2961         * elf32-mep.c (mep_elf_howto_table): Likewise.
2962         * elf32-metag.c (elf_metag_howto_table): Likewise.
2963         * elf32-microblaze.c (microblaze_elf_howto_raw): Likewise.
2964         * elf32-mips.c (elf_mips_howto_table_rel): Likewise.
2965         * elf32-moxie.c (moxie_elf_howto_table): Likewise.
2966         * elf32-msp430.c (elf_msp430_howto_table): Likewise.
2967         * elf32-mt.c (mt_elf_howto_table): Likewise.
2968         * elf32-nds32.c (nds32_elf_howto_table): Likewise.
2969         * elf32-nios2.c (elf_nios2_howto_table_rel): Likewise.
2970         * elf32-or1k.c (or1k_elf_howto_table): Likewise.
2971         * elf32-pj.c (pj_elf_howto_table): Likewise.
2972         * elf32-ppc.c (ppc_elf_howto_raw): Likewise.
2973         * elf32-rl78.c (rl78_elf_howto_table): Likewise.
2974         * elf32-rx.c (rx_elf_howto_table): Likewise.
2975         * elf32-s390.c (elf_howto_table): Likewise.
2976         * elf32-score.c (elf32_score_howto_table): Likewise.
2977         * elf32-score7.c (elf32_score_howto_table): Likewise.
2978         * elf32-sh-relocs.h (R_SH_NONE): Likewise.
2979         * elf32-spu.c (elf_howto_table): Likewise.
2980         * elf32-tic6x.c (elf32_tic6x_howto_table): Likewise.
2981         * elf32-tilepro.c (tilepro_elf_howto_table): Likewise.
2982         * elf32-v850.c (v850_elf_howto_table): Likewise.
2983         * elf32-vax.c (howto_table): Likewise.
2984         * elf32-visium.c (visium_elf_howto_table): Likewise.
2985         * elf32-xc16x.c (xc16x_elf_howto_table): Likewise.
2986         * elf32-xgate.c (elf_xgate_howto_table): Likewise.
2987         * elf32-xstormy16.c (xstormy16_elf_howto_table): Likewise.
2988         * elf32-xtensa.c (elf_howto_table): Likewise.
2989         * elf64-alpha.c (elf64_alpha_howto_table): Likewise.
2990         * elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
2991         * elf64-mmix.c (elf_mmix_howto_table): Likewise.
2992         * elf64-ppc.c (ppc64_elf_howto_raw): Likewise.
2993         * elf64-s390.c (elf_howto_table): Likewise.
2994         * elf64-sh64.c (sh_elf64_howto_table): Likewise.
2995         * elf64-x86-64.c (x86_64_elf_howto_table): Likewise.
2996         * elfn32-mips.c (elf_mips_howto_table_rel): Likewise.
2997         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Likewise.
2998         (elfNN_aarch64_howto_none): Likewise.
2999         * elfxx-ia64.c (ia64_howto_table): Likewise.
3000         * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Likewise.
3001         * elfxx-tilegx.c (tilegx_elf_howto_table): Likewise.
3002         * nlm32-sparc.c (nlm32_sparc_howto_table): Likewise.
3003
3004 2015-01-15  H.J. Lu  <hongjiu.lu@intel.com>
3005
3006         PR ld/17847
3007         * elf64-x86-64.c (elf_x86_64_relocate_section): Don't complain
3008         about -fPIC if the symbol is undefined when building executable.
3009
3010 2015-01-15  Nick Clifton  <nickc@redhat.com>
3011
3012         PR binutils/17512
3013         * elf-m10300.c (mn10300_info_to_howto): Replace assertion with an
3014         error message.  Never return an invalid howto pointer.
3015         * elf32-cr16.c (cr16_info_to_howto): Likewise.
3016         * elf32-crx.c (elf_crx_info_to_howto): Likewise.
3017         * elf32-i370.c (i370_elf_info_to_howto): Likewise.
3018         * elf32-mcore.c (mcore_elf_info_to_howto): Likewise.
3019         * elf32-microblaze.c (microblaze_elf_info_to_howto): Likewise.
3020         * elf32-mips.c (mips_elf32_rtype_to_howto): Likewise.
3021         * elf32-pj.c (pj_elf_info_to_howto): Likewise.
3022         * elf32-ppc.c (ppc_elf_info_to_howto): Likewise.
3023         * elf32-spu.c (spu_elf_info_to_howto): Likewise.
3024         * elf32-v850.c (v850_elf_info_to_howto_rela): Likewise.
3025         * elf32-vax.c (rtype_to_howto): Likewise.
3026         * elf64-alpha.c (elf64_alpha_info_to_howto): Likewise.
3027         * elf64-mips.c (mips_elf64_rtype_to_howto): Likewise.
3028         * elfn32-mips.c (sh_elf_info_to_howto): Likewise.
3029         * elf32-sh.c (sh_elf_info_to_howto): Likewise.
3030         (sh_elf_reloc): Check that the reloc is in range.
3031         * reloc.c (bfd_perform_relocation): Check that the section is big
3032         enough for the entire reloc.
3033         (bfd_generic_get_relocated_section_contents): Report unexpected
3034         return values from perform_reloc.
3035
3036 2015-01-15  Nick Clifton  <nickc@redhat.com>
3037
3038         * elf32-msp430.c (msp430_elf_relax_section): Skip unhandled
3039         relocs.  Include PC-relative adjustment for R_MSP430X_ABS16
3040         relaxation.
3041
3042 2015-01-15  Alan Modra  <amodra@gmail.com>
3043
3044         * elflink.c (_bfd_elf_link_omit_section_dynsym): Return true for
3045         any output section matching a linker created dynobj section.
3046
3047 2015-01-15  Alan Modra  <amodra@gmail.com>
3048
3049         PR 17842
3050         * elflink.c (elf_link_output_sym): Assert elf_onesymtab set.
3051         (bfd_elf_final_link): Always create a symbol table when emit_relocs.
3052         Don't assign symtab file position unless symbols will be output.
3053         Merge blocks with condition in common.  Don't call
3054         elf_backend_output_arch_local_syms or elf_backend_output_arch_syms
3055         unless other symbols are output.  Move assignment of symtab_shndx
3056         file position.  Localize variable.
3057
3058 2015-01-14  Jiong Wang  <jiong.wang@arm.com>
3059
3060         * elf32-arm.c (elf32_arm_final_link_relocate): Reject R_ARM_32/_NOI when
3061         trying to defer them to runtime.
3062
3063 2015-01-13  Thomas Preud'homme <thomas.preudhomme@arm.com>
3064
3065         * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use SYMBOLIC_BIND
3066         to check if a symbol should be bound symbolically.
3067
3068 2015-01-13  Jiong Wang  <jiong.wang@arm.com>
3069
3070         * elfnn-aarch64.c: (elfNN_aarch64_howto_table): Enable overflow check
3071         for TLSLE_MOVW_TPREL_G2.
3072
3073 2015-01-13  Jiong Wang  <jiong.wang@arm.com>
3074
3075         PR ld/17415
3076         * elfnn-aarch64.c (elfNN_aarch64_howto_table): Mark
3077         R_AARCH64_TLSLE_ADD_TPREL_HI12 as complain_overflow_unsigned.
3078         * elfxx-aarch64.c (_bfd_aarch64_elf_resolve_relocation): Correct the
3079         bit mask.
3080
3081 2015-01-12  Terry Guo  <terry.guo@arm.com>
3082
3083         * elflink.c (_bfd_elf_gc_mark_debug_special_section_group): New
3084         function.
3085         (_bfd_elf_gc_mark_extra_sections): Use it.
3086
3087 2015-01-11  H.J. Lu  <hongjiu.lu@intel.com>
3088
3089         PR ld/17827
3090         * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): For PIE,
3091         only discard space for pc-relative relocs symbols which turn
3092         out to need copy relocs.
3093
3094 2015-01-09  Nick Clifton  <nickc@redhat.com>
3095
3096         * tekhex.c (getvalue): Fix thinko in test for correct extraction
3097         of value.
3098         (getsym): Return false if there was not enough data to extract the
3099         symbol.
3100
3101 2015-01-09  Anthony Green  <green@moxielogic.com>
3102
3103         * elf32-moxie.c (ELF_MACHINE_ALT1): Define.
3104
3105 2015-01-08  Nick Clifton  <nickc@redhat.com>
3106
3107         * elf32-msp430.c (msp430_elf_relax_section): Add relaxation of
3108         16-bit absolute BR instructions to 10-bit pc-relative JMP
3109         instructions.
3110
3111 2015-01-08  Nick Clifton  <nickc@redhat.com>
3112
3113         PR binutils/17512
3114         * coffcode.h (coff_slurp_symbol_table): Return false if we failed
3115         to load the line table.
3116         * elf.c (_bfd_elf_map_sections_to_segments): Enforce a minimum
3117         maxpagesize of 1.
3118         * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Fail if
3119         the Data Directory Size is too large.
3120
3121 2015-01-06  H.J. Lu  <hongjiu.lu@intel.com>
3122
3123         PR binutils/17512
3124         * elf32-i386.c (elf_i386_get_plt_sym_val): Skip unknown relocation.
3125         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
3126
3127 2015-01-06  Nick Clifton  <nickc@redhat.com>
3128
3129         PR binutils/17512
3130         * mach-o.c (bfd_mach_o_read_symtab_strtab): Zero terminate the
3131         string table.
3132
3133         * reloc.c (bfd_get_reloc_size): Handle a reloc size of -1.
3134         (bfd_perform_relocation): Include the size of the reloc in the
3135         test for an out of range relocation.
3136         (bfd_generic_get_relocated_section_contents): Remove reloc range
3137         test.
3138
3139         * coff-i860.c (CALC_ADDEND): Always set an addend value.
3140         * tekhex.c (getvalue): Add an end pointer parameter.  Use it to
3141         avoid reading off the end of the buffer.
3142         (getsym): Likewise.
3143         (first_phase): Likewise.
3144         (pass_over): Pass an end pointer to the invoked function.
3145
3146 2015-01-05  H.J. Lu  <hongjiu.lu@intel.com>
3147
3148         PR binutils/17512
3149         * elf32-i386.c (elf_i386_get_plt_sym_val): Return NULL on corrupt
3150         input.
3151         * elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
3152
3153 2015-01-05  Nick Clifton  <nickc@redhat.com>
3154
3155         PR binutils/17512
3156         * archive.c (do_slurp_bsd_armap): Make sure that the parsed sized
3157         is at least big enough for the header to be read.
3158         * elf32-i386.c (elf_i386_get_plt_sym_val): Skip unknown relocs.
3159         * mach-o.c (bfd_mach_o_get_synthetic_symtab): Add range checks.
3160         (bfd_mach_o_read_command): Prevetn duplicate error messages about
3161         unrecognized commands.
3162         * syms.c (_bfd_stab_section_find_nearest_line): Add range checks
3163         when indexing into the string table.
3164
3165 2015-01-01  Alan Modra  <amodra@gmail.com>
3166
3167         Update year range in copyright notice of all files.
3168
3169 For older changes see ChangeLog-2014
3170 \f
3171 Copyright (C) 2015 Free Software Foundation, Inc.
3172
3173 Copying and distribution of this file, with or without modification,
3174 are permitted in any medium without royalty provided the copyright
3175 notice and this notice are preserved.
3176
3177 Local Variables:
3178 mode: change-log
3179 left-margin: 8
3180 fill-column: 74
3181 version-control: never
3182 End: