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